Skip to Content
Справочник APIЗапрос к Agent

Запрос к Agent

Запустите agent против запроса и получите его ответ. Единственный endpoint поддерживает два режима, выбираемых полем stream тела запроса: блокирующий ответ JSON (по умолчанию) или потоковый ответ Server-Sent Events.

Запуск agent требует scope agents:query. Каждый запрос измеряется относительно лимита запросов к agent вашего тарифа на стороне сервера — его превышение возвращает 429 на блокирующем пути или один событие error на потоковом пути.

POST /agents/{agent_id}/query

Запустите agent, идентифицированный по agent_id.

Scope: agents:query · Успех: 200

ПараметрВТипОбязательныйОписание
agent_idpathstringДаAgent для запуска.
querybodystringДаЗапрос пользователя (1–10000 символов).
streambodybooleanНетКогда true, возвращает поток SSE. По умолчанию false.
conversation_idbodystringНетПродолжает многоходовой разговор. Имеет приоритет над session_id.
session_idbodystringНетАльтернативный многоходовой key (игнорируется, если задан conversation_id).
Idempotency-KeyheaderstringНетKey безопасного повтора. Учитывается на блокирующем пути; игнорируется при stream: true.

Блокирующий режим (по умолчанию)

При stream, опущенном или равном false, endpoint возвращает одно тело JSON после завершения запуска.

curl -X POST https://cuneiform.chat/api/developer/v1/agents/agt_7c1d8e/query \ -H "Authorization: Bearer cuk_live_xxxxxxxxxxxxxxxx" \ -H "Content-Type: application/json" \ -d '{ "query": "What is the parental leave policy?" }'
{ "agent_id": "agt_7c1d8e", "conversation_id": "conv_4d8a1f", "response": "Eligible employees receive 16 weeks of paid parental leave...", "tools_used": [ { "name": "knowledge_search", "status": "complete" } ], "usage": { "prompt_tokens": 820, "completion_tokens": 145, "total_tokens": 965 }, "latency_ms": 1840, "created_at": "2026-06-07T12:00:00Z" }
ПолеТипОписание
agent_idstringAgent, который выполнился.
conversation_idstring | nullПередайте обратно как conversation_id, чтобы продолжить разговор.
responsestringТекст ответа agent.
tools_usedarrayИнструменты, которые вызвал agent, каждый как {name, status}. statuscomplete или error.
usageobjectПодсчёты токенов: prompt_tokens, completion_tokens, total_tokens. Стоимость не возвращается.
latency_msinteger | nullФактическая задержка ответа в миллисекундах.
created_atstring | nullКогда был дан ответ на запрос (ISO-8601).

Чтобы продолжить многоходовой разговор, отправьте conversation_id из предыдущего ответа при следующем вызове.

Потоковый режим (SSE)

При stream: true endpoint возвращает text/event-stream из Server-Sent Events. Задайте stream: true в теле и читайте ответ инкрементально.

curl -N -X POST https://cuneiform.chat/api/developer/v1/agents/agt_7c1d8e/query \ -H "Authorization: Bearer cuk_live_xxxxxxxxxxxxxxxx" \ -H "Content-Type: application/json" \ -d '{ "query": "What is the parental leave policy?", "stream": true }'

Схема событий v1

Поток v1 выдаёт ровно шесть имён событий. Любое другое внутреннее событие отбрасывается — ваш клиент видит только эти:

СобытиеКогдаПолезная нагрузка data:
startЗапуск начался.{ "agent_id", "conversation_id" }
contentИнкрементальный фрагмент текста ответа.{ "delta": "..." }
tool_callНачалось вызов инструмента.{ "tool": "...", "status": "running" }
tool_resultВызов инструмента завершился.{ "tool": "...", "status": "complete" }
doneЗапуск завершился.{ "tokens_used", "latency_ms", "conversation_id" }
errorЗапуск завершился неудачно или был отклонён (например, превышен лимит).{ "error": "..." }

Поле стоимости не появляется ни в одном событии — done несёт только подсчёты токенов и задержку.

Пример транскрипта

Успешный потоковый запуск выглядит на проводе так:

event: start data: {"agent_id": "agt_7c1d8e", "conversation_id": "conv_4d8a1f"} event: content data: {"delta": "Eligible employees receive "} event: tool_call data: {"tool": "knowledge_search", "status": "running"} event: tool_result data: {"tool": "knowledge_search", "status": "complete"} event: content data: {"delta": "16 weeks of paid parental leave."} event: done data: {"tokens_used": 965, "latency_ms": 1840, "conversation_id": "conv_4d8a1f"}

Соедините значения delta из каждого события content, чтобы собрать полный ответ. Событие done сигнализирует о конце потока.

Отказ — например, превышение лимита запросов к agent — приходит как один событие error:

event: error data: {"error": "Query allowance exceeded."}

Ошибки: 400, 401, 403 (scope), 404 agent_not_found, 429 (лимит запросов к agent, блокирующий путь), 500.

Last updated on