Sobre el proyecto

BareAgent es una biblioteca ligera de orquestación de agentes sin dependencias para Node.js que proporciona un bucle pensar→actuar→observar para agentes de IA. A diferencia de marcos más pesados como LangChain, CrewAI o AutoGen, BareAgent se centra en bloques de construcción componibles en lugar de un marco monolítico, y el núcleo no importa nada. Las capacidades principales incluyen: - **Loop**: El bucle central pensar→actuar→observar que se ejecuta hasta que un objetivo está completo, con puntos de integración opcionales para políticas de gobernanza, ingeniería de contexto y recorte de transcripción. - **Planner & runPlan**: Divide los objetivos en un DAG de pasos y ejecuta los pasos en oleadas paralelas con conocimiento de dependencias y reintentos por paso. - **recurse (RLM)**: Primitiva de descomposición recursiva que descompone tareas difíciles, distribuye subtareas, verifica resultados y sintetiza una respuesta final. Admite generación de subtareas impulsada por el modelo, expansión forzada y partición basada en datos. Incluye conteo honesto sobre corpus mediante recuperación basada en escaneo que cuenta con código en lugar de depender de números declarados por el modelo. - **Memory**: Almacenamiento persistente y recuperación entre sesiones mediante una interfaz de Store intercambiable (JSON, SQLite o litextx). - **Governance**: La integración opcional de bareguard proporciona una única puerta de políticas sobre todas las llamadas de LLM y herramientas, con registro de auditoría, límites de presupuesto y puntos de aprobación humana. - **Resilience**: Reintentos con retroceso y jitter, interruptor de circuito y conmutación por error de proveedor. - **Providers**: Admite API compatibles con OpenAI, Anthropic, Gemini, Ollama, CLIPipe y proveedores personalizados. Todos devuelven una forma normalizada con métricas honestas de tokens/costos, incluido el informe de niveles de caché de prompt. - **Tools**: Cualquier función puede ser una herramienta. Navegación web integrada (barebrowse), control móvil (baremobile) y ejecución de shell. MCP Bridge descubre automáticamente servidores MCP desde configuraciones de IDE. - **Cross-language**: Puede ejecutarse como subproceso desde Python, Go, Rust, Ruby o Java mediante JSONL sobre stdin/stdout. - **Streaming**: Eventos JSONL estructurados para progreso en tiempo real. - **Evaluator & refine**: Evalúa salidas mediante predicado, rúbrica o crítico agéntico, con un bucle acotado de generar→evaluar→regenerar. - **Scheduler**: Disparadores cron o relativos con persistencia de trabajos entre reinicios. - **Checkpoint**: Puerta de aprobación humana con transporte traído por el usuario. - **Spawn**: Crea agentes hijos con registro de auditoría y presupuesto compartidos. - **Defer**: Coloca acciones en cola para ejecutarlas posteriormente mediante un despertador. - **SkillRegistry**: Muestra habilidades bajo demanda mediante un catálogo de meta-herramientas. - **stash**: Compacta el trabajo terminado fuera de la ventana de contexto activa o lo pliega automáticamente bajo presión de tokens. La biblioteca está diseñada para ser lo suficientemente ligera como para comprenderse por completo y lo suficientemente completa como para evitar reinventar la rueda. Se distribuye con cero dependencias requeridas; los pares opcionales incluyen bareguard para gobernanza, better-sqlite3 para almacenamiento SQLite y cron-parser para programación. Licenciada bajo Apache 2.0.