Agent Chat
const url = 'https://api.cloud.agentums.ru/v1/agent/chat';const options = { method: 'POST', headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'}, body: '{"agent_slug":"example","attachment_ids":["2489E9AD-2EE2-8E00-8EC9-32D5F69181C0"],"channel_chat_id":0,"channel_members":[{"display_name":"","role":"","user_id":1,"username":""}],"channel_user_id":0,"collection_id":"2489E9AD-2EE2-8E00-8EC9-32D5F69181C0","history":[{"content":"example","role":"example"}],"include_subfolders":true,"inline_attachments":[{"filename":"","text":"example"}],"query":"example","scope_object_ids":["2489E9AD-2EE2-8E00-8EC9-32D5F69181C0"],"session_id":"example","web_search":true}'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request POST \ --url https://api.cloud.agentums.ru/v1/agent/chat \ --header 'Authorization: Bearer <token>' \ --header 'Content-Type: application/json' \ --data '{ "agent_slug": "example", "attachment_ids": [ "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0" ], "channel_chat_id": 0, "channel_members": [ { "display_name": "", "role": "", "user_id": 1, "username": "" } ], "channel_user_id": 0, "collection_id": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "history": [ { "content": "example", "role": "example" } ], "include_subfolders": true, "inline_attachments": [ { "filename": "", "text": "example" } ], "query": "example", "scope_object_ids": [ "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0" ], "session_id": "example", "web_search": true }'Агент с инструментами: сам решает, что сделать с файлами, и стримит ход работы.
В отличие от /chat агент действует: ищет, конвертирует, переводит, собирает PDF,
заводит поручения. Ответ — поток SSE-событий: start, token (кусочки текста),
tool_start / tool_end, paused, error, done.
Форма потока — два правила, которые легко нарушить, и оба стоят потерянных данных:
paused— конец потока.doneза ним НЕ придёт: агент упёрся в опасный инструмент (перезапись файла, необратимое действие) и ждёт решения. Продолжают ран черезPOST /agent/continue, передавая решения по ВСЕМ инструментам из события одним вызовом — не упомянутый инструмент молча не выполнится.error— не конец потока. За кадром с ошибкой могут прийти ещё токены иdone. Выйти из цикла поerrorзначит потерять хвост ответа.
session_id из start/done продолжает разговор следующим вызовом. collection_id
ограничивает работу папкой, scope_object_ids (до 25) — конкретными файлами: это
сужение поиска инструментов, а не выдача доступа. web_search — политика «можно ли
вообще», решение идти в сеть принимает сам агент.
Ошибки приходят до потока, обычным ответом: 503 — агентный режим выключен на сервере,
402 — исчерпан месячный лимит.
Authorizations
Заголовок раздела «Authorizations»Parameters
Заголовок раздела «Parameters»Header Parameters
Заголовок раздела «Header Parameters»Request Bodyrequired
Заголовок раздела «Request Bodyrequired»object
Один участник канала: адрес плюс то, как его зовут и окликают.
object
object
Разовое вложение: имя файла + УЖЕ извлечённый текст. Файла в облаке нет и не будет — это контекст, который живёт только в запросе (и в истории чата как имя).
object
Responses
Заголовок раздела «Responses»Поток событий SSE: кадры data: {…} с полем type (start|token|tool_start|tool_end|paused|error|done). paused — терминальный кадр (ран ждёт /agent/continue), error — НЕ терминальный: за ним ещё могут прийти токены и done.
Examplegenerated
exampleValidation Error
object
object
object
Examplegenerated
{ "detail": [ { "ctx": {}, "input": "example", "loc": [ "example" ], "msg": "example", "type": "example" } ]}