首页 > 开源 > DeepSeek Harness 正式开源:一切皆插件,Agent 框架的新玩法

DeepSeek Harness 正式开源:一切皆插件,Agent 框架的新玩法

OSChina资讯 2026-08-14 10:00 1 阅读 查看原文

DeepSeek 正式开源了 DeepSeek Harness(DSH)的 v0.1 开发者预览版——一个"一切皆插件"的 Agent 运行时框架,MIT 协议,源码已托管到 GitHub。

和市面上大多数 AI Agent 框架不同,DSH 的核心卖点不是模型能力,而是架构的开放性。它没有选择重头造一个插件系统,而是基于一个叫 Cordis 的元框架构建——Cordis 只负责插件的加载、卸载和依赖关系,Agent 框架的所有具体组件(模型适配器、工具注册表、会话日志、沙箱、UI)都是不同的 Cordis 插件。

这意味着开发者不需要改一行 DSH 源码,就能替换其中任何一个能力模块。想换掉默认的沙箱实现,或者加一个自定义的调度策略,写个插件就行。

cover

核心:Cordis 元框架

DSH 的底层是一个叫 Cordis 的元框架。Cordis 的定位是"时空可组合性元框架"(A Meta-Framework of Spatiotemporal Composability),目前 v4.0.0-rc.8,MIT 协议,由 DeepSeek AI 团队工程师 shigma 维护。

"时空可组合性"这个概念来自 Cordis 团队的学术论文(arXiv 预印本)。论文提出了两个维度的形式化:

  • 时间可组合性:组件被移除时,其副作用能被完全撤销
  • 空间可组合性:组件能声明并对其他组件的状态变化做出响应

翻译成人话就是:Cordis 不关心你的插件具体做什么,它只关心插件的加载、卸载和依赖关系。每个插件通过 ctx 上下文提供服务,通过 inject 声明依赖,通过类型化事件通信——emit 观察、waterfall 包装、parallelserial 控制执行顺序。注册是可逆的副作用,卸载时自动清理。

这意味着 DSH 的根基是一个学术级别的插件框架,而不是随便拼凑的"插件系统"。

架构分层

DSH 的架构文档读起来像操作系统的设计文档。系统分为几个层次:

最底层是 dsh-base——模型适配器、工具注册表、持久化、沙箱和审批策略、设置、凭据、遥测。这是每个 profile 的第一层。

上面是 dsh-web-app(浏览器界面)或 dsh-headless(无服务器的单次运行器)。

profile 是命名的插件组合。一个 profile 列出它依赖的 bundle,bundle 是 Cordis 配置行和代码的分发格式。配置通过 patch 机制叠加——每个 bundle 的配置、profile 的 patch、home 目录的 patch、命令行 --patch 参数,按顺序应用到空白的 entry 列表上。

用户可以随时运行 dsh --profile web --dump-config 查看当前完整的插件树,然后用 patch 替换其中任何一行。

核心 package

DSH 的 monorepo 包含 68 个 package,覆盖了 Agent 系统的每个环节:

Package 职责
core/session 仅追加的会话事件日志
core/system-prompt 提示词和工具 schema 组装
core/tools 作用域工具注册表与执行管线
core/agent Agent 接口与注册表
core/agent-loop 默认的 Agent 驱动实现
llm/llm 消息与流词汇,适配器接口

Seam:能力替换的设计精髓

DSH 最优雅的设计是 seam(能力缝合点) 的概念。一个 seam 有三个角色:Service Definition(声明接口)、Service Provider(实现它)、Consumer(使用它)。

文件系统和子进程的 provider 共享同一个执行世界,所以把它们的 provider 指向远程沙箱,Bash、PTY 和 LSP 会一起跟着过去,不需要为每个工具写单独的 provider 适配。这就是"替换一个 provider 就能改变整个产品"的含义。

四种运行模式

DSH 提供了四种预设模式,每种加载不同的插件组合:

  • 标准模式:完整的工具组合,日常使用
  • PTC 模式:程序化工具调用(Programmatic Tool Calling),由模型生成一段代码来组合多轮工具调用
  • 极简模式:仅保留一个 shell 工具和一个文件编辑工具,用于最小环境下的模型基准测试
  • 创造模式:可以检查当前运行时、在内存中试验 Cordis 插件,并据此组合和创作新的模式

会话日志与事件溯源

DSH 的会话日志是仅追加(append-only)设计的。模型看到的一切——系统提示词、思维链、工具调用与结果、子 Agent 调度、每一次上下文注入——都会被记录。

架构文档里写得很明确:"Model-visible means logged." 任何到达模型请求的信息都必须能从日志中重建,运行时有一个断言来保证这一点。

恢复、分叉、检索与回放共享同一份事件流。fork 一个会话只需要 ctx.sessions.fork(source, boundary, childSessionId)——从日志中的某个时间点分支,创建一个新的子会话。

事件系统

事件就是扩展点,DSH 把事件分为三个域:

  • 会话事件:追加到日志的持久事实,重新加载后仍然存在
  • Agent 事件(agent/):携带活跃 Agent 引用,用于观察或拦截进行中的工作
  • 能力事件:无需导入循环即可向某个 seam 附加策略和适配器

开始使用

安装方式很简单,有 Node.js 就能跑:

npx @deepseek-ai/dsh web

默认启动在 http://127.0.0.1:3080。源码安装则走 git clone → pnpm install → pnpm build → pnpm dsh web 的路径。


参考来源