Un protocolo canónico para cada proveedor de IA
SDK de IA para TypeScript puro · web-first · multiproveedor
29 proveedores detrás de un único stream delta StreamPart. Cero dependencias en tiempo de ejecución — packs SQLite, Redis y Postgres, guardrails y handoffs en el bucle, MCP que se conecta solo. Funciona dondequiera que funcione fetch.
npm install @deuz-sdk/core- ids de proveedor
- 29
- subrutas
- 53
- packs de base de datos
- 3
- casi todo aditivo
- 1.9 → 2.0
Una sola superficie de API para
- Anthropic
- OpenAI
- Google Gemini
- xAI Grok
- Azure
- Bedrock
- Ollama
- LM Studio
+ 21 más, incluidos Ollama y LM Studio
Stream delta canónico
Cada respuesta del proveedor se normaliza a un stream StreamPart tipado antes de que tu código la vea. Nunca se filtra SSE crudo.
Bucle agéntico, ahora con política
Herramientas paralelas autorreparadoras, subagentes anidados, más guardrails 2.0 (pass / block / rewrite) y handoff() para transferir todo el run.
Apunta la persistencia a una base
Packs SQLite, Redis y Postgres detrás de las costuras de memoria, chat, sesión y run. FTS5 + pgvector si los quieres — cero deps si no.
MCP cero-config
Nombra servidores en la llamada; el bucle los conecta, les da namespace, los refresca y los cierra. OAuth 2.0, sampling, roots y reconexión verificada con ping.
Núcleo edge-safe
Solo Web APIs — sin node:*, sin Buffer, sin estado ambiental. Node, Deno, Bun, Vercel Edge y Cloudflare Workers.
Voz, transcripción, vídeo
generateSpeech, transcribe y generateVideo como kinds de modelo propios — OpenAI, ElevenLabs, Deepgram y cualquier relé OpenAI-Videos.
Streaming en tres líneas
streamChat retorna de forma síncrona y nunca lanza excepciones — la petición arranca perezosamente en la primera lectura. Cambia la factory para cambiar de proveedor; nada más se mueve.
Empezar// 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);
}Para tu agente de código
Tu agente ya conoce este SDK
El repositorio incluye dos Agent Skills, de modo que el agente escribe contra la superficie real en lugar de reconstruirla de memoria. Cada símbolo se resuelve contra la tabla de exports en cada commit y cada ejemplo se compila: un nombre que no existe no se puede fusionar.
Cómo se verifican$ npx skills add Deuz-AI/Deuz-SDKdeuz-sdkToda la superficie: los invariantes, un enrutador de tarea a archivo y trece archivos de referencia que se cargan solo cuando hacen falta.
migrate-from-ai-sdkLa migración verificada, nombre por nombre, desde ai y los paquetes @ai-sdk.