DeepSeek Harness 源码教程
DEEPSEEK HARNESS · OFFLINE TUTORIAL

01 · 顶层架构

先建立 DSH 的世界观

1. DSH 不是“一个巨型 Agent 类”

最常见的错误路径是:找到 agent.ts → 找 while-loop → 找模型调用 → 找工具调用 → 以为项目已经看懂。DSH 的关键不在一个巨型类,而在插件组合、可替换 Service、事件扩展点、可回放 Session Log

核心规则:如果一个需求可以通过 Service / Provider / Event / Guard / Scope 表达,就不要先去改 Agent Loop。

2. 五层地图

职责典型内容
Composition把插件组装成运行时CLI、Boot、Bundle、Profile
Core Spine执行主干Session、Prompt、Tools、Agent、Agent Loop、LLM
Capabilities具体可替换能力FS、Shell、Sandbox、LSP、Web、Subagent、Jobs
Durability可靠性与横切能力Persistence、Compaction、Guard、Telemetry
Surface产品与协议表面Host、Client、API、SDK、Web UI

3. 六条“宪法”

  1. Everything is a Plugin。
  2. 依赖 Service Definition,不依赖 Provider。
  3. 模型真正看到的上下文应当能从 Session Log 重建。
  4. Policy 通过 Event / Guard 插入,Mechanism 留在 Service。
  5. Agent Loop 只拥有 generic control-flow。
  6. Registration 必须有生命周期。

4. 新需求应该落在哪里

新需求优先落点
新模型厂商LLM Adapter / Provider
新工具Tool Plugin
远程文件系统ctx.fs Provider
工具权限tools/* Event / Guard
先读后写规则fs/* Policy
需要长期保存的新事实SessionEvent
仅单个 Agent 生效agent-scoped Context
所有 Agent 的通用控制语义才考虑 Agent Loop