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代理的規範實現提供了前所未有的透明度。它不阻止撒謊,但確保任何不誠實都必須以明確、可追蹤的斷言形式出現,從而顯著提升代碼質量和可維護性。