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。
例如:
webProfile 提供浏览器界面headlessProfile 适合无人值守任务- 模型提供方可以替换
- 文件系统和 Shell 后端可以替换
- 子 Agent 的实现可以替换
- 工具、权限策略和持久化方式也可以替换
开发者不必为了接入一个新能力去修改所谓的“核心内核”,而是把新插件挂到已有插件旁边。
这种架构前期理解成本更高,但适合长期演进的 Agent 系统。
会话不是聊天记录,而是一条事件日志
另一个值得注意的设计,是它对会话的处理。
DeepSeek Harness 使用只追加的 Session Event Log。用户消息、模型回复、工具调用、工具结果、步骤开始和结束,都会成为持久化事件。
模型下一次看到的上下文,也是从这条日志重新推导出来的。
这样做有几个直接好处:
- 可以回放:Web UI 能重建当时发生了什么。
- 可以恢复:中断后能从持久状态继续。
- 可以分叉:从某个边界创建新的会话分支。
- 便于审计:工具执行和模型输入不只存在于临时内存。
官方架构文档给出了一条很严格的原则:模型可见的内容必须已经被记录,并且能够从日志中重建。
对于只做一次问答的 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 的一次完整开源表达。现在适合研究和试用,是否适合长期采用,还要看它接下来如何稳定接口、形成插件生态,并给出更有说服力的真实任务评测。
参考资源
- GitHub:https://github.com/deepseek-ai/deepseek-harness
- 官方中文 README:https://github.com/deepseek-ai/deepseek-harness/blob/master/README.zh.md
- 架构文档:https://github.com/deepseek-ai/deepseek-harness/blob/master/docs/architecture.zh.md
- Web UI 使用指南:https://github.com/deepseek-ai/deepseek-harness/blob/master/docs/user/guide/index.zh.md
- 模型配置指南:https://github.com/deepseek-ai/deepseek-harness/blob/master/docs/user/guide/providers.zh.md