Reforçando Limites Rígidos para Agentes de IA do OpenClaw: Controle de Aprovação e Limites de Concorrência

Um desenvolvedor executando um bot OpenClaw em um Mac mini com Ollama (GLM 5.2, fallback para Anthropic Sonnet 4.6 e Haiku) encontrou um problema clássico: o bot viola repetidamente regras rígidas—como "nunca envie e-mails sem aprovação" e "máximo de 5 chamadas concorrentes"—mesmo confirmando entendimento a cada vez. A hipótese do usuário está correta: isso é regras-como-contexto, não regras-como-constraints. O modelo trata instruções como aconselhamento, então nenhuma quantidade de prompt ou reforço de memória resolve.
A correção padrão é mover a aplicação para fora do loop de raciocínio do modelo. Você não pode confiar em um preditor estatístico de texto para impor limites rígidos; você precisa de verificações determinísticas na camada de orquestração.
Gate de Aprovação para Chamadas de Ferramentas
Para gate de e-mails (ou qualquer ação perigosa) atrás de aprovação, envolva a chamada de ferramenta em um padrão humano-no-loop:
- Quando o modelo solicitar o envio de e-mail, intercepte a chamada antes que ela execute.
- Apresente um prompt de confirmação no Discord (por exemplo, botões ou uma reação).
- Apenas se o usuário aprovar, execute a chamada de API real.
# Pseudo-código no seu manipulador de ferramentas OpenClaw
if tool == "send_email":
message = f"Aprovar envio de e-mail para {to}?"
if not await discord_approval(message):
return "Usuário rejeitou. Não envie."
# prossiga com a chamada de API de e-mail
Isso garante que o modelo fisicamente não possa contornar o gate—não importa o que ele diga.
Limites de Concorrência na Camada de Orquestração
Para limites de concorrência como "máximo 5", implemente um semáforo ou contador no despachante de comandos:
import asyncio
semaphore = asyncio.Semaphore(5)
async def handle_tool_call(tool, args):
async with semaphore:
# execute a chamada de ferramenta
Qualquer tentativa acima do limite espera ou falha imediatamente, independentemente da intenção do modelo.
Isso é um Problema Específico do GLM/Ollama?
O usuário pergunta se isso é específico do GLM ou geral para modelos locais. Com base na discussão do r/openclaw, isso é uma limitação geral de LLMs—todos os modelos tratam instruções como contexto, não como restrições. Apenas prompts não podem impor limites rígidos. A solução sempre requer aplicação em nível de infraestrutura.
Recomendação
Pare de reafirmar regras na memória ou habilidades. Em vez disso, construa verificações explícitas na sua camada de chamada de ferramentas. Trate o modelo como um motor de sugestões, não um aplicador de políticas.
📖 Leia a fonte completa: r/openclaw
👀 See Also

Memória Gráfica vs Markdown: Por que Arquivos Planos se Tornam Dívida de Prompt em Escala
Um desenvolvedor compartilha como um sistema de memória em markdown para agentes de IA cresceu para mais de 80 arquivos e 5 milhões de caracteres, tornando a recuperação um jogo de adivinhação. A solução: memória em grafo com nós e arestas, para que o agente renderize apenas o contexto relevante por tarefa.

Usuários do Claude AI Obtêm Melhores Resultados ao Fornecer Contexto em Vez de Instruções Genéricas
Uma discussão no Reddit destaca que os usuários que realizam trabalho real com a Claude AI fornecem contexto específico sobre sua situação, o que já tentaram, como seria um bom resultado e o que evitar, em vez de tratá-la como um mecanismo de busca.

Dicas de Uso de Token para Claude Code
Dicas práticas de um post no Reddit para reduzir o consumo de tokens: inicie novos chats, agrupe perguntas, mantenha CLAUDE.md enxuto, seja preciso com referências a arquivos, resuma e reinicie threads, e use modelos mais leves para tarefas simples.

Claude Code Visual: Notas Práticas sobre Hooks, Subagentes, MCP e CLAUDE.md
Um desenvolvedor compartilha experiência prática usando o Claude Code Visual, abordando sintaxe de ganchos MCP, CLAUDE.md para contexto de projeto, padrões de delegação de subagentes e o comando /loop para tarefas recorrentes.