Agents with Receipts · 有据可查:agentic coding 实践手册
RECEIPT #— · /rosetta/ 在 GitHub 查看源文件

Rosetta Stone:跨工具概念对照

同一个概念,每家叫法和放置位置都不同。换工具、多工具并用、或给团队写规范时用这张表。

2026-09-11 逐格复核:每个单元格的文字本身就是对应官方文档页的链接,点开即可验证。修正时请附官方链接提 PR。本轮复核(首轮 2026-08)修正了 Codex 侧四格与 Cursor/Copilot 侧四格的措辞或链接指向;只有单个来源无法覆盖的补充事实列在文末。

主对照表

概念 Claude Code OpenAI Codex Cursor GitHub Copilot
项目级 memory CLAUDE.md(cwd 向上逐层收集拼接) AGENTS.md(项目根→cwd 向下,AGENTS.override.md 优先) .cursor/rules/*.mdc + 原生 AGENTS.md(嵌套合并) .github/copilot-instructions.md + AGENTS.md/CLAUDE.md
用户级 memory ~/.claude/CLAUDE.md ~/.codex/AGENTS.md User Rules(Customize → Rules 全局偏好) CLI:~/.copilot/copilot-instructions.md;GitHub.com 仅 Copilot Chat 支持个人指令
条件/路径规则(glob) .claude/rules/*.md,frontmatter paths: 无 glob 触发机制;目录粒度靠嵌套 AGENTS.md .mdc frontmatter globs: + alwaysApply .github/instructions/*.instructions.md,applyTo: glob
技能 Skills .claude/skills/<name>/SKILL.md .agents/skills/(REPO→USER→ADMIN→SYSTEM 四级) .cursor/skills/、.agents/skills/,兼容 .claude/ .codex/ .github/skills/,兼容 .claude/skills/ .agents/skills/
钩子 Hooks settings.json hooks 键:PreToolUse 可 deny .codex/hooks.json:PreToolUse 等 10 个事件,需 /hooks 授信 .cursor/hooks.json:beforeShellExecution 等,退出码 2 阻断 .github/hooks/*.json:preToolUse 可 approve/deny
子代理/委派 .claude/agents/*.md(Markdown + frontmatter) .codex/agents/*.toml(用户级 ~/.codex/agents/) .cursor/agents/*.md,兼容 .claude/ .codex/ .github/agents/*.agent.md → subagent;cloud agent 走 PR
沙箱(OS 级) 内置 Bash 沙箱:Seatbelt / bubblewrap,sandbox.* 设置 --sandbox 三档 read-only / workspace-write / danger-full-access;OS 实现 Seatbelt / bubblewrap / Windows sandbox Seatbelt / Landlock+seccomp,.cursor/sandbox.json CLI 本地沙箱(experimental,MXC);cloud 沙箱基于 Azure Container Apps Sandboxes
审批模式 六档 permission modes + allow/ask/deny 规则 approval_policy:untrusted / on-request / never Run Modes:Auto-review / Allowlist / Run Everything --allow-tool/--deny-tool 分层:deny 优先于 allow,也优先于 --allow-all
MCP 配置 .mcp.json(项目)/ ~/.claude.json(用户) config.toml 的 [mcp_servers] 段 .cursor/mcp.json / ~/.cursor/mcp.json CLI:~/.copilot/mcp-config.json + 项目 .mcp.json;cloud 在仓库 Settings
headless / CI claude -p(--output-format json 等) codex exec(--json、CODEX_API_KEY) agent -p(二进制名就叫 agent,CURSOR_API_KEY) copilot -p(配 --allow-tool 最小权限)

2026-09 复核后的真实格局:收敛比想象快

核实过程推翻了”生态碎片化”的旧叙事——四家已在四个层面收敛:

  1. AGENTS.md 家族:Cursor 和 Copilot 都已原生读取 AGENTS.md(Copilot 连 CLAUDE.md 也读)。根级 AGENTS.md 做单一事实源的策略比一年前更成立。
  2. Skills 开放标准:四家全部基于 agentskills.io,且 Cursor/Copilot/Codex 互认对方的技能目录。跨三家的最大公约数是 .agents/skills/(Claude Code 目前仍只读 .claude/skills/)。
  3. Hooks 全员到齐:确定性拦截(preToolUse 级 deny)四家都有官方实现,只是文件位置和事件名不同。
  4. OS 级沙箱全员到齐:macOS 清一色 Seatbelt,Linux 是 bubblewrap 或 Landlock+seccomp。

就近规则差异(monorepo 里最容易踩的坑)

同样是”就近优先”,四家语义不同:

工具 实际语义
Claude Code 从 cwd 向上收集每层 CLAUDE.md,全部拼接(根→cwd 顺序,越近越靠后);cwd 之下子目录的按需加载(memory)
Codex 从项目根向下走到 cwd,每目录取一个,按 cwd 而不是被改文件——编辑 services/x.ts 不会加载 services/AGENTS.md,除非从那里启动(AGENTS.md discovery)
Cursor 嵌套 AGENTS.md 合并,”更具体的优先”;CLI 额外读根级 CLAUDE.md(Rules · CLI)
Copilot VS Code “最近的优先”(仓库指令);CLI 官方明确不定义优先级,只做发现与去重(CLI 指令)

通用互操作层

  1. memory:根级 AGENTS.md 单一事实源,CLAUDE.md 软链过去(ln -s AGENTS.md CLAUDE.md)——四家全覆盖。
  2. skills:面向 Codex/Cursor/Copilot 的放 .agents/skills/;要同时喂 Claude Code 就在 .claude/skills/ 放软链。
  3. hooks 与沙箱配置没有跨工具标准——这层按工具各写各的,也是这张表存在的意义。

复核补充:一格需要两个来源的事实(2026-09-11)

主对照表每格的文字本身就是它唯一的链接,因此把下面这些「一个来源不够」的事实单独列出:

  • Cursor User Rules 不落盘:官方原文 “User rules are also not migrated since they are not stored on the file system.”(Cursor Skills)——表里那一格链接指向的是它「定义在 Customize → Rules」的另一半。
  • Codex hooks 的事件清单一共 10 个:SessionStart、SubagentStart、PreToolUse、PermissionRequest、PostToolUse、PreCompact、PostCompact、UserPromptSubmit、SubagentStop、Stop(Codex Hooks)。
  • Copilot 的 cloud 审批与出网:cloud agent 由 GitHub Actions 驱动、防火墙只在该 Actions 环境内生效(Customize the firewall);PR 触发的 workflow 需有写权限的人批准,且 agent 不能直接推默认分支(Responsible use of Copilot agents)。
  • Copilot 在 GitHub.com 上设置个人指令的位置:只在 Copilot Chat 内(Adding personal instructions)。