Agent Systems / Field Note 08
Comparative research · 2026.08.20

同一个 Plugin三种系统观

DeepSeek Harness 把插件当作运行时本体;Claude Code 把插件当作开发者工作流套装;Codex 把插件当作跨 ChatGPT 与 Codex 的通用能力载体。它们使用同一个词,却在回答三个不同的问题。

官方一手资料 理念 / 架构 / 落地 / 治理 单文件离线 HTML
Focus
Lens
01 / Thesis
先统一词义,再谈优劣

Plugin 不是同一种“插件”

DeepSeek 描述的是微内核的组成单元;Claude Code 描述的是宿主上的扩展组件包;Codex 描述的是跨产品的能力与连接分发包。因此,简单比较“谁的插件更多”会得到错误结论。

DSH / 01

DeepSeek Harness

可替换的
内核

模型适配器、工具注册表、会话日志乃至 agent loop 自身都以 Cordis 插件挂载;服务、类型化事件与可逆 effect 进入共享 context。官方明确写道:没有需要打补丁的特权核心。D2

Developer preview · MIT · Breaking changes expected
CC / 02

Claude Code

可组合的
工具箱

插件是自包含目录,把 Skills、Agents、Hooks、MCP、LSP 等组件交给宿主发现与注册。它不重构 Claude Code 内核,而是让开发工作流以文件约定和市场目录方式复用。C1

CLI-first · Component-rich · Scoped installation
CX / 03

Codex

可分发的
能力网络

插件以 Skill 作为工作流层、以 MCP 作为工具与数据层,并可由 MCP 返回 UI;同一个公共目录服务于 ChatGPT 和 Codex,个别能力再按宿主表面启用。O1

Universal directory · Skills + MCP + optional UI

可比的共同层

三者都认可四类基本扩展:给模型的指令、可调用的工具、生命周期的拦截、以及团队可复用的分发。差异在于这些能力是否能深入宿主本体,以及面向单一编码环境还是跨产品网络。

边界提醒

本文把“插件”拆成运行时、组件包、分发包三个层次。所有“更强 / 更适合”的表述均为基于官方机制的分析判断,不是官方评级。

02 / Anatomy
Architecture autopsy

从安装包一路剖到 agent loop

下面不是品牌宣传语,而是插件进入运行时的真实路径。关键观察:DeepSeek 的箭头最终落到共享 context 与事件瀑布;Claude 落到宿主组件注册表;Codex 落到 Skill—MCP—UI 的跨表面组合。

官方事实本文研判
Microkernel composition

DeepSeek Harness

runtime-first
Profileweb / headless / 自定义;决定有序 bundle 栈
↓ ordered layers
Bundle + cordis.patch.ymlNPM 包声明 patch;后层可替换前层整段配置
↓ compose
Cordis plugin tree插件贡献 services、typed events、reversible effects
↓ ctx.* seams
Agent runtimectx.llm · ctx.tools · ctx.sessions · ctx.agentLoop
↓ durable + live events
Web / Headless / External driverUI 监听 session event;协议驱动接入 agents
结构含义:插件不只是“加一个功能”,还可以替换承载功能的服务提供者,甚至替换默认循环本身。卸载时 effect 反向撤销,用户 patch 可热重载。D2
Host component registry

Claude Code

workflow-first
Marketplace / local directory官方、社区、自建 Git/URL/本地 catalog
↓ install by scope
.claude-plugin/plugin.json身份、版本、组件路径、展示元数据
↓ convention discovery
Skills + Agents按任务发现的知识流程 + 专用隔离子代理
Hooks + MCP + LSP生命周期动作 + 外部工具数据 + 代码智能
↓ register
Claude Code host命名空间、权限、上下文成本与组件清单
结构含义:插件是“完整开发工作流”的安装边界。宿主保持主导权,扩展通过清晰的组件槽位进入;最适合把团队工程实践做成可发现、可审查、可分范围安装的工具包。C2
Universal capability package

Codex

surface-first
Universal / repo / personal directory公共目录跨 ChatGPT 与 Codex;本地 market 用于测试与团队分发
↓ install
.codex-plugin/plugin.json身份 + skills / MCP / hooks / interface 元数据
↓ compose capability
Skill layer渐进披露的指令、脚本、参考和资产
MCP / connector layer工具、认证、结构化数据、服务端行为
Optional UI + Codex hooksMCP 可返回 UI;Hooks 在 Codex 生命周期运行
↓ supported surfaces
ChatGPT + Codex同一 listing,不同表面可启用不同能力
结构含义:插件的稳定核心是“用户可安装的能力”。工作流放在 Skill,外部状态与动作放在 MCP,视觉交互放到可选 UI;分发范围跨越编码产品本身。O2
DeepSeek 的主语

“系统由哪些插件组成?”——先组合运行时,再运行 agent。

Claude 的主语

“这个开发工作流需要哪些组件?”——先打包工具箱,再交给宿主。

Codex 的主语

“用户要安装什么能力?”——先定义体验,再选择 Skill、MCP 与 UI。

03 / Matrix
18 个维度,一张表看透

全景对比,不靠口号

用顶部 Lens 只看理念、架构、落地或治理;输入关键词可检索。按 / 聚焦搜索,按 Esc 清空。

18 / 18 dimensions
Dimension
DeepSeek Harness
Claude Code
Codex
基本哲学north star
Everything is a Plugin。运行时由插件树组成,没有特权核心。
Workflow as package。把开发者扩展组件装进一个可共享目录。
Capability as product。把工作流、连接与 UI 组合成用户可安装能力。
扩展深度how deep
到内核。模型、工具、会话、agent loop、沙箱、UI 都可作为 seam / plugin 替换。FACT
到宿主插槽。扩展组件丰富,但不是以替换宿主循环为目标。ANALYSIS
到能力边界。Skill + MCP + UI + Codex Hooks;重心是跨表面体验。ANALYSIS
运行时组织composition
Profile 叠加有序 Bundles,再叠加 profile/home/CLI patch,最终生成 Cordis 插件树。
宿主扫描 manifest 与约定目录,将不同组件注册到技能、代理、Hook、MCP、LSP 等系统。
Host 读取 manifest,把 Skill 与 MCP 连接映射到支持的表面;MCP 可附带 UI,Codex 可附带 Hooks。
插件包入口manifest
NPM package 的 dsh.bundle.patch 指向 cordis.patch.yml;普通 Cordis plugin 导出 apply/config。
.claude-plugin/plugin.json;组件目录位于插件根。
.codex-plugin/plugin.json;组件目录、.mcp.json、.app.json 位于插件根。
Skillsinstructions
作为 section + tool 注册,调用时 inject() 技能内容;只是众多插件能力之一。
SKILL.md + 支持文件;模型可按描述自动调用,也可通过命名空间快捷调用。
遵循开放 Agent Skills 标准;先暴露名称/描述,再按需读完整指令,控制上下文成本。
工具与数据tools / data
ctx.tools.register();MCP 每台 server 对应一个插件,将发现的 tools 注册进同一管线。
内置工具 + 插件 MCP servers;技能可引用 MCP 工具,Hooks 可环绕工具事件。
MCP 是受控工具、认证、结构化结果与外部系统连接的主干;Connector 是面向产品的连接形态。
子代理subagents
通过 ctx.subagents provider seam;可切换 in-process、fork、ACP、Codex、Claude Code 等提供者。
插件可携带 Agents;独立 system prompt、模型、工具、隔离模式与记忆等。
Codex 自身支持 subagents,但公共插件核心结构以 Skills/MCP/Hooks 为主;不是 manifest 的一等通用组件。
生命周期 Hooksinterception
本地 Hook 就是监听 interception point 的普通 Cordis 插件;waterfall 可 allow/deny/transform/delegate。
hooks/hooks.json 对 PreToolUse、PostToolUse、Stop 等事件响应;命令进程可执行策略与自动化。
插件可捆绑 Hooks;命令 Hook 需按定义哈希审查与信任,项目层还受 workspace trust 控制。
UI 扩展visual surface
UI 是一等插件:监听 session/event,通过 agent API 回写输入;Web Chat 可注册节点 renderer。
主要面向终端工作流;插件可带输出样式/监控等,但第三方服务 UI 不是主架构中心。
MCP 可返回自定义 UI resource;适合需要可视化确认、表单或结构化交互的工作流。
代码智能LSP
LSP 由 service + stdio provider + model tool 组成,可随执行世界切换。
LSP 是插件原生组件;官方市场提供语言插件,但需本机已有对应 language server binary。
插件文档的核心组件不以 LSP package 为主;代码能力更多由 Codex 宿主与工具环境承担。
安装与试用first mile
dsh plugin --profile <name> add <package>,实质转发 pnpm;随后重启目标 Profile。
claude --plugin-dir 本地试用;或添加 marketplace 后 /plugin install name@market。
codex plugin marketplace add 配置源;CLI 用 /plugins 浏览安装,随后新开 session。
分发模型distribution
NPM / Git spec 安装到 Profile;GitHub dsh-plugin topic 用于可发现性,尚无中心市场主叙事。
官方、社区与任意自建 marketplace;catalog 与 plugin 分开,支持 Git、URL、本地路径。
公共插件发布一次进入 ChatGPT + Codex 通用目录;另有 repo/personal marketplace 做测试与私有分发。
作用域scope
以 Profile 为隔离与组合边界;单 session 可用 agent preset 改变能力集合。
User / Project / Local / Managed,多层适配个人、仓库协作与管理员下发。
Personal / Repo marketplace / Workspace publish / Universal public;插件按表面支持情况可用。
热更新与生效reload
用户 patch 受 watcher 管理,effect 可撤销;配置候选失败时保留最后可用树。外部 bundle 安装通常需重启 Profile。
部分安装可当前会话激活,否则需 /reload-plugins 或重启;更新后路径版本化。
安装后新 session 使用;本地 marketplace/目录变更通常需要刷新或重启桌面应用再测试。
安全治理trust
沙箱、审批、权限本身可由插件组成;强大但配置错误的爆炸半径也更大。MCP 命令被视为 agent sandbox 外的受信执行代码。
安装前展示组件清单与上下文成本;社区市场做自动验证/安全筛查;第三方 MCP/代码仍需用户信任。
Hook 精确哈希信任、项目 trust、workspace policy;MCP 负责认证/授权,公共发布另有审核流程。
产品表面surfaces
当前官方入口是 Web UI 与 Headless Profile;可通过协议/SDK/自定义 UI 插件扩展。
Claude Code CLI、桌面及 Agent SDK 场景;插件高度围绕编码宿主。
ChatGPT Chat/Work 与桌面 Codex、Codex CLI;IDE 扩展当前不支持插件,但可使用 standalone skills。
成熟度信号change risk
官方明确标注 Developer Preview,且会有破坏性变更。
插件参考、官方/社区市场、验证命令、版本与 scopes 已形成完整操作面。
通用目录与插件结构已成体系,但多表面意味着能力仍需检查宿主支持差异。
最适合sweet spot
Agent 平台工程。自定义模型、沙箱、循环、会话与 UI;接受预览期变更成本。
工程效能产品化。把评审、部署、语言智能与团队规约变成一键安装工具箱。
跨角色能力产品化。同一工作流服务研发、运营、数据与知识工作,并连接企业系统。
没有匹配的维度。按 Esc 清空搜索。
内核
组件
网络

真正的分水岭:插件能否改变“宿主是谁”

在 DeepSeek Harness 中,agent loop、会话、LLM 与工具系统本身也只是挂载在 Cordis context 上的插件,因此“插件开发”近似于平台内核开发。

在 Claude Code 中,插件通过丰富且清晰的宿主槽位组合工程能力;在 Codex 中,插件更像一种产品化封装,让同一能力在多个 OpenAI 表面被发现、安装与治理。三者并非线性强弱,而是抽象层不同。

04 / Runtime
How a plugin becomes behavior

从“安装”到“模型真的会用”

插件落地失败往往不是代码问题,而是卡在发现、信任、注册、激活或选择。三者的关键路径完全不同。

DeepSeek Harness

组合驱动

安装依赖pnpm 包进入 Profile
识别 Bundle读取 dsh.bundle.patch
分层合成bundle → profile → home → CLI
挂载 Effectsservice / event / tool 注册
进入 Turnprompt、LLM、tools、session 共振
Claude Code

组件驱动

添加 Catalog只注册市场,不自动安装
选择 Scopeuser / project / local / managed
扫描组件skills / agents / hooks / MCP / LSP
激活或 Reload按缓存与当前会话状态生效
显式/隐式调用用户命令或模型匹配描述
Codex

能力驱动

发现 Listing通用目录或本地 marketplace
安装 Packagemanifest 定位 skill/MCP/hooks
连接服务需要时完成 Connector / MCP 认证
新建 Session加载新的技能与工具清单
按表面执行Chat / Work / Codex 能力适配
05 / Practice
Copy the mental model, not only commands

三条最小落地路径

每条路径都刻意只保留能证明架构差异的文件与命令。复制按钮可直接取走示例;具体版本与企业策略仍应以当前官方文档为准。

把一个 Bundle 装进 Profile

目标不是复制一个技能文件,而是向运行时组合树插入一层。Bundle 的本体是 patch 列表,也可附带真正的 Cordis runtime plugin。

  1. 先用 Web profile 体验产品。
  2. 把外部 bundle 安装到指定 profile。
  3. 用 dump-config 查看最终插件树。
  4. 需要覆盖时,在 profile 的 patch 里按 row id 替换整段 config。

验收重点:配置层顺序、服务 key 冲突、effect 卸载、session event 是否可重放。

shell + bundle manifest
# 快速启动 Web UI
npx @deepseek-ai/dsh web

# 已安装 dsh 后:将外部 Bundle 加入 web Profile
dsh plugin --profile web add @acme/dsh-review-bundle

# 查看最终生效的插件树
dsh --profile web --dump-config

# package.json:Bundle 用 patch 参与组合
{
  "name": "@acme/dsh-review-bundle",
  "dsh": {
    "bundle": { "patch": "./cordis.patch.yml" }
  }
}

# cordis.patch.yml:插入一个工具插件 row
- insert:
    - id: review-tool
      plugin: @acme/dsh-tool-review
      config:
        strict: true

把开发流程打成组件包

一个插件可以同时给模型步骤、给它专用代理、在工具前后强制执行策略、连接外部系统,并提供 LSP 代码智能。

  1. 在插件根创建 manifest。
  2. 按目录添加 Skills、Agents、Hooks 与 MCP。
  3. 用 --plugin-dir 本地试用和验证。
  4. 放入 marketplace,再按 user/project/local scope 安装。

验收重点:Skill 触发准确率、Hook 误伤率、MCP 最小权限、LSP 外部 binary、每轮 context cost。

filesystem + commands
my-plugin/
├── .claude-plugin/plugin.json
├── skills/review/SKILL.md
├── agents/security-reviewer.md
├── hooks/hooks.json
└── .mcp.json

# 本地加载
claude --plugin-dir ./my-plugin

# 添加市场与安装
/plugin marketplace add acme/claude-plugins
/plugin install my-plugin@acme-tools

# manifest:身份 + 组件路径
{
  "name": "my-plugin",
  "version": "1.0.0",
  "skills": "./skills/",
  "agents": "./agents/",
  "hooks": "./hooks/hooks.json",
  "mcpServers": "./.mcp.json"
}

把能力发布到多产品表面

先以 Skill 定义可重复工作流;需要连接外部系统时增加 MCP;需要可视化交互时由 MCP 返回 UI。最后由 manifest 与 marketplace 把这些组合成可安装体验。

  1. 最小插件从一个 Skill 开始。
  2. 需要状态/动作时接入 .mcp.json 或已注册的 .app.json。
  3. 用 repo/personal marketplace 测试。
  4. CLI 中用 /plugins 安装,并在新 session 验证。

验收重点:跨表面能力差异、MCP auth、结构化结果、可选 UI、Hooks 信任与 workspace policy。

filesystem + marketplace
my-plugin/
├── .codex-plugin/plugin.json
├── skills/review/SKILL.md
├── hooks/hooks.json
├── .mcp.json
├── .app.json
└── assets/

# 添加本地或 Git marketplace
codex plugin marketplace add ./local-marketplace-root
codex plugin marketplace add acme/codex-plugins --ref main

# CLI 中浏览安装;安装后新开 session
/plugins

# manifest:能力 + 安装界面
{
  "name": "my-plugin",
  "version": "1.0.0",
  "skills": "./skills/",
  "mcpServers": "./.mcp.json",
  "hooks": "./hooks/hooks.json",
  "interface": {
    "displayName": "My Plugin",
    "category": "Productivity"
  }
}
06 / Decision
Interactive decision lens

不要问谁最好,先问你在产品化什么

选择一个场景,右侧会给出推荐、理由、代价和落地起点。推荐基于当前官方能力边界,是工程判断,不替代 PoC。

Recommended direction
DeepSeek Harness

你的产品是“一个可替换的 agent runtime”,不是一套附着在既有宿主上的工作流。DeepSeek 的 Cordis seam、服务提供者与事件瀑布给了最深的结构控制权。

Why it fits

模型、工具、会话、agent loop、沙箱与 UI 都能作为插件参与组合,Provider swap 可改变整套执行世界。

Price to pay

Developer Preview 明示会发生破坏性变更;团队需要承担 TypeScript/Cordis、Profile patch 与运行时兼容成本。

Start here

先为 web profile 写一个只增加 tool 的 Bundle,再尝试替换一个 provider;不要第一天就改 agent loop。

Decision gate

如果 80% 需求只是团队命令、检查与外部工具连接,转向 Claude Code 或 Codex 会更省。

07 / Risk
Power changes the blast radius

能力越深,治理越不能靠 README

插件不是静态提示词包:它可能执行命令、连接远端服务、改变权限、注入模型上下文,甚至重组 agent loop。应把插件当软件供应链来管理。

DeepSeek Harness

Primary risk · Composition instability
  • 预览期接口与配置可能破坏性变化。
  • “没有特权核心”意味着错误插件可影响全局服务与循环。
  • Patch 按 row id 替换整段 config,遗漏字段可能改变语义。
  • MCP server 命令是 agent sandbox 外的受信执行代码。
建议:锁版本、保存 dump-config、为 seam 建契约测试、按 Profile 隔离实验与生产。

Claude Code

Primary risk · Component sprawl
  • Skill、Agent、Hook、MCP、LSP 可能形成触发与职责重叠。
  • Hook 与 MCP 可执行外部代码,安装来源必须可信。
  • 插件会增加每轮上下文成本,长期未用组件也有启动负担。
  • LSP 插件通常不替你安装 language server binary。
建议:安装前审组件清单与 context cost;最小 scope;为 Hook 做 dry-run 和拒绝日志。

Codex

Primary risk · Surface divergence
  • 同一 listing 不保证每个表面支持完全相同的能力。
  • IDE 扩展当前不支持插件,交付路径需单独设计。
  • MCP 的 auth、远程可靠性与数据边界成为核心运营负担。
  • Hooks 变更会使原哈希信任失效,必须重新审查。
建议:建立 surface matrix;MCP 工具最小化;把身份、权限、审计放在服务端而非 Skill 文本。
08 / Synthesis
They can be complementary

现实答案往往不是三选一

DeepSeek Harness 仓库已经包含 Claude Code 与 Codex 的 subagent provider,以及两者 Hook 配置到 Cordis 事件的桥接。这透露了一个更有价值的架构:把深度可编排运行时与成熟宿主生态连接起来。

Control plane

DeepSeek Harness 负责实验性运行时组合:模型路由、沙箱、会话、长任务、子代理 provider、观测与重放。

CordisProfilesProvider seamsSession events

Experience plane

Claude Code 承载工程团队工具箱;Codex 承载跨 ChatGPT 与 Codex 的业务能力、连接器和可选 UI。

SkillsAgentsMCPUIMarketplaces
推荐的边界:不要让三个宿主各自复制同一套业务逻辑。把确定性逻辑放在版本化服务或 MCP,流程与提示层放在各宿主 Skill,宿主特有治理放在 Hooks,DeepSeek 只在确实需要替换 runtime seam 时承担控制面。
09 / Clarify
Three common category errors

容易混淆的边界

01Plugin 等于 Skill 吗?
不等于。Skill 是模型可按需加载的指令、脚本与参考资料;Plugin 是更高一层的安装/分发或运行时组合边界。Claude 与 Codex 都能把多个 Skills 与 MCP/Hooks 打成一个 Plugin;DeepSeek 中 Skill 只是可挂载能力之一。
02MCP 等于 Plugin 吗?
不等于。MCP 定义模型如何连接工具、数据与服务。Plugin 可以内含或引用 MCP server,也可以完全没有 MCP、只提供 Skills。DeepSeek 甚至把“每台 MCP server 的适配器”本身实现为 Cordis plugin。
03DeepSeek 的“Everything is a Plugin”意味着插件生态一定更大吗?
不意味着。它首先是运行时架构声明,强调可替换性与可组合性;生态规模取决于分发、兼容、治理和作者工具。Claude 与 Codex 的市场与目录机制更直接面向“让别人安装”,DeepSeek 当前更像平台工程底座。
10 / Evidence
Primary sources only

证据索引与研究口径

资料核验截至 2026-08-20。DeepSeek 依据官方 GitHub master 分支与源码结构;Claude Code 与 Codex 依据各自官方文档。产品变化快,使用前请重新检查对应页面。

研究方法:先用官方产品定义校正“插件”口径,再沿 manifest → discovery → activation → runtime → governance 路径逐层对比。事实与分析分开标注;不使用星数、主观跑分或未经验证的生态规模作为架构优劣证据。