Agent 框架只能二选一?DeepSeek Harness 用插件化给出第三条路

关键词:DeepSeek Harness、Cordis、Agent 框架、插件化、智能体、MIT 开源


目录


一、这不是新模型,而是 DeepSeek 的“智能体底盘”

8 月 13 日,DeepSeek 开源了 DeepSeek Harnessdsh),一个面向智能体的运行框架,不是新模型,也不是简单的 API 客户端。同一天它就在 GitHub 拿下 13k+ Star,圈内讨论很快从“模型能力”转向“工程架构”。

官方给它的定位很清晰:

Agent = Model + Harness

模型是智能体的灵魂,Harness 让智能体理解环境、使用工具、在现实场景中持续工作。

换句话说,DeepSeek V4 Pro 负责“聪明”,DeepSeek Harness 负责“把聪明落到实处”。如果你之前只是觉得 DeepSeek 的模型便宜、开源权重友好,那么 Harness 的出现补上了它生态里长期缺位的一块——可替换、可审计、可扩展的 Agent 运行层

二、为什么“一切皆插件”值得关注?

现在的 Agent 框架并不少:LangGraph、AutoGen、OpenAI Agents SDK、Claude Code……但用过的人都知道一个共同的痛点:框架 90% 都挺好,剩下 10% 想改却要 fork 源码

DeepSeek Harness 的核心设计主张是 “一切皆插件”,连 Agent Loop 本身也被视为插件。它基于 Cordis 微内核构建,运行中的 Harness 本质上是一个 Cordis Context;不同包向 Context 注册服务、事件和能力,最终通过配置文件组合成可运行的智能体。

DeepSeek Harness 插件化架构示意

(上图:官方展示的插件化架构,模型、工具、会话、沙箱、UI 等所有能力都被拆分为可替换的插件。)

这种架构的直接好处是:

  • 想换模型? 写个模型适配器插件,不用改核心。
  • 想接远程沙箱? 替换 filesystem/subprocess Provider,Bash、PTY、LSP 会跟着一起迁移。
  • 想自定义 UI? 界面也是插件,可以单独替换。

用 Linux 内核模块来类比可能更贴切:不是重新编译内核,而是加载一个模块。

三、Cordis 微内核:把能力拆成接口、实现、消费者三层

Harness 仓库已经超过 230 个 workspace 成员,代码分布在 packages/apps/examples/python/native/ 等区域。乍看很“重”,但这正是它想表达的设计边界:

  • packages/core/ 处理会话、系统提示词、工具、Agent、Agent Loop;
  • packages/llm/ 负责模型适配器和流式输出;
  • packages/shell/packages/subprocess/packages/terminal/ 负责命令、进程树和持续终端;
  • packages/fs/ 负责文件读写与策略限制;
  • packages/lsp/ 让 Agent 获得语义级代码导航;
  • packages/web/ 负责搜索与网页抓取;
  • packages/skill/packages/subagent/packages/workflow/ 把单个 Agent 扩展为可委派、可编排的多智能体系统。

文档里把典型能力拆成三层:接口、实现、消费者。以 Bash 为例:

层级 职责 可替换性
接口 定义“执行命令”是什么 稳定契约
实现 真正创建进程 可换成远程容器、云端沙箱
消费者 把能力变成模型可理解的 schema 随接口复用

这种“能力接缝”设计,让未来把本地执行环境换成企业执行平台时,理论上只需替换实现层,不必重写 Agent Loop。

四、Agent Loop 不再是几行 while 循环

很多早期 Agent 的核心逻辑可以写成几行:

while True:
    response = model.chat(messages)
    if response.tool_calls:
        results = execute_tools(response.tool_calls)
        messages.extend(results)
    else:
        break

DeepSeek Harness 也做这件事,但把它拆成了严格的生命周期:

  • Turn:一次用户输入开启一个 Turn;
  • Step:一个 Turn 可包含多个 Step,每个 Step 对应一次模型请求及其后续工具执行;
  • 事件流:请求前的系统提示词、环境上下文、工具 schema,请求后的流式 chunk、工具调用、工具结果、结束原因,全部进入事件流;
  • 并发与屏障:工具可声明“在某某参数下并发安全”,调度器会让连续只读任务并行;一旦遇到修改状态或安全性不确定的调用,就设为屏障,等前面任务结束后再独占执行。

这种“航空管制系统”式的设计,在 Agent 只跑单步任务时显得过度,但当它同时搜索十个文件、运行测试、接收用户追加指令、还要允许随时取消时,就会从“过度设计”变成“最想早点拥有的东西”。

五、Session Log:模型到底看见了什么,得有据可查

Agent 系统最痛苦的调试场景之一,是事后复盘:

“它当时为什么做了那个决定?”

如果系统只保存最终聊天记录,很多关键因素会丢失:请求前是否注入了工作区状态?工具结果是否被裁剪?是否切换了模型路由?用户是否在流式输出中途改变了方向?

DeepSeek Harness 规定:凡是模型看见的内容,都必须能从日志中重建。用户消息、运行环境、模型请求、流式输出、工具调用与结果、压缩事件、权限切换、取消原因,都会以事件形式进入追加式会话流。

Session Log 与 Trajectory 视图示意

(上图:官方 Trajectory 视图,所有事件按来源分类展示,支持 Resume、Fork、Replay。)

这个设计让界面、持久化、恢复、Fork、遥测和回放都从同一个事件源派生,而不是各自维护一份“差不多正确”的状态。对调试、评估、审计和自动化来说,这是非常重要的工程基础。

六、四种预设模式:同一套插件拼出不同形态

Harness 提供了四种预设模式,它们不是四套独立 Agent,而是基于同一套宿主装载不同插件组合:

模式 核心差异 适合场景
Standard 完整工具集:文件编辑、Shell、搜索、Skills、计划、子 Agent、工作流 日常开发任务
Code(PTC) 通过 Code Mode SDK 把工具暴露给模型,模型可写 TypeScript 程序一次性编排多步调用 调用链长的复杂任务
Minimal 只保留持久 Bash 与文件编辑工具 模型基准测试、环境变量可控
Creation 可检查运行时、动态挂载/卸载临时插件、创作新预设 高级用户与插件开发者

其中 Creation 模式最有意思:Agent 可以在运行中检查自己的插件树,并动态挂载临时插件。这相当于让汽车在高速公路上给自己换发动机——危险,但展示了这套架构想抵达的方向:智能体不仅能使用能力,还能在受控边界内重新组合自己的运行时。

七、上手试试:从 npm 到 Web UI

目前 Harness 处于开发者预览,API 还不稳定,官方 README 明确提醒会有破坏性变更。但如果你只是想先看看它长什么样,启动非常简单:

# 安装 Node.js 后,一行命令启动 Web UI
npx @deepseek-ai/dsh web

默认监听 http://127.0.0.1:3080,打开浏览器即可对话、查看会话侧栏、权限选择、计划模式与工具卡片。

如果想从源码运行:

git clone https://github.com/deepseek-ai/deepseek-harness
cd deepseek-harness
pnpm install
pnpm run build
pnpm dsh web

配置文件 cordis.yml 是这套插件系统的最终落地。它列出插件名称、稳定 ID 和参数,决定当前 Agent 拥有哪些能力。官方还支持配置覆盖层,TUI 和 Web UI 可以共享一份基础配置,再叠加各自的界面插件。

一个小坑:配置补丁替换的是目标插件的整个 config,不是深度合并。如果你只写一个新字段,原来的 API Key、base URL 等参数可能会一起消失。

八、冷静看:开发者预览版的边界与机会

DeepSeek Harness 现在的完成度离“安装完成、一切丝滑”还很远。仓库庞大、概念多、文档还在快速迭代,普通开发者直接上手会有学习曲线。

但它展示出的技术判断是清晰的:

  1. Agent 不应是一段越来越臃肿的循环,而应是一组可组合、可观察、可替换的能力;
  2. 会话不应只是聊天记录,而应是可重建的运行事实;
  3. 工具不应只是函数,而应同时拥有策略、日志和呈现协议。

对企业开发者来说,这往往比聊天窗口多几个按钮更重要:它决定了系统能否被审计、扩展、替换和长期维护。MIT 许可证也意味着它有望成为开源 Agent 基础设施中的一个重要选项。

总结

DeepSeek Harness 的发布,把 DeepSeek 从“开源模型提供商”进一步推向“开源智能体基础设施提供商”。它不是又一个 Codex 克隆,而是一个可替换、可审计、可扩展的 Agent 运行层。

如果你已经在用 Claude Code、Cursor Agent 或 OpenAI Agents SDK,Harness 可能不会立刻替代它们;但如果你关心的是自己能不能掌控 Agent 的每一个环节——模型、工具、沙箱、会话、UI——那么它值得放进观察清单。


#DeepSeek #Agent框架 #Cordis #智能体 #开源
ursor Agent 或 OpenAI Agents SDK,Harness 可能不会立刻替代它们;但如果你关心的是自己能不能掌控 Agent 的每一个环节——模型、工具、沙箱、会话、UI——那么它值得放进观察清单。


#DeepSeek #Agent框架 #Cordis #智能体 #开源

Logo

中国智能体开发者社区,聚焦智能体与大模型开发,提供前沿资讯、实用工具链、开源项目及行业案例。通过技术沙龙、开发者大赛等活动,促进经验交流与协作,助力开发者快速构建创新智能应用。

更多推荐