Un protocollo canonico per ogni provider di IA
SDK IA TypeScript puro · web-first · multi-provider
29 provider dietro un unico stream delta StreamPart. Zero dipendenze runtime — pack SQLite, Redis e Postgres, guardrail e handoff nel loop, MCP che si connette da solo. Funziona ovunque funzioni fetch.
npm install @deuz-sdk/core- id provider
- 29
- sottopath
- 53
- pack database
- 3
- per lo più additivo
- 1.9 → 2.0
Un’unica superficie API per
- Anthropic
- OpenAI
- Google Gemini
- xAI Grok
- Azure
- Bedrock
- Ollama
- LM Studio
+ altri 21, inclusi Ollama e LM Studio
Stream delta canonico
Ogni risposta del provider viene normalizzata in un unico stream StreamPart tipizzato prima che il tuo codice la veda. Nessun SSE grezzo trapela mai.
Loop agentico, ora con policy
Strumenti paralleli auto-riparanti, sub-agenti annidati, più i guardrail 2.0 (pass / block / rewrite) e handoff() per trasferire l’intero run.
Punta la persistenza a un database
Pack SQLite, Redis e Postgres dietro le seam memory, chat, session e run. FTS5 + pgvector se li vuoi — zero dipendenze altrimenti.
MCP zero-config
Indica i server sulla chiamata; il loop li connette, li namespace, li aggiorna e li chiude. OAuth 2.0, sampling, roots e reconnect verificato con ping.
Core edge-safe
Solo Web API — niente node:*, niente Buffer, nessuno stato ambientale. Node, Deno, Bun, Vercel Edge e Cloudflare Workers.
Speech, trascrizione, video
generateSpeech, transcribe e generateVideo come kind di modello distinti — OpenAI, ElevenLabs, Deepgram e qualsiasi relay OpenAI-Videos.
Streaming in tre righe
streamChat ritorna in modo sincrono e non lancia mai eccezioni — la richiesta parte pigramente alla prima lettura. Cambia la factory per cambiare provider; nient’altro si muove.
Inizia// 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);
}Per il tuo agente di codice
Il tuo agente conosce già questo SDK
Il repository include due Agent Skill, così l’agente scrive sulla superficie reale invece di ricostruirla a memoria. Ogni simbolo viene risolto contro la tabella degli export a ogni commit e ogni esempio viene compilato: un nome che non esiste non passa.
Come vengono verificate$ npx skills add Deuz-AI/Deuz-SDKdeuz-sdkL’intera superficie: gli invarianti, un router da attività a file e tredici file di riferimento caricati solo quando servono.
migrate-from-ai-sdkLa migrazione verificata, nome per nome, da ai e dai pacchetti @ai-sdk.