DeepSeek Harness

按源码与调用链研究 DeepSeek Harness:从插件运行时、模型与工具,到会话、权限、多 Agent、界面及工程验证。

文章合集 11 篇约 183 分钟更新于 连载中
推荐起点 DeepSeek Harness 源码解析(一):从代码补全到仓库级 Agent

各篇可以独立阅读;初次了解这个主题,可以先从这里开始。

这个系列面向希望理解 Coding Agent 实现的开发者。先从背景与完整请求链路建立认识,再逐项阅读服务、事件、配置、状态和失败处理;各篇会记录对应的源码版本与验证边界。

从这里开始 #

从开篇:从代码补全到仓库级 Agent了解 Harness 的职责,再读第二篇:一次用户请求如何经过整个 dsh 系统,沿输入、模型、工具、日志和输出追踪完整链路。随后读第三篇:源码目录、包依赖与文档地图,学习怎样从一个调用点追到接口、实现和装配配置。接着读第四篇:CLI、Web、Desktop 与 SDK 如何组装同一套运行时,比较配置层、应用启动、任务输入、就绪与退出边界。

第五篇:Context、Service 与依赖注入如何协作开始阅读 Cordis 运行时,从工具插件缺少文件系统服务的情况出发,解释服务注册、依赖激活、服务域隔离和调用方 Context。

第六篇:类型声明如何接上服务注册接着解释编辑器怎样认识 ctx.fs,区分声明合并、类型导入、运行时挂载与发布声明,并用独立语言实验、真实 Cordis 生命周期和本地 tarball 消费验证它们的差异,同时演示类型入口的排查方法。

第七篇:五种事件派发怎样执行监听器比较 emit、parallel、serial、bail 与 waterfall 的执行、等待、返回值和异常处理,再追踪监听器过滤、派发快照与重入,并附固定源码的聚焦实验。

第八篇:effect、Fiber 与 Scope 怎样清理资源追踪资源登记、逆序释放、Fiber 卸载与 Scope 退出,解释单个 effect 内的等待顺序和多个兄弟 effect 的并行清理。

第九篇:Loader 怎样把配置变成运行中的插件追踪配置树、表达式求值、volatile 引用、服务隔离、Include 读写与 dsh HMR,区分配置已保存、实例已更新和资源已清理,并附 28 组聚焦实验。

第十篇:Agent、AgentHandle 与实例所有权进入 Agent 生命周期,解释 setup、创建公告、调用方与工厂的清理责任,以及回滚、恢复和迟到资源的处理。

第十一篇:Preset、Persona 与默认模型怎样生效区分能力组合、身份提示词和会话模型选择,追踪 Preset 修订保留、空白会话切换与组装快照,并附 30 组真实运行时实验。

阅读路线 #

后续篇章处于规划阶段,随源码研究继续拆分;已发布文章会加入本页目录。

篇章主题主要研究内容
01导读与系统全貌背景、请求链路、源码地图和应用入口
02Cordis 插件运行时服务、事件、依赖、生命周期与配置
03Agent 与模型调用Turn、Step、流式响应、重试与取消
04Prompt 与上下文指令、引用、工作目录与上下文压缩
05会话与持久化事件、投影、存储、恢复与格式迁移
06工具系统与文件操作工具注册、执行、文件编辑与大输出
07进程、终端与安全边界Shell、沙箱、审批、凭据与远程执行
08外部能力与资源Web、MCP、Skill、浏览器、附件与交付
09多 Agent 与任务执行Subagent、后台 Jobs、PTC 与 Workflow
10计划、目标与人机协作Plan、Todo、Goal、Schedule 与用户交互
11Web Host 与客户端远程调用、通信、状态、渲染与设置
12应用、SDK 与原生运行时CLI、Desktop、SDK、原生组件与分发
13实验能力Agent Teams、Hooks、Worktree 与实验运行时
14验证、扩展与工程维护测试、构建、文档同步、扩展与故障复盘

阅读时注意版本 #

已发布篇目基于 DeepSeek Harness 0.2.1-alpha.2 的源码进行静态分析,开篇于 2026-10-14 重写。后续文章分别标明实际分析的版本号,并提供对应源码链接。结构分析、无密钥测试和真实模型实验分别标注,旧版本结果不作为新版本证据。

全部文章

11 篇