Vercel(Next.js團隊)軟件工程師兼Cogniba創辦人及行政總裁Marcos Hernanz,近日在社交平台X分享「AGENTS.md」核心指令集。據他介紹,這套規則是分析約600億個Token的AI互動數據後,針對AI Agent進行程式碼生成時常見的過度設計與冗餘問題所整理出的實作原則。

Hernanz於7月底先公開包含三項原則的初版指令,並在8月初擴充為完整版本。相關貼文其後獲得數百萬次瀏覽及大量轉載,引起工程師與AI創作者討論。不過,他同時強調,這套指令主要面向個人副業項目,並不適合直接套用於正式生產系統。

AI Agent七項核心開發原則
1. 拒絕向後兼容性(Do not preserve backward compatibility)
- 原文:Do not preserve backward compatibility. Remove obsolete paths instead of adding compatibility layers, fallbacks, or migrations.
- 指令要求AI不要刻意維持向後兼容性。遇到已經淘汰的程式碼路徑時,應直接移除,而不是加入兼容層、後備方案或遷移邏輯。
- 這種做法有助於避免舊有邏輯持續累積,但亦意味著任何介面、資料結構或既有行為的移除,都可能影響現有使用者與系統整合。
2. 採用最簡單實作(Choose the simplest implementation)
- 原文:Choose the simplest implementation that fully meets the current requirements. Avoid speculative abstractions, configuration, and indirection.
- AI應選擇能完整滿足當前需求的最簡單方案,避免加入推測性抽象、複雜設定或不必要的間接呼叫。原則的重點不是單純減少程式碼,而是在需求範圍內控制設計複雜度。
3. 分層漸進式擴充(Grow the system in layers)
- 原文:Grow the system in layers. Start from the smallest version that works end to end, and add each new capability on top of a product that already works. Never trade a working product for unfinished complexity.
- 系統應先從能夠端到端運作的最小版本開始,再在已可正常運作的產品上逐一加入新能力。這項原則反對為了尚未完成的複雜功能,犧牲目前已經能夠運作的產品。
4. 保持模組化與職責分離(Keep components modular separated)
- 原文:Keep components modular and concerns clearly separated.
- 不同組件應保持模組化,並清楚區分各自職責。透過分離關注點,可降低功能之間的耦合,讓AI在修改或新增程式碼時,更容易界定影響範圍。
5. 優先使用成熟第三方庫(Prefer established libraries)
- 原文:Prefer established, well-maintained libraries when they reduce overall complexity or improve reliability. Do not reimplement common functionality without a clear reason.
- 當成熟且持續維護的第三方函式庫能降低整體複雜度或提升可靠性時,應優先採用。對於常見功能,除非有明確理由,否則不應重新自行實作。
6. 充分利用既有依賴項(Lean on existing dependencies)
- 原文:Lean on the dependencies already in the project before writing your own implementation or adding packages. Do not assume a library lacks a capability without checking its documentation and types.
- 在自行編寫實作或新增套件之前,應先檢查專案目前使用的依賴項。Hernanz提醒,開發者不應在查閱函式庫文件與型別定義前,便假設現有套件不具備某項功能。
7. 堅持長期架構決策(Make long-term architectural decisions)
- 原文:Make architectural decisions for the long term. Do not accept a stopgap that only works for now and is meant to be replaced later.
- 架構決策應以長期發展為考量,不要接受只在當下有效、日後預計再替換的臨時方案。這項原則旨在減少短期修補逐步演變成長期技術負債的情況。
補充指令:先研究成熟產品的做法
在發布完整版本後,Hernanz又於同一討論串補充一項設計原則:在提出解決方案前,先研究成熟產品如何處理相同問題,採用已驗證的設計模式與慣例,而不是從零開始創造全新方法。
這項建議將參考既有產品視為AI設計流程的一部分,讓Agent在建立功能時,優先遵循業界已被驗證的模式,而非只根據局部需求產生孤立的實作。

最重要限制:不要直接用於生產環境
雖然「AGENTS.md」受到廣泛關注,Hernanz明確表示,這套規則只適用於個人副業項目。他警告:「如果你不想毀掉你的代碼庫,切勿在生產環境中使用它。」
當中最具風險的部分,是要求直接移除舊有路徑並放棄向後兼容性。若將這些規則套用於大型企業系統或正式環境,AI在修改程式碼時可能移除仍被其他服務使用的介面、資料結構或連接邏輯,進而造成資料庫連接中斷、資料結構受損或服務崩潰。
因此,這套指令較適合被視為個人專案中的實驗性開發準則,而不是可在所有情境直接複製的工程標準。對於生產環境,仍需要配合向後兼容策略、測試、程式碼審查、版本控制、遷移計劃及回滾機制,並根據系統的實際風險作出架構決策。
Reference Link : ezone.hk




