ИИ-агенты

Оркестрация нескольких инструментов с долговременной памятью на протяжении нескольких ходов диалога.

Агент поддерживает состояние диалога на стороне сервера: он вызывает модель, автоматически выполняет встроенные инструменты (память) и возвращает управление вам только тогда, когда получен окончательный ответ или требуется выполнить инструмент, определённый вами.

Создание диалога

http
POST /v1/agents/conversations
json
{
  "model": null,
  "routing_strategy": "auto",
  "system_prompt": "Tu es un assistant utile et concis.",
  "tools": []
}

tools объявляет ваши собственные пользовательские инструменты (см. ниже) — встроенные инструменты (память, генерация видео) всегда доступны без необходимости их объявления.

Отправка сообщения

http
POST /v1/agents/conversations/{id}/messages
json
{ "content": "Retiens que mon fournisseur prefere est Anthropic." }

Ответ всегда представляет собой полное состояние диалога:

json
{
  "id": "1a63c0df-...",
  "model": null,
  "routing_strategy": "auto",
  "status": "idle",
  "messages": [
    { "id": "...", "role": "user", "content": "Retiens que mon fournisseur prefere est Anthropic.", "tool_calls": null, "tool_call_id": null },
    { "id": "...", "role": "assistant", "content": "", "tool_calls": [{ "id": "call_1", "name": "remember", "arguments": { "content": "Fournisseur prefere : Anthropic" } }], "tool_call_id": null },
    { "id": "...", "role": "tool", "content": "Memoire enregistree (id=...)", "tool_call_id": "call_1" },
    { "id": "...", "role": "assistant", "content": "C'est note !", "tool_calls": null, "tool_call_id": null }
  ],
  "created_at": "...",
  "updated_at": "..."
}

status принимает значение idle (готов к новому сообщению), requires_action (один из ваших пользовательских инструментов ожидает результата) или generating_media (выполняется генерация видео, см. ниже).

Встроенные инструменты

  • search_memory — поиск в долговременной памяти агента (параметр query, опционально top_k)
  • remember — сохранение информации (параметр content)
  • generate_video — запуск генерации видео (те же параметры, что и POST /v1/video/generate: prompt, duration_seconds, narration_text, scenes — см. руководство Видео)

Эти три инструмента выполняются сервером автоматически — вам не нужно ничего делать, диалог продолжается сам собой (за исключением generate_video, который переводит диалог в состояние generating_media на время выполнения задачи; опрашивайте GET /v1/agents/conversations/{id} до достижения состояния idle).

Пользовательские инструменты

Объявите собственные инструменты при создании диалога (tools). Когда модель их вызывает, статус переходит в requires_action, и диалог останавливается — вам нужно выполнить инструмент и вернуть результат:

http
POST /v1/agents/conversations/{id}/tool-outputs
json
{
  "outputs": [
    { "tool_call_id": "call_2", "output": "18C, nuageux" }
  ]
}
POST .../messages возвращает 409 conflict, если диалог не находится в состоянии idle — дождитесь разрешения ожидающего инструмента, прежде чем отправлять новое сообщение.

Получение списка / просмотр

bash
GET /v1/agents/conversations          # liste (resume, sans les messages)
GET /v1/agents/conversations/{id}      # detail complet