摘要: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 下,webheadless 作为模板内置;
  • 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/messageassistant/*tool/* 是持久化的 session 事件;agent/pre-stepagent/requestllm/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
Logo

欢迎加入DeepSeek 技术社区。在这里,你可以找到志同道合的朋友,共同探索AI技术的奥秘。

更多推荐