STUDY SERIES 001 · 16 章 · 3 个阶段

DeepSeek Harness
通俗源码导读

面向初学者中文源码导读包含练习与验收题

这是一套面向初学者的中文学习教材。它不假设你已经理解 Agent、事件溯源、依赖注入或插件框架,也不要求你从 packages/ 的第一个目录开始逐个阅读。

教材的目标不是让你记住所有包,而是帮助你建立一张稳定的心智地图:用户的一句话怎样进入 Agent,模型怎样收到上下文,工具怎样执行,结果怎样写入日志,以及不同实现为什么可以互相替换。

推荐阅读顺序

第一阶段:先能看懂项目在做什么

  1. 如何使用这套教材
  2. 先看全景:DeepSeek Harness 到底是什么
  3. 读源码前需要懂的 TypeScript 与 Node.js
  4. Cordis:插件、Context、Service、事件和 Effect
  5. 配置与组合:Profile、Bundle 和 cordis.yml

第二阶段:追踪一次完整对话

  1. Agent 如何完成一轮对话:Turn、Step 与 Inbox
  2. Session:为什么对话是一份事件日志
  3. System Prompt、LLM Adapter 与模型请求
  4. Tool:从模型调用到执行结果的完整管线
  5. Capability Seam:为什么 Bash、FS 等能力能替换实现

第三阶段:理解可靠性与扩展方式

  1. 持久化、恢复、Fork、Replay 与 Compaction
  2. Subagent、Job、Workflow、Goal 和 Skill
  3. 测试体系与完成一次真实改动
  4. 面对大型仓库时怎样阅读源码
  5. 常用概念词典
  6. 分阶段练习与验收题

一条最重要的主线

第一次阅读时,只追踪下面这条链,不要同时研究 Web UI、数据库、沙箱和子 Agent:

用户输入
  → Agent Inbox
  → turn/start
  → step/start
  → 组装 System Prompt 和 Tool Schema
  → 调用 LLM Adapter
  → 记录 assistant/message
  → 执行 Tool Call
  → 记录 tool/result
  → 如果需要,再开始下一个 Step
  → turn/end

当你能用自己的话解释这条链时,仓库里大多数包就不再是孤立目录,而是这条主线上的扩展点或可替换实现。

每篇文章的使用方法

每篇文章都按同一结构组织:先给一个具体场景,再讲通俗模型,随后映射到正式术语和真实源码,最后给出练习与验收问题。

建议每次只读一篇。阅读后必须完成文章末尾的练习;如果只能复述文章原句,却无法判断一个新包属于哪一层,说明还没有真正理解。

官方资料与本教材的关系

本教材负责教学顺序和通俗解释。准确的类型、配置、事件模式和包级限制仍以仓库内的正式文档与源码为准。

  • 总体架构:docs/architecture.zh.md
  • Cordis 教程:docs/cordis-tutorial/index.zh.md
  • 子系统参考:docs/subsystems/README.md
  • 配置目录:docs/config-catalog.md
  • 工具目录:docs/tool-catalog.md
  • 开发与测试:docs/development.zh.md · docs/testing.zh.md