Saltar al contenido principal

@agentskit/core

La capa de contratos compartida de AgentsKit: tipos de TypeScript, el controlador de chat sin UI, ayudas de stream y bloques de construcción usados por @agentskit/react, @agentskit/ink, @agentskit/runtime y los adaptadores. Sin dependencias de runtime de terceros: mantén este paquete pequeño y estable.

Cuándo usarlo

  • Implementas un adaptador personalizado, herramienta, memoria o UI sobre los tipos oficiales.
  • Necesitas createChatController sin React (integraciones avanzadas).
  • Quieres entender mensajes, llamadas a herramientas y fragmentos de stream en todo el ecosistema.

Normalmente no importas core directamente en una app React típica salvo por tipos: prefiere useChat y @agentskit/react.

Instalación

npm install @agentskit/core

La mayoría de los paquetes de funciones ya dependen de core; lo añades explícitamente al escribir bibliotecas o compartir tipos.

Exportaciones públicas (resumen)

Controlador de chat y configuración

ExportaciónRol
createChatControllerMáquina de estados sin UI: enviar, stream, herramientas, memoria, skills, retriever
Tipos: ChatConfig, ChatController, ChatState, ChatReturnForma de configuración y del controlador

El controlador fusiona system prompts, ejecuta recuperación, despacha llamadas a herramientas, persiste vía ChatMemory y expone patrones subscribe/update que consumen los paquetes de UI.

Primitivas y streams

ExportaciónRol
buildMessageConstruir un Message tipado
consumeStreamImpulsar StreamSource → fragmentos + finalización
createEventEmitterBus de eventos interno para observadores
executeToolCallEjecutar una herramienta desde un payload ToolCall
safeParseArgsAnalizar argumentos JSON de herramientas de forma segura
createToolLifecycleinit / dispose para herramientas
generateIdIDs estables para mensajes y llamadas

Ayudas del bucle de agente

ExportaciónRol
buildToolMapMapa nombre → ToolDefinition
activateSkillsFusionar system prompts de skills y herramientas que aportan los skills
executeSafeToolEjecución protegida (hooks de confirmación, errores)

Memoria y RAG (ligero)

ExportaciónRol
createInMemoryMemory, createLocalStorageMemory, createFileMemoryMemorias sencillas incluidas para pruebas o demos
serializeMessages / deserializeMessagesAyudas de persistencia
createStaticRetriever, formatRetrievedDocumentsAyudas de retriever para contexto estático

Los backends pesados están en @agentskit/memory; almacenes vectoriales y fragmentación en @agentskit/rag.

Archivo de configuración

ExportaciónRol
loadConfigCargar AgentsKitConfig del proyecto (CLI / herramientas)

Tipos (nivel alto)

AdapterFactory, StreamSource, StreamChunk, Message, ToolDefinition, ToolCall, SkillDefinition, ChatMemory, Retriever, VectorMemory, Observer, AgentEvent, y tipos relacionados — firmas completas en TypeDoc (abajo).

Ejemplo: inspeccionar tipos en una herramienta personalizada

import type { ToolDefinition, ToolExecutionContext } from '@agentskit/core'

export const myTool: ToolDefinition = {
name: 'greet',
description: 'Greets a user by name.',
schema: {
type: 'object',
properties: { name: { type: 'string' } },
required: ['name'],
},
async execute(args: Record<string, unknown>, _ctx: ToolExecutionContext) {
const name = String(args.name ?? 'world')
return `Hello, ${name}!`
},
}

Ejemplo: controlador sin UI (avanzado)

import { createChatController } from '@agentskit/core'
import { anthropic } from '@agentskit/adapters'

const chat = createChatController({
adapter: anthropic({ apiKey: process.env.ANTHROPIC_API_KEY!, model: 'claude-sonnet-4-6' }),
})

chat.subscribe(() => {
console.log(chat.getState().status, chat.getState().messages.length)
})

await chat.send('Hello')

En apps React prefiere useChat: envuelve este patrón con hooks.

Solución de problemas

ProblemaMitigación
Errores de tipos tras actualizarFija todos los @agentskit/* al mismo semver; los tipos de core evolucionan con el ecosistema.
createChatController frente a useChatEl controlador es agnóstico al framework; el hook de React añade el enlace de estado y seguridad en Strict Mode.
Preocupación por el tamaño del bundleTree-shake de exportaciones no usadas; evita importar utilidades solo de servidor en bundles de cliente.

Ver también

Empieza aquí · Paquetes · TypeDoc (@agentskit/core) · React · Ink · Adaptadores · Runtime · Herramientas · Skills · useChat · useStream · useReactive