REST API ツール
Sinaptic® DROID+ のエージェントは、外部の HTTP エンドポイントをツールとして呼び出すことができます。これにより、カスタムコードを書くことなく、内部サービス、サードパーティ API、ウェブフックなど、あらゆる REST API とエージェントを連携させることができます。
設定
エージェントの YAML 設定に REST API ツールを直接追加します。
# configs/agents/my-agent.yaml
name: "my-agent"
tools:
- name: "get-weather"
type: "rest_api"
description: "都市の現在の天気を取得する"
url: "https://api.weather.example.com/current?city=${city}"
method: "GET"
headers:
Authorization: "Bearer ${WEATHER_API_KEY}"
timeout: "10s"
- name: "create-ticket"
type: "rest_api"
description: "サポートチケットを作成する"
url: "https://api.example.com/tickets"
method: "POST"
headers:
Content-Type: "application/json"
Authorization: "Bearer ${INTERNAL_API_KEY}"
timeout: "15s"
フィールド説明
| フィールド | 型 | 必須 | 説明 |
|---|---|---|---|
name | string | はい | ツールの識別子(LLM が使用) |
type | string | はい | rest_api である必要があります |
description | string | 推奨 | このツールをいつ使用するかを LLM が判断するのに役立つ説明 |
url | string | はい | エンドポイント URL(環境変数のための ${VAR} をサポート) |
method | string | はい | HTTP メソッド: GET, POST, PUT, DELETE |
headers | map | いいえ | リクエストに含める HTTP ヘッダー |
timeout | string | いいえ | リクエストのタイムアウト(デフォルト: 30s) |
仕組み
- LLM は、ツールの
nameとdescriptionに基づいて REST API ツールの呼び出しを決定します。 - Sinaptic® DROID+ は、設定されたメソッド、URL、ヘッダー、および LLM から提供されたボディを使用して HTTP リクエストを実行します。
- レスポンスはツールの実行結果として LLM に返されます。
- LLM はその結果をユーザーへの回答に組み込みます。
セキュリティ
- REST API ツールはエージェントの SinapticAI 設定を尊重します。ツールの入出力は、個人情報(PII)やインジェクションの試行がないかスキャンされます。
- ヘッダー内の API キーやシークレットには環境変数(
${VAR})を使用してください。決してハードコードしないでください。 timeoutフィールドにより、低速なエンドポイントでツールが無期限にハングするのを防ぎます。
例
内部マイクロサービスの呼び出し
tools:
- name: "lookup-order"
type: "rest_api"
description: "注文 ID で注文ステータスを照会する"
url: "https://internal-api.example.com/orders/${order_id}"
method: "GET"
headers:
X-Service-Token: "${INTERNAL_TOKEN}"
timeout: "5s"
ウェブフックの送信
tools:
- name: "notify-slack"
type: "rest_api"
description: "Slack チャンネルに通知を送信する"
url: "${SLACK_WEBHOOK_URL}"
method: "POST"
headers:
Content-Type: "application/json"
timeout: "10s"