如何使用OpenAI API構建具有規劃、工具呼叫、記憶和自我批評能力的高階代理AI系統
本教程介紹瞭如何使用OpenAI API構建一個高階代理AI系統,該系統包括規劃、工具呼叫、記憶和自我批評模組。透過將代理設計為規劃者、工具執行者和批評者三個專業化角色的管道,實現了策略、行動和質量控制的分離。系統整合了計算器、知識庫搜尋、JSON提取和檔案寫入等結構化工具,能夠可靠地計算、檢索指導、生成結構化輸出並儲存交付物。文章還提供了完整的程式碼示例和演示用例。
在本教程中,我們將使用OpenAI API構建一個高階代理AI系統,該系統能夠進行規劃、呼叫工具、維護記憶並進行自我批評。我們將代理設計為一個小型管道,包含三個專業化角色:規劃者、工具使用執行者和批評者,從而將策略、行動和質量控制分離開來。我們還整合了結構化工具(計算器、小型知識庫搜尋、JSON提取和檔案寫入),使代理能夠可靠地進行計算、檢索指導、生成結構化輸出並儲存工件作為交付物。
首先,我們安裝OpenAI SDK並僅匯入所需模組,以保持在Colab中的輕量和可重複性。我們透過getpass()獲取API金鑰,使其保持隱藏,不會出現在筆記本輸出或程式碼中。然後,我們建立一個OpenAI客戶端並設定模型字串,以便系統的其他部分可以一致地重用。
接下來,我們定義一個小型內部“知識庫”,用於模擬團隊文件或劇本,代理可以透過工具呼叫進行查詢。我們實現了返回結構化字典的工具,以確保工具輸出機器可讀且健壯。這些工具包括一個安全的計算器、基於關鍵字的知識庫搜尋、用於結構化解析的JSON提取器,以及用於將最終交付物儲存為工件的檔案寫入器。
我們將Python工具註冊到一個對映中,以便在函式呼叫期間按名稱呼叫它們。我們宣告工具模式,使模型能夠使用正確的引數結構呼叫工具。我們定義了AgentState來儲存目標、記憶和工具呼叫跟蹤,從而允許我們檢查發生了什麼並除錯代理的行為。我們實現了一個安全的chat()包裝器,僅在提供工具時包含tool_choice,以防止出現400錯誤。
我們定義了三個角色提示來分離代理的職責:規劃者生成結構化計劃,執行者執行任務並按需使用工具,批評者改進最終輸出。我們實現了一個迴圈來執行模型呼叫、檢測工具呼叫、在Python中執行它們,然後將它們的輸出反饋給模型。這建立了一個真正的工具使用代理,而不是單次文本生成器。
我們實現了批評者來審查草稿並生成完善的最終響應,使用工具跟蹤作為額外證據進行除錯和問責。我們實現了run_agent()來編排完整迴圈:初始化狀態、規劃、使用工具執行、批評和最終確定。最後,我們提供了一個演示目標,該目標強制生成一個真實的交付物:摘要、結構化行動項JSON、跟進電子郵件以及透過write_file工具將輸出儲存到檔案。
總之,我們實現了一個實用的代理架構,清晰地分離了規劃、工具執行和基於批評的改進。我們將模型與具有嚴格模式的真實工具連線起來,記錄了透明的工具跟蹤以進行除錯,並透過將最終輸出儲存到檔案來生成工件。透過這種結構,我們可以透過新增工具重試策略、並行子代理、更豐富的記憶(向量+符號)和評估框架來將代理擴充套件到更生產級的工作流程。
完整的程式碼和筆記本可在此處檢視。此外,請隨時在Twitter上關注我們,並不要忘記加入我們的150k+ ML SubReddit和訂閱我們的新聞通訊。如果您使用Telegram,現在也可以加入我們。
需要與我們合作推廣您的GitHub Repo、Hugging Face頁面、產品釋出或網路研討會等?請與我們聯絡。