Sobre o projeto

core-agent é um substrato Go de produção para agentes LLM multi-turno, construído sobre o Agent Development Kit (ADK) do Google. Ele entrega a infraestrutura fundamental — provedores, MCP, skills, permissões, sessões duráveis, anexação remota, uma TUI Bubble Tea em processo e uma CLI headless — para que projetos downstream possam focar em suas próprias ferramentas e lógica de produto. **Runtime**: Conversa multi-turno via runner do ADK com despacho paralelo de chamadas de ferramentas. Inclui uma TUI Bubble Tea em processo como interface padrão de TTY, um fallback REPL em linha com --no-tui e uma build tag slim que remove a árvore da TUI. O modo autônomo suporta workers não assistidos com orçamentos de turno/token/custo/tempo-de-parede, terminação orientada por modelo e recuperação de falhas via checkpoints duráveis. A sobrevivência de sessões longas conta com compactação automática de contexto pós-turno em ~85% de utilização, subtasks com wrappers de ferramentas agentic que mantêm a saída volumosa de ferramentas fora do contexto pai e checkpoints em limites de tarefas. **Provedores**: Gemini API e Vertex AI (com GoogleSearch e URLContext do lado do servidor), Anthropic Claude via api.anthropic.com e via Vertex AI como um adaptador de modelo nativo. Provedores mock (echo, replay JSONL scriptado, gravação de sessão) permitem testes sem credenciais. Um sistema de gating tri-state neutro quanto ao provedor para ferramentas integradas do lado do servidor (web_search, url_context, code_execution) permite que a postura de acessibilidade à internet sobreviva a trocas de provedor. **Instruções, Ferramentas, MCP, Skills**: Instruções primárias em AGENTS.md com um diretório de overlay, diretiva @include para composição multi-arquivo e três escopos (user, user-home, project) com fallbacks CLAUDE.md/GEMINI.md. O catálogo de ferramentas integradas cobre operações de arquivo (read, write, edit, delete, outline), busca (glob, grep), dados/rede (json_query, fetch_url), shell (bash), planejamento (todo, record_plan), verificação (wait_and_verify) e prompt interativo (ask_user). Servidores MCP declarados em mcp.json com transportes stdio e Streamable HTTP, ferramentas namespaced e roteamento controlado por permissões. Skills compatíveis com Claude auto-descobertas a partir de arquivos SKILL.md com declarações de requisitos (ex.: shell, kubectl, gcloud) que são retidas na inicialização se não atendidas. **Permissões**: Modos ask/allow/yolo com listas de allow/deny baseadas em padrões, aplicação de escopo de caminho em ferramentas de arquivo, allowlist de escopo de URL para fetch_url e uma denylist de bash não substituível. A aplicação plan-first pode exigir um plano registrado antes de chamadas de ferramentas mutativas (modo required) ou registrar planos sem bloquear (modo advisory para execuções não assistidas). A interface Prompter plugável funciona em TTY, headless, TUI ou frontends web personalizados. **Persistência e Observabilidade**: Sessões duráveis e log de auditoria via SQLite (Go puro, sem CGO), Postgres ou MySQL com seq monotônico, replay, watch live-tail e bloqueio de sessão para retomada multi-processo segura contra falhas. Exportação opcional via OpenTelemetry (console/OTLP, desativado por padrão). Rastreamento de token e custo por modelo com precificação em camadas (atualização diária do LiteLLM, sobrescritas por configuração). **Anexação Remota e Surface Operacional**: Live-tail HTTP + SSE com endpoints inject/wake sobre mTLS + bearer auth. Controles operacionais de hold/interrupt/pause para cancelamento de turnos em andamento e estacionamento de loops. Cliente TUI remoto (binário versionado separadamente) com paridade total de slash-commands, rodapé de custo por turno, modais de aprovação de ferramentas em tempo real e troca de sessão. Daemon multi-sessão com identidade por chamador, ACLs (Owner/Viewers/Contributors), concessões de permissão, overlays de instruções e atribuição de auditoria; as sessões sobrevivem a reinícios do daemon. Descoberta de agent-card via /.well-known/agent-card.json no formato A2A AgentCard. Registro de peers para descoberta de frota em modelo hub-and-spoke. **Subagentes**: Delegação síncrona em processo via agent.WithSubagents, subagentes em background via spawn_agent/stop_agent com resultados devolvidos como relatórios Background. Spawning remoto via RemoteAgentSpawner fornecido pelo consumidor para gRPC, K8s Jobs ou Cloud Run. Eventos de subagentes fluem para o log de auditoria do pai sob um rótulo Branch. **Sidecar de Triagem Kubernetes**: lookout-watch monitora Kubernetes Events, filtra e deduplica, e injeta incidentes correspondidos em sessões por incidente para loops de diagnose-fix-verify via GKE MCP, controlado pela aplicação plan-first. **Instalação**: Go install (requer Go 1.26+), binários pré-compilados assinados com Sigstore (linux/darwin × amd64/arm64) e imagens de contêiner distroless multi-arquitetura (daemon+TUI completo, slim headless, apenas cliente TUI). Licenciado sob Apache-2.0.