Перейти до основного вмісту

Інструменти REST API

Агенти Sinaptic® DROID+ можуть викликати зовнішні HTTP-ендпоінти як інструменти. Це дозволяє агентам взаємодіяти з будь-яким REST API — внутрішніми сервісами, сторонніми API, вебхуками — без написання кастомного коду.

Конфігурація

Додайте інструменти REST API безпосередньо у YAML-конфігурацію вашого агента:

# 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 вирішує викликати інструмент REST API на основі його name та description.
  2. Sinaptic® DROID+ виконує HTTP-запит із налаштованим методом, URL, заголовками та тілом запиту (якщо воно надане LLM).
  3. Відповідь повертається до LLM як результат роботи інструменту.
  4. LLM включає цей результат у свою відповідь користувачеві.

Безпека

  • Інструменти REST API враховують налаштування SinapticAI — вхідні та вихідні дані інструмента скануються на наявність PII (персональних даних) та спроб ін'єкцій.
  • Використовуйте змінні середовища (${VAR}) для ключів API та секретів у заголовках — ніколи не прописуйте їх у коді.
  • Поле 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"