TypeScript · Изоморфный · Без зависимостей

Agent SDK для
TypeScript и JavaScript

Официальный клиент для шлюза AIST Agent. Создание тасков, опрос результата, автоматический interrupt-цикл клиентских инструментов и загрузка файлов — на нативном fetch, в Node 18+ и браузере.

npm @aist-packages/aist-agent-sdk
$ npm install @aist-packages/aist-agent-sdk

Строгая типизация

Полные типы wire-формата: Task, Turn, InputItem и т.д. Автодополнение из коробки.

Изоморфность

Один код для Node 18+ и браузера. Нативные fetch и FormData, никаких рантайм-зависимостей.

Клиентские инструменты

runTask сам проходит interrupt-цикл: модель вызвала инструмент — SDK выполнил обработчик и продолжил.

Типизированные ошибки

Подклассы под каждый HTTP-статус: Unauthorized, RateLimit, Validation и др.

Быстрый старт

Создайте клиент, отправьте таск и дождитесь результата — всего несколько строк.

index.ts Создать таск и дождаться результата
import { AistAgentClient, textInput } from '@aist-packages/aist-agent-sdk';
const client = new AistAgentClient({
  baseUrl: 'https://agent.aist-ai.com',
  token: process.env.AIST_AGENT_TOKEN!, // JWT (RS256)
});
const { uuid } = await client.createTask({
  assistant_id: 1,
  input: [textInput('Привет! Кто ты?')],
});
// Опрос до терминального статуса
const task = await client.waitForTask(uuid, {
  stopOn: ['completed', 'failed'],
});
console.log(task.turn?.output);

Что здесь происходит

  • 1 new AistAgentClient хранит baseUrl и JWT — токен уходит как Authorization: Bearer на каждый запрос.
  • 2 createTask ставит задачу в очередь и мгновенно возвращает uuid.
  • 3 waitForTask опрашивает статус, пока он не попадёт в stopOn, и возвращает финальный Task.
Хелперы textInput, fileInput, voiceInput собирают элементы массива input с правильным type.

Документация SDK

Клиентские инструменты, загрузка файлов, полный справочник методов и обработка ошибок — подробно, с примерами.

Открыть документацию SDK

Разработка

Пакет собирается через tsup в ESM, CJS и .d.ts. Тесты — на vitest с мок-fetch, без сети.

$ npm install
$ npm run type-check # строгая типизация
$ npm test # vitest, без сети
$ npm run build # tsup → dist/

Сквозной прогон против живого сервера — см. каталог examples/ (npx tsx examples/client-tools.ts). Лицензия — MIT.

Нужна интеграция без SDK?

REST API описан на главной странице, а машиночитаемая документация лежит в llms.txt — скормите её кодинг-ассистенту, и он сгенерирует интеграцию на любом языке.