Один канонический протокол для каждого ИИ-провайдера
Чистый · web-first · мультипровайдерный TypeScript AI SDK
29 провайдеров за одним дельта-потоком StreamPart. Ноль runtime-зависимостей — пакеты SQLite, Redis и Postgres, guardrail и handoff в цикле, MCP, который подключается сам. Работает везде, где работает fetch.
npm install @deuz-sdk/core- id провайдеров
- 29
- подпутей
- 80
- пакета БД
- 3
- в основном аддитивно
- 2.3 → 2.4
Единая поверхность API для
Каждый знак открывает своё руководство. Любой другой OpenAI-совместимый хост работает через createOpenAICompatible.
Канонический дельта-поток
Каждый ответ провайдера нормализуется в типизированный поток StreamPart до того, как его увидит ваш код. Сырой SSE никогда не просачивается.
Нативные агенты и сохраняемые swarm
Опциональные нативные агенты с проверкой результатов, общими и постоянными бюджетами. Swarm, которые создают задачи во время работы, делят общую доску и переходят между процессами по lease, в памяти, SQLite, Postgres или Redis.
Направьте персистентность в базу
Пакеты SQLite, Redis и Postgres за швами memory, chat, session и run. FTS5 + pgvector по желанию — ноль зависимостей, если не нужны.
MCP без конфигурации
Укажите серверы в вызове; цикл подключает, именует, обновляет и закрывает их. OAuth 2.0, sampling, roots и reconnect с проверкой ping.
Edge-безопасное ядро
Только Web API — без node:*, без Buffer, без внешнего состояния. Node, Deno, Bun, Vercel Edge и Cloudflare Workers.
Речь, транскрипция, видео
generateSpeech, transcribe и generateVideo как отдельные виды моделей — OpenAI, ElevenLabs, Deepgram и любой релей OpenAI-Videos.
Стриминг в три строки
streamChat возвращается синхронно и никогда не бросает исключений — запрос лениво стартует при первом чтении. Поменяйте фабрику, чтобы сменить провайдера; больше ничего не меняется.
Начать// 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);
}Для вашего кодового агента
Ваш агент уже знает этот SDK
В репозитории лежат два Agent Skill, поэтому агент пишет по реальной поверхности, а не восстанавливает её по памяти. Каждый символ сверяется с таблицей экспортов на каждом коммите, а каждый пример компилируется — несуществующее имя не пройдёт.
Как они проверяются$ npx skills add Deuz-AI/Deuz-SDKdeuz-sdkВся поверхность: инварианты, маршрутизатор «задача → файл» и двадцать пять справочных файлов, загружаемых только по необходимости.
migrate-from-ai-sdkПроверенный перенос имя в имя из ai и пакетов @ai-sdk.
