Sobre o projeto
BareAgent é uma biblioteca leve de orquestração de agentes, sem dependências, para Node.js, que fornece um loop pensar→agir→observar para agentes de IA. Diferente de estruturas mais pesadas como LangChain, CrewAI ou AutoGen, o BareAgent foca em blocos de construção componíveis em vez de uma estrutura monolítica, e o núcleo não importa nenhuma dependência externa.
As capacidades principais incluem:
- **Loop**: O ciclo central pensar→agir→observar que é executado até uma meta ser concluída, com pontos de integração opcionais para governança de políticas, engenharia de contexto e poda de transcrição.
- **Planner & runPlan**: Divide metas em um DAG de etapas e executa as etapas em ondas paralelas com consciência de dependências e nova tentativa por etapa.
- **recurse (RLM)**: Uma primitiva de decomposição recursiva que decompõe tarefas difíceis, distribui subtarefas, verifica resultados e sintetiza uma resposta final. Suporta geração orientada por modelo, expansão forçada e particionamento orientado por dados. Inclui contagem honesta sobre corpora via recuperação baseada em varredura que conta por código em vez de depender de números declarados pelo modelo.
- **Memória**: Armazenamento persistente e recuperação entre sessões via interface Store substituível (JSON, SQLite ou litextx).
- **Governança**: A integração opcional com bareguard fornece um único ponto de controle de políticas sobre todas as chamadas de LLM e ferramentas, com registro de auditoria, limites de orçamento e pontos de verificação de aprovação humana.
- **Resiliência**: Nova tentativa com backoff e jitter, disjuntor (circuit breaker) e failover de provedor.
- **Provedores**: Suporta APIs compatíveis com OpenAI, Anthropic, Gemini, Ollama, CLIPipe e provedores personalizados. Todos retornam um formato normalizado com métricas honestas de token/custo, incluindo relatório de camadas de cache de prompt.
- **Ferramentas**: Qualquer função pode ser uma ferramenta. Navegação web embutida (barebrowse), controle móvel (baremobile) e execução de shell. A Ponte MCP (MCP Bridge) descobre automaticamente servidores MCP a partir de configurações de IDE.
- **Multilinguagem**: Pode ser executado como subprocesso a partir de Python, Go, Rust, Ruby ou Java via JSONL em stdin/stdout.
- **Streaming**: Eventos JSONL estruturados para progresso em tempo real.
- **Avaliador & refine**: Avalia a saída por predicado, rubrica ou crítico agêntico, com um loop limitado de gerar→avaliar→regenerar.
- **Agendador**: Acionadores cron ou relativos com persistência de trabalhos entre reinicializações.
- **Checkpoint**: Portão de aprovação humana com transporte trazido pelo usuário.
- **Spawn**: Cria agentes filhos com log de auditoria e orçamento compartilhados.
- **Defer**: Enfileira ações para execução posterior por um despertador.
- **SkillRegistry**: Expõe habilidades sob demanda via um catálogo de meta-ferramentas.
- **stash**: Compacta trabalhos concluídos para fora da janela de contexto ativa ou dobra automaticamente sob pressão de tokens.
A biblioteca é projetada para ser leve o suficiente para ser completamente compreendida, ao mesmo tempo que é completa o suficiente para evitar reinventar a roda. Ela é distribuída com zero dependências obrigatórias; pares opcionais incluem bareguard para governança, better-sqlite3 para armazenamento SQLite e cron-parser para agendamento. Licenciada sob Apache 2.0.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.