Documentación de Arcaelas Agent¶
Bienvenido a @arcaelas/agent - una librería TypeScript lista para producción para construir agentes de IA sofisticados con soporte multi-proveedor, contextos reactivos y orquestación inteligente de herramientas.
¿Qué es Arcaelas Agent?¶
@arcaelas/agent te permite crear agentes de IA que escalan desde chatbots simples hasta flujos de trabajo organizacionales complejos mediante:
- 🔄 Soporte Multi-Proveedor - Conmutación automática entre OpenAI, Anthropic, Groq, Ollama y APIs personalizadas
- 🏗️ Arquitectura Reactiva - Herencia jerárquica de contexto con gestión automática de estado
- 🛠️ Ecosistema de Herramientas - Herramientas HTTP integradas e integración fluida de funciones personalizadas
- 💎 TypeScript Completo - Seguridad de tipos completa con uniones discriminadas y genéricos
Inicio Rápido¶
Instalación¶
Tu Primer Agente¶
import { Agent, Rule } from '@arcaelas/agent';
import OpenAI from 'openai';
const openai = new OpenAI({
apiKey: process.env.OPENAI_API_KEY
});
const assistant = new Agent({
rules: [new Rule("Asistente útil para tareas diarias.")],
providers: [
async (ctx) => {
return await openai.chat.completions.create({
model: "gpt-4",
messages: ctx.messages.map(m => ({
role: m.role,
content: m.content
}))
});
}
]
});
const [messages, success] = await assistant.call("¿Cómo está el clima hoy?");
Continuar con el tutorial completo →
Arquitectura Principal¶
Agente¶
Orquestador central que combina identidad, comportamiento, herramientas y proveedores de IA.
const agent = new Agent({
rules: [
new Rule("Especialista en soporte al cliente."),
professional_rule,
],
tools: [search_tool, database_tool],
providers: [openai_provider]
});
Contexto¶
Gestión jerárquica de estado con herencia automática.
const parent_context = new Context({
metadata: new Metadata().set("company", "Acme Corp"),
rules: [new Rule("Mantener un tono profesional")]
});
const child_context = new Context({
context: parent_context, // Hereda del padre
metadata: new Metadata().set("department", "Ventas")
});
Herramientas¶
Funciones extensibles para integraciones externas.
const weather_tool = new Tool("get_weather", {
description: "Obtener clima actual para cualquier ciudad",
parameters: {
city: "Nombre de la ciudad",
units: "Unidades de temperatura (celsius/fahrenheit)"
},
func: async (agent, { city, units }) => {
return `Clima en ${city}: Soleado, 24°C`;
}
});
Documentación¶
📚 Guías¶
- Comenzando - Tutorial completo
- Conceptos Básicos - Visión general de la arquitectura
- Proveedores - Configuración multi-proveedor
- Mejores Prácticas - Patrones de producción
🔧 Referencia API¶
- Agent - Orquestador principal
- Context - Gestión de estado
- Metadata - Almacén clave-valor
- Tool - Funciones personalizadas
- Rule - Directrices de comportamiento
- Message - Mensajes de conversación
- Providers - Funciones de proveedor
- Built-in Tools - TimeTool, RemoteTool, AgentTool, AskTool, ChoiceTool, SleepTool
💡 Ejemplos¶
- Basic Agent - Chatbot simple
- Multi-Provider - Configuración resiliente
- Custom Tools - Creando herramientas
- Context Inheritance - Patrones empresariales
- Advanced Patterns - Escenarios complejos
🎓 Avanzado¶
- Architecture - Diseño interno
- Performance - Optimización
- Troubleshooting - Problemas comunes
- Migration Guide - Actualización de versiones
Requisitos¶
- Node.js ≥ 16.0.0
- TypeScript ≥ 4.5.0 (opcional)
Enlaces¶
¿Listo para construir agentes de IA inteligentes? Comienza con la Guía de Inicio →