DEV Community

Cover image for IA generativa e agentic: o README diz agent. O git não mudou
Tiago Vilas Boas (Montanha)
Tiago Vilas Boas (Montanha)

Posted on Edited on

IA generativa e agentic: o README diz agent. O git não mudou

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

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
Enter fullscreen mode Exit fullscreen mode

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
Enter fullscreen mode Exit fullscreen mode

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
Enter fullscreen mode Exit fullscreen mode

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 push
  • gh pr merge
  • HTTP POST/PUT/DELETE
  • migrate
  • deploy

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.
Enter fullscreen mode Exit fullscreen mode

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"
Enter fullscreen mode Exit fullscreen mode

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.