欢迎光临
我们一直在努力

DeepSeek Harness

目录

1. 定义

2. 背景与问题

2.1 它要解决的根问题

2.2 为什么现在出现

3. 核心原理

3.1 核心

3.2 插件

3.3 核心 + 插件 → dsh 怎么转起来

4. 整体架构

5. 价值与定位

差异化定位

6. 总结


仓库:https://github.com/deepseek-ai/deepseek-harness

主页:https://deepseek.com/harness

文档:https://deepseek-harness.github.io/deepseek-harness/guide/quickstart

口号:" Everything is a Plugin"


1. 定义

DeepSeek Harness(dsh)是 DeepSeek 出品的 开源智能体外壳(agent harness)

全部能力(模型、工具、技能、会话、沙箱、存储、循环、调度、UI)都按 Cordis 插件装配、可插可换;Cordis 内核只管加载/卸载/依赖、不承载任何具体能力,因此无需改源码即可在配置层选、换或扩展任一能力

它对标 Claude Code / opencode / Cursor / Aider,但走 把外壳做成插件平台 而非 写一个 Agent 程序 的路线


2. 背景与问题

2.1 它要解决的根问题

裸 LLM 没有手眼——不能碰文件、跑代码、上网、记跨轮上下文

要让它干活,需一层宿主替它:给工具、跑循环、做可视化、守安全边界,这层叫 harness

过去各 Agent(IDE 内置的、CLI 形态的)大多为单体或半扩展架构:能力耦合在主程序里,能加插件但未到 配置层可换任一能力 的程度,难复用、难企业定制

dsh 用 一切皆插件 把 harness 变成可组合运行时

2.2 为什么现在出现

  • Cordis 范式成熟:Cordis(github.com/cordiverse/cordis)提出 时空可组合性 范式,天生适合 一切皆插件 + 作用域隔离 的 Agent 形态,DeepSeek 直接把它当内核

  • 生态闭环需要:DeepSeek 有 V4/R1 等强模型,缺一个 能 npx 一行起跑的官方外壳 把模型势能转化为开发者日活

  • 多端同源需求:同一套能力要喂给终端开发者(TUI)、普通用户/演示(Web)、数据/AI 脚本(Python),逼出 host/client 彻底解耦

  • 行业缺一个开源插件平台型 Agent:Claude Code 闭源、opencode/Aider 偏单体


  • 3. 核心原理

    dsh 的原理 = 核心 + 插件

    核心是不干活的底座(容器与契约),插件是干活的业务能力;两者组合成一棵插件树,跑出 Agent 循环,全程记进会话日志

    3.1 核心

    核心 = Cordis 运行时 + ctx 契约面 + 事件词汇 + 会话日志不变量

    • Cordis 运行时(vendor/cordis/):只管插件的加载/卸载/依赖与可逆副作用,自己不干活——像主板,提供插槽与规则,干活的是插上去的卡

    • ctx 契约面:一组固定公开的服务槽(ctx.llm / ctx.tools / ctx.sessions / ctx.agents / ctx.agentLoop …),插件把服务挂到指定槽、用时按 key 取,不互 import 代码——换槽上的 provider 不影响别人,这就是 可插可换 的落点

    • 事件词汇:一套约定的事件频道名(session/event、agent/*、tools/*、llm/* …),插件靠 emit/监听通信、不直接互调——想给工具调用加审批,就监听 tools/* 在调用前拦

    • 会话日志不变量:铁律 模型可见即已记录 ——会话日志只追加,凡抵达模型请求的输入(系统提示词/思维链/工具调用结果/子 Agent/上下文注入)都能从日志重建;新增模型可见输入须扩展 SessionEventMap,回放/分叉/审计都从这一份来

    • 无特权内核:扩展 = 往别的插件旁边挂、注册随卸载撤销,连 Agent loop 都是可换的 默认驱动器

    3.2 插件

    模型、工具、技能、会话、沙箱、存储、循环、调度、UI——所有 Agent 能力都是插件

    插件往核心上做两件事:

    • 填 provider:把某能力的实现挂到对应 ctx 槽(模型适配器挂 ctx.llm、文件系统挂 ctx.fs、沙箱挂 ctx.sandbox…)

    • 挂监听:订阅事件频道,加策略/拦截(审批、限流、记录)

    能力以 seam(三角色)组织:定义接口 / 提供方实现 / 消费方使用(通常是面向模型的工具);换一个 provider 改全局——把 fs+进程 provider 指向远程沙箱,Bash/PTY/LSP 一并搬走

    3.3 核心 + 插件 → dsh 怎么转起来

    • 装配成插件树:Profile + Bundle + Patch 在配置层叠加(dsh –profile web –dump-config 可看);dsh-base 是开箱默认层、本身也是插件可 patch 替换

    • 跑出 Agent 循环(turn/step):领输入 → 装配提示词(系统提示 + 工具 schema + 历史)→ 调模型流式 → 模型发工具调用 → 执行工具(带审批/沙箱)→ 结果回灌会话 → 不欠工作就结束轮次,循环本身也是可换的 默认驱动器

    • 全程记进会话日志:模型看到的都落日志,回放/分叉/审计共享同一份。


    4. 整体架构

    dsh 自上而下 5 层

    • L1 交互入口层:TUI / Web UI / Python SDK / ACP 编辑器——进入 dsh 的入口

    • L2 客户端表现层:把事件流渲染成界面,经通信契约连宿主

    • L3 宿主运行时层:Agent 循环、提示词装配、工具调度、会话日志(模型上下文唯一事实源)

    • L4 能力插件层(一切皆插件):模型/工具/技能/沙箱/存储/循环/调度/UI 全是可插可换插件

    • L5 插件内核层 Cordis:只管加载/卸载/依赖,不干活

    • 类型自动生成:TS 类型→工具参数定义+各端清单,CI 校验不漂移

    • 安全沙箱:Landlock + sandbox + E2B 多级隔离,包裹工具执行

    串联:L1 进 → L2 渲染 → 契约到 L3 跑循环 → 调 L4 插件 → 挂 L5 Cordis;类型自动生成保定义一致、安全沙箱一保执行隔离


    5. 价值与定位

    技术价值:把 harness 从 定制代码 升级为 可组合运行时 ;typert 从 Zod 自动扇出(模型 JSON Schema + 跨端 catalog + RPC 描述符)+ CI gate 锁不漂移(仍手写 Zod,差在扇出+锁漂移,单工具是 overkill);host/client + ACP/MCP 给出 Agent 复用范本

    目标用户:开发者(TUI)、普通/演示(Web)、Python/AI 工程师、插件作者、FDE、定制 Agent 的企业

    差异化定位

    维度 dsh Claude Code Codex
    形态 平台/外壳(开箱跑) 闭源 Agent CLI Agent
    语言 TypeScript — Rust
    内核 Cordis 一切皆插件 单体+MCP 单体+MCP
    多端 TUI+Web+Python TUI+IDE TUI
    可组合 配置层换任一项 弱 插件(MCP)
    工具契约 Zod 自动扇出 + CI gate 手写 手写
    协议 ACP+MCP MCP MCP
    沙箱 Landlock+E2B+worker 弱 内置沙箱
    许可 MIT 闭源 Apache-2.0

    6. 总结

    dsh 的本质:一个插件平台——核心(Cordis)只管装载、不干活,所有能力(模型/工具/沙箱/会话/循环/UI…)都是可插可换的插件,配置层就能选、换、扩展任一项

    它真正的不同不在功能多,而在范式:别的 Agent 是一个程序,dsh 是一个可组合运行时——换模型、换沙箱、加工具都不改源码,全在配置层完成

    这套"核心 + 插件 + 类型契约"的设计,把 Agent 外壳做成了能被复用、被扩展、被企业定制的工程底座

    赞(0)
    未经允许不得转载:171主机测评 » DeepSeek Harness
    分享到: 更多 (0)

    评论 抢沙发

    • 昵称 (必填)
    • 邮箱 (必填)
    • 网址