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);