ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

agents24 多 Harness 能力矩阵实战:一套 Markdown 插件源如何原生适配 Claude Code、Codex、Cursor、OpenCode 与 Antigravity

agents24 多 Harness 能力矩阵实战:一套 Markdown 插件源如何原生适配 Claude Code、Codex、Cursor、OpenCode 与 Antigravity agents24 多 Harness 能力矩阵实战一套 Markdown 插件源如何原生适配 Claude Code、Codex、Cursor、OpenCode 与 Antigravity【免费下载链接】agentsMulti-harness agentic plugin marketplace for Claude Code, Codex, Cursor, OpenCode, GitHub Copilot, and Google Antigravity项目地址: https://gitcode.com/GitHub_Trending/agents24/agents本文围绕 agents24 开源仓库的跨 Harness 能力矩阵docs/harnesses.md展开深入讲解这套 agentic plugin marketplace 如何以plugins/下的 Claude Code Markdown 为唯一事实源通过 tools/adapters/ 下的适配器为五种 Harness 生成各自原生的制品并阐明各 Harness 的能力差异、优雅降级规则、安装路径与再生成流程。读完本文你将掌握每个 Harness 支持哪些组件与能力、同一份源内容在不同 Harness 中会被如何改写、哪些产物提交进仓库而哪些需要本地生成以及gh skill/npx skills这类只装技能的轻量安装方式。设计前提一个事实源五套原生制品claude-agents本文简称 agents24是一个多 Harness 插件市场。它的核心设计原则是事实源source of truth位于仓库根目录的 plugins/全部以 Claude Code 的 Markdown 形式编写agents 为.md、skills 为SKILL.md、commands 为.md各 Harness 的制品由 tools/adapters/ 下的适配器生成且目标是每个 Harness 拿到符合自身惯例的原生产物而不是最低公分母的翻译能力矩阵的单一数据源是 tools/adapters/capabilities.py该文件里的Capabilitydataclass 与CAPABILITIES字典同时被适配器用于优雅降级、文档生成器用于生成本文所对应的docs/harnesses.md以及 plugin-eval用于harness_portability评分维度消费。文档头部的注释也明确写道本文镜像了capabilities.py中的矩阵改动应编辑源码后通过make docs重新生成。从源码结构看每个 Harness 对应一个继承自HarnessAdapter基类tools/adapters/base.py的适配器基类要求实现emit_plugin()按插件逐个产出制品并可覆写emit_global()产出跨插件的市场注册表、上下文文件等。支持的 Harness 与产物路径以下是文档给出的完整 Harness 支持清单Harness状态生成路径Claude Code事实源plugins/、.claude-plugin/marketplace.jsonOpenAI Codex CLI受支持已提交.agents/plugins/marketplace.json、plugins/*/.codex-plugin/plugin.jsongitignored.codex/skills/、.codex/agents/Cursor(2.5)受支持已提交.cursor-plugin/、.cursor/rules/精选规则——指向源plugins/OpenCodesst/opencode受支持gitignored.opencode/agents/、.opencode/commands/、.opencode/skills/、opencode.jsonGoogle Antigravity CLIagy受支持gitignored.antigravity/plugins/name/{skills/,agents/,commands/}Agent Skills 安装器gh skill2.90、npx skills受支持仅技能不生成任何东西两者直接读取 GitHub 上的plugins/*/skills/值得注意的分工是Codex 与 Cursor 走已提交的瘦注册表路线注册表条目指向源plugins/安装时直接读源技能树而OpenCode、Antigravity以及 Copilot走克隆后本地生成路线变换后的树体积大故 gitignored。这背后的取舍在文档中被称为 native install is lean只提交小型 JSON 注册表指向源目录大体积的变换树留待本地用make generate重新生成。能力矩阵六大维度逐一对照文档给出了完整的跨 Harness 能力对照表这是判断某能力在此 Harness 上是否可用、以何种形式可用的核心依据能力Claude CodeCodexCursorOpenCodeAntigravitySkills原生 SKILL.md✅✅✅ 经.claude/✅ 经.opencode/skills/✅原生每个插件自包含Subagents原生 Markdown✅TOML 格式✅ 经.claude/✅frontmatter 不同✅agents/name.mdinvoke_subagent/define_subagentSlash commands✅转换为 skills✅✅commands/p/cmd.tomlagy 报告为转换为 skills插件市场✅—✅ (2.5)—✅agy plugin install namemarketplace/agy plugin link并行 subagents✅✅✅✅✅每 Agent 工具白名单✅tools:仅sandbox_mode仅readonly:✅permission:块✅tools:agy 原生名TodoWrite工具✅——✅—Task/Agent派生工具✅散文点名✅✅task✅invoke_subagent/define_subagentMCP servers✅✅✅✅✅生命周期 hooks✅——✅TS 插件✅上下文文件CLAUDE.mdAGENTS.md32 KiB 上限AGENTS.mdAGENTS.md/~/.claude/CLAUDE.mdAGENTS.md原生读取上下文文件建议上限150 行 / 500 tokens150 行 / 500 tokens150 行 / 500 tokens150 行 / 500 tokens150 行 / 500 tokensSkill 正文硬上限无8 KB无无无工具名大小写CamelCaseRead动作动词无工具词汇表小写小写严格小写agy 原生名裸模型别名✅fable/opus/sonnet/haiku映射到 GPT-5.x 家族用inherit完整 provider/model-id映射到层级别名pro/flash/inherit源码层面的对应关系能力标志的数据模型每个Capability实例都带有skills_native、agents_native、commands_native、plugin_marketplace、parallel_agents、tool_allowlist_per_agent、todowrite、task_spawn、mcp_servers、hooks、context_file_name、context_file_max_lines、skill_body_max_bytes、tool_name_case、bare_model_aliases等字段见 tools/adapters/capabilities.py。例如_CODEX_SKILL_CAP 8 * 1024与_CONTEXT_LINES_CAP 150直接对应矩阵中 Codex 的 8 KB 技能上限与 150 行上下文建议上限。模型别名映射矩阵底部裸模型别名一行的具体映射实现在MODEL_ALIASEStools/adapters/capabilities.py例如源里的model: opus在 Codex 下解析为gpt-5.5、在 Cursor 下改写为inherit、在 OpenCode 下改写为anthropic/claude-opus-4-8、在 Antigravity 下改写为层级别名pro。resolve_model()还会在遇到未知别名时通过EmitResult.warnings提示用户其显式模型选择被覆盖。工具名映射TOOL_NAME_MAPStools/adapters/capabilities.py定义了 CamelCase 工具名到各 Harness 原生形式的改写表。Antigravity 的映射Read→view_file、Edit→replace_file_content、Write→write_file、Bash→run_command、Grep→grep_search、Agent/Task→invoke_subagent在代码注释中特别注明是对照已安装的 agy 1.1.14 二进制自带的文档逐一确认过的未被确认的Glob/WebFetch/WebSearch/TodoWrite宁可留空原样透传也不猜测映射。Claude Code 原生特性其余 Harness 缺失或降级的能力Claude Code 是事实源 Harness它通过CLAUDE.md指向AGENTS.md的符号链接读取规范上下文文件。文档明确列出它支持而其他 Harness 会降级或缺失的特性每 Agent 工具白名单tools:frontmatter 被原样执行Cursor/Codex 更粗糙OpenCode 适配器将其翻译为permission:块。Task/Agent派生工具可扇出并行 subagentCodex 需要在散文里点名某个 agent 来委托。TodoWrite原生进度追踪Codex/Cursor/Antigravity 均无。Slash-command 市场完整的/plugin install、/plugin marketplace工作流。Claude-Code-only 的路径有两个.claude-plugin/marketplace.json—— 插件注册表事实源plugins/name/.claude-plugin/plugin.json—— 每插件清单与之对应supported_harnesses()tools/adapters/capabilities.py明确把claude-code排除在生成目标之外它只是源不是适配目标。优雅降级同一份源内容如何被逐 Harness 改写适配器会机械地处理不兼容项插件作者不需要记住各 Harness 的规则就能写出可移植内容。文档给出的降级对照表如下源模式CodexCursorOpenCodeAntigravitytools: Read, Grepagent 白名单丢弃sandbox_mode read-only启发式丢弃Cursor 不执行转换为permission:deny 块改写为 agy 原生工具名color: blueagent丢弃丢弃丢弃丢弃model: opusagent映射到gpt-5.5改写为inherit改写为anthropic/claude-opus-4-8映射到promodel: fableagent映射到gpt-5.5改写为inherit改写为anthropic/claude-fable-5映射到pro正文中的TodoWrite无等价物——原样保留无等价物——原样保留原样可用无等价物Skill 正文 8 KB拆入references/details.md透传透传透传名为worker的 agent加命名空间为plugin__worker透传透传透传无plugin__命名空间——插件目录本身已隔离Slash commandcommands/x.md转换为 skill透传改写为.opencode/commands/commands/plugin/x.toml正文始终内联绝不{path}注入源码印证降级规则的实现细节Codex 的sandbox_mode启发式tools/adapters/codex.py源 frontmatter 完全没有tools:字段 → 视为默认全工具 →workspace-write有tools:且全部是只读工具Read/Glob/Grep/WebFetch/WebSearch→read-only其余 →workspace-write。Codex 的 8 KB 拆分tools/adapters/codex.py_split_body_if_oversized先按##小节边界累计内容且会跳过代码块内的假标题仍超限则在 UTF-8 码点边界硬切优先选换行符并给头部追加一行指针注释指向references/details.md。有效上限SKILL_BODY_CAP 7400字节为 frontmatter 与指针注释预留了约 700 字节余量。如果源技能已有references/details.md溢出内容会写入references/_overflow.md以免互相覆盖。OpenCode 的permission:块tools/adapters/opencode.py严格区分三种语义——无tools:键默认不限制→ 不输出 permission 块显式tools: []锁定→ 输出全 deny 块但skill与task基础能力始终 allow否则会悄悄剥夺受限 agent 的子代理委托与技能调用有白名单 → 允许列出的工具、拒绝其余并把 MCP 工具排除在块外走 MCP 配置。函数注释里的对照表正是矩阵中OpenCode 转换为permission:deny 块的展开。Antigravity 的命令内联tools/adapters/antigravity.py_inline_command_prompt把 Claude 的$ARGUMENTS占位符翻译为 agy 的{{args}}且只有当源正文完全没有$ARGUMENTS时才追加尾部{{args}}块避免参数被绑定两次。之所以始终内联是因为实测发现agy plugin validate结构上接受{path}注入语法但从不求值无法确认其运行时能否解析。输出路径已提交与 gitignored 的划分文档给出了完整的提交/忽略清单已提交committed.claude-plugin/marketplace.json # SOURCE OF TRUTH plugins/ # SOURCE OF TRUTH AGENTS.md # canonical context file .agents/plugins/marketplace.json # Codex marketplace registry (source.path: ./plugins/name) plugins/*/.codex-plugin/plugin.json # per-plugin Codex manifest (skills: ./skills/) .cursor-plugin/, .cursor/rules/ # Cursor marketplace curated rules (point at source)Gitignored用make generate重新生成.codex/skills/, .codex/agents/ # transformed Codex trees (for ~/.codex/skills symlink recipe) .opencode/agents/, .opencode/commands/, .opencode/skills/, opencode.json .antigravity/plugins/name/ # self-contained agy plugins (skills/, agents/, commands/) .copilot/agents/, .copilot/skills/, .copilot/commands/几点源码级补充Codex 的每插件清单plugins/name/.codex-plugin/plugin.json中skills: ./skills/表示直接从源技能目录读取 SKILL.md因此无需提交变换后的技能树tools/adapters/codex.pycodex-marketplace安装器的 zod schema 要求description非空适配器在源插件缺省时回退为插件名tools/adapters/codex.py。Cursor 适配器只提交.cursor-plugin/plugin.json仅清单不列组件Cursor 会从.claude/自动发现与根级.cursor-plugin/marketplace.json镜像.claude-plugin/结构但按 Cursor 要求带owner字段、条目用source而非path另把手选的.cursor/rules/*.mdc从 tools/adapters/cursor_rules/ 拷入tools/adapters/cursor.py。MDC frontmatter 只允许description/globs/alwaysApply三个键校验器会拒绝其他键。AGENTS.md由适配器校验而非生成Codex 适配器的emit_global会检查仓库根的AGENTS.md是否超过 32 KiB 硬上限与 150 行目录上限tools/adapters/codex.py因为它是 Codex/Cursor/OpenCode/Antigravity 共用的跨 Harness 上下文文件Claude Code 则通过CLAUDE.md符号链接读取同一份文件。原生安装Codex、Cursor、Antigravity、OpenCode 各走各的路文档给出的原生安装方式按是否需要克隆 生成分为两类Codexnpx codex-marketplace add wshobson/agents当仓库是当前目录时还会被自动发现为项目级市场然后逐个安装插件。Codex 直接从plugins/name/skills/读SKILL.md超过 8 KB 上限的技能会在加载时被 Codex 截断。gitignored 的.codex/skills/副本保留给~/.codex/skills符号链接方案使用。Cursor添加市场然后/plugin install name。条目指向源./plugins/nameCursor 直接从源读取SKILL.md与.mdagent。Antigravity没有从 URL 一步安装的途径这是瘦化权衡的代价。需要先克隆仓库再make generate HARNESSantigravity然后按插件执行agy plugin install .antigravity/plugins/name或一次性执行make install-antigravity把所有生成的插件符号链接进~/.gemini/antigravity-cli/plugins/agy 的配置目录。OpenCode同样没有一步式 URL 安装。克隆仓库后执行make install-opencode先跑 generate再把.opencode/符号链接到~/.config/opencode/。Skills-only 安装器gh skill与npx skillsgh skillGitHub CLI 2.90与npx skillsvercel-labs 的 skills可以直接从 GitHub 把 Agent Skills 装进任何受支持的 agent两者无需克隆、无需市场、无需 generate 步骤自动发现本仓库中每一个plugins/plugin/skills/skill/目录。它们只携带技能不带 agents、commands 或 hooks。文档给出的完整命令# gh skill列表显示为 [plugins] plugin/skill按裸技能名或精确路径选择 gh skill install wshobson/agents # 交互式浏览 gh skill install wshobson/agents python-testing-patterns gh skill install wshobson/agents plugins/python-development/skills/python-testing-patterns # 精确路径跳过目录树遍历 gh skill install wshobson/agents --all --agent claude-code --scope user gh skill install wshobson/agents python-testing-patterns --pin sha # npx skills按裸技能名列表与选择 npx skills add wshobson/agents --list npx skills add wshobson/agents --skill python-testing-patterns -a claude-code npx skills add wshobson/agents --all -g需要注意的陷阱文档原文的 Gotchas两者都按裸技能名安装到agent/skills/skill/。gh skill列表中的plugin/前缀仅供展示python-development/python-testing-patterns不是合法选择器合法的是python-testing-patterns或精确的plugins/...路径。技能目录名在全部插件间唯一make smoke-test保证这一点——重名会在安装时冲突。gh skill在有 GitHub Release 时从最新 release 安装仓库无 release 时退回main。本仓库不发布 release所以安装始终跟随main一旦创建 release安装会被冻结在该 tag 直到下一个 release。本地检出场景执行make generate-all后npx skills add ./agents也会遍历 gitignored 的.codex/、.opencode/、.copilot/树并列出它们的副本。要么改从 GitHub 源安装要么用gh skill install . --from-local会跳过隐藏目录。Spec 门禁gh skill publish --dry-run会按 agentskills.io 规范校验每个 SKILL.md名称模式、名称与目录名一致、必需 frontmatter。make smoke-test会运行它并用真实二进制走通两个 CLI 的发现流程。再生成与验证make 目标一览已提交的注册表指向源变换后的树按需再生成。贡献者提交源改动前必须运行make generate-all——CI 会在已提交注册表发生漂移时失败。make generate HARNESScodex make generate HARNESScursor make generate HARNESSopencode make generate HARNESSantigravity # 或者一次性全部生成提交源改动前运行 make generate-all # 可选的全局安装 make install-opencode make uninstall-opencode make install-antigravity make uninstall-antigravity从 Makefile 可以看到完整的工具链编排MakefileHARNESSES : codex copilot cursor opencode antigravitygenerate-all循环遍历它们支持单插件生成make generate HARNESScodex PLUGINpython-developmentmake validate结构校验、make gardendoc-gardener 漂移/死链/上限检测、make smoke-test真实 CLI 冒烟测试PATH 上没有的 CLI 自动跳过CI 会把 OpenCode/Antigravity/Codex 的跳过转为硬性要求所有 Python 工具都通过uv运行uv run --project plugins/plugin-eval python ...插件级 venv 通过 extra-paths 配置使tools/adapters/可导入。全局安装与卸载OpenCode、Copilot、Antigravity 支持把生成产物全局安装到用户级发现路径make install-opencode # symlink .opencode/ → ~/.config/opencode/ make uninstall-opencode make install-copilot # symlink .copilot/ → ~/.copilot/ make uninstall-copilot make install-antigravity # symlink each .antigravity/plugins/p/ → ~/.gemini/antigravity-cli/plugins/p/ make uninstall-antigravity # 强制替换冲突符号链接 make install-copilot FORCE1 make install-antigravity FORCE1Copilot 在仓库级从.copilot/agents/与.copilot/skills/发现 agent 与技能在用户级从~/.copilot/agents/与~/.copilot/skills/发现。适配器输出到.copilot/如需用户级发现使用make install-copilot。外部集成Pensyve 与 HOL GuardPensyve外部记忆集成Claude Code 市场把 Pensyve 作为外部git-subdir插件收录。对于生成式 Harness请使用 Pensyve 上游的 Harness 原生集成Harness上游集成Claude Codehttps://github.com/major7apps/pensyve.git路径integrations/claude-codeCodex CLIintegrations/codex-pluginCursorintegrations/cursorOpenCodeintegrations/opencode-pluginCopilot.copilot/仓库级或~/.copilot/经make install-copilot全局安装HOL Guard外部安全集成Claude Code 市场把 HOL Guard 作为来自hashgraph-online/hol-guard-plugin仓库distributions/wshobson-agents路径的外部git-subdir插件收录。该审查负载暴露可移植的hol-guard与plugin-scanner技能且默认保持本地决策Guard Cloud 既非必需也不被推广。该市场条目仅作为 Claude Code 的发现面不会把 HOL Guard 加入生成的 Codex、Cursor、OpenCode、Antigravity 或 Copilot 注册表。审查负载被固定pinned在 commit43b2dda59e9f07057c52e69fd7426188faae1488并安装精确的本地 CLI 版本hol-guard2.2.119与plugin-scanner2.2.119安装前需要用户批准。更新审查负载时需要同时推进市场清单里的sha以及市场/外部清单的版本号。当用户明确请求防护时本地 HOL Guard 运行时可以修改受支持 Harness 的 hook/设置配置本仓库中生成的 Harness 输出不会打包或改写外部 HOL Guard 负载。关键要点回顾单一事实源、多套原生制品是整套架构的核心作者只维护plugins/下的 Claude Code Markdown五种 Harness 的原生形态全部由 tools/adapters/ 中的适配器机械生成。能力矩阵不是营销话术而是可执行代码tools/adapters/capabilities.py 的CAPABILITIES、TOOL_NAME_MAPS、MODEL_ALIASES三个数据结构同时驱动降级改写、文档生成与 plugin-eval 的可移植性评分。瘦提交 本地生成Codex/Cursor 走已提交的 JSON 注册表直接指向源目录OpenCode/Antigravity/Copilot 的变换树 gitignored克隆后make generate即可再生。权限语义被小心保留OpenCode 的permission:块严格区分未设置tools:与显式空列表Antigravity 与 Codex 的工具白名单降级各有启发式避免静默泄漏权限。只装技能的轻量通道gh skill install与npx skills add无需克隆即可把任意技能装进任意 agent但要留意裸名安装、release 行为与本地检出等陷阱。延伸阅读docs/authoring.md —— 面向插件作者的可移植内容风格指南docs/architecture.md —— 整体设计原则粒度化、可组合性、上下文效率docs/plugin-eval.md ——harness_portability评分维度所在的评估框架docs/usage.md —— 各 Harness 的完整安装、命令与工作流【免费下载链接】agentsMulti-harness agentic plugin marketplace for Claude Code, Codex, Cursor, OpenCode, GitHub Copilot, and Google Antigravity项目地址: https://gitcode.com/GitHub_Trending/agents24/agents创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表