前言¶
在 DeepSeek Harness(DSH)里让多个子代理分析同一份长报告时,常见做法是各子代理各自通读全文。源文件越大、子代理越多,重复读取带来的 token 消耗就越明显,主会话上下文也容易被中间过程撑满。
dsh-brief-pack 把「先读大文件、再按任务裁剪」放在主代理一侧:主代理读一遍源材料,按任务与关键词命中片段,写成一个不超过约 8000 token 的任务包(brief);子代理只读这一个文件,并按固定约束只回简短摘要。本文介绍该插件的定位、安装方式与典型用法。插件由维护者 dcd887 发布,在 SkillHub 目录中归类为工作流;源码托管于 GitHub,许可证为 MIT。
这是什么¶
dsh-brief-pack 是 DSH 上的任务包打包器(Task-pack builder)。README 中的定位是:将大文件压缩为单文件、且估算 token 不超过 8000 的 brief,使子代理可以只读该文件而无需再翻原文。
实现为纯 Node、零外部依赖的单包插件(entry.js 等,见仓库 files 列表),要求 Node.js >=18。当前 package.json 版本为 1.0.0。
解决什么问题¶
README 用示意图对比两种模式:
- 没有 brief-pack:每个子代理各读一遍全文(例如 30 万字报告)。
- 有 brief-pack:主代理读一遍并生成 brief(约 8000 token),各子代理只读 brief。
因此,在 N 个子代理场景下,子代理侧的读取量从「N × 全文」变为「N × brief(≤ budget)」;子代理的中间过程按设计不进入主会话(spawn_with_brief 侧 prompt 要求只回 ≤10 行摘要)。
核心功能:两个工具¶
pack_brief¶
根据任务描述与文件列表,从大文件中提取相关片段,生成任务包文件。
| 参数 | 必填 | 说明 |
|---|---|---|
task |
✅ | 这一包要支撑的任务,写进标题 |
files |
✅ | [{ path, hint? }],hint 为空则只放结构摘要 |
budgetTokens |
默认 8000(最小 1500) | |
outDir |
默认 <用户目录>/DSH输出/briefs |
返回结果不含任务包全文,只给路径与统计,例如 briefPath、bytes、approxTokens、budgetTokens、filesPacked(含 matchedTerms、segments 等)。
插件层 config(cordis.patch.yml / 插件行 config)还可设默认 outDir、budgetTokens、subagentProvider(默认 spawn)、timeoutSeconds(默认 600)。
spawn_with_brief¶
在已有 briefPath 上启动子代理,让其只读该 brief 并写完整报告到指定路径,对主会话只回简短摘要。
| 参数 | 必填 | 说明 |
|---|---|---|
briefPath |
✅ | pack_brief 返回的路径 |
reportPath |
子代理写完整结果的位置 | |
label |
子代理显示名 | |
extra |
追加到 prompt 末尾 | |
timeoutSeconds |
默认 600,上限 1800 |
安装与启用¶
官方安装命令如下。装完后需重开 DSH,新工具才会进入工具面。
dsh plugin add github:dcd887/dsh-brief-pack
DSH 插件在当前 dsh 进程权限下运行。安装前建议在 GitHub 上查看源码与 MIT 许可证,自行判断是否合适。SkillHub 目录页(https://www.skillhub.cn/plugins/dcd887/dsh-brief-pack)为社区索引,与 DeepSeek / 幻方无官方从属关系。
典型用法¶
第 1 步:打包¶
pack_brief({
task: "找出所有未通过的测试用例",
files: [{ path: "C:\\reports\\full-run.md", hint: "失败 通过率" }]
})
README 示例:约 23 KB 源文件可压到约 3,590 token 的任务包(具体随内容与 hint 变化)。
第 2 步:派子代理¶
spawn_with_brief({ briefPath: "...\\briefs\\summary-20261108-021504.md" })
子代理 prompt 固定为:只读这一个文件、不要翻其它文件、把完整结果写进报告、只回 ≤10 行摘要。
为什么能省 token(机制对照)¶
| 直接让子代理读原文 | 用 brief-pack | |
|---|---|---|
| 主代理 | 不读 | 读一遍 |
| 每个子代理 | 读全文 | 只读 brief(≤8000 token) |
| N 个子代理的读取量 | N × 全文 | 全文 + N × 8000 token |
| 子代理的中间过程 | 全进你的上下文 | 不进(只回 ≤10 行) |
适用场景与已知限制¶
适合:需要从超长 Markdown/文本报告或日志中抽片段、并行派多个只关心结论的子代理、且希望控制上下文膨胀的工作流。
限制(README 原文):
- token 是估算:汉字约 1/1.5 token、ASCII 约 4 字符/token,与真实 tokenizer 可能有 ±20% 偏差;返回值含
tokenEstimateNote。 spawn_with_brief是阻塞调用:默认最多等 600 秒。- 没有
subagents服务时会明确降级:返回degraded: true及缺失项,不假装成功。 - 不做二进制/超长单行专门处理:按文本读,
.md之外格式没有专门语法解析。
结尾¶
dsh-brief-pack 用 pack_brief + spawn_with_brief 把「读大文件」收敛到主代理一次,再把裁剪结果以单文件 brief 交给子代理,是 DSH「一切皆插件」生态里面向上下文工程的一条工作流插件。
- 目录页:https://www.skillhub.cn/plugins/dcd887/dsh-brief-pack
- GitHub:https://github.com/dcd887/dsh-brief-pack