API-пайплайн: дать оракулу инструменты

Индекс: API-пайплайны — индекс

Цель: дать оракулу инструменты: описать свои HTTP-эндпоинты карточками и сохранить нужные им ключи как секреты, затем подключить и то и другое к агенде оракула.

Карточка API-эндпоинта — это один HTTP-вызов, который оракул может сделать; её operation_id — имя инструмента, её request_schema — аргументы инструмента. Секрет хранит ключ; эндпоинты ссылаются на него по имени, а значение подставляется только в момент вызова.

Шаги

1. Сохраните ключ.

POST /v0/my/secrets
Idempotency-Key: sec-0a9d…
{"key_name": "secret_shop_api_token", "value": "sk-example-123", "host": "api.example.com",
 "title": "Shop API token", "workspaces": ["470000000000000400"]}
→ {"nonce": "470000000000000410", "key_name": "secret_shop_api_token", "host": "api.example.com",
   "title": "Shop API token", "created_at": "…", …}

2. Опишите эндпоинт.

POST /v0/my/api_endpoints
Idempotency-Key: ep-77b3…
{"title": "Check order status", "content": "Returns the status of one order. Use when a customer asks where their order is.",
 "operation_id": "orders_status", "method": "GET",
 "path": "https://api.example.com/v1/orders/{id}",
 "request_schema": {"type": "object", "properties": {"id": {"type": "string"}}, "required": ["id"]}}
→ {"nonce": "470000000000000420", "card_type": "api_endpoint", …}

3. Подключите к агенде. PATCH /v0/my/agendas/{agenda} {"api_endpoints": ["470000000000000420"], "secrets": ["470000000000000410"]} — каждый список заменяет прежний. API-пайплайн: написать агенду для своих оракулов

4. Управление.

За кадром

Правила

Поверхность API

Эндпоинт Назначение FE ИИ / оракул
POST /v0/my/secrets, PATCH/DELETE /v0/my/secrets/{nonce} Сохранить, изменить, удалить ключ да да
GET /v0/my/secrets Ваши ключи (без значений) да да
POST /v0/my/api_endpoints, PATCH/DELETE /v0/my/api_endpoints/{nonce} Описать инструмент да да
GET /v0/my/api_endpoints, GET /v0/graph/api_endpoints (+ /{nonce}) Ваши, публичные да да
PATCH /v0/my/agendas/{ident} (api_endpoints, secrets) Подключить к агенде да да

Упомянуто