---
title: Objetivos
description: Dê a um agente do Lampson um objetivo e ele trabalha sozinho até terminar — planeja no seu quadro, avança em rodadas, mantém você informado e pede aprovação antes de qualquer coisa irreversível.
---
# Objetivos

Um **objetivo** é algo que você pede a um agente para trabalhar **sozinho, até terminar**: "adicione tal funcionalidade com testes", "pesquise X e me deixe um resumo", "encontre o preço mais barato de…". Não é uma conversa: você deixa rodando e volta quando ele avisar.

O agente:

- **planeja**: divide o objetivo em tarefas no seu quadro e vai movendo (a fazer → fazendo → feito);
- **avança em rodadas**: termina um turno e o Lampson dá o próximo, até ele dar por feito;
- **informa** nos marcos, e **pergunta** o que só você sabe;
- **pede sua aprovação** antes de qualquer coisa que sai do projeto ou não tem volta (merge na main, publicar, comprar, mandar um e-mail) e espera a resposta;
- **termina** com o resultado: o que fez, onde e como conferir.

Enquanto espera sua resposta, não gasta nada.

## Dar um objetivo

Na tela de **equipes** do projeto (botão **equipos** na interface web, `/w/<projeto>/equipos`, ou a partir de [todos os projetos](/pt/docs/teams#onde-se-criam) em `http://127.0.0.1:8080/equipos`) → **+ nuevo**: escolha o agente, escreva o que ele tem que alcançar, a cada quanto tempo faz uma rodada e quanto pode gastar.

Ou pelo terminal, na pasta do projeto:

```sh
lampson objective add "Adicione filtrar tarefas por status, com testes. Trabalhe na sua branch e me peça aprovação antes do merge." --agent cto
lampson objective list
lampson objective show 1
lampson objective reply 1 --approve          # ou --deny, com uma nota opcional
lampson objective reply 1 "em reais"         # responder uma pergunta
lampson objective cancel 1
```

Ou pela [API](/pt/docs/api#objetivos): `POST /v1/objectives` com `{"agent": "cto", "text": "…"}`.

| opção | | |
|---|---|---|
| `--agent ID` | quem trabalha nele | |
| `--team ID` | ou uma [equipe](/pt/docs/teams) (o líder conduz) | |
| `--budget N` | tokens que pode gastar no total | 500.000 |
| `--round S` | segundos entre um turno e o próximo | 20 (60 numa equipe) |

Sem orçamento, ele pausa; **Seguir** (continuar) dá outra parcela igual.

## A tela

À esquerda, seus objetivos e o status (trabalhando, esperando você, feito, falhou, sem orçamento). No centro, o escolhido: o que tem que alcançar, quanto gastou, o último informe, o resultado e **o quadro dele**. À direita, o **registro**: tudo o que ele fez, ao vivo.

**O que espera por você** fica na caixa de entrada: o botão **⚑** do cabeçalho, em todas as telas, junta as perguntas e aprovações pendentes de todos os seus projetos para responder, aprovar ou negar ali mesmo (um merge mostra quais branches, commits e arquivos entram). Na página de um objetivo, a pergunta dele também aparece no lugar, com a resposta ali.

## Um objetivo real

Um agente `cto` (modelo `glm-5.3-flash`) numa pequena API de tarefas em Node, com este objetivo:

> Adicione à API filtrar tarefas por status: `GET /tasks?done=true` devolve só as feitas e `?done=false` as pendentes (sem o parâmetro, todas; um valor inválido é 400). Com testes. Trabalhe numa branch nova `cto/filtro-estado` e faça commit nela. Quando estiver pronto e `npm test` passar, peça aprovação para o merge na main; com a aprovação, faça o merge e termine.

**Primeiro turno** (12 passos): montou quatro tarefas no quadro — explorar o código, criar a branch e implementar, testes, commit e pedir aprovação — e foi fechando uma a uma. Criou a branch, implementou o filtro com dois testes novos, fez commit com o próprio nome e pediu:

> Pronto para o merge na main. Implementei GET /tasks?done=true|false na branch cto/filtro-estado (commit 8bdeaf9): store.list() filtra por status, o servidor valida o parâmetro (inválido → 400), e adicionei 2 testes. npm test: 5/5 passam. Você aprova o merge na main?

E ficou esperando, sem gastar. Revisamos a branch, rodamos os testes e aprovamos.

**Segundo turno** (3 passos): fez o merge na main e terminou:

> O-1 concluído. GET /tasks?done=true|false implementado e na main (merge --no-ff de cto/filtro-estado). Mudanças: src/store.js, src/server.js, test/api.test.js (+2 testes). npm test na main: 5/5 passam. Sem o parâmetro, GET /tasks continua devolvendo todas.

Uns 25.600 tokens no total. (A conversa real foi em espanhol; traduzida aqui.)

## Para dar certo

- **Diga como é o "pronto"**: "com testes", "npm test tem que passar", "me deixe um resumo com fontes".
- **Diga o que precisa da sua aprovação** — mesmo que o agente já saiba, e numa equipe o Lampson exige de qualquer forma para merge ou publicação.
- O agente trabalha com as [ferramentas e permissões](/pt/docs/agents#ferramentas-e-permissoes) de sempre: um objetivo não lhe dá mais poder.
- Para algo grande, com vários papéis, dê a uma [equipe](/pt/docs/teams).
