> ## Documentation Index
> Fetch the complete documentation index at: https://phaseo.app/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Agent SDKの概要

> Agent SDKがサポートする言語で、Phaseo Gateway上にローカルで再開可能なエージェントループを構築します。

単発の生成だけでは足りないアプリケーションでは、Phaseo Agent SDKを使用します。

* 複数ステップのツールループ
* ローカルランタイムツール
* Gatewayを使ったモデルターン
* アプリケーションが所有する再開可能な実行状態
* 厳密な呼び出し承認、human-in-the-loopツール、手動ツール、再開可能な続行
* ランタイム検証、進捗を通知するツール、復旧可能なツールエラー
* 再生可能なイベントコンシューマーを備えたモデル出力ストリーミング
* 動的なターン設定、組み合わせ可能な停止条件、正規化された使用量とコスト
* モデルの再試行、ツールのタイムアウト、制限付きツール並行実行、ライフサイクルイベント
* Phaseo Devtoolsによるローカルキャプチャ
* コアClient SDKと同じ言語での一貫したリクエストルーティング

## 対応言語

現在のAgent SDK言語は、Phaseoクイックスタートで提供される主要なClient SDKの言語と同じです。

* [TypeScript](../typescript/agent-sdk.mdx)
* [Python](../python/agent-sdk.mdx)
* [Go](../go/agent-sdk.mdx)
* [C#](../csharp/agent-sdk.mdx)
* [PHP](../php/agent-sdk.mdx)
* [Ruby](../ruby/agent-sdk.mdx)
* [Rust](../rust/agent-sdk.mdx)

## 共通モデル

どのAgent SDKも同じランタイムモデルを採用しています。

* エージェントを1つ定義する
* 0個以上のローカルツールを定義する
* Gateway接続のモデルクライアントを作成する
* `responses` APIで上限付きループを実行する
* ライフサイクルイベントまたはDevtoolsのトレースを調べる
* 返された実行状態を保存し、人間の判断後に再開する

TypeScriptがAPI設計のリファレンスです。Python、Go、C#、PHP、Rubyは、各言語固有のコールバックや並行処理、タイムアウト、キャンセルのプリミティブを使って、言語横断の広範な契約を提供します。Rustは同期実行の対応ランタイムで、ローカル/外部ツール、厳密なIDによる承認、人によるレビュー、モデル再試行、シリアライズ可能な実行状態、ライフサイクルコールバック、使用量集計を備えています。JavaとC++は引き続き開発中です。

<Note>
  Rust Agent SDKは`phaseo-agent`として公開されています。ストリーミング、非同期実行、ローカルツールの並行実行、ランタイムのスキーマ検証、Devtoolsキャプチャにはまだ対応していません。
</Note>

## 言語間の機能契約

| 機能 | TypeScript | Python | Go | C# | PHP | Ruby | Rust |
| - | - | - | - | - | - | - | - |
| 実行可能なツールと復旧可能なツールエラー | 対応 | 対応 | 対応 | 対応 | 対応 | 対応 | 同期 |
| 厳密なID承認、HITL、手動出力 | 対応 | 対応 | 対応 | 対応 | 対応 | 対応 | 対応 |
| 初期ツール進捗 | 非同期ジェネレーター | イテレーターまたはコールバック | コールバック | コールバック | コールバック | コールバック | 未対応 |
| モデルストリーミングと再生可能なコンシューマー | 非同期イテラブル | イテレーター | チャネル | 非同期Enumerable | イテラブル | Enumerator | 未対応 |
| 組み合わせ可能な停止条件 | 対応 | 対応 | 対応 | 対応 | 対応 | 対応 | ステップ上限 |
| 動的ターンと変更可能なコンテキスト | 対応 | 対応 | 対応 | 対応 | 対応 | 対応 | 実行ごとのモデル、ステップ上限、コンテキスト |
| アプリケーションが保存する実行状態 | 対応 | 対応 | 対応 | 対応 | 対応 | 対応 | シリアライズ可能な`RunResult` |
| 正規化された使用量とコスト | 対応 | 対応 | 対応 | 対応 | 対応 | 対応 | トークン。カスタムクライアントのコストは`0.1`のみ |

PHPとRubyでは、プロバイダーのストリームイベントを通常の同期イテレーションAPIで取得できます。ホスト型ランタイムやバックグラウンドのPhaseoサービスは不要です。

## Client SDK、Agent SDK、API

| 用途 | 選択肢 | 担当するもの |
| - | - | - |
| 1回のAPIリクエストまたは全エンドポイントの利用 | Client SDK | 生成されたAPI型とトランスポート |
| ツールを使う複数ステップのアプリケーションロジック | Agent SDK | ローカルループ、ツール、チェックポイント、レビュー、イベント、Devtools |
| 独自トランスポートまたは未対応言語 | Raw API | HTTPリクエストとレスポンスの処理 |

Agent SDKのGatewayアダプターは、モデルターンを対応するClient SDKに委譲します。`requestOptions`フックまたは同等の仕組みを持つ言語では、追加のResponses APIフィールドを渡せます。その場合もAgent SDKが`model`、`input`、`instructions`、ローカル関数ツールを管理します。Rust `0.1`アダプターは現在、追加のリクエストオプションフックなしで正規化されたエージェントフィールドを送信します。

## レシピ

クックブックにはTypeScriptのワークフローと言語別の開始例があります。

* [長時間実行可能なエージェントループを構築する](../../cookbook/agent-sdk-durable-loop.mdx)
* [エージェントによるWeb検索で調査する](../../cookbook/agent-sdk-research-brief.mdx)
* [プリセット駆動のエージェントでサポートを振り分ける](../../cookbook/agent-sdk-support-triage.mdx)
* [ローカルランタイムツールでコードをレビューする](../../cookbook/agent-sdk-coding-review.mdx)
* [ローカルツールを並行実行する](../../cookbook/agent-sdk-parallel-tools.mdx)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.