Mangaba Operator é um agente de IA autônomo e versátil: você descreve a tarefa em linguagem natural e ele planeja, usa ferramentas (navegador, editor de arquivos, execução de Python, busca na web, MCP) e executa até concluir.
- 🧠 Agente geral — programação, pesquisa, processamento de arquivos e navegação web
- 🛠️ Ferramentas integradas — execução de código Python, shell (bash), editor de arquivos, fetch de páginas como markdown (
fetch_url), busca web, automação de navegador, visualização de dados - 🕹️ Automação web avançada (40 ações) — além de clique/digitação por índice DOM, coordenadas cruas e ações visuais (
visual_query/visual_click): hover, duplo clique, clique direito, upload de arquivo, preenchimento de formulário em lote (fill_form), espera por texto dinâmico (wait_for_text), execução de JavaScript (execute_js), captura de evidências (screenshot_save/save_page), inspeção de elementos (get_element_info), busca na página (find_on_page), inventário de links (list_links), rolagem até o fim de feeds infinitos (scroll_to_bottom), sessões persistentes (get_cookies/set_cookies), emulação mobile (set_viewport), download autenticado (download_file) e tratamento de popups (handle_dialog) - 🧰 Ferramentas estilo Manus — requisições a APIs REST (
http_request), leitura de Office (read_office: docx/xlsx/pptx/csv), geração de PDF (text_to_pdf), síntese de voz (text_to_speech), edição de imagens (image_edit), zip/unzip (archive), SQL sobre CSV/SQLite (sqlite_query), publicação de sites locais (local_server), área de transferência (clipboard) e auto-agendamento na fila (schedule_task) - 👁️🎙️ Multimodal via Mangaba Gateway — análise de imagens (
describe_image, mangaba-vision-q8) e transcrição de áudio (transcribe_audio, Whisper) - 📊 Documentos empresariais — gera e lê
.xlsx,.docx,.pptxe PDF de verdade (openpyxl, python-docx, python-pptx, reportlab, pypdf/pdfplumber, pandas, matplotlib viapython_execute) - 🔌 MCP (Model Context Protocol) — conecte ferramentas externas via servidores MCP
- 🤝 Multi-agente — fluxos com múltiplos agentes coordenados (
run_flow.py), incluindo agente de análise de dados - 🌐 Protocolo A2A — interoperabilidade agente-a-agente (
protocol/a2a) - 📦 Sandbox — execução isolada em Docker/Daytona
Requer Python 3.12+. Recomendamos uv:
git clone https://github.com/dheiver2/mangaba-operator.git
cd mangaba-operator
uv venv --python 3.12
source .venv/bin/activate
uv pip install -r requirements.txtOu com conda:
conda create -n mangaba python=3.12
conda activate mangaba
pip install -r requirements.txtPara automação de navegador (opcional):
playwright installCrie o arquivo de configuração a partir do exemplo:
cp config/config.example.toml config/config.tomlO provedor padrão é o Mangaba Gateway (API OpenAI-compatível com os modelos Mangaba):
[llm]
model = "mangaba-max" # 9B · raciocínio (também: mangaba-pro, mangaba-lite-q4)
base_url = "https://walton-undepreciatory-tracee.ngrok-free.dev/v1"
api_key = "mangaba" # o gateway não exige chave
max_tokens = 4096
temperature = 0.0
[llm.vision]
model = "mangaba-vision-q8" # multimodal · descreve imagens
base_url = "https://walton-undepreciatory-tracee.ngrok-free.dev/v1"
api_key = "mangaba"Modelos disponíveis em GET /v1/models; o gateway suporta function-calling (tools) e streaming (SSE). Exemplos para outros provedores (Anthropic, Azure, Google, Ollama) em config/config.example-model-*.toml.
Pra trocar o modelo de uma execução sem editar o config (validado contra o gateway):
python main.py --model mangaba-pro --prompt "sua tarefa"Tarefas que estouram a janela de 8k do gateway podem rodar no GitHub Models — inferência gratuita da sua conta GitHub com contexto de até 1M tokens e modelos de ponta. Basta usar um modelo com / na flag (o token vem do gh auth token ou de GITHUB_TOKEN):
python main.py --model openai/gpt-4.1-mini --prompt "tarefa grande"
python pipeline.py --model openai/gpt-4.1 --prompt "tarefa gigante"Catálogo completo em https://models.github.ai/catalog/models (gpt-4.1 = 1M ctx, gpt-5/o3/o4-mini = 200k). O tier gratuito tem rate limits — use o gateway local pro dia a dia e o GitHub Models pros casos grandes. Config fixa: config/config.example-model-github.toml.
| Endpoint do gateway | Uso no Operator |
|---|---|
POST /v1/chat/completions |
Cérebro do agente — perfis [llm], [llm.fast], [llm.vision] |
POST /api/v1/{slug}/image/describe |
Ferramenta describe_image |
POST /api/v1/{slug}/audio/transcribe |
Ferramenta transcribe_audio (Whisper) |
POST /api/v1/{slug}/audio/chat |
Ferramenta audio_chat (áudio → resposta em 1 chamada) |
GET /v1/models |
Validação da flag --model |
GET /api/v1/health + POST /api/v1/{slug}/load |
Pré-carga automática no boot |
POST /api/v1/{slug}/text/chat e /text/generate |
Cobertos pelo /v1/chat/completions (superset com tools/streaming) |
Agente principal:
python main.pyDigite sua tarefa no terminal e deixe o agente trabalhar. Também é possível passar a tarefa direto:
python main.py --prompt "pesquise os preços de fibra óptica em Alagoas e gere um relatório em Markdown"Canais (configure as seções [email] e [webhook] no config.toml — exemplos no config.example.toml):
read_pdf— extrai texto e tabelas de contratos, notas fiscais, relatórios (sem config)send_email— envia e-mail via SMTP; o agente é instruído a nunca enviar sem pedido explícito e destinatário definido pelo usuárionotify_webhook— notificação pra Slack, gateway de WhatsApp, n8n etc.
Verificação antes da entrega (padrão Reflexion: gerar → criticar → revisar): um revisor com contexto limpo compara os entregáveis com a tarefa; se reprovar, roda uma rodada de correção com o parecer como feedback:
python main.py --verificar --prompt "..."
python fila.py run --verificar # reprovadas são escaladas pro humanoFila de tarefas (processamento em série — o gateway atende 1 inferência por vez):
python fila.py add "Gerar o relatório semanal em workspace/relatorio.xlsx"
python fila.py list
python fila.py run --max-steps 10 # processa tudo; aceita --model e --verificarHuman-in-the-loop embutido no modo autônomo (fila.py):
- Tarefa que falha ou é reprovada pelo revisor → escalada via
notify_webhookcom contexto completo (você só é chamado na exceção) send_emailem execução autônoma vira rascunho emworkspace/rascunhos/aguardando aprovação (envio direto só interativo, ou comallow_autonomous_send = trueno[email])
Agendamento — combine a fila com cron (crontab -e):
# processa a fila toda hora / relatório toda segunda 8h
0 * * * * cd ~/Downloads/Projetos/mangaba-operator && .venv/bin/python fila.py run >> workspace/fila/cron.log 2>&1
0 8 * * 1 cd ~/Downloads/Projetos/mangaba-operator && .venv/bin/python fila.py add "Gerar relatório semanal em workspace/"Mencione @mangaba em qualquer issue ou comentário do repositório e o Operator executa a tarefa no runner do GitHub — com GitHub Models grátis (token nativo do Actions) e verificação do revisor — e responde no próprio issue com resultado, progresso e artefatos. Restrito a owner/membros/colaboradores. Workflow: .github/workflows/mangaba.yml.
Ensine padrões da SUA empresa sem estourar o contexto: cada pasta skills/<nome>/SKILL.md (frontmatter name/description + instruções) entra no prompt só como 1 linha de catálogo — o agente lê o arquivo completo quando a tarefa é daquele tipo. Incluídas: proposta-comercial e ata-reuniao. Crie as suas copiando o formato.
Toda tool call vira uma linha JSON em workspace/logs/audit.jsonl (timestamp, agente, passo, ferramenta, argumentos, preview do resultado, flag de erro) — trilha de compliance pronta pra inspeção.
Pra tarefas que não cabem numa execução só (janela de 8k do gateway), o pipeline divide em fases — cada fase roda num agente novo com contexto zerado, e os resultados passam entre fases pelos arquivos do workspace:
python pipeline.py --prompt "tarefa grande" # o modelo planeja as fases
python pipeline.py --prompt "..." --fases "fase 1; fase 2; ..." # fases manuaisRegra prática: execução única (main.py) pra até ~6 passos; pipeline pra qualquer coisa maior ou multi-domínio (áudio + web + relatório).
Fale a tarefa e o agente executa e responde falando — pipeline 100% local (ffmpeg → Whisper do gateway → agente → say):
python voz.py # grava 6s do microfone e executa como tarefa
python voz.py --seconds 10 # gravação mais longa
python voz.py --chat # pergunta e resposta direta, sem agente
python voz.py --file x.wav # usa um áudio prontoRequer ffmpeg (brew install ffmpeg) e permissão de microfone no terminal.
Outras formas de execução:
python run_mcp.py # versão com ferramentas MCP
python run_flow.py # fluxo multi-agente (instável)
python run_mcp_server.py # sobe o servidor MCP do Mangaba Operator
python sandbox_main.py # agente em sandbox isoladoRecursos automáticos a cada execução:
- Pré-carga do modelo: o
main.pyaquece o modelo no Mangaba Gateway antes do primeiro passo (sem cold start de minutos). - Roteamento inteligente: passos internos simples (ex. extração de conteúdo do navegador) usam o perfil
[llm.fast](mangaba-lite-q4), reservando o modelo pesado pro raciocínio. - Memória persistente: o agente lê e grava notas curtas em
workspace/memoria/entre execuções (aprendizados, preferências — nunca segredos). - Recitação de plano: em tarefas longas o agente mantém
workspace/todo.mde o plano é reinjetado no fim do contexto a cada passo — evita perder o objetivo (técnica de context engineering do Manus). - Cache reversível: páginas grandes baixadas pela
fetch_urlsão salvas integralmente emworkspace/cache/; o contexto recebe só um preview + o caminho, sem perda de informação. - Auto-encolhimento de contexto: se o histórico estourar a janela do modelo (8192 tokens no gateway), o agente trunca observações antigas e/ou descarta o miolo do histórico (preservando a tarefa e o plano) e repete o passo — em vez de crashar.
Pra cases de CSV/gráficos, ative no config.toml (deps: cd app/tool/chart_visualization && npm install, requer Node 18+):
[runflow]
use_data_analysis_agent = trueE rode via python run_flow.py.
O Operator pode virar ferramenta de qualquer cliente MCP (Claude Code, VS Code, chats):
python run_mcp_server.pyConfiguração no cliente (ex. mcp.json):
{
"mcpServers": {
"mangaba-operator": {
"command": "/caminho/para/mangaba-operator/.venv/bin/python",
"args": ["/caminho/para/mangaba-operator/run_mcp_server.py"]
}
}
}Para habilitar o agente de análise de dados no fluxo multi-agente, adicione ao config.toml:
[runflow]
use_data_analysis_agent = trueDependências extras em app/tool/chart_visualization/README.md.
app/
├── agent/ # agentes (Mangaba, browser, MCP, SWE, sandbox)
├── tool/ # ferramentas (python_execute, browser_use_tool, editor, busca, gráficos)
├── prompt/ # prompts de sistema
├── mcp/ # servidor MCP
├── sandbox/ # execução isolada em Docker
└── flow/ # orquestração multi-agente
config/ # exemplos de configuração por provedor
protocol/a2a/ # protocolo agente-a-agente
examples/ # casos de uso e benchmarks
Este projeto é um fork rebrandizado do OpenManus (MIT), criado pela equipe MetaGPT/FoundationAgents, que por sua vez se apoia em browser-use, crawl4ai e anthropic-computer-use.
MIT — © Mangaba AI. Contém código do projeto OpenManus (MIT, © 2025 manna_and_poem).