# DeepSeek Harness 的野心：统一领域 Agent 的构建、运行和交付

前五篇文章先分析插件怎样组成 DeepSeek Harness，又追踪一次会话如何运行，最后把这些设计放进云服务器管理实验。写到这里，前面反复出现却没有单独展开的判断可以说清了：**DeepSeek Harness 并不满足于把 Coding Agent（面向软件开发的 Agent）做得更灵活，它想把不同领域 Agent 的构建、运行和交付放进同一套 Harness。**

这里的 Agent，指能够调用工具并持续完成任务的智能体；Harness 则是 Agent 外面的工作环境，它把模型接到工具和权限系统中，并负责保存会话与运行过程。DeepSeek Harness 在这套环境里进一步引入 Host、Session、preset 和 Session Log。Host 是长期运行的宿主进程，Session 是可以保存和恢复的一段 Agent 会话，preset（会话级 Agent 预设）为当前 Session 装入相应能力，Session Log（会话事件日志）则保存这段会话中发生过的事件。

所谓领域 Agent，也就不难理解了。它不是一个什么都能做的通用助手，而是围绕某类专业工作承担固定责任。服务器运维 Agent 应该看到服务器状态，也应该能提交许可范围内的变更；除此之外的系统能力，没有必要暴露给它。**本文把这套思路称为统一领域 Agent Harness：让不同领域共享一套运行基础，再按照各自的工作边界装配 Agent。**

---

## 一个领域 Agent 怎样进入同一套 Harness

上一篇文章里的 `server-operator` 是一个很小的例子。它先读取服务器状态，根据许可范围生成变更方案，执行前交给人工审批。运行它的 Session 没有 Bash（命令行环境），也没有通用文件工具，因此模型即使产生越界动作，也找不到相应的执行入口。约束不再依赖提示词反复提醒，而是落在 Agent 能调用的工具上。

这和 Coding Agent 的工作方式有明显差别。一个拥有完整 Bash 的 Coding Agent 处理临时故障当然更加灵活，它可以读取配置和日志，必要时修改文件，再运行命令验证结果。问题也来自这份灵活性：如果某个运维 Agent 的职责只包括查看状态和提交受控变更，那么完整命令行权限会让它获得大量与职责无关的行动路径。

领域 Agent 因此需要收窄。模型只看到完成当前工作所需的状态，能够提交的动作也受到工具范围限制。服务器操作被接入 DeepSeek Harness 后，再用 preset 把所需能力装进新的 Session，`server-operator` 就可以和 Creator（创造模式，用来扩展 DeepSeek Harness 本身）运行在同一个 Host 中。前者处理受控运维，后者负责修改和测试。运行中暴露的问题回到 Creator 修正，新版本再进入新的运行 Session。**上一篇实验最重要的结果，不是 AI 成功重启了一项服务，而是一个 Agent 可以在 DeepSeek Harness 中被构建出来，随后沿用同一套运行基础继续工作。**

---

## Claude Code 先证明了专用 Harness 的力量

讨论这条路线，必须先给 Claude Code 足够高的评价。

在 AI 编程还没有成为今天这种行业共识的时候，Anthropic 已经持续把 Claude 的代码能力做深。当很多 Agent 项目还在讲多智能体协作和自主执行的宏大故事时，Claude Code 把注意力放在一个边界清楚、反馈充分的领域：软件工程。

它读取代码库，通过文件系统修改内容，再用命令行运行测试。代码仓库保存长期上下文，终端把模型接到工程动作，测试结果又会回到下一轮判断。Claude Code 因而跨过了“生成代码片段”这一步，开始承担连续的软件工程任务。后来 Anthropic 又把这套 Agent Loop（模型调用工具，并依据工具结果继续工作的循环）开放为 Claude Agent SDK（Software Development Kit，软件开发工具包），让其他程序也能复用相近的 Agent 能力。

**Claude Code 让整个市场看到了专用 Harness 的力量：模型能力只有进入反馈充分的工作环境，才能稳定转化为生产力。**围绕代码仓库、终端和测试长期打磨以后，Claude Code 大获成功，AI 编程也迅速成为主要模型厂商的核心产品方向。它对市场的影响已经超过一个编程工具，因为行业由此接受了更重要的经验：模型本身很强还不够，外面的工作环境同样会改变能力上限。

问题随后出现。既然 Coding Agent 已经这么好用，人们自然会尝试把它扩展到代码之外。Skill（按需加载的工作方法）和 MCP（Model Context Protocol，模型上下文协议）可以接入专业知识与外部系统，Claude Agent SDK 也能承载新的 Agent 应用。然而，Claude Code 的基础语境来自软件工程，文件系统和命令行因此拥有很高的地位。对于一个权限需要收窄、步骤需要受控的领域 Agent，这套默认能力有时反而过宽。

---

## OpenClaw 和 Hermes 补上长期运行，DSH 进一步处理领域边界

OpenClaw 和 Hermes 从另一个方向继续推进 Agent。它们把 Agent 做成长期在线的服务，通过 Gateway（常驻消息网关）维护会话，再接入用户日常使用的通信渠道。Hermes 又把定时任务纳入运行系统。Agent 因而不必停留在开发终端，可以运行在服务器上，也可以从消息渠道持续接受任务。

这解决了“Agent 怎样长期在线”的问题，却没有自动回答另一层问题：同一个运行系统里，如果同时存在不同专业工作，Agent 应该分别获得什么能力？哪些步骤只靠模型理解即可，哪些步骤必须由运行系统限制？领域 Agent 一旦进入生产环境，这些问题会比“能不能调用更多工具”更加重要。

DeepSeek Harness 在这里采用了更彻底的结构。它没有把 Coding Agent 当成所有 Agent 的固定外壳，而是把 Coding 本身也放进 preset。**Coding、Creator 与其他领域 Agent 都运行在同一个 Host 中，只是各自的 Session 装入不同能力。**于是，Coding Agent 不再天然高于其他 Agent，它负责构建新能力时是一种开发角色；进入运行阶段以后，领域 Agent 可以只携带自己所需的工具和规则。

---

## preset 开始成为领域 Agent 的交付单位

preset 因此不只是开发阶段留下的一份配置。经过测试的工具边界和工作规则，最后都可以随 preset 进入新的 Session。对于 DeepSeek Harness 来说，这已经很接近领域 Agent 的交付单位。

Host 负责公共运行基础，preset 负责当前 Agent 的组成。插件把新的领域能力接入 Harness，preset 再把需要的部分装进 Session。这样做的意义不在于少写几份配置，而在于构建和运行之间少了一次重新包装：开发阶段验证过的能力范围，进入运行阶段后继续沿用。

Everything is a Plugin 可以理解为“主要能力都能通过插件装配”。这套机制先把能力拆开，preset 再把它们组成不同的 Agent。专业团队因此可以把精力放在领域工具和工作规则上，不必为每种 Agent 重新搭一套会话外壳。**构建与运行开始共享同一个可修改的 Host，preset 则把经过验证的领域能力带到新的 Session。**

---

## Session Log 把运行反馈带回构建过程

领域 Agent 第一次运行以后，问题才会逐渐暴露。模型可能走错步骤，工具权限也可能给得过宽。如果开发和运行各用一套记录系统，复盘很容易退化成猜测：当时模型看到了什么，工具为什么被调用，审批发生在哪个环节，都需要重新拼接。

DeepSeek Harness 把 Session Log 放在运行系统的中心。模型看到的会话历史从这份日志重建，工具调用和返回结果也写入同一条事件流。Trajectory（运行路径视图）再把这些事件按会话顺序展开，让开发者能够检查每轮请求以及工具调用的耗时与模型用量。这里记录的是 Harness 能观察到的输入、输出和状态变化，不涉及模型内部的私有推理。

这使 Agent 的迭代方式发生了变化。方法有问题时，可以修改 Skill；权限给得过宽，可以调整 preset；某个步骤若不能依赖模型自觉，就把它写进插件。新的版本进入下一个 Session 后，开发者继续沿 Session Log 检查运行结果。**部署不再切断开发过程，运行本身开始成为下一轮构建的输入。**

---

## 业界正在用三条路线处理同一个问题

把 DeepSeek Harness 放进行业坐标，会看到大家都在缩短 Agent 从开发到生产运行之间的距离，只是出发点不同。

### 从开发框架延伸到运行平台

OpenAI Agents SDK 先解决怎样编排 Agent，随后加入 Session、人工审批与运行追踪。LangGraph 从工作流框架出发，LangSmith 再补上 Agent Server（Agent 服务端）和 Studio（调试工作台），让开发完成的 Agent 进入持续运行环境。这条路线已经覆盖 Agent 应用从构建到生产的大部分过程，但系统中心依旧是一项 Agent 应用：开发工具负责把它写出来，运行平台再承接这项应用。

### 把 Agent 做成云端托管资源

Claude Managed Agents（Claude 托管 Agent）走得更靠近运行层。Agent 的工作方式和工具范围可以保存成可复用版本，再由 Session 引用。开发者不用自己维护完整运行环境，代价是这套 Host 由 Anthropic 云平台提供，模型和基础设施也围绕 Claude 组织。

### 在更高一层管理不同 Agent Harness

Mastra 提出的 Meta-Harness，可以理解为“管理其他 Agent Harness 的上层系统”。Claude Code、Cursor 和 Codex 能作为子 Agent 接入 Mastra，再沿用它的运行接口和评测能力。这条路线说明，Coding Harness 与其他 Agent 系统长期分离所产生的成本，已经开始成为独立问题。

DeepSeek Harness 与这些路线共享同一个大方向，却采用了不同结构。它从一个可组合 Host 出发，让 Coding、Creator 与领域 Agent 都成为会话级装配。**它没有在外面再加一层去管理 Coding Harness，而是试图把不同 Agent 放到同一个 Harness 内部。**前面提到的 preset、Session Log 和插件体系，也因此不再是几个孤立功能，而是同一套运行模型里的不同部分。

---

## DeepSeek Harness Web 负责验收与治理，最终产品负责交互

领域 Agent 在 DeepSeek Harness 中跑起来，并不是发布过程的终点。DeepSeek Harness Web 很适合开发者和管理员，因为工具调用、人工审批与 Trajectory 都放在同一界面里。面向最终使用者时，产品界面应该围绕具体工作重新设计，而不是要求所有人学习一套通用 Agent 控制台。

DeepSeek Harness 已经提供了把 Harness 留在后台的接口。Python SDK 允许上层程序启动并复用 Harness 内核，于是专用网站或移动应用可以保留自己的交互方式，把任务交给后台 Session。ACP（Agent Client Protocol，Agent 客户端协议）提供了另一条路径：外部客户端按照统一协议访问 Session，并接收工具调用和权限请求。

即时通信还可以进一步降低发布成本。社区项目 `dsh-im` 已经能把飞书、Slack 等通信渠道绑定到指定 preset，使消息进入固定的领域 Session。这样一来，内部工作流不必先开发完整应用，也能进入员工已经使用的通信环境。随着需求变复杂，再为同一套后台 Session 增加专用界面即可。

**这一步把 DSH 的位置重新放回 Harness：开发和管理阶段可以看到它，面向用户交付以后，它完全可以退到产品背后。**

---

## 构建、运行治理与产品交互组成一个生命周期

沿这条路线，领域 Agent 的生命周期可以分成三个层次。

构建层负责把专业能力变成可运行的 Agent。Creator 或 Coding Session 在这里接入领域工具，通过测试收紧工作边界，最后形成 preset。这个阶段回答的是“Agent 应该怎样工作”。

运行治理层负责让这个 Agent 长期运行。Host 维持 Session，审批机制限制高风险动作，Session Log 与 Trajectory 保存可供复查的过程。这个阶段回答的是“Agent 实际怎样工作，以及哪里需要修改”。

产品交互层面向使用者。专用网站、移动应用或通信渠道负责呈现领域所需的交互，DeepSeek Harness 则留在后台继续运行同一个 Agent。这个阶段回答的是“用户怎样使用这份能力”，而不是“用户怎样使用 DeepSeek Harness”。

```text
构建层
  │
  ▼
运行治理层
  │
  ▼
产品交互层
  │
  └── 运行反馈回到构建层
```

这三层连在一起后，Agent 的开发与生产运行不再是两套割裂的工程。运行过程中暴露的问题沿 Session Log 回到构建层，新版本又通过相同的 Harness 进入下一轮运行。最终产品可以不断变化，底下的 Agent 仍然沿用同一套运行结构。

Claude Code 已经证明，围绕一个专业领域把 Harness 做深，可以改变模型参与工作的方式；OpenClaw 与 Hermes 又说明 Agent 需要长期在线的运行系统。**DeepSeek Harness 的野心，是把这两条路继续向前推：开发 Agent 在这里构建新的领域能力，领域 Agent 在这里长期运行，最终产品再把这套 Harness 藏到自己的交互界面之后。**

如果这条路线继续完善，开发者交付领域 Agent 时，就不必每次重做会话系统和运行控制台。专业团队把精力放在自己的工作规则上，最终产品负责用户体验，DeepSeek Harness 留在中间承担长期运行与持续改进。**这不是一个更通用的 Coding Agent，而是一套试图贯穿领域 Agent 构建、运行和交付的公共系统。**