# Everything is a Plugin，DeepSeek Harness 为什么把自己设计得这么复杂

DeepSeek Harness 最醒目的口号是 **Everything is a Plugin**。对一个只想让 AI 改代码或做一份 PPT 的用户，这个口号很快就会变成一连串额外概念。Claude Code 和 Codex 已经把大量选择封装进经过打磨的默认体验，DeepSeek Harness 却主动把更多选择放到了公开的控制面上。我认为，**这种复杂首先来自它对产品目标的主动选择。** DeepSeek 想争取做出一套最好的 Harness，并把它用于 Coding 之外的专业工作流程。Coding Agent 只是 DeepSeek Harness 已经交付的一种用法。

这里的 Harness，是模型之外负责让 Agent 持续执行任务的运行层。模型接收上下文并生成下一步动作，Harness 负责让这些动作进入外部环境，并把执行结果带回后续任务。DeepSeek Harness 官方提供的 Standard Mode 已经把这套运行层组装成一个 Coding Agent，用户安装以后便可以直接处理代码任务。[3] **把 DeepSeek Harness 看成 Coding Agent 没有错，但这个用法没有覆盖它为自己划定的全部设计范围。**

当前的复杂性包含两个来源。项目仍处于 Developer Preview，接口变化与默认配置尚未成熟，后续版本应当降低这部分成本。[3] 另一部分来自它希望覆盖的任务范围。一套只服务代码工作的产品，可以把许多选择固定在代码仓库、终端和测试体系里；一套准备承载更多工作流程的 Harness，必须给这些选择留下替换位置。**前者属于阶段性的粗糙，后者属于架构目标带来的长期成本。**

---

## Everything is a Plugin 把产品内部的选择公开出来

在许多 Agent 产品里，插件通常意味着给模型增加一个工具。**DeepSeek Harness 把插件用到了 Agent 运行系统的内部**，模型接入、工具执行、会话保存和任务循环都遵循同一种机制。[1] Everything is a Plugin 的重点在于，组成 Agent 的运行能力可以被替换和重新组合。

Claude Code 和 Codex 都有自己的扩展机制，也公开了审批与会话控制能力。[4][5] 它们的产品中心非常明确，所有扩展都围绕一套成熟的 Coding Agent 展开。DeepSeek Harness 同样交付了 Coding Agent，却在它下面保留了可以重新组装的运行层。**两类产品的差异落在可重组的层级：Claude Code 和 Codex 主要扩展 Coding Agent，DeepSeek Harness 公开了运行系统内部的更多结构。**

**运行系统开放到这个程度以后，开发者获得控制权的同时，也要承担一部分产品设计工作。**新的能力加入以后，开发者必须确保现有任务能够继续，并为失败后的停止位置负责。固定产品可以提前消化这些问题，可重组的 Harness 必须把它们留给构建 Agent 的人。可替换性需要配套的组合纪律。用户在界面和配置里看到的额外选项，来自这部分架构成本。

## Coding Agent 已经把一种工作流程封装得很好

Coding Agent 之所以进展快，与软件开发本身的结构有关。代码仓库划定工作边界，Agent 通过终端修改文件，测试给出反馈，Git 保存可以比较和恢复的结果。Claude Code 和 Codex 围绕这套工作流程持续优化，用户因此可以把大量工程选择交给产品。**Coding Agent 的成熟不只来自模型擅长写代码，软件开发本身已经提供了一套标准化程度很高、结果又容易验证的工作环境。**

**领域 Agent 指围绕某一类专业工作流程设计的 Agent。** Coding Agent 本身就是一种领域 Agent，只是代码工作已经拥有高度通用的工具和规则。云服务故障处理可以作为另一个例子。Agent 接收持续变化的服务状态，输出可能触发生产操作；负责这项工作的团队还要规定什么时候审批以及失败后由谁接管。领域 Agent 和 Coding Agent 一样，都需要一套完整的工作流程；增加专业提示词只能提供知识，无法替代运行规则。

代码之外的工作很少共享同一套环境。每家公司都从自己的业务系统取得数据，并由负责结果的人设置权限和验收方式。DeepSeek Harness 因此没有把 Coding Agent 的现成答案固定成整个系统的答案，而是把它作为 Standard Mode 交付，同时保留重组其他 Agent 的能力。**它所追求的范围，体现在同一套 Harness 能否承载不同的状态、权限和人工接管方式。**

## DeepSeek Harness 既可以写代码，也可以承载新的工作流

DeepSeek Harness 直接用于代码工作时，与 Claude Code、Codex 处在同一个产品层。一个团队要为自己的专业流程建设 Agent，Coding Agent 可以帮助他们编写所需的扩展和配置，完成后的 Agent 运行在 DeepSeek Harness 上。开发工具可以是 Claude Code、Codex，也可以是 DeepSeek Harness 自己的 Standard Mode。**DeepSeek Harness 因而具有两种可以衔接的身份：它能够作为 Coding Agent 参与开发，也可以成为新 Agent 的运行系统。**

这套结构对 Coding Agent 本身同样有帮助。会话保存、工具执行和失败恢复都属于 Harness 层，这些能力完成得越好，Standard Mode 能够直接使用的工程能力就越多。**DeepSeek Harness 对 Harness 的投入并没有绕开 Coding Agent，反而会进入 Coding Agent 的体验和可靠性。**同一套运行层决定了它能否把 Coding Agent 做好，也决定了代码之外的工作流程能否接入。

**我安装 DeepSeek Harness 以后，最喜欢的部分正是它没有把会话过程与 Token 消耗藏掉。** Session Log 可以理解为 Agent 的运行记录，它保存每轮模型上下文、工具调用与返回结果，开发者可以沿着这份记录检查任务经过了哪些步骤。[2] 对只关心答案的人，这些信息会占用界面；对需要控制成本、排查失败并维护工作流的人，它们就是工作对象。Harness 要承载多种工作流程，构建者就必须能够检查 Agent 的经历，否则可替换性只会制造更多黑盒。

## AI Workflow Owner 负责把复杂性变成可用的工作流

我们在前面的文章中把负责可复用 AI Workflow 结果的人称为 AI Workflow Owner。这个角色关注的对象是一套可以反复使用的工作流程，而不是某次模型回答。他需要确定这项工作要达到什么结果，模型可以使用哪些业务信息，哪些动作需要人工确认，失败以后任务交给谁。**AI Workflow Owner 的责任，是把一类专业工作转化为可以持续运行、接受检查并不断修正的 Agent。**

DeepSeek Harness 提供的开放控制面，恰好可以承载这些决定。Harness 负责保存运行状态并按照配置执行任务，AI Workflow Owner 与开发者一起把业务规则写进系统，并根据运行结果修改工作流。**Harness 管理一次任务怎样执行，AI Workflow Owner 决定这套执行方式能否继续用于业务。**

**这类复杂性并不要求所有用户亲自承担。**负责设计工作流的人理解 Harness，开发者完成工程实现，使用者面对已经配置好的 Agent。Coding Agent 今天之所以好用，正是因为 Claude Code、Codex 等产品已经替用户完成了大量工作流设计；其他专业工作如果要达到相近的完成度，也需要有人承担同样的建设责任。使用者需要的是清楚的产品，AI Workflow Owner 与开发者需要保留修改产品的控制权。

从这个角度看，DeepSeek Harness 的可替换性服务的是工作流建设。一个熟悉云服务故障处理的团队，可以围绕自己的流程开发 Agent，而无须先从零搭建整套 Agent 运行系统。团队掌握专业判断，Coding Agent 帮助他们完成开发，DeepSeek Harness 提供运行环境，AI Workflow Owner 持续维护这套工作方式。**DeepSeek Harness 的野心，是让负责专业流程的团队能够开发自己的“Claude Code”。**

## 未来版本可以更简单，但这套复杂性不会消失

DeepSeek Harness 目前的界面和配置还有很强的 Developer Preview 痕迹，未来版本完全可以减少安装成本，提供更成熟的默认组合，并把大量技术概念封装到专业用户之外。这样的变化不会推翻今天的判断。可替换的运行层和可检查的过程仍然存在，说明产品只是在封装复杂性。**成熟的产品可以隐藏复杂性，却不能取消构建复杂 Agent 所需的判断和责任。**

这套设计要接受工程结果的检验。负责某类工作的团队借助它以后，应当能够更快地做出可以长期维护的 Agent，并且比从零搭建更容易排查和修改。**DeepSeek Harness 现在承担的复杂性，必须用后续的复用效率与维护能力偿还。**

如果 DeepSeek Harness 最后只有 Standard Mode 能够达到高质量，代码之外的工作仍要大规模重写运行系统，那么 DeepSeek 提出的通用 Harness 目标就没有完成。插件之间难以组合，运行记录不能支撑排查，开发者始终无法形成可靠的封装，同样会让这些复杂性只剩负担。**DeepSeek Harness 可以把设计目标扩展到更多任务类型，工程实现却必须证明这种范围能够转化为可用能力。**

Everything is a Plugin 从第一天就会带来额外概念，因为一种已经成功的工作流程无法替未来所有 Agent 预先完成选择。Claude Code 和 Codex 已经把 Coding Agent 做成了高度成熟的产品，DeepSeek 希望通过 DeepSeek Harness 把这种工程能力带到更多专业工作之中。**DeepSeek Harness 当前以 Coding Agent 进入用户视野，它的长期价值取决于同一套 Harness 能否帮助更多团队围绕自己的工作流程构建 Agent。**

---

## 参考资料

[1] [DeepSeek Harness Architecture](https://github.com/deepseek-ai/deepseek-harness/blob/master/docs/architecture.md)

[2] [DeepSeek Harness Session README](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/core/session/README.md)

[3] [DeepSeek Harness README](https://github.com/deepseek-ai/deepseek-harness)

[4] [Codex Skills](https://developers.openai.com/codex/build-skills)；[Codex App Server](https://developers.openai.com/codex/app-server)

[5] [Claude Code Settings](https://code.claude.com/docs/en/settings)；[Claude Code Headless Mode](https://code.claude.com/docs/en/headless)