AGONTS
Для разработчиков

TypeScript SDK

Официальный TypeScript/JavaScript SDK для интеграции с AGONTS. Сессии, стриминг в стиле Vercel AI SDK и песочницы кода.

Официальный SDK позволяет легко управлять сессиями агентов, запускать автоматические сценарии (Flows), управлять контекстом и выполнять изолированный код в песочницах (Sandboxes).

Репозиторий проекта на GitHub: github.com/DKeken/agonts-sdk

Установка

bun add agonts-sdk
# или
npm install agonts-sdk

Инициализация

Для работы с SDK требуется передать API-ключ вашего воркспейса. По умолчанию запросы отправляются к прокcи-эндпоинту https://ag0nts.xyz/_api.

import { Agonts } from "agonts-sdk";

const agonts = new Agonts({
  apiKey: process.env.AGONTS_API_KEY || "",
  baseUrl: "https://ag0nts.xyz/_api",
});

Управление сессиями

1. Создание сессии

Создать сессию можно указав agentId (для общения с агентом) или flowId (для запуска интерактивного сценария):

const session = await agonts.sessions.create({
  agentId: "a3d13264-b529-4509-906d-55b6c32145b2",
  title: "Интеграционная задача",
});

2. Отправка сообщения (Синхронно)

Отправляет текстовый запрос и ждет ответа от агента:

const result = await agonts.sessions.sendMessage(session.id, {
  content: "Проверь статус транзакций в MES",
});

console.log(result.assistantMessage);

Стриминг (Стиль Vercel AI SDK)

SDK предоставляет удобные интерфейсы для стриминга ответов в реальном времени.

1. Стриминг текста

Итерируйте по текстовым чанкам по мере их генерации:

const stream = await agonts.sessions.sendMessageStream(session.id, {
  content: "Сделай подробный отчет.",
});

for await (const chunk of stream.textStream) {
  process.stdout.write(chunk);
}

Вы также можете дождаться финального текста через свойство text:

const fullText = await stream.text;

2. Использование в Next.js Route Handlers

Вы можете мгновенно передать стрим обратно клиенту в формате обычного текста или Server-Sent Events (SSE):

import { Agonts } from "agonts-sdk";

export async function POST(req: Request) {
  const { sessionId, prompt } = await req.json();
  const agonts = new Agonts({ apiKey: process.env.AGONTS_API_KEY || "" });

  const stream = await agonts.sessions.sendMessageStream(sessionId, {
    content: prompt,
  });

  return stream.toTextStreamResponse();
}

Для стриминга всех событий (вызовов инструментов, шагов сценариев) используйте:

return stream.toDataStreamResponse();

Песочницы (Sandboxes)

Безопасное выполнение произвольного Python или Bash кода в изолированных Docker-контейнерах:

const sandbox = await agonts.sandboxes.create();

const result = await agonts.sandboxes.execute(sandbox.id, {
  type: "python",
  code: "print('hello from sandbox')",
});

console.log(result.stdout);

On this page