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()の3つのストリームを提供し、同一レスポンスを同時に処理できます。各レスポンスにはトークン数とコストデータが含まれ(result.getResponse())、エージェント実行の正確なコスト追跡が可能です。
実際のアクションを伴うエージェントには、ツール承認機能も役立ちます。ツールを承認必須としてマークすると、モデルがそのツールを呼び出した際にSDKが実行を一時停止し、開発者の決定を待ちます。
SDKはモデル非依存であるため、開発者はOpenRouter上の300以上のモデルをコード変更なしで切り替えられます。開始するには、APIキーを取得し、callModelのドキュメントを参照するだけで、独自のエージェントツールを迅速に構築できます。