---
title: Objetivos
description: Dale a un agente de Lampson un objetivo y lo trabaja solo hasta terminarlo — planifica en su tablero, avanza en rondas, te informa y te pide aprobación antes de cualquier cosa irreversible.
---
# Objetivos

Un **objetivo** es algo que le pedís a un agente para que lo trabaje **solo, hasta terminarlo**: «agregá tal feature con tests», «investigá X y dejame un resumen», «buscá el precio más barato de…». No es una conversación: lo dejás andando y volvés cuando te avisa.

El agente:

- **planifica**: parte el objetivo en tareas en su tablero y las va moviendo (por hacer → en curso → hecho);
- **avanza en rondas**: termina un turno y Lampson le da el siguiente, hasta que lo da por hecho;
- **te informa** en los hitos, y te **pregunta** lo que solo vos sabés;
- **te pide aprobación** antes de cualquier cosa que sale del proyecto o no se puede deshacer (mergear a main, publicar, comprar, mandar un mail) y espera tu respuesta;
- **termina** con el resultado: qué hizo, dónde y cómo verificarlo.

Mientras espera tu respuesta no gasta nada.

## Darle un objetivo

En la pantalla de **equipos** del proyecto (botón **equipos** en la interfaz web, `/w/<proyecto>/equipos`, o desde [todos los proyectos](/es/docs/teams#donde-se-crean) en `http://127.0.0.1:8080/equipos`) → **+ nuevo**: elegís el agente, escribís qué tiene que lograr, cada cuánto hace una ronda y cuánto puede gastar.

O desde la terminal, en la carpeta del proyecto:

```sh
lampson objective add "Agregá filtrar tareas por estado, con tests. Trabajá en tu rama y pedime aprobación antes de mergear." --agent cto
lampson objective list
lampson objective show 1
lampson objective reply 1 --approve          # o --deny, con una nota opcional
lampson objective reply 1 "en pesos"         # responder una pregunta
lampson objective cancel 1
```

O por la [API](/es/docs/api#objetivos): `POST /v1/objectives` con `{"agent": "cto", "text": "…"}`.

| opción | | |
|---|---|---|
| `--agent ID` | quién lo trabaja | |
| `--team ID` | o un [equipo](/es/docs/teams) (lo lidera su jefe) | |
| `--budget N` | tokens que puede gastar en total | 500.000 |
| `--round S` | segundos entre un turno y el siguiente | 20 (60 en un equipo) |

Sin presupuesto, se pausa; **Seguir** le da otro tramo igual.

## La pantalla

A la izquierda, tus objetivos con su estado (trabajando, te espera, hecho, falló, sin presupuesto). En el centro, el elegido: qué tiene que lograr, cuánto gastó, su último informe, el resultado y **su tablero**. A la derecha, el **registro**: cada cosa que hizo, en vivo.

**Lo que te espera** está en la bandeja: el botón **⚑** de la cabecera, en todas las pantallas, junta las preguntas y aprobaciones pendientes de todos tus proyectos para responder, aprobar o denegar ahí mismo (un merge muestra qué ramas, commits y archivos entran). En la página de un objetivo, su pregunta aparece también en el lugar, con la respuesta ahí.

## Un objetivo real

Un agente `cto` (modelo `glm-5.3-flash`) en una API de tareas en Node, con este objetivo:

> Agregá a la API filtrar tareas por estado: `GET /tasks?done=true` devuelve solo las hechas y `?done=false` las pendientes (sin el parámetro, todas; un valor inválido es 400). Con tests. Trabajá en una rama nueva `cto/filtro-estado` y commiteá ahí. Cuando esté listo y `npm test` pase, pedí aprobación para mergear a main; con la aprobación, mergeá y terminá.

**Primer turno** (12 pasos): armó cuatro tareas en su tablero —explorar el código, crear la rama e implementar, tests, commitear y pedir aprobación— y las fue cerrando. Creó la rama, implementó el filtro con dos tests nuevos, commiteó a su nombre y pidió:

> Listo para mergear a main. Implementé GET /tasks?done=true|false en la rama cto/filtro-estado (commit 8bdeaf9): store.list() filtra por estado, el server valida el query param (inválido → 400), y agregué 2 tests. npm test: 5/5 pasan. ¿Apruebas el merge a main?

Se quedó esperando, sin gastar. Revisamos la rama, corrimos los tests y aprobamos.

**Segundo turno** (3 pasos): mergeó a main y terminó:

> O-1 terminado. GET /tasks?done=true|false implementado y mergeado a main (merge --no-ff de cto/filtro-estado). Cambios: src/store.js, src/server.js, test/api.test.js (+2 tests). npm test en main: 5/5 pasan. Sin el parámetro, GET /tasks sigue devolviendo todas.

Unos 25.600 tokens en total.

## Para que salga bien

- **Decí cómo se ve «terminado»**: «con tests», «npm test tiene que pasar», «dejame un resumen con fuentes».
- **Decí qué necesita tu aprobación** — aunque el agente ya lo sabe, y en un equipo Lampson la exige igual para mergear o publicar.
- El agente trabaja con sus [herramientas y permisos](/es/docs/agents#herramientas-y-permisos) de siempre: un objetivo no le da más poder.
- Para algo grande, con varios roles, dáselo a un [equipo](/es/docs/teams).
