AI News HubLIVE
站内改写1 分鐘閱讀

從頭構建基本AI代理:工具

本文介紹如何透過新增工具來增強基本AI代理,使其能夠與計算機環境互動。涵蓋工具定義、代理使用方式以及七個必備工具(bash、檔案讀寫、檔案搜尋、grep、網頁獲取等)的Python實現和工具模式定義。

來源Hacker News AI作者: ruxudev

在之前的文章中,我們構建了最基本的AI代理框架,它僅能根據內部知識回應使用者輸入。但要讓代理真正有用,我們需要賦予它執行操作的能力,而工具(Tools)正是實現這一點的關鍵。工具是暴露給大語言模型(LLM)的函式或程式,使其能夠自主呼叫。本文將繼續擴充套件基礎代理,新增七種實用工具。

首先,工具的定義可以簡單如一個Python函式,也可以複雜如MCP伺服器。現代LLM透過原生工具呼叫(native tool calling)支援以JSON格式生成工具請求,提升了可靠性。我們實現的第一個工具是run_bash,允許代理執行Bash命令——這是最強大的工具,但也最危險,因為它賦予代理完全的系統訪問許可權。後續文章會討論安全措施。

接下來是檔案操作工具。read_file可以讀取檔案內容並顯示行號,支援偏移和行數限制。glob_files用於按模式查詢檔案,grep則透過正規表示式搜尋檔案內容,並返回匹配行及檔案路徑。write_file用於建立或覆蓋檔案,自動建立父目錄。edit_file進行精確的字串替換,比全量寫入更安全。最後,webfetch工具可獲取網頁內容並轉換為純文本,限制為HTTP/HTTPS且最大2MB。

所有工具都需要定義模式(schema)供LLM識別。程式碼中透過get_tool_schemas函式返回每個工具的名稱、描述和引數結構。在代理迴圈中,我們透過TOOL_REGISTRY對映工具名稱到實際函式,並在LLM返回工具呼叫時執行相應函式,將結果附加到對話中。系統提示詞中明確告知代理其可用工具。

這七種工具構成了AI代理與計算機互動的基礎。它們組合使用,使代理能夠探索檔案系統、讀寫檔案、執行命令和獲取網路資訊。後續文章將在此基礎上新增更多高階功能和安全加固。透過這種方式,我們可以逐步構建出功能強大的自主代理系統。