Como Construir Seu Primeiro Agente de IA em 15 Minutos
Você não precisa de um framework, um curso ou um doutorado. Você precisa do Node.js, do SDK da Anthropic e de 25 linhas de TypeScript. Este tutorial constrói um agente real e funcional — um resumidor de conteúdo estruturado que você pode publicar na Cloudflare na mesma sessão. O único pré-requisito é uma chave de API gratuita.
Toda quarta-feira. 28.400+ operadores. Zero enrolação.
✓ Verifique sua caixa de entrada — clique no link de confirmação para concluir o cadastro.
✓ Inscrição concluída!
✓ Você já está na lista.
Índice
Atualizado em junho de 2026.
TL;DR: Você não precisa de um framework, um curso ou um doutorado. Você precisa do Node.js, do SDK da Anthropic e de 25 linhas de TypeScript. Este tutorial constrói um agente real e funcional — um resumidor de conteúdo estruturado que você pode publicar na Cloudflare na mesma sessão. O único pré-requisito é uma chave de API gratuita.
[Leitura do operador] A coisa mais comum que ouço de fundadores que querem automatizar com IA é “primeiro preciso aprender mais”. Não precisa. O padrão de agente é simples, e a forma mais rápida de entendê-lo é construir um. Aqui está o caminho exato que eu seguiria se começasse do zero hoje.
Por que a maioria dos tutoriais de “construa um agente de IA” te decepciona
Eles usam Python (ótimo para engenheiros de ML, atrito para todos os outros), escondem o código real por trás de um framework como o LangChain, ou constroem algo abstrato demais para conectar ao seu trabalho real.
Este tutorial faz três coisas de forma diferente:
- Só TypeScript — se você já escreveu JavaScript, consegue seguir isto
- Sem framework — você verá cada linha de código que toca o modelo
- Um resultado útil — você construirá um resumidor estruturado que realmente pode usar em e-mails de clientes, avaliações ou notas de reuniões
O que você vai construir
Um agente resumidor de conteúdo: cole qualquer bloco de texto e receba de volta um resumo estruturado em um formato consistente. Uma requisição HTTP de entrada, um resumo limpo de saída.
Por que este como primeiro projeto: o padrão — prompt de sistema + entrada do usuário → saída estruturada — é a base de cada agente que eu rodo. Troque o prompt de sistema e você tem um respondedor de perguntas, um reescritor de tom, um classificador ou um gerador de rascunhos. Aprenda isto uma vez e você terá aprendido 80% do que os agentes em produção realmente fazem.
Pré-requisitos (2 minutos)
- Node.js 18+ — verifique com
node --version. Instale a partir de nodejs.org se precisar. - Uma chave de API da Anthropic — cadastre-se no Claude, pegue uma chave no console. O plano gratuito funciona.
- Um terminal e um editor de texto.
Sem Docker. Sem ambiente virtual. Sem pip install de nada.
Passo 1: Criar o projeto (2 minutos)
mkdir my-first-agent && cd my-first-agent
npm init -y
npm install @anthropic-ai/sdk
npm install -D tsx typescriptAdicione um script ao package.json para conseguir rodar o agente facilmente:
{
"scripts": {
"agent": "tsx agent.ts"
}
}Passo 2: Escrever o agente (5 minutos)
Crie agent.ts e cole isto:
import Anthropic from "@anthropic-ai/sdk";
const client = new Anthropic({
apiKey: process.env.ANTHROPIC_API_KEY,
});
const SYSTEM_PROMPT = `You are a precise content summarizer. When given any block of text, return a structured summary in this exact format:
**One-line summary:** <the core point in one sentence>
**Key points:**
- <point 1>
- <point 2>
- <point 3 if applicable>
**Action item (if any):** <one concrete next step, or "None">
Be specific. No filler. Under 150 words total.`;
async function summarize(text: string): Promise<string> {
const message = await client.messages.create({
model: "claude-haiku-4-5",
max_tokens: 512,
system: SYSTEM_PROMPT,
messages: [{ role: "user", content: text }],
});
const block = message.content[0];
if (block.type !== "text") throw new Error("Unexpected response type");
return block.text;
}
const sample = `
Hey team — following up on the Q2 review meeting.
We agreed to push the launch to July 15th instead of June 30th
due to the payment integration delay. Marketing needs the new
landing page copy by June 20th or we can't start the email campaign.
Budget for the launch campaign is confirmed at $8,000.
Please confirm receipt.
`;
const result = await summarize(sample);
console.log(result);Passo 3: Executá-lo (1 minuto)
ANTHROPIC_API_KEY=sk-ant-... npm run agentSaída esperada:
**One-line summary:** Launch pushed to July 15th due to payment delay; landing page copy needed by June 20th to unblock email campaign.
**Key points:**
- Launch date moved from June 30th to July 15th
- Landing page copy deadline: June 20th (blocks email campaign)
- Campaign budget confirmed at $8,000
**Action item (if any):** Confirm receipt and deliver landing page copy by June 20th.Isso é um agente de IA funcionando. Entrada real, prompt de sistema personalizado, saída estruturada. A coisa toda tem 30 linhas de código.
Passo 4: Personalize para o seu caso de uso
O prompt de sistema é a única coisa que torna este agente seu. Aqui estão três alternativas prontas para usar:
Classificador de avaliações de clientes:
Classify this customer review as POSITIVE, NEGATIVE, or MIXED.
Then extract the main complaint or praise in one sentence.
Format: SENTIMENT: <label>
RESUME: <one sentence>Transcrição de reunião → itens de ação:
Extract all action items from this meeting transcript.
Format each as: [OWNER if mentioned] [ACTION] by [DEADLINE if mentioned]
If owner or deadline is not stated, leave those fields blank.
Return a numbered list. No preamble.Reescritor de tom para redes sociais:
Rewrite this text in a direct, confident, first-person tone for LinkedIn.
Remove hedging language ("I think", "maybe", "sort of").
Keep it under 200 words. Return only the rewritten text, no commentary.Cada um desses é o mesmo agente de 30 linhas com um prompt de sistema diferente. Você não precisa de um projeto novo para cada um — basta atualizar o SYSTEM_PROMPT e rodar de novo.
Passo 5: Fazer o deploy em produção
Um script local é um protótipo. Um agente em produção roda em um cronograma ou em resposta a eventos. O caminho que eu uso: Cloudflare Workers.
Os Workers são gratuitos até 100 mil requisições/dia, fazem deploy em segundos e te dão gatilhos cron, armazenamento KV e filas sem precisar gerenciar nenhuma infraestrutura.
Instale o Wrangler e gere a estrutura de um Worker:
npm install -g wrangler
wrangler init my-agent-worker --template worker-typescript
cd my-agent-worker
npm install @anthropic-ai/sdkGuarde sua chave de API como um segredo (nunca no código):
wrangler secret put ANTHROPIC_API_KEYSubstitua src/index.ts por:
import Anthropic from "@anthropic-ai/sdk";
export default {
async fetch(request: Request, env: Env): Promise<Response> {
const { text } = await request.json<{ text: string }>();
const client = new Anthropic({ apiKey: env.ANTHROPIC_API_KEY });
const message = await client.messages.create({
model: "claude-haiku-4-5",
max_tokens: 512,
system: YOUR_SYSTEM_PROMPT,
messages: [{ role: "user", content: text }],
});
const block = message.content[0];
if (block.type !== "text") return Response.json({ error: "Bad response" }, { status: 500 });
return Response.json({ summary: block.text });
},
};Faça o deploy:
wrangler deployAgora você tem um endpoint de API ativo em https://my-agent-worker.<your-subdomain>.workers.dev. Chame-o a partir do Zapier, de um script do Google Sheets, de um app mobile — de qualquer lugar que consiga fazer uma requisição HTTP.
O que construir a seguir
Quando você tiver o padrão básico funcionando, a complexidade vem em três sabores:
Uso de ferramentas (tool use) — deixe o modelo decidir quando chamar APIs externas. Em vez de sempre executar a mesma lógica, o modelo escolhe qual ferramenta invocar com base na entrada. É assim que você constrói agentes que pesquisam, escrevem em bancos de dados ou enviam notificações.
Encadeamento (chaining) — passe a saída de um agente como entrada de outro. Um classificador encaminha para um respondedor; um resumidor alimenta um tradutor. A maioria dos agentes que eu rodo em produção são cadeias de dois ou três passos, não chamadas únicas.
Gatilhos cron — adicione [triggers] crons = ["0 8 * * *"] ao wrangler.toml e seu agente roda em um cronograma. Sem polling, sem servidor sempre ligado. É assim que funciona a pipeline de conteúdo que eu uso para rodar este site.
Cobri os três padrões com código TypeScript completo em O stack de agentes que eu uso para rodar mais de 30 agentes em produção — aquele post continua de onde este termina.
A conclusão do operador
A distância entre “pensar em construir um agente” e “ter um agente publicado” é de cerca de 15 minutos e 30 linhas de código. O prompt de sistema é o produto — invista sua energia ali, não em escolher um framework. Se o agente te poupa uma hora por semana, isso são 50 horas por ano. Construa primeiro a versão simples, veja se ela se paga, e só então adicione complexidade quando o caso de uso exigir.
Toda quarta-feira. 28.400+ operadores. Zero enrolação.
✓ Verifique sua caixa de entrada — clique no link de confirmação para concluir o cadastro.
✓ Inscrição concluída!
✓ Você já está na lista.
Receba o manual de IA na sua caixa de entrada
Toda quarta-feira. 28.400+ operadores. Zero enrolação.
Verifique sua caixa de entrada.
Enviamos um e-mail de confirmação — clique no link para concluir sua inscrição. Verifique o spam se não o vir em um minuto.
Você está inscrito.
Bem-vindo — a próxima edição chega em breve à sua caixa de entrada.
Você já está na lista — fique de olho toda quarta-feira.