Agent SDK:在OpenRouter上構建多輪代理工作流
OpenRouter釋出@openrouter/agent SDK,這是一個模型無關的TypeScript工具包,支援工具執行、多輪迴圈、停止條件、流式傳輸、成本跟蹤和工具審批,簡化了代理工作流的構建。
OpenRouter 宣佈推出 @openrouter/agent SDK,這是一個模型無關的 TypeScript 工具包,旨在簡化多輪代理工作流的構建。傳統上,構建一個可靠的代理需要開發者處理多層次的邏輯:呼叫模型、解析工具請求、執行工具、將結果反饋給模型,並重復此過程直到任務完成。此外,還需要處理輸入驗證、流式傳輸、成本跟蹤以及設定終止條件,以免迴圈無休止地執行。@openrouter/agent SDK 將這些複雜性封裝為一個名為 callModel 的單一函式,開發者只需呼叫該函式,無需手動編寫迴圈邏輯。
callModel 的核心功能之一是工具執行。開發者可以使用 tool() 和 Zod 模式定義工具,SDK 會在執行時自動驗證模型的輸入和函式的輸出。如果模型提供了錯誤的引數,SDK 會返回清晰的錯誤資訊,而不是讓下游靜默失敗。工具呼叫與模型呼叫分離,保持了程式碼的整潔和可維護性。
多輪迴圈是代理工作流的關鍵。一個代理往往需要多步操作,例如搜尋資訊、閱讀結果、再次搜尋,然後生成摘要。callModel 在內部處理迴圈,開發者透過停止條件控制迴圈何時結束。停止條件是可組合的:可以使用 stepCountIs(10) 限制最大步驟數,maxCost(1.00) 設定成本上限,或 hasToolCall('done') 在呼叫特定工具時停止。這些條件可以組合使用,也可以編寫自定義函式。
流式傳輸支援代理逐步展示進度。callModel 提供 getTextStream()、getToolCallsStream() 和 getReasoningStream() 三個流,可以併發處理同一響應,無需提前選擇。每個響應還包含令牌計數和成本資料,透過 result.getResponse() 獲取,便於精確跟蹤每次代理執行的成本。
對於需要執行真實操作的代理,SDK 還支援工具審批功能。可以將工具標記為需要審批,當模型呼叫該類工具時,SDK 會暫停執行並等待開發者的決策。
由於 SDK 是模型無關的,開發者可以在 OpenRouter 上的 300 多個模型之間自由切換,而無需修改代理程式碼。要開始使用,只需獲取 API 金鑰並參考 callModel 文件,即可快速構建個人代理工具。