DeepSeek Harness 功能与特性解析:一个“一切皆插件“的 Agent 运行时

如果你最近在关注 Agent 框架,大概率听过 DeepSeek Harness(dsh)。它 2026 年 8 月开源、MIT 许可,目前还在开发者预览期。和很多"装好就能用"的 Agent 工具不同,它的设计重心不在开箱即用的体验,而在一套可替换的运行时底座。这篇文章只做一件事:把它的功能和特性讲清楚。

它是什么

一句话:模型负责"想",Harness 负责"干"。读文件、执行命令、调用工具、组织多步任务,这些让 AI 真正干活的能力,都归 Harness。两者合起来才是能自己干活的 Agent。

它的核心主张是"一切皆插件"。模型适配、工具注册表、会话、甚至 Agent 循环本身,全都是 Cordis 插件。这意味着整个产品的每一部分都能通过配置换掉,没有需要 patch 的特权核心------你扩展它,就是在别的插件旁边挂一个插件。

整体架构

在功能细节之前,先看整体架构。它的核心是 Cordis 插件内核------一句话,一切皆插件。同一个内核从上到下分四层:

  • 运行形态(最上层):同一套内核能启动成 Web、Headless、ACP、JSON-RPC 四种界面;
  • Agent 内核:把模型请求、工具调用和会话日志串成一次 Agent 循环;
  • 可换能力:每个能力都是一条 seam(接口 + 实现 + 使用方);
  • 安全与治理(最底层):沙箱、审批、凭证都以插件形式挂在这一层。

所有这些层都架在同一个底座上------Cordis 插件内核。下面从运行形态一层层往下看。

图1 · 整体架构:四层叠在 Cordis 插件内核之上,自下而上分别是安全与治理、可换能力、Agent 内核、运行形态。

四种运行形态

同一个内核可以写成不同形态,适应不同场景:

  • Web:浏览器里聊天、配设置、切预设;
  • Headless:一次性跑完就退,适合脚本和 CI;
  • ACP:自动化专用的 Agent Client Protocol 服务,可被外部程序驱动;
  • JSON-RPC:给其他前端直连的接口。

图2 · 四种运行形态:核心是一个内核,对外暴露四张不同的"界面",换界面不换底座。

Agent 内核

这是它怎么思考和行动的部分。

  • Session 日志 :会话是一条文只追加的事件流(turn / step / message / tool),它是模型所见上下文的单一来源。deriveMessages() 从历史投影出模型输入,回放、持久化、遥测全从这条流派生。一个硬性不变量是"模型能看到的,必然已写入日志"------这保证了长任务可回放、可审计。
  • Agent Loop:一个 step 是一次模型请求加上它调用的工具;一个 turn 是零个或多个 step。
  • Tools 注册表:带作用域、带守卫的执行管线,工具 schema 自动进入提示词组装。
  • LLM 适配:把消息和流抽象成统一词汇,内置 DeepSeek provider,换模型只需注册一个新 adapter。

图3 · 轮次流程:一个 turn 由若干 step 组成,每个 step 是一次"模型请求 + 工具调用";agent/pre-step 决定模型看到什么、turn/end 才关闭轮次。

可换能力:Capability Seams

每个能力是一个"缝"(seam):声明接口的 Service Definition、实现它的 Service Provider、使用它的 Consumer(常是面向模型的工具)三者齐备才算一个 seam。正因为如此,换一个 provider 就能把整条产品线搬到新后端。举个例子:文件系统和子进程共用一个执行世界,把 provider 指向远程沙箱,Bash、PTY、LSP 会一起搬走,无需 fork 代码。

可换的能力覆盖面很广:文件系统、Shell 与子进程、持久终端、LSP、Web 搜索与抓取、技能 Skill、子代理 Subagent、工作流 Workflow、Todo、Plan、上下文压缩 Compaction、钩子 Hooks。

图4 · 能力 seam:接口、实现、使用方三者成环才算一个可替换能力;替换 Provider 即替换整条产品线。

安全与治理

  • Landlock 沙箱:spawn 出的进程先对自己做最小权限限制再 exec,从启动那一刻就钉死权限。
  • 审批与交互:危险操作需人确认。
  • 设置与凭证 :~/.dsh 下的 settings.yaml、credentials.yaml,支持热加载;遥测可关。

开发者生态

提供 Python SDK 与捆绑运行时;native 目录维护 Landlock 启动器源码;文档含架构说明、能力图谱与分步 cookbook(加包、加工具、加 LLM adapter、加 Chat 节点);组合上用 dsh-base 打底,profile 用 cordis.patch.yml 在自己层覆盖任意一行配置。

小结

DeepSeek Harness 的卖点不是"开箱即用",而是"可替换的底座"。如果你关心 Agent 框架的长期可维护性和可组合性,它的插件化设计值得花时间理解。至于它能不能成为生产环境的选择,预览期的破坏性变更还在路上,建议先在隔离环境里试。

相关推荐
Erishen4 小时前
Lume A2A 实战:让 Lume 应用接入分布式 Agent 协作网络
架构·开源·agent
斯维赤4 小时前
限流、熔断、降级,你真的分得清吗?
java·后端·架构
微步AICRM5 小时前
一物一码验真的并发链路设计:码段管理、四级关联与异常判定
后端·架构
国科安芯7 小时前
人在回路中的总线:商业空间站环境控制与生命保障系统CANFD网络的可靠性与功能安全
网络·嵌入式硬件·安全·架构·php·抗辐射
一条Go7 小时前
告警指纹:一次故障为什么只产生一条 FIRING 记录
后端·架构·github
王中阳Go7 小时前
你把重试加到 2 次那天,200 条里成功还是 181 条,你回看过吗?
人工智能·后端·架构
Zan7 小时前
Tauri 2 实战:为什么一个可靠的桌面应用,应该由 Rust Host 管理生命周期?
前端·架构·rust
神鹰手哥_起飞版8 小时前
我是怎么管理 Coding Agent 的:把任务交出去,也把结果验回来
人工智能·架构·产品经理
freejackman12 小时前
【工程化】从“单兵作战”到“多引擎架构”:基于门面模式的重构实战
大数据·数据库·hive·sql·测试工具·设计模式·架构
西安小哥13 小时前
大厂把大模型做为一层“网关”,比换个框架更值得琢磨
架构·langchain