2026年8月13日

DeepSeek Harness:DeepSeek 开源的不是又一个 Agent,而是一套 Agent 运行底座

作者: 拾水木 时间: 2026年8月13日 标签: DeepSeek Agent 开源项目 AI工具 阅读时间: 约5分钟

作者: 拾水木
时间: 2026年8月13日
标签: #DeepSeek #Agent #开源项目 #AI工具
阅读时间: 约5分钟

最近的 Agent 项目越来越多,但真正难的已经不是“让模型调用一次工具”。

一个 Agent 要长期工作,还要处理会话、工具权限、上下文、文件系统、后台任务、子 Agent、模型切换和状态恢复。只写一个 while 循环,很快就会变成无法维护的工程。

DeepSeek 刚开源的 DeepSeek Harness,处理的就是这一层问题。

它不是新模型,也不是套壳聊天页面。更准确地说,它是一套用于组装、运行和扩展 Agent 的基础设施。

项目地址:

https://github.com/deepseek-ai/deepseek-harness


一句话理解 DeepSeek Harness

如果把大模型比作“大脑”,那么 Harness 更像 Agent 的身体和工作环境。

模型负责判断下一步做什么,Harness 负责把这件事真正运行起来:

  • 把系统提示词和工具定义交给模型
  • 执行 Bash、文件编辑等工具
  • 记录每一步会话事件
  • 控制权限、审批和沙箱
  • 管理后台任务和子 Agent
  • 保存状态,并在中断后继续
  • 接入不同模型和客户端

所以,它和 DeepSeek 模型不是绑定关系。官方界面默认支持配置 DeepSeek,也能添加 Anthropic、OpenAI,以及自定义的 OpenAI 兼容端点。

这也是我觉得这个项目值得关注的地方:DeepSeek 开源的不只是一个“能跑起来的 Agent Demo”,而是把 Agent 的运行层单独做成了产品。


先跑起来看看

官方给出的最短启动方式只有一条命令:

npx @deepseek-ai/dsh web

命令会启动 Web UI,默认地址是:

http://127.0.0.1:3080

打开页面后,进入“设置 → 模型”,填写 DeepSeek API Key。然后选择一个本地项目目录作为 workspace,就可以给 Agent 下任务,例如:

总结这个代码仓库,并说明主要模块之间的关系。

根据官方文档,Web 模式下的 Agent 可以读取和修改工作区文件、运行命令、维护计划和委派任务。涉及当前权限策略需要确认的操作时,界面会先发起审批。

如果要从源码运行,官方步骤是:

git clone https://github.com/deepseek-ai/deepseek-harness.git
cd deepseek-harness
pnpm install
pnpm run build
pnpm dsh web

当前 npm 包仍是 0.1.0-rc 阶段。仓库也明确标注为 Developer Preview,后续会有破坏兼容性的变更。现在更适合体验、研究和二次开发,不适合未经验证就接入关键生产流程。


它和普通 Agent 框架有什么不同?

DeepSeek Harness 最鲜明的设计是:

一切皆插件。

它底层使用 Cordis。模型适配器、工具注册表、会话日志,甚至 Agent Loop 本身,都是可以组合和替换的插件。

传统 Agent 框架通常有一个不可替换的核心循环。需要新增能力时,要么修改核心代码,要么在外围增加钩子。功能越来越多以后,核心会越来越重。

DeepSeek Harness 的思路不同。运行中的 dsh 是一棵插件树,开发者通过 Profile、Bundle 和配置 Patch 组装出需要的 Agent。

例如:

  • web Profile 提供浏览器界面
  • headless Profile 适合无人值守任务
  • 模型提供方可以替换
  • 文件系统和 Shell 后端可以替换
  • 子 Agent 的实现可以替换
  • 工具、权限策略和持久化方式也可以替换

开发者不必为了接入一个新能力去修改所谓的“核心内核”,而是把新插件挂到已有插件旁边。

这种架构前期理解成本更高,但适合长期演进的 Agent 系统。


会话不是聊天记录,而是一条事件日志

另一个值得注意的设计,是它对会话的处理。

DeepSeek Harness 使用只追加的 Session Event Log。用户消息、模型回复、工具调用、工具结果、步骤开始和结束,都会成为持久化事件。

模型下一次看到的上下文,也是从这条日志重新推导出来的。

这样做有几个直接好处:

  1. 可以回放:Web UI 能重建当时发生了什么。
  2. 可以恢复:中断后能从持久状态继续。
  3. 可以分叉:从某个边界创建新的会话分支。
  4. 便于审计:工具执行和模型输入不只存在于临时内存。

官方架构文档给出了一条很严格的原则:模型可见的内容必须已经被记录,并且能够从日志中重建。

对于只做一次问答的 Bot,这套设计有些重。但当 Agent 要工作几十分钟、调用大量工具,甚至需要多个子 Agent 协作时,事件日志比普通 messages 数组可靠得多。


它已经包含哪些能力?

从当前仓库的包和官方示例来看,DeepSeek Harness 已经覆盖了不少 Agent 基础能力:

1. Web 和 Headless 两种运行方式

既可以在浏览器里交互,也可以用 Headless Profile 执行一次任务,输出结果后退出。

2. 多模型提供方

除 DeepSeek 外,可以配置 Anthropic、OpenAI和自定义 OpenAI 兼容接口。Bedrock、Vertex、Azure、Codex 等原生认证方式也有独立配置要求。

3. Shell、终端与后台任务

它不只支持一次性命令,也有持久 Bash、终端、后台 Job、状态查询和取消机制。

4. 子 Agent

仓库中可以看到进程内子 Agent、ACP 子 Agent,以及连接 Claude Code、Codex 的实现。也就是说,“委派任务”本身被抽象成了可替换能力。

5. Skills 与 MCP

项目包含 Skill 子系统,并提供通过通用 MCP 客户端接入第三方记忆服务器的示例。

6. Python SDK 和协议接口

除了 Node.js CLI,官方还提供 Python SDK、JSON-RPC 示例和 ACP 自动化服务器,方便其他程序把 Harness 当成运行时调用。

这使它更接近一个 Agent Runtime,而不只是一个聊天应用。


安全边界不能忽略

Agent 能改文件、执行命令,也意味着它能造成真实破坏。

DeepSeek Harness 提供工具审批、沙箱模式和可替换的文件系统/执行后端,但具体安全性取决于你使用的 Profile 和配置。

官方 Python SDK 的最小示例就明确写着:该组合使用 danger-full-access,Bash 和编辑器可以修改运行进程有权访问的任何路径,只应在可丢弃的代码副本或容器里运行。

第一次体验时,至少做到三点:

  • 不要直接选择包含重要私人文件的目录
  • 不要在拥有生产凭据的环境中测试
  • 优先使用临时仓库、容器或可随时丢弃的 workspace

“有审批按钮”不等于天然安全。真正要用于团队或生产环境,还需要明确工具白名单、凭据隔离、沙箱后端和审计策略。


它适合谁?

如果只是想找一个开箱即用的 AI 助手,DeepSeek Harness 目前不一定比成熟产品省事。

它更适合三类人:

  • 正在开发 Coding Agent 或通用 Agent 的工程师
  • 需要把不同模型、工具和执行环境组合起来的团队
  • 想研究长时运行 Agent 如何处理状态、权限和扩展性的开发者

它目前最大的价值,不是“今天就替代 Claude Code 或 OpenClaw”,而是提供了一套完整、开放、可以拆解的 Agent 工程样本。


我的判断

DeepSeek Harness 最值得看的,不是 Web UI,也不是它能调用多少工具,而是它对 Agent 工程化的判断:

Agent 的差异,不会只来自模型。运行时、工具系统、状态管理、权限边界和扩展方式,也会成为产品能力的一部分。

“一切皆插件”让它拥有很强的组合能力,也带来了明显的复杂度。Cordis、Profile、Bundle、Patch、事件域和 Capability Seam,都需要开发者花时间理解。

再加上项目仍处于开发者预览阶段,没有稳定 Release,当前接口也可能快速变化。

所以我不会把它描述成“已经成熟的新一代 Agent 框架”。更准确的说法是:

这是 DeepSeek 对 Agent Runtime 的一次完整开源表达。现在适合研究和试用,是否适合长期采用,还要看它接下来如何稳定接口、形成插件生态,并给出更有说服力的真实任务评测。


参考资源