其他
技能
dsh-web-search-ddg
aooyoo
Zero-token DuckDuckGo search provider for the DeepSeek Harness (DSH) web seam — local headless browser, no API key, no m…
deepseek-harnessdeepseek-harness-plugindsh-bundledsh-ctest
PROJECT TOPICS
PROJECT README
DeepSeek Harness 双面插件(dual-face plugin):一个包、一行 cordis 配置,为 Web UI 提供「文件上传」与「文档读取」两项能力。
<会话工作区>/.dsh-filess/<sessionId>/,TTL 定期清扫,sha256 内容去重read_document 工具读取文本 / PDF / DOCX / XLSX,内容嗅探判定真实格式(不信任扩展名),大小预检,LRU 解析缓存.dsh-filess/<sessionId>/ 下,agent 的 fs 后端一定能读到;会话之间互不可见maxUploadBytesPerSession,超限 507)maxOutputChars)超限时截断并显式标记剩余行数sheet 参数指定工作表时返回该 sheet 全量(不受行截断限制),其余 sheet 走合并读取(默认前 5 个),截断显式标记;list_sheets 参数先列出全部 sheet 名(不读单元格),越界报错附带可用 sheet 列表(targetKey, fileVersion, format, sheet, listSheets),文件改动自动失效stat 先查,超限直接报 FS_TOO_LARGE,不读字节presentationMeta 投影为 card: 'read',Web UI 复用官方读文件卡片(行号/高亮/滚动),模型侧只收紧凑行文本pdfjs-dist(Mozilla 官方)、mammoth、read-excel-file(纯只读)ctx.fs,继承会话沙箱与 fs 观察策略,与内置 read 工具同权dsh plugin --profile web add dsh-files
# 重启 dsh web
- id: upload-toolkit
name: 'dsh-files'
config:
maxFileBytes: 25165824 # 单次文档读取字节上限
readLimit: 800 # 单次返回行数上限(默认 800,翻页成本低)
sheetRowLimit: 200 # 每个 sheet 保留行数
maxSheets: 5 # 每个工作簿读取的 sheet 数
cacheEntries: 16 # 解析缓存条目数
cacheMaxBytes: 67108864 # 解析缓存字节预算
maxOutputChars: 50000 # 单次输出窗口总字符预算(超限截断并标记)
uploadMaxBytes: 25165824 # 单次上传字节上限
allowedExtensions: [] # 上传扩展名白名单(空 = 全部允许)
uploadTtlMs: 604800000 # 上传文件保留时长(7 天)
sweepIntervalMs: 3600000 # 清扫间隔
maxConcurrentUploads: 4 # 并发上传数
maxUploadBytesPerSession: 0 # 每会话存储配额(0 = 不限)
uploadDir: /abs/path # 无 sessions 服务时的回退上传根目录
pnpm install
pnpm test # node --test 单元测试(57 项)
pnpm build # esbuild 打包客户端 bundle
npx tsc --noEmit # 类型检查
MIT
CLASSIFICATION EVIDENCE
系统优先读取 GitHub Topics,再与站内分类词典和词根规则比对。