DeepSeek Harness
内核
模型适配器、工具注册表、会话日志乃至 agent loop 自身都以 Cordis 插件挂载;服务、类型化事件与可逆 effect 进入共享 context。官方明确写道:没有需要打补丁的特权核心。D2
DeepSeek Harness 把插件当作运行时本体;Claude Code 把插件当作开发者工作流套装;Codex 把插件当作跨 ChatGPT 与 Codex 的通用能力载体。它们使用同一个词,却在回答三个不同的问题。
DeepSeek 描述的是微内核的组成单元;Claude Code 描述的是宿主上的扩展组件包;Codex 描述的是跨产品的能力与连接分发包。因此,简单比较“谁的插件更多”会得到错误结论。
模型适配器、工具注册表、会话日志乃至 agent loop 自身都以 Cordis 插件挂载;服务、类型化事件与可逆 effect 进入共享 context。官方明确写道:没有需要打补丁的特权核心。D2
插件是自包含目录,把 Skills、Agents、Hooks、MCP、LSP 等组件交给宿主发现与注册。它不重构 Claude Code 内核,而是让开发工作流以文件约定和市场目录方式复用。C1
插件以 Skill 作为工作流层、以 MCP 作为工具与数据层,并可由 MCP 返回 UI;同一个公共目录服务于 ChatGPT 和 Codex,个别能力再按宿主表面启用。O1
三者都认可四类基本扩展:给模型的指令、可调用的工具、生命周期的拦截、以及团队可复用的分发。差异在于这些能力是否能深入宿主本体,以及面向单一编码环境还是跨产品网络。
本文把“插件”拆成运行时、组件包、分发包三个层次。所有“更强 / 更适合”的表述均为基于官方机制的分析判断,不是官方评级。
下面不是品牌宣传语,而是插件进入运行时的真实路径。关键观察:DeepSeek 的箭头最终落到共享 context 与事件瀑布;Claude 落到宿主组件注册表;Codex 落到 Skill—MCP—UI 的跨表面组合。
web / headless / 自定义;决定有序 bundle 栈ctx.llm · ctx.tools · ctx.sessions · ctx.agentLoop“系统由哪些插件组成?”——先组合运行时,再运行 agent。
“这个开发工作流需要哪些组件?”——先打包工具箱,再交给宿主。
“用户要安装什么能力?”——先定义体验,再选择 Skill、MCP 与 UI。
用顶部 Lens 只看理念、架构、落地或治理;输入关键词可检索。按 / 聚焦搜索,按 Esc 清空。
dsh.bundle.patch 指向 cordis.patch.yml;普通 Cordis plugin 导出 apply/config。.claude-plugin/plugin.json;组件目录位于插件根。.codex-plugin/plugin.json;组件目录、.mcp.json、.app.json 位于插件根。inject() 技能内容;只是众多插件能力之一。SKILL.md + 支持文件;模型可按描述自动调用,也可通过命名空间快捷调用。ctx.tools.register();MCP 每台 server 对应一个插件,将发现的 tools 注册进同一管线。ctx.subagents provider seam;可切换 in-process、fork、ACP、Codex、Claude Code 等提供者。hooks/hooks.json 对 PreToolUse、PostToolUse、Stop 等事件响应;命令进程可执行策略与自动化。session/event,通过 agent API 回写输入;Web Chat 可注册节点 renderer。dsh plugin --profile <name> add <package>,实质转发 pnpm;随后重启目标 Profile。claude --plugin-dir 本地试用;或添加 marketplace 后 /plugin install name@market。codex plugin marketplace add 配置源;CLI 用 /plugins 浏览安装,随后新开 session。dsh-plugin topic 用于可发现性,尚无中心市场主叙事。/reload-plugins 或重启;更新后路径版本化。在 DeepSeek Harness 中,agent loop、会话、LLM 与工具系统本身也只是挂载在 Cordis context 上的插件,因此“插件开发”近似于平台内核开发。
在 Claude Code 中,插件通过丰富且清晰的宿主槽位组合工程能力;在 Codex 中,插件更像一种产品化封装,让同一能力在多个 OpenAI 表面被发现、安装与治理。三者并非线性强弱,而是抽象层不同。
插件落地失败往往不是代码问题,而是卡在发现、信任、注册、激活或选择。三者的关键路径完全不同。
每条路径都刻意只保留能证明架构差异的文件与命令。复制按钮可直接取走示例;具体版本与企业策略仍应以当前官方文档为准。
目标不是复制一个技能文件,而是向运行时组合树插入一层。Bundle 的本体是 patch 列表,也可附带真正的 Cordis runtime plugin。
验收重点:配置层顺序、服务 key 冲突、effect 卸载、session event 是否可重放。
# 快速启动 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 代码智能。
--plugin-dir 本地试用和验证。验收重点:Skill 触发准确率、Hook 误伤率、MCP 最小权限、LSP 外部 binary、每轮 context cost。
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 把这些组合成可安装体验。
.mcp.json 或已注册的 .app.json。/plugins 安装,并在新 session 验证。验收重点:跨表面能力差异、MCP auth、结构化结果、可选 UI、Hooks 信任与 workspace policy。
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"
}
}
选择一个场景,右侧会给出推荐、理由、代价和落地起点。推荐基于当前官方能力边界,是工程判断,不替代 PoC。
你的产品是“一个可替换的 agent runtime”,不是一套附着在既有宿主上的工作流。DeepSeek 的 Cordis seam、服务提供者与事件瀑布给了最深的结构控制权。
模型、工具、会话、agent loop、沙箱与 UI 都能作为插件参与组合,Provider swap 可改变整套执行世界。
Developer Preview 明示会发生破坏性变更;团队需要承担 TypeScript/Cordis、Profile patch 与运行时兼容成本。
先为 web profile 写一个只增加 tool 的 Bundle,再尝试替换一个 provider;不要第一天就改 agent loop。
如果 80% 需求只是团队命令、检查与外部工具连接,转向 Claude Code 或 Codex 会更省。
插件不是静态提示词包:它可能执行命令、连接远端服务、改变权限、注入模型上下文,甚至重组 agent loop。应把插件当软件供应链来管理。
DeepSeek Harness 仓库已经包含 Claude Code 与 Codex 的 subagent provider,以及两者 Hook 配置到 Cordis 事件的桥接。这透露了一个更有价值的架构:把深度可编排运行时与成熟宿主生态连接起来。
DeepSeek Harness 负责实验性运行时组合:模型路由、沙箱、会话、长任务、子代理 provider、观测与重放。
Claude Code 承载工程团队工具箱;Codex 承载跨 ChatGPT 与 Codex 的业务能力、连接器和可选 UI。
资料核验截至 2026-08-20。DeepSeek 依据官方 GitHub master 分支与源码结构;Claude Code 与 Codex 依据各自官方文档。产品变化快,使用前请重新检查对应页面。