Формат ответа

Структура turn

Поле turn задачи — это результат от Aist Core. Три ключевых части: output (ответ ассистента), messages (контекст LLM) и metadata (стоимость и модель).

Для завершённой задачи GET /api/tasks/{uuid} возвращает объект turn в исходном формате Aist Core:

{
  "input":    [/* входные данные (эхо из запроса) */],
  "output":   [/* ответ ассистента — см. «Типы output» */],
  "messages": [/* сырые LLM-сообщения — реальный контекст */],
  "metadata": {
    "cost": {
      "total": 0.0052,
      "details": { "llm": 0.0048, "tools": 0.0004, "transcription": 0 }
    },
    "model": "claude-sonnet-4-6"       // фактически использованная модель
  }
}

Поля

ПолеТипОписание
inputarrayВходные элементы (эхо из запроса).
outputarrayОтвет ассистента для показа пользователю. См. Типы output.
messagesarrayПолная история LLM. Нужна для продолжения диалога. См. Поле messages.
metadataobjectСтоимость (cost) и идентификатор фактически использованной модели (model).

output vs messages

Это разные вещи. output — «чистый» результат для отображения (текст, файлы, вызовы инструментов в порядке действий ассистента). messages — низкоуровневый протокол role/content с ID вызовов, результатами инструментов и thinking-блоками; именно он передаётся модели для восстановления контекста в следующем ходе.

metadata.model
Если у ассистента настроена fallback-цепочка моделей, в metadata.model будет та модель, которая фактически ответила, — она может отличаться от первой в цепочке.