跟蹤AI代理在程式碼開發中的譜系和狀態的邏輯方法
本文探討了在代理式軟體開發中,如何系統性地跟蹤AI代理的決策歷史、配置和生成程式碼的譜系。作者提出建立“代理倉庫”以實現可觀測性和規模化,並討論了Git在儲存代理資料方面的侷限性。
在代理式軟體開發中,跟蹤AI代理的譜系和狀態對於理解和改進代理行為至關重要。傳統的Git提交歷史只記錄了檔案變更,但缺乏代理的決策過程資訊。作者Jason Davenport認為,我們需要一種系統來管理代理的知識,包括其做出的決策、如何做出這些決策以及代理的組成。
對於編碼代理,我們應至少跟蹤每個提交的Git提交SHA、代理的版本或識別符號,以及代理會話的日誌。然而,Git對有效載荷大小有限制,日誌可能快速增長。一種解決方案是強制在提交中新增代理後設資料,以便後續查詢代理元件。此外,還需要考慮代理構建系統的可觀測性,程式碼只是系統的當前“計劃”,我們還需要“實際執行”版本,以便代理更好地理解其行為對最終系統的影響。
作者提出了一個從代理到程式碼再到部署的譜系系統,類似於資料管理中的行級譜系。透過留下足夠多的識別符號,如容器後設資料中的提交SHA或PR中的代理SHA,我們可以將系統的各個階段聯絡起來。對於大規模代理開發,這需要專門的系統記錄,即“代理倉庫”。代理倉庫是一個資料倉儲,用於管理代理及其建立的工件,可以從技能、MCPs、Git鉤子、雲觀測套件等源收集後設資料和事務資料。透過將資料集中,我們可以應用轉換來構建針對特定提交SHA或代理的譜系,從而理解代理行為的下游影響,並據此調整代理技能或微調模型。
雖然對於原型階段,將代理資訊打包到程式碼倉庫中很簡單,但隨規模擴大,這種方法會遇到問題。不同代理可能需要共享程式碼庫的共通知時,同時保留特定於自身的資訊。因此,需要設計一個如文中邏輯架構的系統來規劃。作者已開始使用會話日誌技能實現本地化系統,並建議學習資料工程基礎,因為管理代理狀態正成為規模化的最大瓶頸之一。