Un protocole canonique pour chaque fournisseur d’IA
SDK IA TypeScript pur · web-first · multi-fournisseur
29 fournisseurs derrière un seul flux delta StreamPart. Zéro dépendance runtime — packs SQLite, Redis et Postgres, guardrails et handoffs dans la boucle, MCP qui se connecte tout seul. Fonctionne partout où fetch fonctionne.
npm install @deuz-sdk/core- ids de fournisseur
- 29
- sous-chemins
- 53
- packs base de données
- 3
- surtout additif
- 1.9 → 2.0
Une seule surface d’API pour
- Anthropic
- OpenAI
- Google Gemini
- xAI Grok
- Azure
- Bedrock
- Ollama
- LM Studio
+ 21 autres, dont Ollama et LM Studio
Flux delta canonique
Chaque réponse de fournisseur est normalisée en un flux StreamPart typé avant que votre code ne la voie. Aucun SSE brut ne s’échappe jamais.
Boucle agentique, désormais avec politique
Outils parallèles auto-réparateurs, sous-agents imbriqués, plus les guardrails 2.0 (pass / block / rewrite) et handoff() pour transférer tout le run.
Pointer la persistance vers une base
Packs SQLite, Redis et Postgres derrière les coutures mémoire, chat, session et run. FTS5 + pgvector si vous les voulez — zéro dep sinon.
MCP zéro-config
Nommez les serveurs sur l’appel ; la boucle les connecte, les namespace, les rafraîchit et les ferme. OAuth 2.0, sampling, roots et reconnect vérifié par ping.
Cœur edge-safe
API Web uniquement — pas de node:*, pas de Buffer, pas d’état ambiant. Node, Deno, Bun, Vercel Edge et Cloudflare Workers.
Parole, transcription, vidéo
generateSpeech, transcribe et generateVideo comme kinds de modèle distincts — OpenAI, ElevenLabs, Deepgram, et tout relais OpenAI-Videos.
Le streaming en trois lignes
streamChat retourne de façon synchrone et ne lève jamais d’exception — la requête démarre paresseusement à la première lecture. Changez la factory pour changer de fournisseur ; rien d’autre ne bouge.
Commencer// 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);
}Pour votre agent de code
Votre agent connaît déjà ce SDK
Deux Agent Skills sont fournis avec le dépôt : l’agent écrit face à la vraie surface au lieu de la reconstituer de mémoire. Chaque symbole y est résolu contre la table d’exports à chaque commit et chaque exemple est compilé — un nom inexistant ne peut pas être fusionné.
Comment ils sont vérifiés$ npx skills add Deuz-AI/Deuz-SDKdeuz-sdkToute la surface : les invariants, un routeur tâche-vers-fichier et treize fichiers de référence chargés seulement quand la tâche l’exige.
migrate-from-ai-sdkLe portage vérifié, nom par nom, depuis ai et les paquets @ai-sdk.