
比较 AI Agent 时,人们往往先问“用了哪个模型”。但模型只是其中一部分。它能访问哪些文件和工具、怎样管理上下文、何时请求批准、如何恢复失败、把运行记录保存在哪里,这些都由模型之外的 Harness 决定。
DeepSeek Harness 的 Developer Preview 把这层基础设施单独摆到台面上,并给出两个醒目的设计目标:所有能力都可以作为插件替换;每次运行都能从同一条事件流中追溯。
本文由《听懂 AI》第 005 期整理而成。主要来源是 DeepSeek Harness 官方站点、GitHub 仓库和架构文档。2026 年 8 月 26 日发布的 Cordis 预印本补充了可逆副作用和动态依赖的理论说明。项目截至 2026 年 8 月 28 日仍处于 Developer Preview,官方明确表示会出现破坏兼容性的变更。
🎬 视频版(B站) | 🎧 音频版(5 分 04 秒)| 🟢 Spotify 订阅 | 📖 偏好阅读?文字版就在下方 👇
Harness 到底负责什么
模型可以生成文本或工具调用意图,但它不能直接在操作系统里“自己做事”。Harness 负责把模型接进真实环境:
- 组装系统提示、历史消息和工具描述;
- 暴露文件、终端、搜索、网络等能力;
- 执行工具并把结果送回模型;
- 管理循环、子智能体、上下文压缩和停止条件;
- 应用权限、审批、沙箱和凭据策略;
- 保存会话、运行状态、错误和遥测信息。
同一个模型放进不同 Harness,能完成的任务、消耗的 token、失败方式和安全边界都可能不同。因此,评估 Agent 不能只看模型跑分,还要看它周围这套运行系统。
“所有东西都是插件”具体指什么
DeepSeek Harness 建在 Cordis 插件系统上。官方架构文档没有保留一个不可替换的特权核心:模型适配器、工具注册表、会话日志、智能体循环、沙箱、存储、调度和网页界面都通过插件提供。
这些插件把服务、带类型的事件和依赖关系挂到共享上下文中。开发者可以在配置里替换某个提供者,而不是修改 Harness 源码。例如,换掉模型适配器、把本地文件系统改成远程沙箱,或给某类会话使用不同的工具组合。
运行时并不是简单扫描一个插件目录。它按照 Profile、Bundle、用户补丁和命令行覆盖层组成一棵有顺序的插件树。官方提供 dsh --profile web --dump-config,让开发者查看机器最终实际启动的配置,而不是只看散落在多层文件中的声明。
可逆副作用能解决什么
插件卸载不只是删除一段代码。它可能已经注册监听器、打开连接、挂载服务或启动后台任务。Cordis 要求可撤销的注册在创建时同时登记清理函数,插件卸载时再按生命周期收回这些效果。
2026 年 8 月 26 日提交的 Cordis 论文把这种机制称为“时间可组合性”:组件产生的上下文变化带有逆操作,运行时负责保存并执行。论文还讨论“空间可组合性”,即组件根据声明的依赖动态激活和停用。
这个机制能清理框架知道并登记过的副作用,却不能倒转所有现实操作。插件如果已经删除外部文件、调用第三方 API 或泄露凭据,卸载函数无法让这些事情自动消失。生命周期清晰不等于风险消失。
“每次运行都可追溯”不是读心术
DeepSeek Harness 把会话视为只追加的 SessionEvent 事件流。用户输入、模型请求、模型返回、工具调用与结果、步骤开始结束等事实写入同一记录。下一轮模型历史由日志重新投影,恢复、分叉、搜索、重放、遥测和持久化也从这条事件流派生。
官方文档提出一条运行时约束:“模型可见”就必须能够从日志重建。也就是说,任何真正送进模型请求的内容都应留下对应事件,避免界面显示一套历史、模型实际收到另一套历史。

图中只展示架构关系。实际插件、事件和运行模式以当前配置及官方文档为准。
可追溯不等于能够读取供应商隐藏的内部推理。Harness 只能记录自己收到、创建或发送的内容;如果模型 API 没有返回完整 Chain of Thought,它不会凭空出现在会话日志里。日志透明的是执行链,而不是模型供应商没有暴露的内部状态。
四种模式对应不同的实验目标
官方当前提供四种运行模式:
- Standard:完整编码 Agent,包括文件、终端、搜索、技能、计划、目标和子智能体;
- Code:模型可以通过 Code Mode SDK 在一个 TypeScript 程序中组合多轮工具操作;
- Minimal:只保留持久 Bash 和文件编辑器,用于较小、容易比较的模型评测环境;
- Creator:在 Standard 能力上增加运行时检查、内存插件试验和 Profile 编写指导。
这些模式的意义不只是功能多少。Minimal 可以减少 Harness 自身对评测结果的干扰;Creator 则把插件开发和组合变成产品能力。团队也可以由基础 Bundle 开始,只为特定项目增加必要插件。
插件化和事件流带来的价值
对于研究者和 Agent 基础设施开发者,这种架构便于回答过去很难分开的实验问题:
- 同一个模型换不同工具集,结果差多少;
- 本地沙箱和远程沙箱怎样影响安全与性能;
- 换掉上下文压缩策略后,恢复和长会话表现是否变化;
- 某次失败究竟来自模型、工具、权限、上下文还是循环控制;
- 会话能否从相同事件边界稳定恢复或分叉。
插件边界让替换实验更容易,事件流则提供统一的观察依据。它们提供的是实验和组合能力,不是“换插件一定更好”的保证。
当前最重要的标签仍是 Developer Preview
截至 2026 年 8 月 28 日,官方仓库仍明确写着 Developer Preview,并警告会有破坏兼容性的变更。安全说明更加直接:项目尚未经过安全审计,不能视为安全或生产就绪的软件。
DeepSeek Harness 可以执行模型生成的代码和命令,加载第三方插件,并访问用户允许的网络、进程、凭据和文件。错误模型输出、缺陷、配置错误、恶意输入或不可信插件都可能修改或删除文件、泄露数据,甚至损害宿主机。
官方还强调,沙箱、审批和权限控制只能降低风险,不能保证完全隔离;系统无法保护已经被明确授权访问的资源。社区关于“插件疲劳”、版本冲突和供应链攻击面的担忧因此是合理的工程问题,但 HN 评论只是社区观察,不代表项目已经出现了这些事故。
现在怎样安全地试
如果只是想比较模型或研究 Harness,可以从隔离实验开始:
- 使用一次性虚拟机、容器或专用环境;
- 只挂载测试项目,不开放主目录和真实仓库;
- 不注入生产凭据、SSH Key 或云端密钥;
- 采用最小权限和人工审批,先从 Minimal 模式或较小插件集开始;
- 阅读第三方插件源码、依赖和配置,再允许执行;
- 给可访问文件做备份,并记录外部 API 的副作用;
- 保存
--dump-config结果和版本信息,方便重现实验; - 接受接口可能变化,不把当前 Profile 当成长期稳定契约。
DeepSeek Harness 把模型之外的运行系统摆到了开发者面前,让工具、会话、沙箱、循环和存储都可以观察和替换。它能否从实验台走向稳定生态,取决于接口治理、安全审计、插件质量和长期兼容性。
收看本期节目
原始资料与延伸阅读
- DeepSeek:DeepSeek Harness Developer Preview——产品定位、运行模式和当前 Preview 状态。
- DeepSeek AI:deepseek-harness GitHub 仓库——源码、安装、许可证与兼容性警告。
- DeepSeek Harness Docs:Architecture Reference——插件树、事件流、Profile、Bundle 和运行时约束。
- DeepSeek AI:Safety Notice——安全审计状态、沙箱限制与负责任使用要求。
- Yifan Shi、Wei Zhang、Tianyi Cui 等,2026-08-26:A Programming Paradigm for Spatiotemporal Composability——Cordis 可逆效果与动态依赖的理论说明,当前为 v1 预印本。
- Hacker News:DeepSeek Harness developer preview——社区对插件治理、兼容性和供应链风险的讨论;评论不代表已验证事实。
资料说明:本文描述的是 2026 年 8 月 28 日可见的 Developer Preview。仓库和 API 正在快速变化,后续版本可能调整名称、模式、接口和安全边界。