Evidence Graph:為AI代理的規範提供型別檢查
Evidence Graph 是一個輕量級工具,確保AI代理直譯器(如Claude Code和Codex)在實現時明確引用所有需求。它透過編譯時檢查,強制每個配置的需求在程式碼、測試或文件中得到明確確認,防止代理省略重要細節。
Evidence Graph 是一個專為AI編碼時代設計的工具,它透過將規範轉化為編譯錯誤來確保AI代理(如Claude Code和Codex)的誠實性。當代理獨立工作時,它們可能會跳過某些需求但仍報告“完成”。Evidence Graph 強制每個配置的需求從聲稱滿足它的程式碼、測試或文件中獲得明確的確認。
每次確認都需要指定確切的目標並說明原因。編譯器不會判斷原因是否真實——它迫使代理做出具體的斷言。一個捏造的理由不能再隱藏在看似合理的差異中;它必須與它所矛盾的宣告和證據並列。
代理仍然可以撒謊,但不能透過省略來撒謊。每個配置的義務都必須被解釋,否則構建失敗。每個選中的匯出都必須被測試明確引用。決策和程式碼保持明確的連線。“完成”必須帶有目標和理由。沒有引用可以比其目標存活得更久。
安裝和使用非常簡單。首先安裝必要的包:npm install -D typescript ttsc @ttsc/lint @samchon/lint-plugin-evidence。然後在lint.config.ts檔案中配置外掛,定義宣告圖。例如,一個宣告可以指定React元件必須引用Markdown文件中的每個H2和H3章節。
該外掛支援複雜的宣告組合。你可以建立多層次的引用鏈:特性文件基於需求文件,元件實現特性規則,測試驗證特性和元件。所有違反行為都會在每次ttsc構建、--noEmit檢查和ttsx執行時出現,與型別錯誤在同一流中報告,無需單獨的CI作業。
Evidence Graph 還支援TypeScript符號、Markdown標題和Swagger API操作。符號選擇器允許你精確控制哪些宣告和引用被跟蹤。檔案模式使用專案相對glob。對於TypeScript引用,可以透過檔案、入口檔案或包來定義種群。Swagger引用支援本地和遠端文件,但每個文件必須是單一檔案。
總之,Evidence Graph 為AI代理的規範實現提供了前所未有的透明度。它不阻止撒謊,但確保任何不誠實都必須以明確、可追蹤的斷言形式出現,從而顯著提升程式碼質量和可維護性。