Tratar os Subagentes do OpenClaw como Funções Sem Estado em vez de Membros Persistentes da Equipe

Um desenvolvedor no r/openclaw descreve sua mudança de modelo mental ao trabalhar com equipes multiagente no OpenClaw. Inicialmente, tratar subagentes como funcionários juniores com nomes, históricos e expectativas de memória levou a semanas de confusão e fluxos de trabalho quebrados.
A Analogia da Função
A descoberta veio ao reconhecer que subagentes não são mini-eus ou membros persistentes da equipe—eles são funções. Especificamente:
- Subagentes são chamadas de função stateless, não membros persistentes da equipe
- Eles são ferramentas especializadas, não versões juniores do desenvolvedor
- Eles operam com entrada pura → saída, sem lembrar do contexto
- Eles retornam valores para o chamador em vez de conversarem entre si
A fonte fornece exemplos de código contrastando abordagens erradas e corretas:
# ERRADO: Tratando subagente como objeto persistente
frank = Agent("Frank")
frank.build_feature()
frank.fix_it() # Assume que Frank se lembra
CERTO: Tratando subagente como chamada de função
result = frank_task(
instructions="Build login page",
context={"requirements": reqs, "design": mockup}
)
frank_task executa, retorna saída, termina
Implicações Práticas
Essa mudança de modelo mental tem várias implicações concretas:
1. SOUL.md como Docstring de Função: Em vez de perfis de personalidade, SOUL.md se torna um documento de especificação:
# frank_task()Propósito: Construir recursos Next.js Entradas: requisitos (dict), design (opcional) Saídas: {código, testes, notas} Restrições: Sem chamadas de API externas sem aprovação
2. Passagem de Estado Explícita para Iteração: Como subagentes não lembram do contexto, você deve passar todas as informações necessárias nos parâmetros:
# ERRADO
frank_fix("fix the bug") # spawn, tenta, morre
frank_fix("still broken") # novo spawn, sem contexto
CERTO
result = frank_fix({
"code": previous_output,
"issues": ["login validation fails", "mobile CSS broken"],
"test_cases": failing_tests
}) # Contexto completo nos parâmetros
3. O Coordenador como Programa Principal: O desenvolvedor se torna uma função orquestradora em vez de um gerente de equipe:
def build_feature(spec):Chama funções em sequência
code = frank_build(spec) tests = quinn_audit(code)
if tests["passed"]: return deploy(code) else: # Itera com contexto explícito fixed = frank_fix({ "code": code, "failures": tests["failures"] }) return deploy(fixed)
Paralelos com Design de Software
Essa abordagem se alinha com princípios estabelecidos de design de software:
- Responsabilidade Única: Cada subagente faz uma coisa
- Funções Puras: Mesma entrada → mesma saída
- Testável Unitariamente: Testa a saída de cada subagente independentemente
- Componível: Encadeia subagentes como quinn_test(frank_code(spec))
- Stateless: Sem dependências ocultas
O desenvolvedor observa que o valor não é "mais agentes = mais inteligência" mas "funções especializadas = arquitetura mais limpa".
Resultados Após a Mudança
Após adotar esse modelo, o desenvolvedor construiu:
- Um banco de dados de 11.249 academias em 2 semanas
- 5 agentes especializados (não 5 generalistas)
- Um CRM com fluxos de trabalho de subscrição
- Engajamento diário no Moltbook
Tudo usando subagentes stateless e um coordenador que mantém o contexto.
📖 Read the full source: r/openclaw
👀 See Also

Usuários do OpenClaw Docker: Fixem no commit 0c926a2c5 para corrigir as extensões do Discord e dos canais quebradas.
Após atualizar o OpenClaw via Docker, extensões de canal como Discord, Signal e WhatsApp falham com erros de importação de módulos. O problema se origina do commit d9c285e93 e de um segundo bug específico do Docker. Fixe no commit 0c926a2c5 para uma solução temporária estável.

Estrutura Prática para Escolher entre os Modelos Haiku, Sonnet e Opus da Claude
Um desenvolvedor testou os três modelos do Claude em uma tarefa de refatoração de 400 linhas em Express.js e descobriu que a diferença principal está na profundidade do raciocínio, não na inteligência. O Haiku 4.5 lidou com partes diretas, mas perdeu a ordenação do middleware, o Sonnet 4.6 capturou o problema de ordenação e adicionou tipos TypeScript, enquanto o Opus 4.6 identificou uma falha de segurança no middleware de autenticação.

Como Proteger o Claude Cowork com uma Camada de Proxy: Guia Prático
Um guia prático sobre como configurar uma camada de proxy para observar e proteger o comportamento do Claude Cowork, publicado pela equipe General Analysis.

Regras de Vibe Coding: Crie Projetos Paralelos pelo Celular Usando Claude Code Sem Ler Código
Um engenheiro sênior compartilha suas regras para construir projetos paralelos inteiramente pelo celular usando Claude Code sem ler código: começar no modo plano, commit no git, escrever testes, usar subagentes para revisões e modo automático.