agents-with-receipts

Rosetta Stone:跨工具概念对照

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

2026-08 逐格核实:每个单元格的文字本身就是对应官方文档页的链接,点开即可验证。修正时请附官方链接提 PR。

主对照表

概念 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(设置 UI,不落盘) CLI:~/.copilot/copilot-instructions.md;GitHub.com 在 Chat 设置里
条件/路径规则(glob) .claude/rules/*.md,frontmatter paths: 无 glob 触发机制;目录粒度靠嵌套 AGENTS.md .mdc frontmatter globs: + alwaysApply .github/instructions/*.instructions.mdapplyTo: glob
技能 Skills .claude/skills/<name>/SKILL.md .agents/skills/(REPO→USER→ADMIN 多级) .cursor/skills/.agents/skills/,兼容 .claude/ .codex/ .github/skills/,兼容 .claude/skills/ .agents/skills/
钩子 Hooks settings.json hooks 键:PreToolUse 可 deny .codex/hooks.jsonPreToolUse 等 11 事件,需 /hooks 授信 .cursor/hooks.jsonbeforeShellExecution 等,退出码 2 阻断 .github/hooks/*.jsonpreToolUse 可 approve/deny
子代理/委派 .claude/agents/*.md(Markdown + frontmatter) .codex/agents/*.toml + Codex cloud 并行任务 .cursor/agents/*.md,兼容 .claude/ .codex/ .github/agents/*.agent.md → subagent;cloud agent 走 PR
沙箱(OS 级) 内置 Bash 沙箱:Seatbelt / bubblewrap,sandbox.* 设置 --sandbox 三档:Seatbelt / bubblewrap / Windows sandbox Seatbelt / Landlock+seccomp,.cursor/sandbox.json CLI 本地沙箱(experimental);cloud 用 Actions 容器+防火墙
审批模式 六档 permission modes + allow/ask/deny 规则 approval_policy:untrusted / on-request / never Run Modes:Auto-review / Allowlist / Run Everything --allow-tool/--deny-tool 分层;cloud 靠 workflow 批准+人工合并
MCP 配置 .mcp.json(项目)/ ~/.claude.json(用户) config.toml[mcp_servers] 段(无独立 mcp.json) .cursor/mcp.json / ~/.cursor/mcp.json CLI:~/.copilot/mcp-config.json + 项目 .mcp.json;cloud 在仓库 Settings
headless / CI claude -p--output-format json 等) codex exec--jsonCODEX_API_KEY agent -p(二进制名就叫 agentCURSOR_API_KEY copilot -p(配 --allow-tool 最小权限)

2026-08 的真实格局:收敛比想象快

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

  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 之下子目录的按需加载
Codex 从项目根向下走到 cwd,每目录取一个,按 cwd 而不是被改文件——编辑 services/x.ts 不会加载 services/AGENTS.md,除非从那里启动
Cursor 嵌套 AGENTS.md 合并,”更具体的优先”;CLI 额外读根级 CLAUDE.md
Copilot VS Code “最近的优先”;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 与沙箱配置没有跨工具标准——这层按工具各写各的,也是这张表存在的意义。