REST API

Результат и статусы

GET /api/tasks/{uuid} возвращает текущий статус и, для завершённых задач, результат в поле turn.

GET /api/tasks/{uuid}

Ответ

ПолеТипОписание
uuidstringИдентификатор задачи.
statusstringТекущий статус (см. ниже).
turnobject | nullРезультат от Aist Core. Заполнен при completed. См. Структура turn.
errorstring | nullЧеловекочитаемая причина при failed.
created_atstringМомент создания задачи.
completed_atstring | nullМомент перехода в терминальный статус.
pending_tool_callsarrayТолько при interrupted — вызовы клиентских инструментов, ждущие ответа.

Жизненный цикл статусов

pending ──▶ processing ──┬──▶ completed        # успех, turn заполнен
                         ├──▶ failed            # ошибка, error заполнен
                         └──▶ interrupted ──▶ processing ──▶ …   # ждём client_tools
СтатусЗначение
pendingЗадача в очереди, ещё не отправлена в Aist Core.
processingAist Core принял ход и обрабатывает его.
interruptedМодель вызвала клиентский инструмент — ждёт результата от вас. См. Клиентские инструменты.
completedТерминальный. Результат в turn.
failedТерминальный. Причина в error.

Терминальные статусы — completed и failed: после них задача не меняется. interrupted — промежуточный: он требует вашего действия и снова переходит в processing после отправки результатов инструментов.

Стратегия опроса

Опрашивайте GET /api/tasks/{uuid} с интервалом ~1–2 с, пока status не станет терминальным (или interrupted, если используете клиентские инструменты). SDK делает это за вас — см. waitForTask.

Доступ только владельцу
Задачу можно получить только тем же пользователем (sub в JWT), что её создал — иначе 403. Завершённые и упавшие задачи хранятся 30 дней, затем удаляются.