快速回答
DeepSeek Harness(简称 dsh)是 DeepSeek AI 开源的「Agent Harness」——一套把聊天模型变成能真正干活、会改代码、能跑命令的智能体的运行时框架,MIT 许可证,当前为开发者预览版。
一句话公式先记住:
Agent = 模型 + Harness
模型是大脑,Harness 是其余的一切:工具、文件系统、shell、子代理协作、上下文存取,以及「什么时候停下来」。DeepSeek Harness 是模型无关的——它默认配 DeepSeek V4 系列,但通过一个环境变量就能换到任何 OpenAI 兼容端点。
五个要点先记住它:
- 一切皆插件:文件系统、shell、模型适配器、Web UI、子代理,连 agent loop 本身都是插件,不存在需要打补丁的特权内核。
- 会话日志即唯一事实来源:模型看到的一切都来自可回放的日志,fork / 恢复 / 上下文压缩全是日志的免费派生品。
- Agent 能改装自己:运行中的 agent 可以现场定义新插件注入真实运行时,新工具立刻对模型可见。
- 开源 1 个多小时破 2 万星,首日冲到 2.8 万–3.1 万星,是近期涨星最快的开源项目之一。
- 明确标 Developer Preview:接口会变、迭代极快,做生产依赖要追版本。
DeepSeek Harness 到底是什么
官方把它定位为 agent harness(智能体框架)。先厘清一个概念:它不是又一个聊天机器人应用,也不是一个模型。
- 不是模型:它默认对接 DeepSeek V4 系列,但模型可替换。你把它接到 Claude、GPT、Gemini 上都行。
- 不是聊天应用:它更像「agent 运行时的前端」。你给一个目标,agent 在工具里循环直到完成,Web UI 只是观察和干预的入口。
- 是框架:一套用来「组装一个 agent」的积木。要哪个能力、不要哪个能力、用什么模型、用哪个沙箱,都由配置决定。
和传统 Agent 框架的本质区别:没有特权内核
绝大多数 agent 框架长这样:一个带主循环(agent loop)的核心,外面挂工具、记忆、沙箱插件。内核是神圣不可侵犯的,扩展只能通过官方预留的钩子。
DeepSeek Harness 把这条规则反过来:
产品的每一部分都是插件,包括模型适配器、工具注册表、会话日志,甚至 agent loop 本身。不存在需要打补丁的特权内核。
底层是 vendor 进来的 Cordis 插件框架(设计依据是论文《A Programming Paradigm for Spatiotemporal Composability》)。在这个框架里:
- 插件 = 可逆副作用:注册任何东西都是副作用,插件卸载时自动撤销,reload / HMR 时按声明顺序干净重来,没有「装上了就卸不掉」的遗留状态。
- 依赖用声明,不用编排:插件用
inject声明自己需要的服务(ctx.tools、ctx.llm、ctx.sessions…),框架按依赖自动决定加载顺序。你永远不 import 具体实现,只按 key 找服务——所以任何服务都可以从配置整体替换。 - 拦截就是监听器:事件有 emit(观察)、waterfall(环绕中间件)、parallel(并行)、serial(串行)四种分发模式。要加审批、要拦截某个工具调用,挂一个 waterfall 监听器就行,不需要改循环本身。
一句话:扩展 dsh 的方式,是把插件挂到别的插件旁边。没有后门,没有特权。
为什么它 1 小时破 2 万星
热度不是营销堆出来的。拆完源码你会发现,爆火靠的是三个反直觉的架构决策,每个都值得单独拿出来讲。
决策一:模型可见即已记录(省 Token 传言的真相)
dsh 最狠的设计是一条运行时不变式:
抵达模型请求的一切,都必须能从日志重建。
会话日志(SessionEvent log)是唯一事实来源。模型看到的每条消息、每个工具调用与结果、每次注入的上下文,都是追加式日志里的事件;模型历史从日志投影出来,UI 与模型历史永远同源。
这个决策的威力是连锁的:
| 功能 | 实现方式 | 传统框架 |
|---|---|---|
| fork 会话 | 从某条边界事件派生,天然一致 | 要单独复制状态 |
| 恢复会话 | 重放日志,无需「记忆序列化」 | 要持久化内存状态 |
| 上下文压缩 | 在日志上做一次显式替换事件 | 容易造成历史不一致 |
| 回放 / UI | 直接读原始日志 | 要另存一份副本 |
大多数框架把「会话日志」当调试功能;dsh 把它当唯一的真理来源。配套还有 spill 存储:超大工具输出落盘,模型只拿定位符,上下文不再被巨量文本撑爆——这就是「省 Token」传言的真正来源。
决策二:Agent 能改装自己
dsh 提供一组自引用工具:cordis_define / cordis_run / cordis_stop / cordis_undefine。
含义很直接:运行中的 agent 可以现场定义一个新的 Cordis 插件,注入到真实运行时——而新插件注册的工具,立刻对模型可见。
这不是玩具。这套工具背后是 vm 沙箱和定义注册表,一个运行中的包甚至可以注册额外的模型可见工具,直到被 stop / undefine 或进程重启。它默认不进任何发行树(刻意 opt-in,因为「动态包代码会到达真实运行时」),但机制本身是闭环的:
用框架 → 在框架里定义框架 → 改自己的工具集 → 继续用
这类元编程闭环,市面上几乎没有第二个框架敢把完整版做成工具暴露给模型。
决策三:沙箱是一张矩阵,不是单个沙箱
dsh 的进程沙箱是一个可替换的 seam(ctx.sandbox),后端按平台自动选:
| 平台 | 沙箱后端 |
|---|---|
| Linux | bwrap / Landlock(自带 native 的 landlock-run) |
| macOS | Seatbelt |
| Windows | ACL 受限令牌(每个会话/工作区一对私有临时目录 + SID) |
| 云端 | E2B 远程 Linux 沙箱 |
强制级别如实上报 full / partial(旧 Landlock ABI、Windows ACL 边界算 partial),要求绝对保证的消费方必须拒绝 partial——不假装安全。而且由于文件系统与进程执行共享同一套 provider 抽象,把 fs / subprocess 指向 E2B,Bash、PTY、LSP 就整体搬进远程沙箱,不需要为每个能力写平台专用 fork。
上手:一条命令跑起来
前置条件只需要一个:Node.js。安装与启动是同一件事:
npx @deepseek-ai/dsh web
首次运行会拉取包,然后启动本地 Web 控制台,浏览器打开 http://127.0.0.1:3080 就是控制台。
想让 agent 真正跑起来,把模型后端指到你想用的端点。dsh 通过环境变量读取配置,核心两个:
export DEEPSEEK_API_KEY="sk-teamo-你的Key"
export DEEPSEEK_BASE_URL="https://api.teamorouter.cn/v1"
把这两行写进 ~/.zshrc 或 ~/.bashrc(或启动命令前临时 export),dsh 就会把模型请求发到 TeamoRouter 的 OpenAI 兼容端点——不锁死 DeepSeek 官方 API,国内直连也更稳,还能用一个 key 在 DeepSeek、Claude、GPT、Gemini 之间切换。完整步骤见《DeepSeek Harness 安装教程》和《DeepSeek Harness 接入 TeamoRouter》。
启动后,在 Web UI 里给 agent 一个这样的任务就能看到它干活:
查看当前目录,找到 README,用一句话总结它的第一段,写到 /tmp/summary.txt
dsh 会依次调用 bash、文件读写工具,最后汇报结果。这就是「Harness 把模型变成工人」的最直观体验。
泼冷水
这是很多文章不会写的部分,但你要做技术评估就必须知道:
- 明确标注 Developer Preview。官方声明「未来将有破坏兼容性的变更」。现在抄它做生产依赖,要做好追版本的心理准备。
- 接口会变。版本
0.1.0-rc.5,连 rc 都还没到正式版,依赖具体 API 细节有风险。 - 底层 Cordis 是 vendor 引入的,不是 dsh 自研。对 Cordis 的信任要并入你的技术评估。
- 54 个 npm 包同步发版的代价是机械 churn——每次 release 有 222 个文件同步改版本号。跟进 main 分支常领先发布版几个小版本。
- 「对标 / 取代 Claude Code」是媒体叙事。一个 rc.5 的预览版谈「取代」为时过早,但它证明的架构方向是真实的。
常见疑问
Q:DeepSeek Harness 是模型吗?
不是。它是 agent 框架(harness),默认对接 DeepSeek V4 系列,但通过 DEEPSEEK_BASE_URL 可以指向任何 OpenAI 兼容端点。模型可替换是它「一切皆插件」的直接结果。
Q:dsh 会取代 Claude Code / Codex 吗? 短期不会。Claude Code 的推理深度和工具可靠性仍是标杆;dsh 赢在成本(DeepSeek V4 定价约 $0.14 / $0.28 每百万 token,是旗舰模型的零头)和可定制性(能裁剪能力面、能换 provider)。两者定位不同,更多人会按任务混用。横向对比见《DeepSeek Harness vs Claude Code / Codex / OpenCode》。
Q:现在能用它干活吗? 能。个人开发、学习 agent 架构、便宜跑 agent 已经完全可用。不建议在生产里依赖某个具体 API 细节——版本迭代太快。
Q:接官方 API 好还是接 TeamoRouter 好? 看你的位置。接官方 API 最省事;如果国内直连不稳、想用一个 key 路由多家模型、或想用免费档先跑通,接 TeamoRouter 更合适。
Q:沙箱安全吗?
沙箱是一张矩阵,Linux bwrap / Landlock、macOS Seatbelt、Windows ACL 受限令牌、云端 E2B。但强制级别有 partial 存在,生产环境必须逐个确认自己平台的强制完整性。
想低成本把 dsh 跑起来,到 TeamoRouter 注册拿一个 key,把 DEEPSEEK_BASE_URL 指过去,就能在 dsh 里免费跑 DeepSeek V4 Pro / Flash。