メインコンテンツまでスキップ

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"

フィールド説明

フィールド必須説明
namestringはいツールの識別子(LLM が使用)
typestringはいrest_api である必要があります
descriptionstring推奨このツールをいつ使用するかを LLM が判断するのに役立つ説明
urlstringはいエンドポイント URL(環境変数のための ${VAR} をサポート)
methodstringはいHTTP メソッド: GET, POST, PUT, DELETE
headersmapいいえリクエストに含める HTTP ヘッダー
timeoutstringいいえリクエストのタイムアウト(デフォルト: 30s

仕組み

  1. LLM は、ツールの namedescription に基づいて REST API ツールの呼び出しを決定します。
  2. Sinaptic® DROID+ は、設定されたメソッド、URL、ヘッダー、および LLM から提供されたボディを使用して HTTP リクエストを実行します。
  3. レスポンスはツールの実行結果として LLM に返されます。
  4. 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"