DeepSeek Harness Package Map:按 packages 分组继续逐包阅读
为什么需要 Package Map
DeepSeek Harness 有 200 多个一方包。逐包无脑打开会迷路。正确方式是先按 group 建立地图,再在 group 内看 Service Definition、Provider、Consumer 的关系。
权威入口是:
packages/README.md- 各 group 的
README.md - 各 package 的
README.md docs/module-graph.md
阅读模式
每个 group 先问三个问题:
- 它声明了什么 service 或事件?
- 哪些 package 是 provider?
- 哪些 package 是 model-facing tool、UI 或外部 protocol Consumer?
如果一个 group 只有工具没有 Service Definition,说明它可能只是 Consumer。如果只有 provider 没有 Consumer,说明 Consumer 在别的 group。
核心 group 速查
| Group | 阅读重点 |
|---|---|
core |
Agent spine:session、prompt、tools、agent、loop |
llm |
LLM service、adapter、retry、token |
fs |
filesystem service、local/sandbox provider、file/search tools |
shell |
Bash/PowerShell service、local/sandbox provider、shell tools |
subprocess |
process-tree provider |
terminal |
persistent PTY |
session |
persistence、projection、title、telemetry |
session-query |
history search/query tool surface |
client |
browser shell、runtime、UI plugins |
host |
webserver、API proxy、directory picker |
api |
remote gateway |
typert |
type graph and remote generation |
sdk |
JSON-RPC protocol/client/server |
interaction |
approval、permission、commands、questions |
subagent |
provider registry、child agents、delegation tools |
workflow |
workflow seam and worker-thread engine |
storage |
non-session storage hub |
attachment |
durable attachment identity |
spill |
oversized result spill policy |
bundle |
installable profile layers |
boot |
app-bin startup glue |
推荐逐包路线
第一轮只看 README:
1 | packages/README.md |
第二轮看源码:
1 | apps/cli/src/bin.ts |
第三轮看配置:
1 | packages/bundle/base/cordis.patch.yml |
第四轮看生成目录:
1 | docs/tool-catalog.md |
如何判断一个包能不能改
改包之前先判断:
- 是否在
packages/core/agent-loop?如果是,优先找插件扩展点。 - 是否是 Service Definition?改它会影响所有 provider 和 Consumer。
- 是否是 provider?要保证 Consumer 不依赖具体实现。
- 是否模型可见?需要 snapshot 或 session event。
- 是否文档配对?要更新
.zh.md和.i18n.yaml。 - 是否涉及 lifecycle/concurrency/subprocess/sandbox?要读 defensive patterns。
常见坑
第一,不要把 group 当 import namespace。包名是 @deepseek-ai/dsh-*,group 是源码组织。
第二,不要手写包清单到新文档。packages/README.md 才是维护中的总表。
第三,不要从 provider 反向 import Consumer。能力边界应当从 Service Definition 出发。
第四,生成图和 catalog 是源派生物,改源码或生成器。
继续读
packages/README.mddocs/module-graph.mddocs/capability-seams.mddocs/cookbook/adding-a-package.mddocs/cookbook/extension-cookbook.md