PTENES
Pular para o conteúdo
MÓDULO 4.2

📚 O agente propõe, você aprova

O agente erra, aprende e quer mudar o jeito de trabalhar. Ótimo, desde que a regra nova só entre com o seu sim. Este módulo mostra os quatro lugares onde o kit guarda o aprendizado e como revisar tudo uma vez por semana.

6
Tópicos
~35
Minutos
4
Arquivos
Prático
Tipo
0 de 60%
1

Entenda por que o agente não muda as próprias regras

Um agente que reescreve as próprias regras pode, sem querer, afrouxar justamente a regra que o segurava. Uma linha "pode pagar boletos pequenos" e a política do módulo 4.1 deixa de valer.

Por isso o AGENTS.md do kit diz, com todas as letras: "Você não muda estas regras. Para propor uma mudança, acrescente uma linha na tabela 'Aprendizado' da runtime/POLITICA.md. Quem aprova é o humano."

🆕 Novo aqui? Os quatro arquivos do aprendizado

  • Tabela Aprendizado — no fim da runtime/POLITICA.md. Onde o agente escreve as propostas.
  • Lessons — seção ## Lessons do AGENTS.md. Só regras que você aprovou, uma por linha.
  • FALHAS.md — runtime/FALHAS.md. Uma linha por coisa que quebrou.
  • LIMITES.md — runtime/LIMITES.md. Uma linha por coisa que o ambiente não deixou fazer.
1 · agente propõe linha na tabela Aprendizado 2 · você decide aprovado ou recusado 3 · incorpora ## Lessons do AGENTS.md o agente passa a seguir a regra aprovada atalho proibido

Como ler o desenho: o caminho azul de baixo passa sempre pela caixa âmbar, que é você. O arco vermelho de cima é o agente escrevendo direto nas Lessons, sem passar por você. É esse atalho que o AGENTS.md proíbe.

✓ O agente pode

  • ✓ Acrescentar linha na tabela Aprendizado
  • ✓ Anotar falha no FALHAS.md
  • ✓ Anotar bloqueio no LIMITES.md
  • ✓ Propor a lição quando você o corrige

✗ O agente não pode

  • ✗ Marcar a própria proposta como aprovada
  • ✗ Escrever nas Lessons sem o seu sim
  • ✗ Subir o teto de uma ação na POLITICA
  • ✗ Apagar linha de falha que o incomoda
✍️
Propõe

o agente

👍
Aprova

você

📌
Incorpora

vira Lesson

🔒
Regras

só mudam com seu sim

2

Preencha a tabela Aprendizado

A tabela fica no fim da runtime/POLITICA.md, sob o título "Aprendizado (propõe → aprova → incorpora)". No kit ela vem vazia: só o cabeçalho, esperando a primeira proposta.

Cada linha tem quatro colunas. A segunda pede evidência: não vale "achei melhor", vale "aconteceu isto, neste dia, com este resultado".

📄 runtime/POLITICA.md, seção Aprendizado (como vem no kit)
O agente **não muda as próprias regras**. Ele acrescenta uma linha aqui; você decide.

| data | o que aconteceu (com evidência) | proposta (1 linha) | status: proposto / aprovado / recusado |
|---|---|---|---|
datao que aconteceu (com evidência)proposta (1 linha)status
exemploClara pediu "horários livres de amanhã" e o agente respondeu com a data de hoje; a resposta tinha horários já marcadosAntes de consultar a agenda, repetir a data em AAAA-MM-DD e esperar confirmaçãoproposto
exemploNo relatório da distribuidora, o agente escreveu "posso emitir o boleto?" em vez de deixar o boleto pronto para a SôniaEm pagamento, entregar o texto pronto e a lista do que conferir; nunca oferecer executarproposto

O que olhar na tabela: as duas linhas são exemplos de como ficaria, escritos para este curso, não vêm no kit. Repare que a proposta cabe em uma linha e diz o que fazer, não o que sentir.

1

proposto

O agente escreveu. Ninguém decidiu ainda. Nada muda no comportamento.

2

aprovado

Você trocou o status. A proposta vai para as Lessons (tópico 3) e passa a valer.

3

recusado

Fica na tabela. Assim o agente não propõe a mesma coisa de novo na semana seguinte.

💡 Não apague o recusado

A linha recusada é memória. Ela mostra ao agente, e a você daqui a três meses, que a ideia já foi pensada e por que não entrou.

📅
data

quando aconteceu

🔎
evidência

o fato, não a opinião

➡️
proposta

uma linha

🏷️
status

proposto / aprovado / recusado

3

Promova o aprovado para as Lessons

A POLITICA.md fecha a seção assim: "Aprovado → vira regra no CLAUDE.md/AGENTS.md". No kit, o lugar é a seção ## Lessons do AGENTS.md.

Por que no AGENTS.md e não no CLAUDE.md? Porque o CLAUDE.md do kit começa puxando o AGENTS.md. Uma regra escrita num lugar só vale para o Claude e para o Codex.

📄 AGENTS.md (fim do arquivo, como vem)
## Lessons

Regras aprovadas pelo humano, uma por linha:
📄 CLAUDE.md (inteiro, como vem)
@AGENTS.md

## Self-learning

Quando o humano corrigir você, ou você notar um erro seu: proponha a lição como uma linha na tabela "Aprendizado" de `runtime/POLITICA.md`. Depois de aprovada, ela entra em `## Lessons` do `AGENTS.md`.

🆕 Novo aqui? O que faz o @AGENTS.md

No CLAUDE.md, uma linha com @ e o nome de um arquivo pede ao Claude Code que leia aquele arquivo junto. O Codex lê o AGENTS.md direto. Resultado: os dois agentes leem as mesmas Lessons.

POLITICA.md linha "aprovado" AGENTS.md ## Lessons Codex lê direto CLAUDE.md → Claude pela linha @AGENTS.md

Como ler o desenho: tudo passa pela caixa âmbar. Você escreve a regra uma vez no AGENTS.md, e as duas setas azuis levam a mesma regra aos dois agentes. Não existe uma versão "só do Claude" para ficar desatualizada.

Exemplo de como ficaria (não vem no kit)

Se a Clara aprovar a primeira proposta do tópico 2, o fim do AGENTS.md fica assim:

## Lessons

Regras aprovadas pelo humano, uma por linha:
- Antes de consultar a agenda, repetir a data em AAAA-MM-DD e esperar confirmação.

💡 Quem escreve a linha nas Lessons

Pode ser você, à mão, ou o agente, depois do seu pedido explícito ("aprovo a linha X, copie para as Lessons"). O que conta é a ordem: primeiro o seu sim, depois a cópia.

📌
## Lessons

uma regra por linha

🔗
@AGENTS.md

Claude lê junto

🤝
Dois agentes

mesmas regras

🔁
Self-learning

corrigido → propõe

4

Anote cada falha em uma linha

Quando algo quebra e você conserta, a tentação é seguir em frente. O runtime/FALHAS.md pede trinta segundos antes: uma linha com a data, o que quebrou, a menor correção e se o problema era de prompt ou de infra.

O kit já traz uma linha real, de quando ele mesmo foi testado. É o melhor exemplo do formato:

📄 runtime/FALHAS.md (como vem no kit)
| data | o que quebrou | menor correção | prompt \| infra |
|---|---|---|---|
| 2026-10-05 | `doctor.mjs` dizia "codex sem login" com o Codex logado | ler stdout **e** stderr (`codex login status` responde no stderr) | infra |
O que olhar: a correção não foi "reescrever o doctor". Foi ler também a outra saída do comando. É isso que "menor correção" quer dizer.

🆕 Novo aqui? stdout e stderr

Todo comando de terminal tem duas saídas de texto: a normal (stdout) e a de avisos e erros (stderr). Na tela as duas aparecem juntas, mas um programa que lê só uma delas perde a outra. Foi o que aconteceu com o doctor.mjs.

prompt

  • ✓ O pedido induziu o erro
  • ✓ O modelo entendeu outra coisa
  • ✓ Faltou dizer um limite no pedido
  • ✓ Correção típica: uma frase a mais na instrução

infra

  • ✓ Máquina, rede, login, versão de programa
  • ✓ Script que lê o lugar errado
  • ✓ Serviço fora do ar ou lento
  • ✓ Correção típica: uma proteção (limite de tempo, nova tentativa, checagem)

💡 Por que uma linha só

Depois de umas dez linhas o padrão aparece sozinho: "metade é infra de login", "toda falha de prompt é data". Texto longo esconde o padrão. Se precisar de detalhe, escreva noutro arquivo e ponha o link na linha.

📅
data

quando quebrou

💥
o que quebrou

o sintoma visto

🩹
menor correção

a proteção que faltava

⚖️
prompt | infra

ou os dois

5

Anote o que o ambiente barrou

Nem todo problema é falha. Às vezes nada quebrou: o ambiente simplesmente não deixou. O sandbox bloqueou a rede, a ferramenta não tem o recurso, o site pede login. Isso vai para o runtime/LIMITES.md.

No kit ele vem só com o cabeçalho. A última coluna, status, diz se o limite continua aberto ou se você aceitou conviver com ele.

📄 runtime/LIMITES.md (como vem no kit)
| data | o que tentei | o que barrou | contorno | status |
|---|---|---|---|---|
SituaçãoVai paraPor quê
O doctor.mjs lia só uma saída e erravaFALHAS.mdera defeito, e foi corrigido
O sandbox do Codex bloqueia a rede, até a localLIMITES.mdé regra do ambiente; a receita R1 manda anotar
Você usou engenharia reversa num testeLIMITES.mda POLITICA manda: laboratório anotado
Você corrigiu o agente e ele aprendeutabela Aprendizadoé mudança de regra, precisa do seu sim

O que olhar na tabela: a pergunta que separa é "quebrou ou não deixaram?". Quebrou e consertou, FALHAS. Não deixaram, LIMITES. Mudou o jeito de trabalhar, Aprendizado.

O exemplo que o próprio kit dá

A receita R1 avisa: o sandbox do Codex bloqueia rede. Se um teste precisar subir um servidor, acrescente na ponte o ajuste abaixo e anote em LIMITES.md:

-c sandbox_workspace_write.network_access=true

A linha registraria: o que você tentou (subir o servidor de teste), o que barrou (sandbox sem rede), o contorno (esse ajuste) e o status.

⚠️ Contorno não é licença

Abrir a rede do sandbox é afrouxar uma cerca. Por isso ele vai para um arquivo que você revisa. Um contorno sem anotação vira, em três meses, uma porta aberta que ninguém lembra de ter aberto.

🧱
o que barrou

regra do ambiente

↪️
contorno

o que você fez

🏷️
status

aberto ou aceito

🧪
laboratório

também se anota

6

Faça a revisão da semana com o agente

Os três arquivos só ajudam se alguém os lê. Uma vez por semana, peça ao agente para ler tudo e transformar o que se repete em propostas. Ele faz a parte chata. Você faz a parte que importa: decidir.

São dois pedidos. O primeiro só gera propostas. O segundo, que você escreve depois de ler, aprova o que você quiser.

🎯 Objetivo: o agente transforma a semana em propostas, sem aprovar nada

Abra claude (ou codex) na pasta do projeto e cole:

Leia runtime/FALHAS.md, runtime/LIMITES.md e a tabela Aprendizado de runtime/POLITICA.md. Procure o que se repete ou ainda está aberto. Para cada caso, acrescente uma linha na tabela Aprendizado com data, evidência, proposta em uma linha e status proposto. Não marque nada como aprovado e não altere o AGENTS.md nem o CLAUDE.md. No fim, liste as linhas que você acrescentou.
Como verificar: as linhas novas aparecem só na tabela Aprendizado, todas com status proposto. A seção ## Lessons do AGENTS.md continua igual.
✍️ Depois de ler: o seu pedido de aprovação (troque o que está entre < >)
Na tabela Aprendizado de runtime/POLITICA.md, mude para aprovado a linha <data e proposta> e para recusado a linha <data e proposta>. Copie só a proposta aprovada, em uma linha, para ## Lessons do AGENTS.md.
1

O agente lê e propõe

Primeiro pedido. Ele cruza FALHAS, LIMITES e as propostas antigas.

2

Você lê cada linha

Pergunta-chave: esta regra afrouxa algum teto da POLITICA? Se afrouxa, recuse.

3

Você aprova ou recusa

Segundo pedido, com as suas palavras. Só o aprovado vai para as Lessons.

4

Git guarda a mudança

Como tudo é arquivo de texto, cada regra nova fica no histórico, com data. Dá para ver quando e por que entrou.

Teste rápido (opcional): na revisão, o agente propôs "pode enviar lembrete aos pacientes sem perguntar". O que a Clara faz?

🗓️
Semanal

um horário fixo

📥
Pedido 1

só propostas

✅
Pedido 2

a sua decisão

🕰️
Git

histórico das regras

🎓 Resumo do módulo

✓
O agente não muda as próprias regras — ele propõe uma linha.
✓
Tabela Aprendizado — data, evidência, proposta, status.
✓
Aprovado vira Lesson no AGENTS.md — e vale para o Claude e o Codex.
✓
Quebrou: FALHAS. Não deixaram: LIMITES. — uma linha cada.
✓
Revisão semanal em dois pedidos — o agente propõe, você decide.

Próximo módulo:

4.3 — Guarda e painel