Multiagente e Orquestração|INEMA.CLUB-PRO

Aula 1 · 15 min

Quando NÃO usar multiagente

Cada agente a mais lê o contexto de novo, gasta a própria cota e precisa ser coordenado. Na maior parte das tarefas de código, um agente só, ou subagentes que devolvem pouco, rende mais. Nesta aula você decide antes de abrir o segundo agente, com uma matriz de sinais que roda como script.

Começar a aula
Uma chave de fenda sozinha numa bancada escura, ao lado de uma caixa de ferramentas fechada.

Nesta aula você vai

  1. 1Quanto custa um time: os números publicados e o que eles medem
  2. 2Os 6 sinais de sequência e os 7 de paralelo
  3. 3A regra da diferença de 2 pontos e o híbrido
  4. 4A matriz como script, com as suas tarefas

Objetivo: decidir entre um agente, sequência, paralelo ou híbrido pela matriz de sinais, antes de abrir o segundo agente.

01Antes do segundo agente

Clique em cada etapa. A matriz é do kit arquiteto-de-execucao (agenteexecuta).

Clique em cada bloco do diagrama para ver o que ele faz.

A matriz é ponto de partida, não medição. Ela evita o reflexo de abrir agentes porque dá.

02O custo que não aparece no pedido

O que está publicado, com data, e o que cada número mede.

1. Tokens

No post sobre o sistema de pesquisa da Anthropic (13/06/2025): agentes gastam cerca de 4× os tokens de um chat, e sistemas multiagente cerca de 15×. Os dados são deles, num produto de pesquisa.

A doc de agent teams do Claude Code diz o mesmo sem número: um time usa significativamente mais tokens que uma sessão, e o gasto cresce com cada colega ativo.

03A matriz como script

Escreva os sinais de cada tarefa num arquivo; o script soma e decide. Nada de modelo: roda de graça.

Terminal · projeto de treino do curso (uma vez)
git clone https://github.com/inematds/inema-agent-runtime.git ~/treino-multi
cd ~/treino-multi && git log -1 --format='%h %cs'   # testado em 5cb431b 2026-10-05
decide.py · salve em ~/treino-multi/
# decide.py — matriz de decisão do arquiteto-de-execucao (inematds/agenteexecuta), em código
# Uso: python3 decide.py tarefas.txt
# tarefas.txt: um bloco por tarefa; "# nome" abre o bloco; depois, um código por linha:
#   S1..S6 = sinais de sequência, P1..P7 = sinais de paralelo,
#   simples = tarefa pequena (não aplica a matriz), erro-caro = custo de erro alto
import sys

SEQ = {"S1": "depende da saída anterior", "S2": "contexto compartilhado grande",
       "S3": "decisões precisam ficar consistentes", "S4": "erro inicial contamina várias tarefas",
       "S5": "juntar versões divergentes sai caro", "S6": "uma etapa ensina a seguinte"}
PAR = {"P1": "tarefas independentes", "P2": "entradas congeladas",
       "P3": "cada saída se valida sozinha", "P4": "trabalho mecânico ou determinístico",
       "P5": "contexto pequeno por tarefa", "P6": "urgência alta", "P7": "há máquina sobrando"}

def decide(nome, cods):
    print(f"# {nome}")
    for c in cods:
        if c not in SEQ and c not in PAR and c not in ("simples", "erro-caro"):
            print(f"aviso: código desconhecido '{c}' (ignorado)")
    if "simples" in cods:
        print("decisão: direto (um agente só, sem matriz)\n")
        return
    s = sum(c in SEQ for c in cods)
    p = sum(c in PAR for c in cods)
    if abs(s - p) >= 2:
        d = "sequencial" if s > p else "paralelo"
    else:
        d = "híbrido"
    print(f"sequência: {s} · paralelo: {p} · diferença: {abs(s - p)}")
    print(f"decisão: {d}")
    if "erro-caro" in cods:
        print("custo de erro alto: planejamento e revisão centralizados")
    print()

nome, cods = None, []
for linha in open(sys.argv[1], encoding="utf-8"):
    linha = linha.strip()
    if linha.startswith("#"):
        if nome:
            decide(nome, cods)
        nome, cods = linha.lstrip("# ").strip(), []
    elif linha:
        cods.append(linha.split()[0])
if nome:
    decide(nome, cods)
tarefas.txt · quatro tarefas de exemplo
# refatorar o módulo de login
S1  cada passo usa o anterior
S2  o módulo inteiro precisa estar na cabeça
S3  nomes e contratos iguais em todo lugar
S4  um erro no contrato quebra o resto
erro-caro

# converter 500 arquivos .md para .html
P1  um arquivo não depende do outro
P2  o conversor e o modelo estão fechados
P3  cada .html se confere sozinho
P4  é mecânico
P5  cada arquivo é pequeno

# pesquisa de mercado em 4 segmentos
S3  as perguntas têm de ser as mesmas
S6  o primeiro segmento ajusta as perguntas
P1  segmentos independentes
P5  pouco contexto por segmento

# resumir um texto em 5 linhas
simples
Terminal · rodar
cd ~/treino-multi
python3 decide.py tarefas.txt; echo "saída: $?"
Exemplo do repositório
# refatorar o módulo de login
sequência: 4 · paralelo: 0 · diferença: 4
decisão: sequencial
custo de erro alto: planejamento e revisão centralizados

# converter 500 arquivos .md para .html
sequência: 0 · paralelo: 5 · diferença: 5
decisão: paralelo

# pesquisa de mercado em 4 segmentos
sequência: 2 · paralelo: 2 · diferença: 0
decisão: híbrido

# resumir um texto em 5 linhas
decisão: direto (um agente só, sem matriz)

saída: 0

A conversão de 500 arquivos é paralelo mecânico: script com vários trabalhadores e conferência por amostra no centro (é a aula 3). A pesquisa empatou: o primeiro segmento roda sozinho, os outros três em paralelo.

04Prática

Primeiro o exemplo, depois três tarefas suas.

E1 · A matriz no exemplo

10 min

Clone o projeto de treino, salve decide.py e tarefas.txt e rode.

Pronto quando: python3 decide.py tarefas.txt | grep -c "^decisão:" → 4, e a pesquisa de mercado sai decisão: híbrido.

E2 · Três tarefas suas

20 min

Escreva minhas-tarefas.txt com três tarefas reais da sua semana (uma que você pensou em dividir entre agentes). Marque só os sinais que são verdade hoje.

Pronto quando: python3 decide.py minhas-tarefas.txt > decisao.md; grep -c "^decisão:" decisao.md → 3 e grep -c "^aviso:" decisao.md → 0.

05Teste da aula

Pergunta 1 de 4

Segundo o post da Anthropic (jun/2025), quanto um sistema multiagente gasta em tokens comparado a um chat?competência

06Em três frases

Time custaCada agente relê o contexto e gasta a própria cota; publicado: cerca de 15× tokens de um chat.
Matriz antesSinais de sequência × paralelo; diferença de 2 decide, menos que isso é híbrido; erro caro centraliza.
Simples é diretoTarefa pequena não passa pela matriz, e trabalho mecânico vai para script.

Para ir além

Próxima aula