INDEX / NO.038 — 2026.08.14 — 技术原理

DeepSeek Harness 开源发布:重新定义 AI 应用的形态

DeepSeek Harness 开放的不是一个 Agent 成品,而是 Agent 的组成和运行结构:模型、工具、会话、权限与业务节点可以在一定范围内重新装配。

DeepSeek Harness 官网首页

DeepSeek Harness 开发者预览版已经公开源代码。

它不是又一个带工具的 Agent。

更准确地说,它把 Agent 的运行结构拆开,交给开发者重新组合。

过去,软件先确定产品,再增加插件。

剪辑软件有时间轴,办公软件有文档,代码编辑器有文件树和终端。插件可以加功能,但产品的主要边界已经定了。

Harness 反过来:模型、工具、任务循环、会话、权限、执行环境和界面,都可以成为组合的一部分。

它开源的不是一个 Agent 成品,而是一套可以继续装配的 Agent 运行底座。

DeepSeek Harness 新建会话

一、Harness 到底负责什么

大模型负责理解、推理和生成。

要让它完成真实任务,还需要上下文、工具、任务状态、执行环境、权限和反馈。

这层工作就是 Harness。

大模型:理解和推理
Harness:任务循环、工具、状态和权限
业务层:数据、界面和具体流程

普通 Agent 产品通常把这层封装起来,用户拿到的是一个已经装好的应用。

DeepSeek Harness 则把它拆成了可以继续组合的部分。

官方架构把模型适配器、工具注册表、会话日志和 Agent Loop 放进插件体系,并用 Cordis 管理插件、服务、事件和依赖关系。

源码里对应的能力包括 Agent、工具、会话、模型、沙箱、MCP、Skill、子 Agent 和工作流。

这些模块的价值不在于数量多,而在于运行时的若干组成部分和接入点被拆了出来。

开发者可以在现有接口和配置范围内替换模型、工具或执行环境,任务状态和界面也能按业务接入;实际迁移成本仍取决于接口和业务集成。

二、它开放的是 Agent 的组成层

Skills、MCP、Hooks 和自定义工具,解决的是“给现有 Agent 增加能力”。

DeepSeek Harness 进一步开放的是“这个 Agent 由什么组成、怎样运行”。

Agent Preset(预设)是一个很直观的例子。

普通自定义 Agent 可能只是换一段 Prompt:

你是一名专业的市场分析师……

Preset 改的是 Agent 的装配清单:

  • 使用什么模型;
  • 能调用哪些工具;
  • 是否启用计划、目标和子 Agent;
  • 能访问哪些文件和执行环境;
  • 使用哪些技能和提示词;
  • 采用什么权限和会话方式。

当前安装包里已经有四种 Agent 预设,还附带插件开发和组合配置指导,展示了 Agent 检查当前运行时、辅助创建另一套 Preset 的实验性路径。

  • 标准模式提供完整工具,
  • PTC 是 code preset 中的程序化工具调用组合,
  • 极简模式只保留 Shell 和文件编辑,
  • 创造模式用于检查和实验当前运行时。

它们说明,Harness 不只允许添加能力,也提供了针对任务裁剪 Agent 能力边界的预置方式。

DeepSeek Harness 官方四种运行模式

这不是成熟的“自我进化”。

但它说明了一件事:自定义 Agent 不再只是改 Prompt,也可以改工具、权限和运行方式。

Prompt:改变 Agent 怎么说话
工具:增加 Agent 能做什么
Preset:重新决定 Agent 由什么组成

这也是 Harness 和普通插件系统的差别。插件不只是挂在产品外面的功能包,它可以参与组成 Agent 本身。

这也和最近讨论的 Agent Plugins 1.0 形成了呼应。

Agent Plugins 1.0 解决的是 Skills 和 MCP 如何统一打包、发现和分发;DeepSeek Harness 进一步推进,能力进入 Agent 之后,能不能参与模型、工具、会话和运行流程的重新组合。

前者统一的是能力的交付格式,后者开放的是运行时的装配方式。两者共同指向一个变化:插件不再只是成品软件外面的外挂,也开始成为 Agent 的组成单元。

DeepSeek Harness 官方界面:已安装插件与启用状态

三、同一套运行结构,可以接不同入口和界面

DeepSeek Harness 目前提供 Web UI,也提供命令行一次性运行器。

Web UI 是交互版本:有工作区、会话、模型选择、权限设置、工具调用和任务轨迹。

它目前通过 Web 技术运行,开发者预览版还没有进一步打包成独立桌面 App,但这不影响它已经是一个带图形界面的 Agent 软件。

命令行入口的官方用法是:

dsh --profile headless "run the tests"

它接收一项任务,调用模型和工具,完成后把最后一条非空回答打印到终端并退出。

它不是完整后台服务或定时任务平台;要接入这些场景,还需要开发者自己补上调用、数据和调度层。

两种入口共享基础层和同一套 profile/patch 组装机制,但 Web 和 Headless 仍分别叠加各自的运行 bundle。

这说明运行能力在设计上没有完全绑定某一个交互入口。

官方教程用一个名为 Review Job 的业务示例,演示如何在 Web Client 内定义三类事件:

review/start
review/progress
review/end

插件用同一个任务 ID 关联事件,逐步构建业务状态,再用 React 组件显示在 Web Client 里。

官方还提供 Trajectory 视图,可以按 turn 或 step 查看用户、助手、工具和嵌套子工具记录;具体能展示哪些字段,取决于当前版本记录的事件和界面实现。

任务开始

事件写入会话日志

状态持续更新

业务组件刷新

任务结束,状态可回放

所以,在 Web Client 内,业务组件不必只显示最后答案,也可以显示任务步骤、工具调用、审批、错误和重试。

追加式事件记录为任务过程的观察和状态呈现提供了基础;至于恢复、分叉和完整回放能做到什么程度,还要以当前版本的具体实现为准。

这个教程证明的是一种宿主内的扩展方式,不等于 Harness 已经提供了任意业务前端或完整 UI 框架。

结尾

模块化、插件化、事件系统和可组合架构都不是 DeepSeek 发明的。

DeepSeek 做得有意思的地方,是把这些思想收束进 Agent 运行时:稳定的运行结构下沉,变化的业务形态上浮。

以后判断一个 Agent 框架,不能只看它能不能接入工具和 Skill,还要看开发者能不能重新决定:

  • Agent 由什么组成;
  • 它怎样执行任务;
  • 状态和权限如何管理;
  • 业务界面怎样接入。

这比“DeepSeek 又做了一个 Agent”更重要。

当然,当前版本仍是开发者预览,能否在真实业务中稳定支撑复杂状态、权限和交付,还需要继续验证。

现在更值得关注的,不是它已经替代了多少现有产品,而是它把一条不同的路径公开出来了:先搭可组合的智能运行结构,再围绕具体业务装入工具、数据、权限和界面。


资料与代码

扫码关注公众号
扫码关注公众号
扫码加群交流
扫码加群交流