Kanji
・雲端架構工程師 / 自由職業 ・1993年出生 ・愛媛縣出身 / 現居東京都澀谷區 ・5年 AWS 實戰經驗 個人檔案詳情
目錄
在日常軟體開發流程中,我會同時編排並搭配使用多款 AI 程式開發代理(Google Antigravity、Anthropic Claude Code、Kiro 以及 OpenAI Codex)。然而,在長期高強度的實務協作裡,最讓我苦惱、也引發過最多重工與驚險事故的瓶頸,正是 「代理規則定義(提示詞與指示檔)的崩潰與跨工具漂移」 。
起初我以為,只要把程式碼規範與安全限制仔細整理成一份文件,直接貼進 AGENTS.md 或 CLAUDE.md ,所有工具都會聰明地照單全收。但隨著並行專案增加、多儲存庫(Multi-Repo)規模擴大,開發第一線接連爆發出一連串慘痛的運作故障:
AGENTS.md
CLAUDE.md
git push origin main
在這篇深度實戰指南中,我將完整公開自己在踩過無數坑後確立的 「四大 AI 程式開發代理(Antigravity / Kiro / Claude Code / Codex)規則架構完全設計指南」 。
我們將清楚劃分哪些是所有工具皆適用的 開放標準基石(Universal Foundation) ,哪些又是各廠牌獨有的 專屬超能力(Specialized Superpowers) ,並給出一套經過正式環境驗證、絕不崩潰的 混合聯邦式規則架構(Federated Rules Architecture) 設計藍圖。
在實務現場高頻率重度使用 AI 開發代理的工程師,幾乎百分之百都踩過以下三個經典陷阱。
試圖把單元測試規範、Commit 訊息格式、棄用套件版本、雲端 IAM 最小權限原則等所有專案規則,全部塞進儲存庫根目錄唯一的一份 AGENTS.md 裡。
由於代理在每一輪呼叫工具時都會將整份規則檔重新注入提示詞視窗,一份長達 1,000 行(數千甚至上萬 Token)的巨型檔案, 不僅會在每次執行時白白燒掉可觀的 Token 成本,更會讓模型的注意力機制飽和,使重要指令被遺漏的機率呈指數級暴增 。
認為「Claude Code 需要 CLAUDE.md ,其他工具需要 AGENTS.md 」,於是靠人工複製貼上同時維護兩份檔案。 每當新增功能或修訂架構規範時,只要忘記同步更新另一邊,代理 A 就會照新規則寫程式,而代理 B 卻拿著舊規則把剛寫好的程式碼破壞性改寫,陷入沒完沒了的退化地獄。
指望單靠禮貌或嚴厲的自然語言敘述(例如「請千萬不要執行危險指令」、「嚴禁提交機密金鑰」)來防堵高風險操作。 大型語言模型本質上是機率模型,在複雜多步推理或上下文緊迫時,純文字提示詞隨時可能被覆蓋或繞過。 鐵則只有一條:絕對不能違反的安全底線,絕不能靠寫文章拜託,而必須透過 Hook(掛鉤)、權限策略與沙盒從物理層面強制攔截。
以下根據最新官方規格,整理四大主流程式開發代理載入與處理規則的核心機制差異:
~/.gemini/config/rules/*.md
<repo>/AGENTS.md
~/.kiro/steering/*.md
.kiro/steering/*.md
~/.claude/rules/*.md
~/.codex/AGENTS.md
AGENTS.override.md
config.toml
glob
model_decision
manual
#[[file:...]]
@path/to/file
settings.json
無論你主力使用哪一款工具,以下三條架構原則皆一體適用且不可動搖。
如同 Linux 的 /etc/ → ~/.config/ → ./ 架構,代理規則必須依循由廣至細的三層結構整理,嚴格落實 「局部(近端工作區)設定永遠覆寫全域設定」 的原則:
/etc/
~/.config/
./
~/.gemini/config/rules/
~/.claude/rules/
./AGENTS.md
./src/api/AGENTS.md
常駐載入的根目錄 AGENTS.md 應嚴格控制在 150~200 行以內 。請對檔案中的每一行文字執行試金石測試(Litmus Test): > 「如果刪掉這一行,代理會犯下災難性或無法復原的錯誤嗎?」
凡是 Linter、Formatter 或型別檢查器能自動抓出的程式碼排版細節,以及主流框架眾所皆知的標準寫法,請一律果斷刪除。只保留代理無法單憑閱讀原始碼推敲出來的「專案特殊例外」與「精確建置驗證指令」。
切勿將冗長的部署手冊或多步驟資料庫遷移腳本直接寫進規則檔: - Rule( AGENTS.md ) :僅定義任何時刻都必須遵守的判斷標準、邊界限制與禁止事項。 - Skill( SKILL.md )/ Runbook :將具體操作步驟、腳本與除錯指令拆分為獨立技能,僅在觸發相關任務的瞬間才依需求(On-Demand)載入。
SKILL.md
就算理解了三層級聯原則,工程團隊在實務落地時最常卡關的依然是 作用域邊界(Scoping)設計 —— 「究竟哪些指示該寫進使用者全域設定,哪些又必須留在儲存庫內部?」
我自己早期也曾為了圖方便,把特定專案的設定隨手寫進全域規則,結果切換到另一家客戶的儲存庫時差點誤用雲端帳號憑證釀成大禍;反過來,我也曾把個人 Mac 的本機絕對路徑提交進儲存庫的 AGENTS.md ,直接害團隊成員與 CI 管線集體報錯停擺。
以下是我目前在所有正式環境多代理工作流中嚴格執行的「全域 vs 工作區」職責邊界矩陣:
~/.gemini/...
./.agents/...
です/ます
features/
components/
/tmp
npm run build
pytest
npm run dev
tsc --noEmit
ruff check
SPONSORED
feat:
fix:
git worktree
develop
main
一旦上述邊界變得模糊,代理轉眼間就會為開發團隊帶來隱蔽的錯誤與嚴重的維運風險。
為了省去每次設定的麻煩,把 AWS_PROFILE=client-prod 或特定本機絕對路徑(如 /Users/user01/workspace/client-a/... )直接寫死在全域規則檔( ~/.gemini/config/rules/ 或 ~/.claude/rules/ )裡。 當你切換到個人開發專案或客戶 B 的程式碼庫時,代理會 在無意識間呼叫客戶 A 的憑證去執行雲端指令,輕則因權限錯誤導致作業中斷,最糟的情況甚至會把程式碼誤部署到別家公司的基礎設施上 。
AWS_PROFILE=client-prod
/Users/user01/workspace/client-a/...
把個人 Mac 專屬的完整路徑( file:///Users/kanji/... )、私密 SSH 別名或本機限定環境變數寫進儲存庫的 AGENTS.md 並直接透過 Git 提交。 一旦 CI/CD 管線(GitHub Actions)、Docker 容器或使用 Windows 電腦的團隊成員拉取程式碼, 自動化建置就會因找不到路徑瞬間崩潰,而你個人電腦的內部目錄結構也會永久殘留在 Git 歷史紀錄裡 。
file:///Users/kanji/...
抱著「反正每個專案多少都用得到」的心態,把 Next.js、Python、Terraform、Docker、Go、Rust、Tailwind 的所有最佳實踐一口氣全塞進全域規則。 結果就算只是開個對話寫一行簡單的 Shell 腳本,代理在啟動瞬間也得被迫吞下超過 10,000 Token 的無關規則, 嚴重擠壓解讀當前使用者指令的注意力視窗,大幅提高幻覺與無視指令的發生率 。
每當猶豫一條新規則該放在哪裡時,只要問自己以下兩個簡單問題:
面對「想跨多個專案共用,但只有在編輯特定技術檔案時才需要載入」的規則(例如 Terraform 資源命名規範或 Dockerfile 撰寫準則),可以善用 Antigravity 的 trigger: glob: "**/*.tf" 或 Kiro 的條件式 Steering。 將檔案存放在全域區域,但只有在實際開啟符合條件的檔案時才延遲注入上下文 ——這正是 Gen 3 階段最洗鍊的工程作法。
trigger: glob: "**/*.tf"
穩固通用基石之後,下一步就是精準運用各款工具的獨門擴充功能,將開發槓桿發揮到極致。
Antigravity 最強大的特色,是在 ~/.gemini/config/rules/*.md 中支援細緻的 YAML Frontmatter 觸發條件 :
--- trigger: glob globs: "**/*.tf, **/*.tfvars, infra/**/*.yaml" description: Terraform naming conventions and provider requirements --- ## 基礎設施命名規範 - 所有雲端資源名稱皆須包含環境前綴(prd、stg、dev)。
description
Kiro 支援在 Steering 引導文件中直接動態嵌入真實原始碼檔案,徹底省去人工複製貼上程式碼片段的麻煩:
## API 錯誤回應契約 所有錯誤回應內容皆須嚴格遵循中央 Schema 定義: #[[file:src/types/api_errors.ts]]
一旦底層 TypeScript 型別定義更新,代理讀取的 Steering 上下文就會自動同步至最新狀態。此外,隨時都能透過 /context show 指令即時檢視並除錯目前對話中實際載入的規則清單。
/context show
當儲存庫根目錄存在 CLAUDE.md 時,Claude Code 會優先讀取它而略過 AGENTS.md 。 許多 macOS 與 Linux 工程師習慣隨手建立一個本機符號連結( CLAUDE.md -> AGENTS.md )來偷懶,但 在跨平台團隊開發或包含 Windows 環境的企業專案中,這會引發災難性的靜默故障 。
CLAUDE.md -> AGENTS.md
在 Windows(Git for Windows)的預設設定中,符號連結是停用的( core.symlinks = false )。 當 Windows 開發者執行 git clone 複製包含符號連結的儲存庫時, CLAUDE.md 不會變成有效的連結,而是 退化成一個只寫著字面字串 "AGENTS.md" (僅 9 個位元組)的普通純文字檔 。 最可怕的是,Claude Code 不會跳出任何錯誤警告,而是直接把這 9 位元組的空殼當成完整指示集讀進去—— 導致所有資安防線與架構規範在無聲無息間被徹底清空 。
core.symlinks = false
git clone
"AGENTS.md"
首選正統解法:使用原生 @AGENTS.md 匯入語法(強烈推薦) 將 CLAUDE.md 建立為真實的輕量純文字檔,並在第一行寫上 @AGENTS.md 匯入指示:
@AGENTS.md
@AGENTS.md ## Claude Code 專屬指示 - (僅在此處補充 Claude Code 獨有的行為規範或專屬子代理角色設定)
因為它本身就是標準的 Markdown 純文字檔,無論在 Windows、macOS、Linux 或容器化 CI Runner 環境下都能 100% 確定性地展開,同時也能乾淨分離 Claude 專屬的額外指示。
零設定替代方案:乾脆不放 CLAUDE.md (交由原生備援機制處理) Claude Code 官方內建了備援回退(Fallback)機制:只要儲存庫裡完全沒有 CLAUDE.md ,它就會 自動尋找並載入 AGENTS.md 。如果專案不需要針對 Claude 撰寫專屬提示詞,只維護唯一一份 AGENTS.md 是最乾淨的零維護模式。
此外,針對絕對不容許踩線的安全規則,請不要在提示詞裡用文字懇求,而是透過 .claude/settings.json 中的確定性 PreToolUse Hook 進行機械式攔截:
.claude/settings.json
PreToolUse
{ "hooks": { "PreToolUse": [ { "matcher": ".*", "hooks": [ { "type": "command", "command": "python3 scripts/secret_guard.py" } ] } ] } }
實戰踩坑警告 1:避開 PreToolUse Hook 把自己鎖死的「自爆死鎖陷阱」 在 PreToolUse Hook 中檢查機密資訊(如 OpenAI/Anthropic API 金鑰)時,若使用缺乏單字邊界的粗糙正規表示式(例如 sk-[A-Za-z0-9_-]+ ),極易把 Markdown 內文中正常的烤肉串命名字串(如 risk-assessment-workflow... )誤判為金鑰外洩並回傳結束代碼 2。一旦回傳代碼 2,Claude Code 會立刻 封鎖後續所有工具執行(包含讀取與編輯檔案) ,把代理死死困在連修 Bug 都無法動彈的無限迴圈裡。 請務必嚴格指定單字邊界( \b ),並確保本機開發用的 .env 與測試用 Mock 檔案能安全放行(Fail-Open 設計)。
sk-[A-Za-z0-9_-]+
risk-assessment-workflow...
\b
.env
實戰踩坑警告 2:透過安裝腳本( install.py )防範覆寫意外 在工程團隊內部發佈標準化規則包時,手動執行 cp 指令常會在毫無警告的情況下覆蓋掉成員既有的 AGENTS.md 或 CLAUDE.md 。準備一支會在寫入前自動將既有規則檔備份為 .bak 並提示合併的安裝腳本( install.py ),是團隊導入時的最佳實踐。
install.py
cp
.bak
在大型 Monorepo 中,如果希望特定子套件或安全隔離區完全切斷上層目錄龐大的歷史規範,Codex 的 AGENTS.override.md 能發揮強大威力。放置該檔案的目錄及其下層會立即停止向上回溯搜尋 AGENTS.md ,讓代理在乾淨無雜訊的上下文中執行任務。
同時也請留意 Codex 預設的 32 KiB 讀取上限:若放置過大的規則檔,結尾內容會在沒有警告的情況下被靜默截斷,因此請視需要在 config.toml 調整 project_doc_max_bytes ,或直接將規則本身精簡瘦身。
project_doc_max_bytes
以下是我實務上用來在同一個儲存庫裡安全協調四大代理、確保零衝突運作的標準目錄結構:
my-project/ ├── AGENTS.md # [SSOT] 全代理通用的核心基盤規則(嚴格控制在 200 行內) ├── CLAUDE.md # Claude 專屬入口(透過 @AGENTS.md 匯入,100% 保證 Windows 相容) ├── .kiro/ │ └── steering/ # Kiro 專屬檔案配對條件規則與 #[[file:...]] 即時參照 ├── .gemini/ (或置於全域目錄) │ └── rules/ # Antigravity 專屬 glob 與 model_decision 條件規則 ├── .codex/ │ └── config.toml # Codex 位元組上限設定與沙盒權限策略 └── .agents/ └── hooks.json # 物理攔截高風險操作的 PreToolUse / PostToolUse 護欄
docs/
AI 程式開發代理的規則管理,早已超越過去在提示詞對話框裡隨手補幾句注意事項的階段,而是一門需要嚴謹設計的軟體架構工程。
只要穩穩立起這五大支柱,代理的重工、遺忘指令與跨工具衝突就會大幅減少,真正打造出可預測、高效率的多代理自主開發環境。不妨現在就打開你的儲存庫,重新檢視並整理現有的規則定義檔吧。
全面解析 AI 智慧代理長期記憶從黑盒向量資料庫向 Git Markdown SSOT 與混合 GraphRAG 演進的 Gen 3 架構。透過規則英文化實現 Token 消耗減半,結合 Apple ... [閱讀更多]
2026年11月前沿AI模型基準測試與API定價對比:涵蓋Claude Opus 5.5(SWE-bench 86.8%)、Gemini 4 Carbon/Argon($2/$10)、GPT-6系列、 ... [閱讀更多]
當你定製像Google Antigravity這樣的人工智慧助手時,規則和技能可能會變得太多而無法管理。 本文介紹如何構建自我維護的自定義技能(反重力審計) ,讓AI代理稽核並自動最佳化自己的配置。 ... [閱讀更多]
提供逼真 AI 模擬通話與多維反饋,結合 16 講實戰社交學院與工作室級 AI 肖像生成,全面提升社交互動品質。
拍發票即可完成高精度智慧拆單,支援 LINE 登入無縫結算團隊聚會支出,告別繁雜帳單分攤。
占卜師、管家、調酒師等 AI 角色即時引導話題與聚會遊戲,讓線下與線上聚餐氛圍瞬間升溫。
獲取本文介紹的完整設定檔包:完全相容 Antigravity、Kiro、Claude Code 和 Codex 的通用 AGENTS.md、hooks.json、Git 守衛指令碼及自動化驗證工具,即拷即用。