Este documento descreve os módulos ativos do MiniAutoGen e as suas responsabilidades. Serve como mapa de navegação para desenvolvedores que precisam localizar rapidamente onde cada funcionalidade reside.
Terminologia: "Backend" (módulo de código) corresponde ao conceito de "Engine" na arquitectura do MiniAutoGen. "Pipeline" (módulo legado) corresponde ao conceito de "Flow".
Contratos tipados (Pydantic models e Protocol definitions) que definem a interface pública do framework:
- Tipos base:
Message,RunContext,RunResult,ExecutionEvent,Conversation - Protocolos de agente:
WorkflowAgent,DeliberationAgent,ConversationalAgent - Planos de coordenação:
WorkflowPlan,WorkflowStep,DeliberationPlan,AgenticLoopPlan,CoordinationPlan - Coordenação:
CoordinationKind,SubrunRequest,CompositionStep - Agentic loop:
RouterDecision,ConversationPolicy,AgenticLoopState - Deliberação:
Contribution,Review - Especificações:
AgentSpec,EngineProfile,MemoryProfile,SkillSpec,ToolSpec,McpServerBinding - Protocolos de integração:
StoreProtocol,ToolProtocol,ToolResult
Runtime oficial da biblioteca. O PipelineRunner centraliza execução, timeout, run lifecycle, checkpoint e publicação de eventos.
Runtimes de coordenação:
WorkflowRuntime-- execução sequencial de stepsDeliberationRuntime-- ciclos de contribuição e revisão entre agentesAgenticLoopRuntime-- loop conversacional com roteamento dinâmicoCompositeRuntime-- composição de subruns heterogêneos
Helpers deliberativos: summarize_peer_reviews, build_follow_up_tasks, apply_leader_review, render_final_document_markdown, detect_stagnation, should_stop_loop.
Taxonomia de 72 tipos de evento (EventType enum) organizados em grupos: run lifecycle, component lifecycle, tool execution, checkpoint, policy, agentic loop, deliberation, backend driver e approval. Sinks disponíveis: CompositeEventSink, FilteredEventSink, InMemoryEventSink. Filtros: EventFilter, TypeFilter, RunFilter, CompositeFilter.
Nota: Este pacote contém o mecanismo de composição legado. O conceito de orquestração orientado ao utilizador é agora "Flow" (via
FlowConfige runtimes de coordenação). O pacotepipeline/permanece para compatibilidade retroativa.
Pipeline-- orquestrador de componentesPipelineComponent-- classe base para componentes executáveisDynamicChatPipeline-- flow com roteamento dinâmico de chat- Componentes prontos em
pipeline/components/components.py
Dez policies transversais que operam lateralmente ao fluxo principal:
BudgetTracker/BudgetExceededError-- controlo de custos e tokensApprovalPolicy-- aprovação humana no loopRetryPolicy-- retentativas com backoff configurávelTimeoutPolicy-- limites de tempo por componenteValidationPolicy-- validação de inputs e outputsPermissionPolicy-- controlo de permissões de agentesExecutionPolicy-- regras compostas de execuçãoPolicyChain-- encadeamento de múltiplas policiesEffectPolicy-- controlo de efeitos colateraisReactivePolicy-- policies reativas a eventos
Cinco stores especializados por responsabilidade, cada um com duas implementações:
| Store | InMemory | SQLAlchemy |
|---|---|---|
MessageStore |
in_memory.py |
sqlalchemy.py |
RunStore |
in_memory_run_store.py |
sqlalchemy_run_store.py |
CheckpointStore |
in_memory_checkpoint_store.py |
sqlalchemy_checkpoint_store.py |
EffectJournal |
in_memory_effect_journal.py |
sqlalchemy_effect_journal.py |
EventStore |
in_memory_event_store.py |
sqlalchemy_event_store.py |
Três providers LLM desacoplados do core:
OpenAIProvider-- cliente direto para a API OpenAILiteLLMProvider-- proxy multi-provider via LiteLLMOpenAICompatibleProvider-- cliente HTTP genérico para endpoints compatíveis com OpenAI
Protocolo base: LLMProvider (em protocol.py).
JinjaRenderer-- renderização de templates Jinja2 para prompts
Camada unificada de drivers para agentes externos.
| Módulo | Responsabilidade |
|---|---|
driver.py |
AgentDriver ABC -- interface unificada (start_session, send_turn, cancel_turn, list_artifacts, close_session, capabilities) |
models.py |
Modelos de domínio: BackendCapabilities, requests, events, artifacts |
errors.py |
Hierarquia de erros do driver layer |
sessions.py |
SessionManager -- state machine de sessões (7 estados) |
config.py |
BackendConfig -- configuração declarativa |
resolver.py |
BackendResolver -- resolução config-driven com factory registry |
agentapi/ |
AgentAPIDriver -- driver HTTP para endpoints OpenAI-compatible |
LoggingEventSink-- sink de eventos baseado em structlog para integração com sistemas de logging existentes
Interface de linha de comando baseada em Click.
16 comandos:
init-- scaffolding de projeto (templates: quickstart, minimal, advanced)check-- validação da configuração do projetorun-- execução de flow nomeado em modo headlesssend-- enviar mensagem a um agentechat-- chat interativo com um agentestatus-- estado atual do workspace e runsagent-- gerenciar agentes (create, list, show)engine-- gerenciar engines (create, list, show)flow-- gerenciar flows (create, list, show)sessions list-- listagem de runs com filtrossessions clean-- remoção de runs antigos por idadeserver-- lançar API serverconsole-- lançar web dashboarddaemon-- executar em modo daemondash-- lançar TUI dashboarddoctor-- diagnóstico do ambientecompletions-- shell completions
Serviços correspondentes em cli/services/: init_project, check_project, run_pipeline, session_ops.
GET /api/agents-- listar agentesPOST /api/agents-- criar agenteGET /api/agents/:id-- detalhe do agentePUT /api/agents/:id-- atualizar agenteDELETE /api/agents/:id-- remover agente
GET /api/flows-- listar flowsPOST /api/flows-- criar flowGET /api/flows/:id-- detalhe do flowPUT /api/flows/:id-- atualizar flowDELETE /api/flows/:id-- remover flow
GET /api/engines-- listar enginesPOST /api/engines-- criar engineGET /api/engines/:id-- detalhe do enginePUT /api/engines/:id-- atualizar engineDELETE /api/engines/:id-- remover engine
GET /api/config-- configuração geralGET /api/config/detail-- configuração detalhadaGET /api/events-- stream de eventos
GET /api/runs-- listar runsPOST /api/runs-- trigger de run
| Rota | Descrição |
|---|---|
/ |
Dashboard principal |
/agents |
Lista de agentes |
/agents/new |
Criar agente |
/agents/:id/edit |
Editar agente |
/flows |
Lista de flows |
/flows/new |
Criar flow |
/flows/:id/edit |
Editar flow |
/engines |
Lista de engines |
/runs |
Lista de runs |
/settings |
Editor de configurações |
/logs |
Visualizador de logs |
/approvals |
Human-in-the-loop approvals |
Configuração e bootstrap da aplicação:
settings.py-- configurações centralizadasprovider_factory.py-- factory de providers LLMnotebook_cache.py-- cache para notebooks e demos longas com Gemini CLI
Gateway local compatível com /v1/chat/completions para usar Gemini CLI sem acoplar subprocessos ao core do framework. Permite que o OpenAICompatibleProvider comunique com o Gemini CLI através de HTTP padrão.
Módulos mantidos apenas por compatibilidade. Não devem ser utilizados em código novo.
chat/-- infraestrutura de chat anterior ao runtime atualagent/-- implementações de agentes anteriores aos contratos tipadoscompat/-- shims de compatibilidade (public_api, state_bridge)llms/-- abstrações LLM anteriores aos adapters atuais