Lampson

Objetivos e equipes

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 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:

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: POST /v1/objectives com {"agent": "cto", "text": "…"}.

opção
--agent IDquem trabalha nele
--team IDou uma equipe (o líder conduz)
--budget Ntokens que pode gastar no total500.000
--round Ssegundos entre um turno e o próximo20 (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 de sempre: um objetivo não lhe dá mais poder.
  • Para algo grande, com vários papéis, dê a uma equipe.

Ver como Markdown