阅读入口与研究地图
如何阅读已完成的研究及其证据索引
Developer Preview 源码考古 · 固定基线
不是功能清单,而是一张可验证的系统语义地图
DeepSeek Harness 的表面是一套 coding agent;更值得研究的是,它试图把 Agent 产品拆成可组合、可卸载、可重放的能力网络。本报告从实际入口、状态变化、失败分支和持久化落点出发,逐层回答“它真的怎样运行”。
完成快照
固定基线下的 36 章现已全部复核。第 35 章索引 1,094 条证据记录、533 条不同目录路径和 48 个策展术语。第 00–34 章共出现 1,350 次证据引用,覆盖 1,092 个不同目录 ID:目录触达率 99.8%,目录路径触达率 100.0%。这些是导航指标,不代表架构完整性或证明质量已经穷尽。
网站仍是可导航版本,默认英文,并可逐章切换中文。仓库同时提供完整的单文件 Markdown:English 与 简体中文。
这份拆解要回答什么
运行时
插件树怎样启动?Agent、turn、step、模型请求和工具批次由谁驱动?各类事件何时写入?
上下文
系统提示词、工具 schema、动态上下文、历史消息、Skill、压缩摘要如何共同决定模型所见?
持久性
内部会话究竟保存什么?JSONL、SQLite、projection cache、checkpoint、fork、resume 和 replay 各自保证什么?
执行与治理
工具从 schema 到执行经历哪些拦截层?并行、审批、单调 guard、沙箱、文件观察和超时怎样组合?
编排
多 Agent provider、continuation、后台 job、workflow worker 和 Ralph loop 如何共享一套底层原语?
设计取舍
“Everything is a plugin”解决了什么,又引入了哪些认知、配置、验证与兼容成本?
先掌握三个不变量
模型 adapter、工具注册表、session log、agent loop 都作为插件挂入共享 Cordis context;仓库明确宣称不存在必须被 patch 的特权核心。ARCH-PLUGIN-CORE
任何真正进入模型请求的内容都必须能从 session log 重建。日志因此不仅服务 UI 展示,也是模型上下文、恢复、fork、遥测和重放的共同事实源。ARCH-LOG
DeepSeek Harness 的“核心”不是某个稳定不变的循环类,而是一组更难被替换的系统不变量:作用域、事件顺序、可逆注册、模型可见输入的日志化,以及能力定义/提供者/消费者三方闭合。具体插件可替换,但这些组合语义构成了事实上的架构宪法。
推荐阅读路径
- 第一次阅读:设计哲学 → Turn/Step/Loop → 提示词 → 会话事件 → 工具管线。
- 关注 Agent 平台:持久化 → checkpoint → 压缩 → Plan/Goal/Todo → 多 Agent → Workflow。
- 关注安全执行:工具原语 → 权限审批 → Sandbox/FS → Shell/Terminal/Jobs → 安全模型。
- 关注工程质量:可观测与重放 → API/SDK/ACP → 测试与不变量 → 设计取舍。
- 反向查找:术语与证据目录 → 证据 ID、Package、路径、已文档化符号、持久化事件、实时事件或 Host Service。
完成状态怎么读
| 状态 | 含义 | 能否当作结论引用 |
|---|---|---|
| 待研究 | 范围已列入,正文可能只是问题清单。 | 不能 |
| 撰写中 | 已有部分源码事实和推导,覆盖审计尚未完成。 | 只能引用带固定源码证据的局部事实 |
| 已复核 | 入口、控制流、状态、失败面、持久化和关键测试均完成抽样或全量复核。 | 可以,仍须附带本页固定基线 |
我的学习体会
内容仅自动保存到当前浏览器,不上传、不进入仓库。你可以导出 Markdown 自行归档。