Skip to content

v0.10.0-beta — A Release da Auditoria 🐺

Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 08 Jul 00:06

Okami Agent — v0.10.0-beta "A Release da Auditoria" 🐺

Desde o v0.9.0-alpha: 193 commits · 403 arquivos · +23.841/−1.021 linhas · suíte 2.408 → 3.364 testes
· lançada 2026-07-08.

⚠️ Beta. A superfície de comandos e config ainda pode mudar até a GA. Recomendado para uso real
(inclusive em VPS 24/7) — mas rode okami policy check --strict antes de expor publicamente. Ver o
CHANGELOG completo.

🌐 Site: https://okamiagent.com · 📚 Docs: https://okamiagent.com/docs


A história desta release

Primeiro beta: promoção do alpha por MATURIDADE, não por feature nova. Motivo — uma auditoria E2E
completa vs. Hermes (8 agentes, uso real com minimax) achou a causa-raiz de o agente parecer "lento e
travado" em campo, e 3 ondas de correção (P0 · P1 · P2) fecharam do sintoma à causa.

✨ Highlights

  • Auditoria E2E vs. Hermes — 6 causas-raiz encontradas e corrigidas (probe de tool-calling nativo,
    retry acoplado ao key-pool, corte de tool-result flat, formatação do Telegram quebrando em respostas
    longas, poll loop travado por STT/link-summary, memória poluída por auto-write mecânico).
  • Portabilidade real Windows/Mac/Linux — 14 breaks confirmados e corrigidos por auditoria adversarial
    (7 finders, 51 candidatos triados).
  • Provisão remota VPS-first — o agente bootstrapa o próprio acesso SSH + GitHub, sem depender de
    credenciais herdadas da máquina do usuário.
  • Multi-agente supervisionado — cada agente com seu próprio processo de gateway, watchdog e
    auto-restart (okami agent up/down/status/supervise).
  • STT ligado por padrão — nota de voz é transcrita automaticamente, com auto-install de
    faster-whisper/edge-tts.
  • Canais: 5 → 14 plataformas, todas bidirecionais (poll + webhook).
  • Computer-use embutido, opt-in e approval-gated, com 3 camadas de segurança.

🔎 Auditoria E2E vs. Hermes — por que o agente parecia lento

Sintoma em uso real: respostas lentas, tarefa simples travando, formatação quebrada no Telegram. Não era
1 bug — era uma cadeia de degradação silenciosa:

  • Probe de tool-calling nativo quebrado (TypeError silencioso): todo provider não-hardcoded (ex.:
    minimax) caía pro rail JSON-em-texto sem avisar — perdia tool-calling nativo, thinking vazava no texto,
    contexto inchava. Verdict agora persiste em disco (native_verdict.json).
  • Retry zero com 1 credencial só: max_retries estava acoplado ao tamanho do key-pool. Agora
    desacoplado (default 3) + timeout por tier (local 1800s / cloud 600s).
  • Tool-results cortados 8K/1.5K flat: o orçamento agora ESCALA com a janela do modelo (15%/30% do
    contexto, floor 8K/16K, cap 100K/200K).
  • Telegram dividia antes de formatar: resposta >4096 chars perdia toda a formatação HTML. Agora
    renderiza o HTML completo primeiro, divide por unidades UTF-16 com tags balanceadas entre cortes.
  • STT/link-summary bloqueavam o poll loop de todos os chats: agora rodam fora do poll loop
    compartilhado (spawn por chat) + cap de fila 32.
  • MEMORY.md poluído por auto-write mecânico: só remember/remember_user/reflect escrevem lá
    agora, com gate de durabilidade e dedup near-duplicate por Jaccard.
  • Hooks builtin sem bit +x: security-guidance/disk-cleanup vetavam toda tool com exit 126
    silencioso; corrigido o bit no pacote.
  • okami run alucinava tool-calls: sem tools disponíveis, o modelo fraco inventava chamadas
    inexistentes; agora avisa explicitamente.
  • Streaming × rail nativo em conflito: streaming_enabled agora consulta native_supported antes do
    tier.
  • E2E real (minimax), antes → depois: BLOCKED/alucinando/vazamento de <think>COMPLETE com
    verificação mecânica (sha256), formatação íntegra no Telegram, tokens_in 6.4-7K → 2.7K por turno.

🖥️ Portabilidade Windows/Mac/Linux — 14 breaks reais corrigidos

Auditoria por 7 finders + triagem rigorosa (51 candidatos → 14 confirmados). Novo
okami/core/platform_compat.py centraliza o que difere entre POSIX e Windows.

  • Crashes no Windows: os.getpgid/start_new_session=True/os.mkfifo corrigidos via
    terminate_pid() + popen_session_kwargs().
  • Segredo/chave exposto: os.chmod(0o600) é no-op no Windows (NTFS=ACL) — secure_chmod() cobre
    POSIX chmod+verificação e Windows ACL via icacls.
  • VPS headless: Playwright headless=True; backend pyautogui poda em Linux sem $DISPLAY; serviço
    systemd funciona sem login interativo.
  • Encoding/paths: pidfiles com encoding='utf-8' explícito; socket de controle usa
    tempfile.gettempdir() em vez de /tmp hardcoded.

🌐 Provisão remota VPS-first

O agente assumia credenciais herdadas do host (gh/git/ssh) — errado numa VPS 24/7 sem login herdado.
Agora ele monta o próprio acesso:

  • okami/integrations/provision.py: gera chave ed25519, importa chave privada, configura GitHub por
    token ou SSH, com segredo que nunca volta no retorno de tool.
  • Tools ssh_identity e git_auth (approval-gated).
  • Skill nativa acesso-vps guia o procedimento ponta-a-ponta.

🤖 Multi-agente supervisionado

Suporte a N agentes, cada um com gateway/cron/heartbeat/tasks próprios:

  • okami/gateway/supervisor.py: sobe cada agente como processo próprio, registro durável
    anti-PID-reuse, cross-plataforma.
  • okami gateway --agent <id> roda o gateway de um agente isolado.
  • CLI okami agent up | down | status | supervise, incluindo watchdog com auto-restart.

🎙️ Voz embutida + recursos nativos

  • STT (Whisper) ligado por padrão com auto-install de faster-whisper/edge-tts na primeira vez.
  • Plugins nativos (security-guidance, disk-cleanup, usage-observer) viajam no pip install.
  • Skills nativas embarcadas (criar-pull-request, depuracao-sistematica, pesquisa-web).

🧱 Subagentes em segundo plano

  • spawn aceita background=true: roda numa thread daemon e retorna na hora, avisando no chat de
    origem quando termina.
  • spawn_jobs (list|status|result|await): o agente pai lê o resultado de um background spawn de
    volta — fecha o loop de delegação.
  • Cap de concorrência (Semaphore, default 3) com fallback síncrono se a fila estiver cheia.
  • GC de jobs antigos (keep=50 + TTL 7d); reconcile no boot marca jobs órfãos como interrupted após
    restart do gateway.

🌐 WebFetch resiliente + fixes de robustez

  • User-Agent de navegador real resolve a classe "403 só por causa do UA".
  • smart_fetch: fallback automático para Playwright quando o fetch estático bate em 403/Cloudflare.
  • MCP stdio anti-zumbi: mata o subprocesso no timeout/EOF.
  • Tool send_message: entrega direta de texto por um canal sem rodar o LLM.

💬 Fix: formatação do Telegram

Tags HTML cruas emitidas pelo modelo viravam texto literal no Telegram. Corrigido com 3 mudanças: dica de
plataforma passa a pedir Markdown, to_html tolera HTML cru do modelo, e o fallback vira texto puro
limpo em vez de markup malformado.

⚡ Harness mais rápido

Streaming token-a-token ligado por default para tier local/weak — a primeira resposta passa a aparecer em
segundos em vez de minutos, resolvendo a maior causa de latência percebida em modelo local.

🖥️ Computer-use embutido

Nova tool computer_use (screenshot/click/type/key/scroll) com 3 camadas de segurança: desligada por
padrão, hardline-block contra combos destrutivos, e approval-gated por ação.

📡 Canais: 5 → 14 plataformas

Novos canais bidirecionais: DingTalk, WeCom, QQBot, WhatsApp, Signal, Matrix, SMS, BlueBubbles, Weixin —
todos com tool-policy por superfície e deny-by-default.

🧠 Mixture-of-Agents, Google Code Assist e LSP

  • Mixture-of-Agents (okami moa): roteia problemas difíceis pelos providers já configurados em
    paralelo e sintetiza a melhor resposta.
  • Google Code Assist (okami gemini login|status|quota): acesso ao tier grátis de Gemini via
    cloudcode-pa, sem billing.
  • Cliente LSP persistente: language server fica vivo entre edições, fechando o cold-start de ~8s por
    edição do pyright.

🐛 Caça adversarial de bugs

Múltiplas rodadas de revisão adversarial (workflows de dezenas de subagentes, com critério de ≥2/3
céticos confirmando cada achado) encontraram e corrigiram dezenas de defeitos reais ao longo do
desenvolvimento desta release — de um SSRF real a um path-injection, dead-code perigoso, race conditions
de roteamento e webhooks mortos em produção. Detalhe completo no CHANGELOG.

✅ Release verification

  • 3.364 testes passando (uv run pytest -q), subindo de 2.408.
  • Reprodução local:
    uv sync --frozen
    uv run pytest -q
    uv run ruff check okami tests
    uv run bandit -c pyproject.toml -r okami -q
    uv run okami policy check --strict

🚀 Instalação / upgrade

# instalação nova (macOS / Linux)
curl -fsSL https://raw.githubusercontent.com/OkamiOps/Okami-Agent/main/scripts/install.sh | bash
# Windows (PowerShell)
irm https://raw.githubusercontent.com/OkamiOps/Okami-Agent/main/scripts/install.ps1 | iex

# upgrade de instalação existente
uv tool upgrade okami-agent   # ou: pip install -U okami-agent

okami setup     # configura em 2-3 cliques
okami doctor    # confirma que a versão instalada bate com o pyproject (sem version-drift)
okami chat      # conversa no terminal

📄 License

MIT (LICENSE) © 2026 OkamiOps.

🔗 Links