DeepSeek 开源 Harness:一切皆插件的 Agent 运行时,会是“Agent 时代的安卓“吗?
摘要:2026 年 8 月 13 日,DeepSeek 官方开源了自研 Agent 框架 DeepSeek Harness(简称 dsh),打出"一切皆插件(Everything is a Plugin)"的口号。项目基于 Cordis 插件内核构建,模型适配、工具注册表、会话日志乃至 Agent 主循环本身都是可替换的插件;仓库发布不到一天即收获约 6.8 万星标。本文基于官方仓库 README、架构文档与情报采集,梳理 Harness 的设计理念、启动方式、插件开发范式与社区反应。
一、事件:官方首款 Agent 运行时
DeepSeek Harness(dsh)是 DeepSeek AI 开发的开源 agent harness(智能体运行时),采用 TypeScript 编写、MIT 协议授权,于 2026 年 8 月 13 日开源。官方明确项目目前处于 developer preview(开发者预览)阶段,正在快速迭代,未来将出现破坏兼容性的变更。npm 包 @deepseek-ai/dsh 已发布到 0.1.0-rc.6(截至本文写作时)。
项目热度惊人:仓库创建于 2026-08-13,截至本文写作(2026-08-14)星标约 6.8 万、fork 约 5.7k,是当天的现象级新项目;Hacker News 帖子 “DeepSeek Harness developer preview” 一度登顶首页,据情报采集时数据获 593 分、约 250 条评论。国内科技媒体量子位在深度体验后称其为"Agent 时代的安卓"(昵称"黑鲸")。
社区反应两极:一部分开发者赞赏 Cordis 插件架构带来的热重载、动态启停能力;另一部分则质疑"这到底是什么?README 太单薄",并与既有工具对比。也有评论认为,这是"最后一个没有第一方 harness 的主流模型实验室补齐了短板"。
二、架构核心:一切皆插件
官方对 Harness 的定位是 Agent = Model + Harness:模型负责推理,harness 负责让模型理解环境、使用工具并在真实世界中持续工作。为此,Harness 采用"一切皆插件"的架构,由 Cordis 内核驱动——Cordis 的设计论文《A Programming Paradigm for Spatiotemporal Composability》(时空可组合编程范式)也同步公开。
在 Harness 中,模型适配器(model adapter)、工具注册表(tool registry)、会话日志(session log)乃至 Agent 主循环(agent loop)本身,全部都是插件。这意味着"没有需要打补丁的特权核心":扩展 dsh 的方式就是在其他插件旁边挂载一个新插件;插件的注册是"效果"(effect)式的,插件卸载时其注册会自动回滚。
配置层上,一个正在运行的 dsh 是启动时按有序层次组合出来的"插件树":
- profile(配置档):具名组合,存放在 Harness home 下,
web与headless作为模板内置; - bundle(包):分发格式,打包一组 Cordis 配置行和对应代码;
- 组合顺序:bundle(按 profile 列出的顺序)→ profile 的
cordis.patch.yml→ home 级配置 →--patch覆盖; - 基础层
dsh-base提供模型适配、工具、持久化、沙箱与审批策略、设置、凭据、遥测;dsh-web-app增加浏览器应用;dsh-headless提供无服务器的单次执行器。
这种"可交换能力"被抽象为 Seam(接缝):一个 Seam 由 Service Definition(接口声明)、Service Provider(实现)、Consumer(消费方,通常是面向模型的工具)三部分组成。由于文件系统与子进程提供方共享同一个执行世界,把 fs/subprocess 指向远程沙箱,Bash、PTY、LSP 会一并迁移,无需为每个提供方分叉代码。
那么,新行为到底挂在哪里?官方架构文档给出了一张"扩展点地图",常见目标包括:
- 新增模型提供方:在
ctx.llm上注册适配器; - 新增面向模型的能力:在
ctx.tools上注册,其 schema 会自动加入 prompt 组装; - 新增 shell 执行:注册
ctx.shell后端;持久终端则注册ctx.terminals后端; - 新增人类命令:注册到
ctx.commands,无需经过模型回合即可分发; - 新增后台任务:注册到
ctx.jobs; - 限制子进程:使用
ctx.sandbox后端,消费方在 spawn 前包装 argv; - 拦截请求、工具或回合:监听
agent/*或tools/*事件,agent/turn-stopping可终止回合; - 复制一个进行中的会话:
ctx.sessions.fork(source, boundary?, childSessionId?)。
可以看到,从模型、工具到终端、后台任务、沙箱,几乎每个能力点都有对应的注册入口——这就是"一切皆插件"在工程上的落地形态。
三、5 分钟跑起来
官方推荐的启动方式非常轻量,只需安装 Node.js:
npx @deepseek-ai/dsh web
该命令会启动 Web UI,默认地址为 http://127.0.0.1:3080。
也可以从源码运行:
git clone https://github.com/deepseek-ai/deepseek-harness.git
cd deepseek-harness
pnpm install
pnpm run build
pnpm dsh web
想查看自己机器上实际启动的插件树,官方文档给出了:
dsh --profile web --dump-config
打印出的每一行配置都可以用你自己的 patch 覆盖——这就是"从配置替换任意能力"的直接体现。
四、给模型加一个工具:官方最小插件示例
工具是模型与真实世界交互的主要接口。官方文档(docs/cookbook/adding-a-tool.md)给出了一个最小工具插件,完整展示了 Cordis 插件的写法:
import { readFile } from 'node:fs/promises'
import type { Context } from '@deepseek-ai/cordis'
import { defineTool } from '@deepseek-ai/dsh-tools'
export const name = 'my-tool'
export const inject = ['tools']
export function apply(ctx: Context) {
ctx.tools.register(defineTool({
name: 'read_file',
description: 'Read a file from disk.', // what the model sees
parameters: {
path: { type: 'string', required: true, description: 'Absolute path' },
limit: { type: 'number' }, // optional by default
},
output: {
schema: { type: 'string' },
render: (_args, value) => [{ type: 'text', text: value }],
},
async execute(args, exec) {
// args is TYPED from the schema: { path: string; limit?: number }
return readFile(args.path, { encoding: 'utf8', signal: exec.signal })
},
}))
}
要点:
- 声明式 schema:
parameters定义了模型可见的参数结构,模型生成的 arguments 在执行前会被自动校验; - 注册即效果:插件 fiber 被销毁时,工具自动注销,无需手动清理;
- 自动装配:工具 schema 会自动汇入 system prompt 的组装流程,模型无需额外配置就能"看到"新工具。
五、可追踪的执行:Step、Turn 与事件
“Every run is traceable”(每次运行都可追踪)是官方强调的设计目标,底层由会话日志(session log)支撑:
- step(步):一次模型请求加上它调用的工具;
- turn(轮):零个或多个 step,从首个输入被认领开始,到不再欠任何输出为止;
- 会话日志:模型看到的上下文由日志投影(
deriveMessages())而来。官方有一条运行时不变式——“Model-visible means logged”,任何进入模型请求的内容都必须能从日志重建;fork、resume、转写、遥测、持久化都派生自这条日志流。
官方文档还给出了一个标准的回合(loop)流程,便于理解一次交互如何被拆解:
turn/start
claim 下一个 step 的输入 + 一条排队消息
组装 prompt 分节 + 工具 schema
-> agent/pre-step # 可改写消息或拒绝
-> step/start
追加消息 -> 从日志派生模型历史
agent/request -> llm/stream -> assistant/chunk* -> assistant/message
tool/call* -> tools/pre-execute -> tools/execute -> tools/post-execute
-> step/end
若工具还欠一次请求,或新的 step 输入已到达 -> 继续下一步
turn/end
其中 turn/*、step/*、user/message、assistant/*、tool/* 是持久化的 session 事件;agent/pre-step、agent/request、llm/stream 与三个 tools/* 事件是 waterfall 事件,监听者必须调用 next() 放行;agent/turn-stopping 则是串行的收尾点,没有 next()。这一设计让"观察或拦截进行中的工作"变成监听事件即可完成,而不是改主循环代码。
扩展点按事件域划分:
- session 事件:持久事实,追加进日志并广播,重启后仍存在;
- agent 事件(
agent/*):携带实时 Agent 对象(inbox、step、status、request、validation、continuation),用于观察或拦截进行中的工作; - capability 事件:把策略与适配器挂到
fs/*、tools/*、telemetry/*等接缝上。
据量子位体验文章,Harness 提供的"轨迹"功能可事件级回放 Agent 执行过程、看清每个环节的花费 [待验证:功能名为媒体表述,官方文档未直接使用该名称],这与官方"模型可见即记录"的日志设计一致。该文还提到官方内置 100+ 插件与四类 Agent 预设(标准/PTC/极简/创造) [待验证:插件数量与预设命名未经官方文档核实],其中 PTC 模式允许模型直接写 TypeScript 组合多步操作 [待验证];作者并提醒 DeepSeek 将于 8 月 17 日上调 API 价格(尤其缓存计费) [待验证:以 DeepSeek 官方价格公告为准],但体验后表示"原谅它涨价了"。以上体验类信息均出自媒体文章,引用请以官方发布为准。
六、生态与展望
发布 24 小时内,社区生态工具已快速涌现:
- dsh-index.xlings.org:Harness 插件与 Agent Profile 包索引站;
- xim-pkgindex:多版本管理工具(Show HN 发布);
- x-cmd:一键安装脚本。
官方 README 也鼓励插件仓库打上 dsh-plugin topic 以便被发现,并提供了 GitHub Discussions 与 Discord 社区;中文用户则可通过企微小助手与问卷加入官方企微群,并关注团队微信公众号。插件索引、包管理工具的出现,说明 dsh 生态正按官方设计生长,有复刻 npm/VS Code"平台 + 插件"飞轮的潜力。
值得一提的还有 Harness 的底层依据:Cordis 论文《A Programming Paradigm for Spatiotemporal Composability》同步公开,社区解读认为它给插件系统加入了热重载(hot-reload)与动态启用/停用能力,并把可组合的边界推进到 UI 组件层面;Cordis 官方自述仍处于活跃开发期,API 尚未稳定。对想深入 dsh-plugin 生态的开发者来说,这篇论文是理解插件生命周期与组合模型的必读材料。
当然,developer preview 阶段的兼容性风险、README 的清晰度,以及与 Claude Code/Codex 等成熟产品的差距,是接下来口碑的关键变量。对想尝鲜的开发者,建议从 npx 一行命令开始,先看看插件树,再动手写第一个工具插件。
总结
DeepSeek Harness 用 Cordis 内核把 Agent 运行时的每一块能力都变成了可插拔、可替换、可追踪的组件,官方称之为"一切皆插件"。它与主流"整体式"编码 Agent 形成了差异化路线:插件化 + 配置组合 + 日志可回放。短期内它还是 developer preview,破坏性变更随时可能出现;长期看,它可能是 Agent 领域"平台化"竞争的重要一票。
参考链接
- 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.md
- 工具插件编写参考:https://github.com/deepseek-ai/deepseek-harness/blob/master/docs/cookbook/adding-a-tool.md
- Cordis 论文:https://github.com/cordiverse/paper
- npm 包:https://www.npmjs.com/package/@deepseek-ai/dsh
- HN 讨论:https://news.ycombinator.com/item?id=49285244
- 量子位体验文章:https://www.qbitai.com/2026/08/472208.html
- dsh-index 插件索引:https://dsh-index.xlings.org
更多推荐

所有评论(0)