Saltar al contenido principal
useChat()useStream()useReactive()adapterstreamingChatContainerMessageInputBar<5KBanthropic()openai()send()stop()retry()data-ak-*onMessageonChunkheadlessthemehookscreateRuntime()RAGInkCLItoolsmemory
Código abierto · Extensible — React, terminal y sin cabeza

Un kit de agentes para JavaScript

React · CLI · Runtime · RAG · Tools — los mismos contratos en todas partes

Adaptadores enchufables y tipos compartidos en @agentskit/core, UI opcional. Empieza en React; reutiliza las mismas ideas en Ink, la CLI, o runtime— cambia de modelo en una línea.

MIT · Sin registro · Primera UI con streaming en menos de un minuto · pnpm, yarn o npm

AgentsKit DemoLIVE
Starting demo...

Cómo encaja AgentsKit en el panorama

Una mirada práctica — no es un benchmark de rendimiento. Elige lo que encaje con tu stack y el control que necesitas.

Esta tabla es ancha — desplázate horizontalmente en pantallas pequeñas para comparar todas las columnas.

DimensiónSDKs de UI atados al proveedor o cerradosRutas de frameworks web opinadosAgentsKit
PropiedadA menudo ligado a la consola de un proveedor, funciones solo alojadas o rutas de actualización opacas.Código abierto con un «camino feliz» marcado para un ecosistema concreto (p. ej. patrones de streaming en React).MIT, paquetes npm modulares — tú controlas el despliegue; cambia adaptadores sin reescribir la capa de UI.
Modelo de UIWidgets prefabricados; poco tema o salidas limitadas.Convenciones y ejemplos centrados en las formas de un solo stack.Primitivas headless (data-ak-*) más tema opcional — usa MUI, shadcn o tu design system.
SuperficiesSuele ser web primero; terminal o agentes sin cabeza son un añadido.Web primero; la profundidad fuera del navegador varía.Los mismos contratos para React, Ink (terminal), CLI y runtime.
ExtensiónNiveles de plugins, APIs de extensión cerradas o esquemas de herramientas del proveedor.Composable dentro del mundo del framework.Tipos core compartidos — adaptadores, herramientas, memoria, RAG y skills se componen sobre @agentskit/core.

Encaja mejor si: un mismo stack en navegador, terminal y agentes sin cabeza, con control sobre adaptadores y herramientas. Omítelo si: un widget de un solo proveedor basta, o estás totalmente en la vía de IA de un solo framework.

Los SDK cerrados y los caminos opinados te frenan

Sigues siendo tú quien asume los casos límite del streaming — salvo que tu stack esté hecho para componer

  • Capas atadas al proveedor o cerradas — calendarios de actualización, funciones solo alojadas y límites opacos te encorsetan cuando necesitas herramientas propias o inferencia autoalojada.
  • Frameworks muy opinados — productivos en su camino feliz; dolorosos cuando tu producto cruza web, terminal y workers sin cabeza con un solo contrato.
  • Streams hechos a mano frágiles — trozos parciales, reintentos y abortos siguen filtrándose al UX («escribiendo» colgado, mensajes duplicados, resultados de herramientas perdidos) cuando el pegamento diverge por superficie.

AgentsKit es MIT y pensado para extender: adaptadores, herramientas, memoria y RAG descansan en primitivas compartidas para que mantengas el control y cambies piezas sin reescribir la narrativa del producto.

De ~50 líneas de pegamento a ~10 de producto

Menos código que revisar, probar y lamentar cuando la API cambie el mes que viene

Antes — ~50 líneas
const [messages, setMessages] = useState([])
const [input, setInput] = useState('')
const [streaming, setStreaming] = useState(false)
const abortRef = useRef(null)

const send = async () => {
  setStreaming(true)
  const userMsg = { role: 'user', content: input }
  setMessages(prev => [...prev, userMsg])
  const res = await fetch('/api/chat', {
    method: 'POST',
    body: JSON.stringify({ messages: [...messages, userMsg] }),
    signal: abortRef.current?.signal,
  })
  const reader = res.body.getReader()
  const decoder = new TextDecoder()
  let text = ''
  while (true) {
    const { done, value } = await reader.read()
    if (done) break
    text += decoder.decode(value)
    setMessages(prev => [...prev.slice(0,-1),
      { role: 'assistant', content: text }])
  }
  setStreaming(false)
}
// + error handling, auto-scroll, cleanup...
Después — 10 líneas con AgentsKit
import { useChat, ChatContainer, Message, InputBar }
  from '@agentskit/react'
import { anthropic } from '@agentskit/adapters'
import '@agentskit/react/theme'

function Chat() {
  const chat = useChat({
    adapter: anthropic({ model: 'claude-sonnet-4-6' })
  })
  return (
    <ChatContainer>
      {chat.messages.map(msg =>
        <Message key={msg.id} message={msg} />
      )}
      <InputBar chat={chat} />
    </ChatContainer>
  )
}

Una arquitectura, todas las superficies

Salta a la guía que necesites — cada enlace corresponde a un paquete @agentskit/* en npm.

Proveedores de modelos — cámbialos en una línea

AnthropicOpenAIVercel AI SDKAny ReadableStream

¿Por qué AgentsKit?

Todo lo que necesitas, nada que no — la misma historia de la UI a los agentes sin cabeza

🪝

3 Hooks

useStream, useReactive, useChat — that's the entire API. Learn it in 5 minutes.

<5KB Bundle

Tiny footprint. No virtual DOM overhead. Just reactive streams wired to the DOM.

🔌

Any Provider

Claude, GPT, Vercel AI SDK, or bring your own ReadableStream. Swap in one line.

🎨

Headless + Theme

Components ship with data-ak-* attributes. Import the theme or style your way.

🤖

Agent-Friendly

Entire API fits in 2K tokens. AI agents generate correct AgentsKit code first try.

🧩

Full toolkit

Runtime, Ink, CLI, RAG, memory, tools, skills, sandbox, eval — compose what you need, share types with @agentskit/core.

🌍

Works Everywhere

Next.js, Vite, Remix, TanStack Start — any React 18+ app. Zero config.

⏹️

Stop, retry, clear

Cancellation and retries on the chat controller — fewer stuck “typing…” states and duplicate assistant messages.

📡

Production visibility

Optional @agentskit/observability for traces across LLM calls, tools, and memory — OpenTelemetry-friendly when you need it.

🧪

Benchmark in CI

@agentskit/eval measures latency, cost, and success rate so agent regressions surface before users do.

10 ejemplos interactivos

Cada ejemplo es un chat — porque eso es lo que hace AgentsKit

Ve el streaming funcionar en menos de un minuto

Haz el inicio rápido y luego añade herramientas, memoria y RAG — el modelo mental no cambia.

MIT · Sin registro · Código abierto — úsalo, haz fork o di qué falta

Proyecto joven, evolucionando rápido

AgentsKit está en fase temprana y creciendo — pruébalo, abre un issue si algo falla y ayuda a definir la hoja de ruta.