Вышел Deuz SDK 2.0 — store, guardrail, handoff и MCP без конфигурации. Что нового в 2.0
v2.0.0 — Постоянные store, guardrail, handoff и MCP без конфигурации

Один канонический протокол для каждого ИИ-провайдера

Чистый · web-first · мультипровайдерный TypeScript AI SDK

29 провайдеров за одним дельта-потоком StreamPart. Ноль runtime-зависимостей — пакеты SQLite, Redis и Postgres, guardrail и handoff в цикле, MCP, который подключается сам. Работает везде, где работает fetch.

npm install @deuz-sdk/core
id провайдеров
29
подпутей
53
пакета БД
3
в основном аддитивно
1.9 → 2.0

Единая поверхность API для

  • Anthropic
  • OpenAI
  • Google Gemini
  • xAI Grok
  • Azure
  • Bedrock
  • Ollama
  • LM Studio

+ ещё 21, включая Ollama и LM Studio

Канонический дельта-поток

Каждый ответ провайдера нормализуется в типизированный поток StreamPart до того, как его увидит ваш код. Сырой SSE никогда не просачивается.

Агентный цикл — теперь с политикой

Параллельные самовосстанавливающиеся инструменты, вложенные суб-агенты, плюс guardrail 2.0 (pass / block / rewrite) и handoff() для передачи всего запуска.

Направьте персистентность в базу

Пакеты 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-SDK
  • deuz-sdk

    Вся поверхность: инварианты, маршрутизатор «задача → файл» и тринадцать справочных файлов, загружаемых только по необходимости.

  • migrate-from-ai-sdk

    Проверенный перенос имя в имя из ai и пакетов @ai-sdk.