Skip to main content
All posts
Agentes de IA

Por que até o Grok Bot trava no meio do fluxo — Funcionários IA 24/7 com MausBot + bf16.ai

Uma taxa de 3% de recusa por etapa derruba um fluxo autônomo de 30 passos para 40% de conclusão. Veja como unir o MausBot local aos modelos abliterated da bf16.ai e quanto custa uma execução de 30 passos pelos preços de tabela.

TL;DR · Conclusões de Engenharia

  • Matemática da falha composta: Mesmo com apenas 3% de falso positivo por passo, uma automação de 30 etapas sobrevive em apenas $(0.97)^{30} = 40,1%$ das execuções.
  • Controle local + inferência abliterated: Rode o MausBot (OpenMausBot, Apache-2.0) localmente e aponte base_url para https://api.bf16.ai/v1 (deepseek/deepseek-v4.1-flash-abliterated).
  • Paridade com preços oficiais + cache de 1M: Com $0.30 / 1M entrada, $0.05 / 1M em cache e $1.20 / 1M saída, uma tarefa de 30 passos como a do cálculo abaixo sai por $0.0094.

1. Anatomia da parada às 03:14: por que chatbots ainda quebram loops autônomos

Mesmo ferramentas menos moralistas como o Grok Bot travam quando assumem rotinas autônomas de 30 etapas: login em ambientes de staging, preenchimento de CNPJ/EIN de teste, aceite de checkboxes de Termos de Uso e reconciliação de tabelas extraídas.

Com apenas 3% de recusa por etapa, a chance de concluir 30 passos seguidos cai para $(1 - 0.03)^{30} = 40,1%$. Quando o filtro dispara no passo 14, o modelo devolve texto em vez de tool_calls JSON e derruba o worker:

[03:14:08] [mausbot:ops-worker] Step 13/30 OK -> Navigated to https://staging-partner.internal/onboarding/step-4
[03:14:09] [mausbot:ops-worker] Step 14/30 -> Action: check("#accept-msa-checkbox") + fill("#tax-id", env.STAGING_EIN)
[03:14:11] [upstream:cloud-wrapper] STOP_REASON=refusal
  "I cannot click legal binding agreements, submit tax identification numbers, or complete automated account verification steps on your behalf. Please review and submit the form manually."
[03:14:11] [mausbot:supervisor] ERROR: ToolCallExpectedError (received text lecture instead of JSON tool_calls)
[03:14:11] [mausbot:supervisor] Workflow aborted at step 14/30. Downstream Slack report & CSV reconciliation skipped.

2. Arquitetura: Orquestrador local MausBot + modelos abliterated na bf16.ai

A engenharia confiável separa governança determinística de inferência:

  1. MausBot local: Mantém memória, arquivos e sessões do navegador na sua própria máquina.
  2. Inferência abliterated na bf16.ai: Endpoints como deepseek/deepseek-v4.1-flash-abliterated e o multimodal zai-org/glm-5.3-flash-abliterated (Visão + Texto) removem ortogonalmente vetores de recusa nos pesos, e todo endpoint precisa ser aprovado em um gate de verificação comportamental de 6 vetores que confere os schemas JSON das chamadas de ferramenta, a lógica matemática e a recuperação de contexto em uma janela de 1M tokens.

3. Configuração de produção e chamada obrigatória de ferramentas

O endpoint api.bf16.ai/v1 é 100% compatível com OpenAI e Anthropic. Defina limites de diretórios e domínios diretamente em [sandbox]:

# ~/.mausbot/agents/ops-worker.toml
[agent]
name = "ops-worker"
role = "Autonomous Operations, Staging QA & Vendor Onboarding Worker"
max_steps = 45
step_timeout_ms = 45000
require_json_tool_calls = true

[provider]
type = "openai-compatible"
base_url = "https://api.bf16.ai/v1"
api_key_env = "BF16_OPS_WORKER_KEY" # Dedicated per-bot sk-bf16-v1-* key
model = "deepseek/deepseek-v4.1-flash-abliterated"
vision_fallback_model = "zai-org/glm-5.3-flash-abliterated"
temperature = 0.15
max_tokens = 8192

[sandbox]
allowed_fs_roots = ["~/mausbot-workspaces/ops-worker"]
allowed_browser_domains = ["*.internal", "*.staging.example.com", "dashboard.stripe.com"]
require_human_approval_tools = ["wire_transfer", "production_db_drop", "delete_account"]

Em supervisores TypeScript, use tool_choice: "required" junto ao cabeçalho X-BF16-Max-Price-Per-M-Output e chaves sk-bf16-v1- dedicadas:

import OpenAI from 'openai';

const bf16 = new OpenAI({
  baseURL: 'https://api.bf16.ai/v1',
  apiKey: process.env.BF16_OPS_WORKER_KEY, // Scoped to $5.00/day in bf16.ai/dashboard/keys
  defaultHeaders: {
    // Hard unit-price ceiling: never route to an endpoint above $1.50 / 1M output tokens
    'X-BF16-Max-Price-Per-M-Output': '1.50',
  },
});

export async function dispatchMausBotStep(messages: OpenAI.ChatCompletionMessageParam[], tools: OpenAI.ChatCompletionTool[]) {
  const res = await bf16.chat.completions.create({
    model: 'deepseek/deepseek-v4.1-flash-abliterated',
    messages,
    tools,
    tool_choice: 'required', // Guarantees structured tool execution without prose filler
    temperature: 0.1,
  });

  const call = res.choices[0]?.message?.tool_calls?.[0];
  if (!call) {
    throw new Error(`Unexpected empty tool_call on request ${res.id}`);
  }
  return { call, usage: res.usage };
}

Painel real da bf16.ai (/dashboard/keys): Chave dedicada com teto diário de $5.00 USD, limite de 60 RPM e allowlist CIDR.

▲ Painel real da bf16.ai (/dashboard/keys): Chave dedicada com teto diário de $5.00 USD, limite de 60 RPM e allowlist CIDR.

4. Economia de tokens em uma execução de 30 etapas com preços em paridade oficial

A bf16.ai alinha seus preços às tabelas oficiais dos fabricantes e aplica desconto automático de cache de prefixo ($0.05–$0.06 / 1M), fechando em $0.0094 um fluxo MausBot de 30 etapas que consome 100.000 tokens de entrada acumulados (88% de prefixo em cache) e 1.200 tokens de saída em chamadas de ferramentas:

Modelo na bf16.aiModalidadeContextoEntrada / Cache / Saída (1M)Papel ideal no MausBot
deepseek/deepseek-v4.1-flash-abliteratedTexto + Tools1M$0.30 / $0.05 / $1.20Loops rápidos de CLI, formulários e ETL
zai-org/glm-5.3-flash-abliteratedVisão + Texto1M$0.24 / $0.06 / $1.00Modais visuais, screenshots e QA de UI
zai-org/glm-5.3-abliteratedTexto + Tools1M$1.40 / $0.30 / $4.40Planejamento supervisor e auditoria SAST

5. 4 cuidados essenciais antes de escalar seus agentes em produção

  1. Uma chave por bot com teto diário em USD: Configure $5.00/dia em bf16.ai/dashboard/keys para conter loops acidentais.
  2. Segurança no código, não no modelo: Exija aprovação humana em require_human_approval_tools para pagamentos e exclusões.
  3. Mantenha temperature <= 0.2 em loops de ferramentas: Garante estabilidade em seletores DOM e JSON.
  4. Combine Flash e Flagship: Execute 90% dos passos no deepseek-v4.1-flash-abliterated e escale decisões críticas ao glm-5.3-abliterated.