Você já teve aquele chat. O "agente" resolveu tudo em Markdown. git status limpo. Billing igual. Os dois usam o mesmo modelo. A diferença não está no vocabulário. Está no que aconteceu depois do prompt.
Cursor, Claude Code, Codex, um StateGraph na API: o mesmo produto pode ser generativo numa rodada e agentic na outra. O nome da caixa não decide. O histórico decide.
Tabela de Conteúdo
- 1. O histórico decide, não o README
- 2. Generativo: o próximo passo é token
- 3. Agentic: o próximo passo é ferramenta
- 4. A tabela que separa os dois
- 5. O modelo não sabe que pagou
- 6. Leitura e escrita não andam no mesmo cano
- 7. O teste de 20 segundos
- 8. O que eu não medi
1. O histórico decide, não o README
Só completou Markdown? Generativo. Chamou busca, Read, gh pr view? Agentic de leitura. Chamou merge, migrate, deploy, pagar? Agentic que grava.
O nome no README não muda isso. O transcript muda.
[generativo]
você: como cancelo uma assinatura na API?
model: o path costuma ser DELETE /v1/subscriptions/{id}
→ git status: limpo
→ billing: igual
[agentic]
você: cancela a assinatura 441
model: tool HTTP DELETE /v1/subscriptions/441
→ status 204
→ billing: assinatura cancelada
Mesmo modelo. Mesmo chat. A diferença é que no segundo caso, alguém de verdade perdeu a assinatura.
2. Generativo: o próximo passo é token
No generativo, o próximo passo é só token. Prompt entra, texto sai. Traduz, resume, sugere um patch em Markdown. A rodada acaba no buffer do chat.
Nada no git. Nada no banco. Nada no gateway.
Generativo bem feito já vale:
- Classificar issue
- Esboçar teste
- Explicar um diff
- Sugerir refactor
- Rascunhar documentação
Isso não é menor. É outro risco. Se o modelo alucina um path de API, o pior é uma frase ruim. Você lê, corrige, segue.
3. Agentic: o próximo passo é ferramenta
No agentic, o próximo passo pode ser uma ferramenta. O ciclo é curto e sempre o mesmo:
1. O modelo para e monta a chamada (nome da tool, argumentos)
2. O runtime executa no mundo
3. O resultado volta como mais texto no histórico
4. Ele decide de novo: responde pra você, ou chama outra tool
Pode fazer isso várias vezes antes da frase final. Se a string mente, ele segue. Se a ferramenta é larga demais, ele age largo.
Agentic sem política não é produto. É um invoke com efeito colateral.
4. A tabela que separa os dois
| Critério | Generativo | Agentic |
|---|---|---|
| Próximo passo | Token | Ferramenta |
| Onde acaba | Buffer do chat | No mundo (git, banco, API) |
| Se errar | Frase ruim | PR errado, deploy, cobrança |
| Blast radius | Contexto da conversa | Produção |
| Precisa de gate | Não | Sim (allowlist, sandbox, HITL) |
| Exemplo | "o path costuma ser X" | tool HTTP DELETE /subscriptions/441 |
A pergunta não é "isso é um agente?". É: o git mudou?
5. O modelo não sabe que pagou
Ele só vê a string que a ferramenta devolveu. Não "sabe" que a assinatura caiu, que o PR abriu, que o deploy passou. Confiança alta no texto não muda isso.
model: tool HTTP DELETE /v1/subscriptions/441
runtime: executa, retorna {"status": 204}
model: vê "status 204", continua
O modelo leu "204". Não sentiu a cobrança parar. Não viu o e-mail de cancelamento. A string disse sucesso. Ele confiou.
Se a ferramenta mente (retorna 200 mas não executou), o modelo não tem como saber. Ele só vê texto.
6. Leitura e escrita não andam no mesmo cano
Ferramentas de leitura podem ser largas:
-
Read(arquivo) -
grep/rg(busca) -
gh pr view(metadata) -
git log(histórico)
Se o modelo lê o arquivo errado, você perdeu tokens. Não perdeu dados.
Ferramentas de escrita precisam de gate:
git pushgh pr mergeHTTP POST/PUT/DELETEmigratedeploy
Se o modelo grava no lugar errado, você perdeu mais que tokens.
| Tipo | Exemplo | Se errar | Gate |
|---|---|---|---|
| Leitura |
Read, grep, gh pr view
|
Token desperdiçado | Não precisa |
| Escrita |
git push, HTTP DELETE, deploy
|
Dado perdido, cobrança | Humano antes |
Humano no meio, aqui, não é revisar o Markdown depois. É confirmar antes da tool que grava, apaga, publica ou cobra.
7. O teste de 20 segundos
No último chat, 20 segundos:
1. Tem tool call?
→ Não: generativo. Para aqui.
2. A tool só lê? (Read, grep, gh pr view)
→ Sim: agentic de leitura. Risco baixo.
3. A tool grava, paga, publica?
→ Sim: agentic de escrita. Humano antes.
Se você não abre o transcript, o README decide por você.
Exemplo real
[transcript]
você: abre PR com o fix do bug 123
model: tool gh pr create --title "fix: bug 123" --body "..."
runtime: PR #456 criado
model: "Abri o PR #456"
Isso é agentic de escrita. O PR existe. Se o modelo errou o título, errou a branch, ou incluiu arquivo errado, o PR está lá.
Sem o transcript, você só vê "Abri o PR #456". Parece generativo. Não é.
8. O que eu não medi
Isso não é transcript de produção. Não contei quantos READMEs da sua org mentem. Não tenho taxa de "agente de mentira". Tenho o teste: histórico, não vocabulário.
Se eu estiver errado e a tool de escrita for larga, o blast é PR, deploy ou cobrança. Por isso a chave não fica com o modelo.
Cadeia, grafo e harness entram no runtime. O post irmão é LangGraph versus LangChain. RAG, MCP e fine-tuning são outro texto. Aqui o knob é um: você deixou o modelo agir com guia antes e sensor depois? O IDE roda o loop. O harness é a política: o que lê, o que grava, quem aprova.
Takeaway: Gera é texto. Age é ferramenta. Olha o git.
No último chat: ele só escreveu, leu alguma ferramenta, ou gravou no mundo?
Top comments (1)
Some comments may only be visible to logged-in visitors. Sign in to view all comments.