エージェントSDK — プログラマブルなエージェントランタイム
本ページは柱01 · コーディングエージェント + エージェントランタイムのSDK側面を扱います。2つのページは同じ柱を異なる角度から扱います。
- /ja/system/harnesses/ — ランタイム視点(CLIツール + SDKを一括、アダプタ契約とともに)
- /ja/system/agent-sdks/ (本ページ) — SDK視点(組み込みライブラリインターフェース。CLIとして実行するのではなく、エージェントを中心にアプリを構築する場合)
Claude CodeのようなCLIと、Claude Agent SDKのような組み込みSDKのどちらを選ぶか迷っている場合は、まずharnessesから始めてください。すでにSDK組み込みを決めており、どれを選ぶか知りたい場合は、本ページをお読みください。
CLIではなくSDKを使う場面
以下の場合にSDKを組み込みます。
- 別のCLIプロセスではなく、お客様自身のアプリやサービス内部でエージェント機能を使いたい
- セッションのライフサイクル、ストリーミング、ツール登録を細かく制御したい
- オーケストレーション基盤の上にカスタムフロントエンドを構築したい
- 他のエージェントからプログラマブルに呼び出されるエージェントを作っている
Claude CodeのようなCLIを使う場面は次のとおりです。
- エージェントがファイルシステム(リポジトリ、ケースファイルフォルダ)に対して動作する
- 再発明する必要のない統一されたセッション/スキル/MCPモデルを使いたい
- オーケストレーションランナーからサブプロセスとして起動される
両方の形態とも同じLIFEOSAIアダプタ契約に接続できます。選択は、エージェントの作業がどこで起きるかに依存します。
現在のSDK選択肢
| SDK | ステータス | 強み |
|---|---|---|
| Claude Agent SDK (TS + Python) | ✅ 本番 | Claude Code を支えるSDK。成熟したMCP、スキル、セッション、フック。長文コンテキスト推論。 |
| Pi Agent SDK | ✅ 本番運用可 | Pi Coding Agentを支えるSDK。オープンソース、OSSモデル親和、カスタム権限モデル。 |
追加予定のSDK選択肢
| SDK | 追加予定の理由 |
|---|---|
| OpenAI Agents SDK | 関数呼び出しを備えたOpenAI形のエージェント。GPT-5と組み合わせ。 |
| LangGraph | SDKの選択よりも構造の方が重要な場合の、グラフ型マルチエージェントフロー。 |
| カスタム | 上記のいずれも合わない場合、契約は開かれています — アダプタインターフェースを実装すれば組み込めます。 |
SDKが提供するもの
| 関心事 | SDKが提供するもの |
|---|---|
| ツール定義 | エージェントが呼び出せる関数やMCPサーバを宣言する手段 |
| ストリーミングプロトコル | トークン、ツール呼び出し、結果がコードへ流れる方法 |
| セッション形状 | 「会話状態」の見え方とシリアライズ方法 |
| フック点 | SessionStart、PreCompact、UserPromptSubmit、PostCompact |
| スキル読み込み | .mdスキルファイルがどう発見・注入されるか |
| 権限 | 明示的な承認なしで呼び出せるツール |
LIFEOSAIはどのSDKもどう呼び出すか
オーケストレーション基盤は特定のSDKをインポートしません。各エージェントのadapterConfigが、エンジンにどのランタイムへディスパッチすべきかを伝えます。agent-invokerがアダプタを解決し、適切なランタイムを起動またはインポートし、Event Normalizer(非Claudeストリームを単一のSDKMessage形状へ統一)を通じてイベントを返し、実行を永続化します。
これがコードレベルで「任意のSDK」が意味するものです — オーケストレーションコードは、エージェントが使用するSDKを変更しても変わりません。
次に読む
コーディングエージェント + エージェントランタイム 柱01の完全像 — CLIランタイムとSDKを一緒に。
LLMプロバイダ選択の自由 柱02 — SDK選択と直交。
LIFEOSAI基盤 任意のSDKを呼び出すオーケストレーションレイヤー。