DeepSeek Harness 不是一个固定的“内核 + 外挂插件”程序。连 Agent Loop 本身也由插件贡献,最终运行时是多层配置合并后形成的 Cordis 插件树。
Profile
└─ Bundles + Patch layers
└─ Cordis plugin tree
├─ Model adapters
├─ Tools and capability providers
├─ Agent + Agent Loop
├─ Session event log
├─ Permissions / sandbox
└─ Web or Headless surface
组合入口:Profile
Profile 是一个具名的可运行组合,例如官方内置的 web 与 headless。它决定加载哪些 Bundle、额外插件和 Patch。
使用下面的命令查看本机最终组合,而不是只猜默认值:
dsh --profile web --dump-config
该命令不会启动应用。
执行入口:Agent Loop
Agent Loop 从 Session log 读取上下文,请求模型,解析工具调用,执行工具,再把结果写回 Session。一个 Step 是一次模型请求及其中的工具调用;一个 Turn 可以包含零个或多个 Step。
事实来源:Session log
Session log 是模型历史、恢复、fork、回放、持久化和 UI 的事实来源。新增任何“模型可见”的输入时,都应保证它能从日志重建,否则恢复后的行为会与原会话漂移。
可替换能力:三角色 seam
官方推荐把可替换能力拆成:
- Service Definition:定义接口和上下文属性;
- Service Provider:提供一种具体实现;
- Consumer:依赖并使用该服务。
这让本地 Bash、远程 Sandbox、不同文件系统策略或不同模型适配器可以在同一个调用面下替换。
预发布边界
Event、Session 格式和包边界仍可能变化。不要把当前内部结构当作长期稳定 API;插件应绑定兼容版本并保留迁移说明。
证据与修订
一手来源
本页叙事经过压缩;命令、行为与风险边界以以下官方源码或文档为准。