SDK

Справочник API SDK

Полный обзор конструктора, методов и хелперов клиента.

new AistAgentClient(options)

ОпцияТипНазначение
baseUrlstringАдрес шлюза AIST Agent.
tokenstringJWT для заголовка Authorization: Bearer.
headers?objectДополнительные заголовки на каждый запрос.
timeoutMs?numberТаймаут одиночного HTTP-запроса (0 — без таймаута).
fetch?functionКастомный fetch (тесты / Node < 18).

Низкоуровневые методы

Соответствуют эндпоинтам API один к одному.

МетодЭндпоинт
createTask(input, signal?)POST /api/tasks{ uuid, status }
getTask(uuid, signal?)GET /api/tasks/{uuid}Task
submitToolResults(uuid, results, signal?)POST /api/tasks/{uuid}/tool-results
uploadFile(file, opts?)POST /api/files → input-ready объект
getStorageBase(signal?)GET /api/storage/basestring

Высокоуровневые хелперы

waitForTask(uuid, opts?)

Опрашивает задачу, пока статус не попадёт в stopOn (дефолт: completed/failed/interrupted).

ОпцияНазначение
pollIntervalMsИнтервал опроса. Дефолт 1500.
timeoutMsОбщий таймаут ожидания (0 — без таймаута).
stopOnСтатусы, на которых ожидание прекращается.
onPollКолбэк после каждого опроса.
signalAbortSignal для отмены.

runTask(input, opts?)

Создание задачи + автоматический interrupt-цикл клиентских инструментов до терминального статуса. Опции — на странице runTask и client tools.

textInput / fileInput / voiceInput

Функции-хелперы для сборки элементов массива input с корректным type.

ts
textInput('Привет')                    // { type: 'text', text: 'Привет' }
fileInput({ id: '42', name: 'a.pdf', mime_type: 'application/pdf' })
voiceInput({ id: '7', name: 'v.ogg', mime_type: 'audio/ogg' })

Ключевые типы

ТипОписание
TaskStatus'pending' | 'processing' | 'interrupted' | 'completed' | 'failed'
TaskОтвет GET /api/tasks/{uuid}: uuid, status, turn, error, …
Turnoutput, messages, metadata, interrupt?
InputItemTextInputItem | FileInputItem | VoiceInputItem
PendingToolCall{ id, name, arguments } — вызов при interrupted