Pourquoi même Grok Bot bloque à mi-parcours — Des employés IA 24/7 avec MausBot + bf16.ai
Un taux de refus de 3 % par étape fait chuter un workflow autonome de 30 étapes à 40 % de réussite. Voici comment associer MausBot en local aux modèles abliterated de bf16.ai, et ce que coûte une exécution de 30 étapes aux tarifs publics.
TL;DR · Points Clés d’Ingénierie
- Probabilité composée d’échec : Même avec seulement
3 %de faux positifs par tour, une chaîne autonome de 30 étapes ne survit qu’à(0,97)^30 = 40,1%. C’est pourquoi Grok Bot échoue souvent lors des tâches nocturnes.- Contrôle local + inférence abliterated : Exécutez MausBot (
OpenMausBot, Apache-2.0) en local et pointezbase_urlvershttps://api.bf16.ai/v1(deepseek/deepseek-v4.1-flash-abliterated).- Parité tarifaire officielle + cache 1M : À
$0.30 / 1Men entrée,$0.05 / 1Men cache et$1.20 / 1Men sortie, un run de 30 étapes comme celui chiffré plus bas revient à$0.0094.
1. Autopsie d’un arrêt à 03h14 : pourquoi les chatbots cassent les boucles d’agents
Beaucoup d’équipes adoptent Grok Bot comme collaborateur numérique car il moralise moins que Claude ou GPT en conversation simple. Mais dès qu’on lui confie un workflow sans surveillance de 30 étapes — connexion à un portail de préproduction, saisie d’identifiants fiscaux de test, validation de cases CGU ou nettoyage de tableaux concurrentiels — les faux positifs réapparaissent.
Avec 3 % de refus par étape, le taux de survie sur 30 étapes tombe à (1 - 0,03)^30 = 40,1%. Lorsqu’un refus survient à l’étape 14, le modèle renvoie un paragraphe moralisateur au lieu d’un JSON tool_calls, provoquant l’arrêt immédiat du superviseur :
[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. Architecture : Orchestrateur local MausBot + modèles abliterated sur bf16.ai
Une architecture fiable sépare les garde-fous déterministes du moteur d’inférence :
- MausBot en local (Apache-2.0) : Conserve la mémoire persistante, les sessions navigateur et les secrets sur votre machine.
- Inférence abliterated sur bf16.ai :
deepseek/deepseek-v4.1-flash-abliteratedet le modèle multimodalzai-org/glm-5.3-flash-abliterated(Vision + Texte) suppriment orthogonalement le vecteur de refus dans les poids, et chaque endpoint doit franchir une grille de vérification comportementale à 6 vecteurs qui contrôle les schémas JSON des appels d’outils, la logique mathématique et le rappel sur1Mde contexte.
3. Configuration de production et appels d’outils déterministes
L’API api.bf16.ai/v1 est compatible nativement avec OpenAI et Anthropic. Les restrictions disque et réseau sont définies dans [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"]
Côté superviseur TypeScript, combinez tool_choice: "required" avec l’en-tête X-BF16-Max-Price-Per-M-Output et une clé dédiée sk-bf16-v1- par agent :
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 };
}

▲ Capture réelle de la console bf16.ai (/dashboard/keys) : Clé dédiée avec plafond quotidien de $5.00 USD, limite de 60 RPM et liste blanche CIDR.
4. Coût en tokens d’un run de 30 étapes au tarif officiel
bf16.ai s’aligne sur les tarifs officiels des éditeurs et applique automatiquement la remise de cache préfixe ($0.05–$0.06 / 1M), ramenant à $0.0094 un job MausBot de 30 étapes consommant 100 000 tokens d’entrée cumulés (dont 88 % de préfixe en cache) et 1 200 tokens de sortie :
| Modèle sur bf16.ai | Modalité | Contexte | Entrée / Cache / Sortie (1M) | Rôle MausBot recommandé |
|---|---|---|---|---|
deepseek/deepseek-v4.1-flash-abliterated | Texte + Tools | 1M | $0.30 / $0.05 / $1.20 | Boucles rapides CLI, formulaires et ETL |
zai-org/glm-5.3-flash-abliterated | Vision + Texte | 1M | $0.24 / $0.06 / $1.00 | Modales visuelles, captures UI et QA |
zai-org/glm-5.3-abliterated | Texte + Tools | 1M | $1.40 / $0.30 / $4.40 | Planification superviseur et audit SAST |
5. 4 garde-fous indispensables avant le déploiement continu
- Une clé par bot avec plafond quotidien USD : Fixez
$5.00/joursurbf16.ai/dashboard/keyscontre les boucles infinies. - Sécurité dans le code, jamais dans le RLHF : Verrouillez les paiements et suppressions via
require_human_approval_tools. - Température basse (
0.1–0.2) sur les boucles d’outils : Évite toute dérive des sélecteurs DOM et du JSON. - Répartition Flash vs Flagship : Confiez 90 % de l’exécution à
deepseek-v4.1-flash-abliteratedet les arbitrages complexes àglm-5.3-abliterated.