インタラクティブドキュメント
すべての Agent-Lab アプリケーションは OpenAPI 3 を自動的に提供します。リファレンス実装では
http://localhost:18000/docs(独自のアプリの場合はその実行場所)で確認できます。以下の一覧はフレームワークに組み込まれたルーターを説明したものです。extra_routers で追加したルーターも同じスキーマに表示されます。
認証
auth.enabled が true の場合(設定リファレンスを参照)、ルートには Keycloak の Bearer トークンが必要です。/auth ルーターは認証が有効な場合にのみマウントされます。
TOKEN=$(curl -s -X POST https://<host>/auth/login \
-H "Content-Type: application/json" \
-d '{"username": "…", "password": "…"}' | jq -r '.access_token')
curl -s https://<host>/agents/list -H "Authorization: Bearer $TOKEN" | jq| メソッド | エンドポイント | 説明 |
|---|---|---|
| POST | /auth/login |
新しい Bearer トークンを作成します |
| POST | /auth/renew |
既存の Bearer トークンを更新します |
| POST | /auth/exchange |
Microsoft Entra ID の認可コード(PKCE)をアプリのトークンと交換します |
| GET | /auth/profile |
認証済みユーザーのプロフィールを取得します |
| PUT | /auth/profile |
認証済みユーザーのプロフィールを更新します |
レルム/クライアントのセットアップについては、Keycloak による認証で説明しています。
認証不要のパス: /status/*、/docs、/openapi.json、/mcp、/static、
OAuth の well-known エンドポイント、SPA のマウントポイント。それ以外はすべて有効なトークンが必要です。
エンドポイント
エージェント
登録済みの任意のエージェントタイプのインスタンスを作成します。agent_type はレジストリに対して動的に検証されます。
| メソッド | エンドポイント | 説明 |
|---|---|---|
| GET | /agents/list |
すべてのエージェントインスタンスを一覧表示します |
| GET | /agents/types |
登録済みのエージェントタイプ(レジストリ)を一覧表示します |
| GET | /agents/{agent_id} |
ID を指定してエージェントインスタンスを取得します |
| POST | /agents/create |
新しいエージェントインスタンスを作成します |
| POST | /agents/update |
エージェントの基本情報を更新します |
| POST | /agents/update_setting |
エージェントの設定を 1 つ更新します |
| POST | /agents/{agent_id}/reset_settings |
エージェントの設定をデフォルトにリセットします |
| DELETE | /agents/delete/{agent_id} |
エージェントインスタンスを削除します |
| WS | /agents/ws/task_updates/{agent_id} |
長時間処理のタスク進捗を配信する WebSocket ストリーム |
メッセージ
| メソッド | エンドポイント | 説明 |
|---|---|---|
| POST | /messages/post |
エージェントにメッセージを送信し、応答を受け取ります |
| POST | /messages/list |
エージェントのメッセージを一覧表示します |
| GET | /messages/{message_id} |
メッセージの詳細(返信、添付ファイル)を展開して取得します |
| DELETE | /messages/delete/{message_id} |
メッセージを削除します |
言語モデル
| メソッド | エンドポイント | 説明 |
|---|---|---|
| GET | /llms/list |
設定済みの言語モデルを一覧表示します |
| GET | /llms/{language_model_id} |
言語モデルとその設定を取得します |
| POST | /llms/create |
新しい言語モデルを作成します |
| POST | /llms/update |
言語モデルの設定を更新します |
| POST | /llms/update_setting |
言語モデルの設定を 1 つ更新します |
| DELETE | /llms/delete/{language_model_id} |
言語モデルを削除します |
インテグレーション
| メソッド | エンドポイント | 説明 |
|---|---|---|
| GET | /integrations/list |
外部インテグレーション(AI サプライヤー)を一覧表示します |
| GET | /integrations/{integration_id} |
インテグレーションの詳細を取得します |
| POST | /integrations/create |
インテグレーションを作成します(認証情報は Vault に保存されます) |
| DELETE | /integrations/delete/{integration_id} |
インテグレーションを削除します |
添付ファイル
| メソッド | エンドポイント | 説明 |
|---|---|---|
| GET | /attachments/list |
添付ファイルを一覧表示します |
| GET | /attachments/download/{attachment_id} |
添付ファイルをダウンロードします |
| POST | /attachments/upload |
ファイルを添付としてアップロードします |
| POST | /attachments/embeddings |
添付ファイルの埋め込みを生成します |
ステータスと MCP
| メソッド | エンドポイント | 説明 |
|---|---|---|
| GET | /status/liveness |
Liveness プローブ |
| GET | /status/readiness |
Readiness プローブ |
| GET | /status/metrics |
Prometheus メトリクス |
| * | /mcp |
MCP サーバー(Streamable HTTP) |
| GET | /.well-known/oauth-protected-resource/mcp |
MCP クライアント向けの OAuth メタデータ |
リクエスト例
エージェントインスタンスを作成する:agent_name には [a-zA-Z0-9_-] を使用できます。
agent_type は登録済みのタイプである必要があります。language_model_id は省略可能です。
curl -s -X POST http://localhost:18000/agents/create \
-H "Content-Type: application/json" \
-d '{
"agent_name": "support-agent-1",
"agent_type": "coordinator_planner_supervisor",
"language_model_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
}' | jqメッセージを送信する:message_role は human、assistant、tool のいずれかです。
attachment_id は省略可能です。
curl -s -X POST http://localhost:18000/messages/post \
-H "Content-Type: application/json" \
-d '{
"agent_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"message_role": "human",
"message_content": "Summarize the attached report.",
"attachment_id": null
}' | jqエージェントの設定を更新する:setting_key には [a-zA-Z_-] を使用できます。
setting_value には最大 16,000 文字を格納できます(プロンプトテンプレートや JSON ペイロードはここに保存されます。エンティティドメインモデルを参照してください)。
curl -s -X POST http://localhost:18000/agents/update_setting \
-H "Content-Type: application/json" \
-d '{
"agent_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"setting_key": "system_prompt",
"setting_value": "You are a concise research assistant…"
}' | jq規約
- ID は UUID です。一覧系のエンドポイントはすべて、クエリ文字列ではなく JSON ボディを受け付けます。
- 設定は、エージェントやモデルとともに永続化されるキーと値のペアです。これにより、同じ実装から設定の異なる多数のインスタンスを実行できます。
- 有効な
agent_typeの値についてはレジストリが唯一の情報源です。GET /agents/typesを実行すると、実行中のアプリが検出したもの(scan_packages経由の独自パッケージを含む)を確認できます。