首页/文章/同仓跑多个编码代理?用 AGENTS.md 做主规则、CLAUDE.md 一行导入,在新加坡 Mac mini 上统一维护

同仓跑多个编码代理?用 AGENTS.md 做主规则、CLAUDE.md 一行导入,在新加坡 Mac mini 上统一维护

· Zumac.Ai

同一个仓库里既跑 Claude Code,又跑别的编码代理,最常见的麻烦是规则写了两份:CLAUDE.md 改了,AGENTS.md 没改,两个代理按不同的规矩干活。最近不少开发者的做法是:根目录只维护一份 AGENTS.md,CLAUDE.md 用 @AGENTS.md 引入,Claude 专属的规则写在导入行下面。这篇讲怎么在一台常开的新加坡 Mac mini 上把这套结构搭好、验收,并长期维护。

为什么要「一份主规则 + 一行导入」

  • 单一事实来源:构建命令、目录约定、测试方式这些通用规则,只在 AGENTS.md 里写一次。
  • Claude 专属内容不污染通用文件:比如 hooks 说明、Skills 用法、MCP 服务器名,只写进 CLAUDE.md。
  • 改一处,两边都生效:Claude Code 读取 CLAUDE.md 时会展开 @ 引入的文件,所以改 AGENTS.md 就够了。
  • 评审更清楚:PR 里看到 AGENTS.md 的改动,就知道影响所有代理;看到 CLAUDE.md 的改动,就知道只影响 Claude。

第一步:在 Mac mini 上准备仓库

先用 SSH 或 UU 远程连接登录 Mac mini,确认 Claude Code 已安装、已用你自己的账号登录:

claude --version
cd ~/work/your-repo
git pull
ls AGENTS.md CLAUDE.md 2>/dev/null

如果两份文件都已存在且内容大量重复,先别急着删,下一步会合并。

第二步:把通用规则收拢到 AGENTS.md

AGENTS.md 只放「任何代理都该遵守」的内容,保持短小:

# AGENTS.md
## 构建与测试
- 安装依赖:npm ci
- 单元测试:npm test(提交前必须通过)
- iOS 构建:xcodebuild -scheme App -destination 'platform=iOS Simulator,name=iPhone 16' build

## 约定
- 不提交 .env、证书、描述文件和任何 API Key
- 新代码放 src/,测试放 tests/,命名用 kebab-case
- 改动数据库结构前先在 docs/migrations.md 写说明

经验上,AGENTS.md 越像一份「新同事入职清单」越好用:命令可以直接复制运行,约定能被检查。

第三步:CLAUDE.md 只写一行导入加专属规则

@AGENTS.md

# 以下仅对 Claude Code 生效
- 硬性规则(禁止改 main、禁止删迁移文件)由 .claude/settings.json 里的 hooks 执行,不靠这里的文字
- 参考文档拆成 Skills,放在 .claude/skills/,按需加载
- 本机 MCP:只使用 project 级配置里声明的服务器
- 长任务在 tmux 会话 claude-main 里跑

要点:

  1. 导入行放第一行,让通用规则先被读到。
  2. 专属规则写在导入行下方,读的人一眼能分清哪部分是共享的。
  3. 不要在 CLAUDE.md 里再抄一遍构建命令,否则又回到了两份规则不同步的老问题。

第四步:验收引入是否生效

在 Mac mini 的仓库目录里开一个新的 Claude Code 会话,用 /memory 查看当前加载的记忆文件,确认能看到 CLAUDE.md,以及它引入的 AGENTS.md 内容。然后做两个小测试:

  1. 问它「这个仓库提交前要跑什么测试」,回答应来自 AGENTS.md。
  2. 问它「长任务在哪个 tmux 会话里跑」,回答应来自 CLAUDE.md 的专属部分。

再用另一个代理在同一目录里问第一个问题,答案应该一致。两边都对上,说明结构成立。

如果你在会话中途改了 AGENTS.md,稳妥起见开一个新会话再验证,别依赖旧会话里的上下文。

第五步:防止有人又把规则写回两份

在仓库里加一个很轻的检查脚本,放进 pre-commit 或 CI:

#!/usr/bin/env bash
# scripts/check-agent-docs.sh
set -e
head -n1 CLAUDE.md | grep -qx '@AGENTS.md' || { echo "CLAUDE.md 第一行必须是 @AGENTS.md"; exit 1; }
if grep -qE 'npm (ci|test)|xcodebuild' CLAUDE.md; then
  echo "构建/测试命令请写进 AGENTS.md,不要在 CLAUDE.md 重复"; exit 1
fi
echo "agent docs OK"
chmod +x scripts/check-agent-docs.sh
./scripts/check-agent-docs.sh

这样即使多人协作、多个代理轮流改文档,结构也不会慢慢走样。

子目录和个人偏好怎么放

  • 子目录规则:大仓库可以在 ios/、server/ 下各放一份小的 AGENTS.md,对应的 CLAUDE.md 同样一行 @AGENTS.md 引入。
  • 个人偏好:只属于你自己的习惯(比如回复语言、提交信息风格)放在 ~/.claude/CLAUDE.md,不要进仓库。
  • 敏感信息:任何规则文件里都不写密钥、账号和内部地址;需要时写「从钥匙串读取」或「从 .env 读取」这样的说明。

为什么放在新加坡常开的 Mac mini 上

规则文件结构再清楚,如果每个代理跑在不同的电脑上,仓库版本、工具链、MCP 配置还是会各不相同。把仓库和代理固定在一台机器上,好处很直接:

  • 一份工作副本:所有代理在同一个目录、同一个 git 状态下读同一份 AGENTS.md。
  • 真 macOS 工具链:xcodebuild、模拟器、签名工具链都在本机,AGENTS.md 里写的 iOS 构建命令可以真的跑通。
  • 常开不中断:笔记本合盖、换网络都不影响 Mac mini 上 tmux 里的长任务。
  • 稳定合规的使用环境:Claude 账号由你自己开通,在一台固定的新加坡整机上长期使用,环境不来回变化。

Zumac.Ai 提供位于新加坡的实体 Mac mini M6,整机独享,支持 SSH 与 UU 远程连接,FileVault 全盘加密,退租时抹机重装。新客户整机租用 ¥999/月起,季付 ¥2,697.30,半年付 6 送 1 为 ¥5,994,年付 12 送 2 为 ¥11,988;已购买客户续费保持原价。新客户首单自审核开通当天起租,续费及老客户新订单自付款当天起租。建议先租一个月,把「一份 AGENTS.md + 一行导入」的结构在同一台机器上跑顺。实际延迟取决于你本地的网络线路。

小结

  • 通用规则只写在根目录 AGENTS.md,CLAUDE.md 第一行用 @AGENTS.md 引入。
  • Claude 专属内容(hooks、Skills、MCP、tmux 约定)写在导入行下面。
  • 用 /memory 和两个小问题验收,再用检查脚本防止规则回到两份。
  • 把仓库和代理固定在一台常开的新加坡 Mac mini 上,SSH 或 UU 远程连接接入,工作副本和工具链只有一份。

有问题可以在 Telegram 联系 @singatao,或直接看 价格与付款周期。

Zumac.Ai 新加坡 Mac mini M6,整机独享,¥999/月起,联系 Telegram @singatao。
查看方案与费用 · 帮助中心

返回首页 · 更多文章

Telegram 客服