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

✍️ OpenClawRadar📅 Publicado: April 1, 2026🔗 Source
Tratar os Subagentes do OpenClaw como Funções Sem Estado em vez de Membros Persistentes da Equipe
Ad

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

Ad

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

Ad

👀 See Also

Usuários do OpenClaw Docker: Fixem no commit 0c926a2c5 para corrigir as extensões do Discord e dos canais quebradas.
Guides

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.

OpenClawRadar
Estrutura Prática para Escolher entre os Modelos Haiku, Sonnet e Opus da Claude
Guides

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.

OpenClawRadar
Como Proteger o Claude Cowork com uma Camada de Proxy: Guia Prático
Guides

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.

OpenClawRadar
Regras de Vibe Coding: Crie Projetos Paralelos pelo Celular Usando Claude Code Sem Ler Código
Guides

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.

OpenClawRadar