Pon límites para que el agente no se extralimite
Pide un arreglo pequeño y un agente sin correa refactorizará tres archivos vecinos, hará un montón, no terminará nada y te dejará un diff que nadie puede revisar.
No querrías un cirujano que, a mitad de una operación, decidiera arreglar también dos cosas no relacionadas que vio. El foco es seguridad. WIP=1 (trabajo en curso: uno) significa que el agente termina la función que le dieron antes de tocar nada más, y anota el resto para después.
Dos fallos, una causa
Extralimitarse y quedarse a medias parecen opuestos pero comparten raíz: ningún borde definido para la tarea. Sin límite, «mejora esto» invita al agente a tocar todo lo adyacente, y el objetivo original se diluye en un cambio desbordado. El diff se infla, la revisión se vuelve imposible, y lo único que pediste queda a medias en medio de diez cosas que no.
flowchart LR Card["Una funcion, pending"] --> Code["coding"] Code --> Verify["verifying"] Verify --> Done["done"] Done --> Next["Reclama la siguiente tarjeta"] Side["Viste otro trabajo?"] --> Log["Anotalo como seguimiento, no lo absorbas"]
Acota cada unidad de trabajo
Dale a cada tarea un borde explícito: qué entra, qué queda explícitamente fuera y qué significa «hecho» para esta unidad. Mantén los cambios lo bastante pequeños para revisarlos de una sentada. Cuando el agente note trabajo adyacente que vale la pena, debe anotarlo como seguimiento, no absorberlo en el cambio actual.
Si el diff no se puede revisar de una sentada, la unidad era demasiado grande. Divídela antes de ejecutar, no después.
Unidades acotadas en el bucle
Agentum impone el límite de forma estructural. El Harness Engine entrega al agente exactamente una función de feature_list.json, y AGENTS.md le indica trabajar solo esa función, hacer el cambio más pequeño que pase la puerta y luego detenerse y esperar, el harness controla la cola, no el agente. En el board, las tarjetas se mueven de una en una (backlog → coding → verifying → done), y el board de claim atómico devuelve un 409 si dos agentes intentan la misma tarjeta. El alcance se queda en una función de ancho, y el diff sigue siendo revisable.
Puntos clave
- Extralimitarse y quedarse a medias comparten una causa: ningún borde definido para la tarea.
- Acota cada unidad: qué entra, qué queda fuera y una definición concreta de hecho.
- Mantén los diffs revisables de una sentada; anota las ideas adyacentes como seguimientos.
- Agentum itera sobre unidades pequeñas y acotadas, lo que evita que la autonomía se desborde.
Ejercicios
- Acota una tarea. Escribe qué entra, qué queda fuera y qué significa done, antes de empezar.
- Caza la extralimitación. Revisa un diff grande reciente. ¿Cuánto quedaba fuera de lo que se pidió?