发布日期:2026-10-19

Skill 是重复任务的说明与资源包。DeepSeek Harness、Codex 读 .agents/skills,Claude Code 读 .claude/skills;共享源码,再给 Claude Code 建入口即可。


先说结论:共享的是 Skill 包,不是三个 Harness 的运行时

跨 Harness 共享的核心是 SKILL.md、脚本和参考资料,模型、工具、权限、沙箱与会话仍由各自宿主决定。

Claude Code 官方文档明确把 Skills 放在 Agent Skills 开放标准上,Codex 文档也把 Skills 定义为可复用的任务工作流。DeepSeek Harness 官方仓库则提供自己的 Skill 注册表、文件提供方和 skill 工具。

这意味着可以共用一套“发布说明”“代码审查”或“部署检查”流程,但不能因为 Skill 文件相同,就假设三个工具拥有相同的 Shell、MCP、浏览器或审批能力。

**三者的插件分发层也不是同一个市场。**DSH 用 bundle、plugin 和 profile 组合运行时,Codex/ChatGPT 使用 universal plugin directory,Claude Code 使用自己的插件与 marketplace;跨工具共享应从文件层开始,再分别打包。

三个工具的目录入口不一样

共享前要先解决发现路径,否则文件存在于仓库里,某个 Harness 仍可能完全看不到它。

宿主

项目级入口

用户级入口

发现与冲突规则

DeepSeek Harness

.dsh/skills、.agents/skills

~/.dsh/skills、~/.agents/skills

官方实现按 rank 合并;项目 .dsh/skills 的优先级高于项目 .agents/skills

Codex

.agents/skills,从当前目录向上扫描到仓库根

~/.agents/skills

同名 Skill 不合并,都会出现在选择器中;支持符号链接目录

Claude Code

.claude/skills,也支持嵌套目录、插件和 --add-dir

~/.claude/skills

企业、个人、项目层有优先级;插件 Skill 使用命名空间

DeepSeek Harness 的官方 Skills 文档列出 project-dsh 和 project-agents 两个项目来源,rank 分别为 100 和 200。它还支持 customSkillDirs,但这属于 DSH 配置,不是其他 Harness 的通用入口。

Codex 官方文档把 .agents/skills 作为仓库级目录,个人目录是 ~/.agents/skills。Claude Code 官方文档使用 .claude/skills/<skill-name>/SKILL.md,并允许项目、个人、插件和企业级分发。

DeepSeek Harness 官方仓库本身就采用了 .claude/skills -> ../.agents/skills 的映射,把同一份技能文件暴露给 Claude Code。

使用 Git 或 CI 时要保留符号链接;官方 README 提醒,core.symlinks=false 会把链接写成普通文本,导致 Claude Code 无法按技能目录发现它。

推荐方案:.agents/skills 做源,.claude/skills 做链接

对同时使用 DeepSeek Harness 和 Codex 的仓库,最省维护的源目录是 .agents/skills;Claude Code 通过 .claude/skills 下的符号链接接入同一目录。

repo/
├── .agents/
│   └── skills/
│       └── release-note/
│           ├── SKILL.md
│           ├── scripts/
│           │   └── collect-diff.py
│           └── references/
│               └── style-guide.md
└── .claude/
    └── skills/
        └── release-note -> ../../.agents/skills/release-note

在 macOS、Linux 或支持符号链接的开发环境中,可以这样接入:

mkdir -p .agents/skills .claude/skills
mkdir -p .agents/skills/release-note/scripts

ln -s ../../.agents/skills/release-note \
  .claude/skills/release-note

如果团队的 Windows 或 CI 环境不使用符号链接,就把 .agents/skills 作为源目录,在构建或初始化脚本中复制到 .claude/skills。复制方案要在 CI 中检查两份文件的哈希,避免一个 Skill 被改出两个版本。

SKILL.md 只写三者都理解的最小交集

可移植 Skill 的 frontmatter 先保留 name 和 description,平台专属字段放到适配层。

---
name: release-note
description: 根据 Git diff 生成中文发布说明,并标出兼容性变化与升级动作
---

# 发布说明工作流

1. 读取当前分支相对目标版本的 diff。
2. 按新增功能、修复问题、兼容性变化和升级动作整理。
3. 不猜测未验证的影响;缺少信息时列出待确认项。
4. 输出 300 字以内的发布说明,并附变更文件清单。

三个工具都需要可识别的名称和描述来建立 Skill 目录。描述应写清“解决什么任务、何时使用”,因为自动匹配只会先看到摘要,完整正文通常在调用时才加载。

脚本、模板和长篇资料放在 Skill 目录中,通过相对路径引用。Claude Code、Codex 和 DeepSeek Harness 都支持把说明与资源分开管理,但具体脚本能否执行,取决于宿主提供的工具和权限。

需要适配的内容,放进 adapters/

真正跨工具的 Skill 应把流程写成工具中立的动作,把命令名、审批和输出格式差异留给适配文件。

release-note/
├── SKILL.md
├── adapters/
│   ├── deepseek-harness.md
│   ├── codex.md
│   └── claude-code.md
├── scripts/
└── references/

例如,主文件只写“读取 Git diff”,而 adapters/claude-code.md 可以补充 Claude Code 的调用方式;adapters/codex.md 写 Codex 的项目规则;DeepSeek Harness 的适配文件则说明使用已有的文件或 Shell 工具。

这类拆分也能避免把 allowed-tools、disable-model-invocation、user-invocable 等 Claude Code 专属控制字段误放进所有宿主。需要控制副作用时,应在各自 Harness 中配置审批、沙箱和工具权限。

安装与验证:不要只看目录里有没有文件

共享完成后,要在三个 Harness 中分别做一次发现、加载和执行验证。

  1. 检查发现:确认 DSH 能从 .agents/skills 列出 Skill,Codex 能在 /skills 或技能选择器中看到它,Claude Code 能在 /skills 中看到它。

  2. 检查显式调用:在三个工具中分别用对应的 Skill 调用方式执行一次,例如 /release-note;Codex 也支持 $ 或 @ 选择 Skill,具体入口随客户端而变。

  3. 检查自动匹配:发送一条与 description 明确匹配的任务,确认模型会加载 Skill,而不是只把它当普通文件阅读。

  4. 检查资源路径:让 Skill 读取 references/style-guide.md,确认相对路径在三个宿主中都能解析。

  5. 检查副作用:用一个只读任务验证脚本,再用一个需要写文件的任务确认审批和沙箱配置符合预期。

如果修改了 SKILL.md 后旧会话没有变化,先重新发起调用。Skill 的正文会进入当前会话上下文,已有的工具结果不会因为文件被修改而自动重算。

常见失败原因

最常见的问题不是 Markdown 写错,而是路径、同名优先级和宿主专属能力被混在了一起。

  • 只放在 .claude/skills:Claude Code 能发现,DeepSeek Harness 和 Codex 不一定能发现。共享源应放在 .agents/skills,再给 Claude Code 建链接或复制入口。

  • 同时维护 .dsh/skills 与 .agents/skills 的同名目录:DSH 会按 rank 选择来源,容易出现你修改的不是实际生效版本的情况。

  • 把 Skill 当成插件:Skill 是说明与资源包;MCP 是工具连接;插件或 Bundle 是安装和分发容器。要增加新工具,仍需配置 MCP 或开发插件。

  • 把 AGENTS.md、CLAUDE.md 当成 Skill:它们是项目级规则文件,通常在会话启动时加载;Skill 更适合封装可按需调用的流程。

  • 把共享目录当成权限边界:任何 scripts/ 都要按当前宿主权限执行,不能因为来自 Git 仓库就自动可信。

结语

跨 DeepSeek Harness、Codex 和 Claude Code 共享 Skills,最稳的路径是“一个版本化 Skill 源码,三个宿主适配入口”。先用 name、description 和 Markdown 正文建立兼容核心,再按工具补充目录链接、调用方式和权限配置。

本文数据与路径截至 2026 年 10 月 19 日,依据 DeepSeek Harness 官方仓库、OpenAI Codex 文档、Claude Code 官方文档和 Agent Skills 规范核验。各工具仍在更新,实际加载结果以当前版本的官方文档和 /skills 列表为准。

参考资料