Один канонический протокол для каждого ИИ-провайдера
Чистый · web-first · мультипровайдерный TypeScript AI SDK
Anthropic, OpenAI, xAI Grok, Google Gemini и Vertex AI за одним каноническим протоколом стриминга. Ноль runtime-зависимостей, детерминизм по дизайну — работает везде, где работает fetch.
npm install @deuz-sdk/coreЕдиная поверхность API для
- Anthropic
- OpenAI
- xAI Grok
- Google Gemini
- Vertex AI
- Yunwu
Канонический дельта-поток
Каждый ответ провайдера нормализуется в типизированный поток StreamPart до того, как его увидит ваш код. Сырой SSE никогда не просачивается.
Агентный цикл инструментов
Параллельное, самовосстанавливающееся выполнение инструментов с защитой от зацикливания, бюджетными стопами, воротами одобрения и вложенными суб-агентами.
Edge-безопасное ядро
Только Web API — без node:*, без Buffer, без внешнего состояния. Node, Deno, Bun, Vercel Edge и Cloudflare Workers.
Детерминированный и тестируемый
Часы, случайность, fetch и ключи внедряются через единый шов Dependencies. Golden-replay-тесты без реальной сети.
Память, RAG и skills
Пайплайн памяти в стиле mem0, гибридный поиск BM25 + векторы и прогрессивное раскрытие SKILL.md — всё edge-safe.
Структурированный вывод и UI-протокол
Схемно-типизированные generateObject / streamObject, React-хуки и версионируемый SSE-протокол, которым вы владеете целиком.
Стриминг в три строки
streamChat возвращается синхронно и никогда не бросает исключений — запрос лениво стартует при первом чтении. Поменяйте фабрику, чтобы сменить провайдера; больше ничего не меняется.
Quickstart// swap the factory to swap providers
import { streamChat } from '@deuz-sdk/core';
import { createAnthropic } from '@deuz-sdk/core/anthropic';
const anthropic = createAnthropic({ apiKey });
const res = streamChat({
model: anthropic('claude-opus-4-8'),
messages: [{ role: 'user', content: 'Hello!' }],
});
for await (const chunk of res.textStream) {
process.stdout.write(chunk);
}