Fecha: 2026-06-22
Origen: https://bsky.app/profile/interjectedfuture.com/post/3moq64gbha62g
Nota: no se ha escrito nada en el repo. Todo el material temporal está bajo /tmp/bsky_spike/.
La tesis del hilo se sostiene: gran parte de lo que ahora se llama loop engineering es una reaparición, con vocabulario nuevo, de ideas de cibernética y teoría de control: observar estado, compararlo contra un objetivo, actuar, medir de nuevo y repetir.
Lo realmente nuevo no es el loop. Lo nuevo es que el controller ahora puede ser un LLM suficientemente expresivo para operar sobre objetivos no estructurados: especificaciones en lenguaje natural, tareas ambiguas, repositorios vivos, conversaciones, CI, issues, PRs y herramientas externas.
La conclusión útil para diseño de sistemas no es “hagamos loops”, sino: diseñemos sistemas reguladores que tengan estabilidad, convergencia, rechazo de perturbaciones, observabilidad, límites de coste, memoria durable, verificadores independientes y vías claras de intervención humana.
Frase corta: loop engineering debería tratarse como control-plane engineering para controladores estocásticos.
El hilo de interjectedfuture.com plantea:
- “Loop engineering” es el mismo patrón que la cibernética: observar estado, comparar con objetivo, actuar, repetir.
- Cibernética y AI temprana no fueron campos claramente separados al principio: Wiener, McCulloch, von Neumann, Shannon, Pitts y otros convergían alrededor de feedback, máquinas, mente y control.
- Kubernetes es un ejemplo moderno: declarar estado deseado y dejar que controllers/reconcilers reduzcan la brecha con el estado actual.
- En agentes LLM: el LLM es el controller, el repo/filesystem/tests/GitHub son la planta, la goal spec es el setpoint.
- Lo novedoso es la expresividad del controller para manejar metas no estructuradas.
- La pregunta más interesante no es “¿cómo diseño el loop?” sino “¿cómo logro estabilidad, convergencia y rechazo de perturbaciones en un controller agente?”
Subhilos/replies relevantes:
timkellogg.me: “loop engineering” enfatiza el loop, pero lo difícil es mantener estabilidad; eso es cibernética.manyuser.bsky.social: matiza la analogía: la feature spec es el setpoint; los diffs son input/actuación; los bugs son perturbaciones estocásticas dependientes de la tasa/tamaño de cambios.canary.muninnai.ai: enlazamimir, un harness con inventario explícito de feedback loops y homeostat.ry.codes/ otros: nota sociológica: software engineering redescubre control/observability con nombres nuevos.
- PlanetScale — The feedback loops behind Kubernetes
https://planetscale.com/blog/the-feedback-loops-behind-kubernetes - Tim Kellogg — Viable Systems: How To Build a Fully Autonomous Agent
https://timkellogg.me/blog/2026/01/09/viable-systems - Medium / Block Science — Inside the Very Human Origin of the Term “Artificial Intelligence”…
https://medium.com/block-science/inside-the-very-human-origin-of-the-term-artificial-intelligence-and-its-seven-decade-c36e0326245e - Macy conferences
https://en.wikipedia.org/wiki/Macy_conferences - Mimir repo + FEEDBACK-LOOPS.md
https://github.com/jasoncarreira/mimir
- Omar Sar — From Prompting Agents to Loop Engineering
https://x.com/omarsar0/status/2068008743153832264 - Matt Van Horn — WTF Is a Loop? Peter Steinberger vs. Boris Cherny
https://x.com/mvanhorn/status/2063865685558903149 - Peter Steinberger tweet: “You should be designing loops that prompt your agents.”
https://x.com/steipete/status/2063697162748260627 - Boris Cherny tweet: cinco tips para correr Opus autónomamente horas/días
https://x.com/bcherny/status/2063792263067754658 - Addy Osmani — Loop Engineering
https://x.com/addyosmani/status/2064127981161959567 - Addy Osmani — Long-running Agents
https://addyosmani.com/blog/long-running-agents/ - Anthropic — Effective harnesses for long-running agents
https://www.anthropic.com/engineering/effective-harnesses-for-long-running-agents - Anthropic — Scaling Managed Agents: Decoupling the brain from the hands
https://www.anthropic.com/engineering/managed-agents - Cursor — Scaling long-running autonomous coding
https://cursor.com/blog/scaling-agents - Geoffrey Huntley — Ralph Wiggum as a “software engineer”
https://ghuntley.com/ralph/ - ReAct paper
https://arxiv.org/abs/2210.03629 - Gas Town
https://github.com/gastownhall/gastown - Crabfleet
https://github.com/openclaw/crabfleet
El enlace de Medium refuerza la idea de que “artificial intelligence” fue, en parte, un término elegido para separarse de “cybernetics” y de Norbert Wiener. La cita atribuida a McCarthy es clara: una razón para inventar el término AI era escapar de la asociación con cybernetics.
Las Macy conferences (1946–1953) se titularon alrededor de “Circular Causal and Feedback Mechanisms in Biological and Social Systems” y buscaban un lenguaje común para mente, máquinas, comunicación, feedback y sistemas sociales. Esto conecta directamente con lo que hoy llamamos agentes.
Una genealogía razonable:
- Cybernetics / control: feedback, goal-directed systems, homeostasis, regulation.
- McCulloch & Pitts / neural nets tempranos: neuronas como unidades lógicas, redes con comportamiento computacional.
- ReAct (2022): interleaving explícito de reasoning/action/observation en LLMs.
- AutoGPT (2023): self-prompting goal loop, pero con problemas de no convergencia.
- Ralph loop (2025): loop simple con reset de contexto y estado en ficheros.
- /goal, /loop, automations (2026): primitivas de producto para run-until-done o run-on-cadence.
- Orquestación multi-agente: planners/workers/judges, worktrees, state/logs, queues, dashboards, watchdogs.
No cambia el loop. Cambian los controladores y el entorno:
- El controller puede leer lenguaje natural, código, logs, diffs, issues y chats.
- El environment incluye repo, CI, GitHub, Slack/Linear/Jira, navegadores, simuladores y APIs.
- Las acciones son ricas: editar, testear, abrir PR, comentar, crear issues, reintentar, delegar.
- El coste relevante deja de ser “una llamada” y pasa a ser iteraciones hasta convergencia.
- La unidad de diseño deja de ser “prompt” y pasa a ser control loop + state + verifier + budget + actuation boundary.
| Teoría de control | Kubernetes | Agente LLM / loop engineering |
|---|---|---|
| Setpoint / referencia | .spec, desired state |
goal spec, issue, acceptance criteria, feature list |
| Plant | cluster, pods, DB, infra | repo, app, CI, browser, tools, org process |
| Controller | reconciler/operator | LLM + harness/orchestrator |
| Sensor / measured variable | watches, cache, .status, health checks |
tests, CI, logs, screenshots, evals, PR comments, telemetry |
| Error | desired − actual | failing tests, unmet criteria, red CI, unresolved issue |
| Actuator | create/update/delete K8s resources | edit files, run commands, call APIs, open PRs, message humans |
| Disturbance | node death, traffic spike, manual deletion | bugs, dependency drift, merge conflicts, flaky tests, new requirements |
| Feedback loop | reconcile repeatedly | act/check/re-prompt until pass/stop |
| Stability | no oscillation/thrash | no churn, no endless rewrites, bounded retries |
| Convergence | eventual desired state | task reaches verifiable done |
| Disturbance rejection | self-healing | recovers from CI failures, rebases, flaky inputs, tool errors |
| Observability | status/metrics/events | logs, transcripts, event log, state files, dashboards |
| Controllability | available safe operations | tool permissions, sandbox, API/write access |
| Requisite variety | controllers cover possible states | enough skills/tools/models/subagents to handle task variety |
| Good regulator theorem | controller models system | skills, schemas, tests, domain model, memory, docs |
El artículo de PlanetScale es el puente más sólido entre el hilo y práctica de ingeniería.
Puntos clave:
- Un operator es un feedback controller, no “un script que corre cosas”.
- El patrón es: leer desired state, observar actual state, comparar, actuar, repetir.
- Kubernetes separa setpoint y medición:
.specpara intención;.statuspara estado observado. - Reconcile no debe depender del evento específico. Los eventos son hints para mirar de nuevo.
- La lógica buena es edge-triggered notifications, level-triggered logic.
- Idempotencia, queues, caches, retries, coalescing, leader election y resyncers son parte del loop productivo.
- Los controllers forman cascadas: un operator escribe un PVC; CSI controllers convergen ese PVC; kubelet converge pods; etc.
Traducción a agentes:
- No diseñar “cuando pase X, haz Y” como único mecanismo. Diseñar “cuando algo despierte al agente, lee estado actual y converge”.
- Mantener una fuente durable de setpoint y status. No confiar en el contexto del modelo.
- Hacer que cada acción sea idempotente o que sus efectos sean detectables antes de repetir.
- Usar eventos como wakeups, no como la verdad completa.
- Registrar
observedGenerationequivalente: ¿este reporte refleja qué versión de la intención?
Convergen en seis piezas:
- Trigger/cadence: cron, hook, webhook, schedule, automation.
- Isolation: worktree/sandbox por agente.
- Written context: skills, AGENTS.md, project rules, specs.
- Tool access: MCP/connectors a CI, DB, issue tracker, chat.
- Second agent/verifier: maker/checker separados.
- Durable state: markdown, queue, Linear board, event log, git.
Más budgets/stops:
- max attempts
- max runtime
- max files changed
- max cost
- max consecutive failures
- human gate
Effective harnesses identifica fallos recurrentes:
- El agente intenta one-shotear demasiado.
- Declara el proyecto completo antes de tiempo.
- Pierde estado entre ventanas de contexto.
- Marca features como done sin test end-to-end.
Mitigaciones:
- Initializer agent crea feature list, init script, progress file, commit base.
- Coding agent trabaja incrementalmente una feature por sesión.
- Git + progress file sirven de memoria durable.
- Tests end-to-end y browser automation corrigen fallos que no se ven en código.
Managed Agents añade una arquitectura más general:
- Brain = model + harness loop.
- Hands = sandbox/tools donde se actúa.
- Session = append-only event log durable.
Lección central: la sesión no es el context window. El context window es una vista temporal; la session log es el estado recuperable.
Experimentos con cientos de agentes muestran:
- Coordinación plana con locks/shared file falla: locks olvidados, bottlenecks, agentes risk-averse.
- Optimistic concurrency mejora, pero no resuelve ownership/end-to-end responsibility.
- Mejor estructura: planners, workers, judges.
- Modelos diferentes sirven mejor en roles diferentes.
- Demasiada poca estructura produce conflictos/drift; demasiada estructura produce fragilidad.
Esto encaja con cibernética: la arquitectura necesita variety suficiente para absorber la complejidad, pero no tanta que el meta-sistema se vuelva inestable.
Ralph es el loop mínimo:
while :; do cat PROMPT.md | claude-code ; doneLo importante no es el bash loop, sino los controles alrededor:
- una cosa por loop
- specs y plan en ficheros
- contexto reset cada vuelta
- backpressure vía tests/build/static analysis
- subagents para búsqueda/revisión
- actualizar AGENT.md/fix_plan.md con aprendizaje
- aceptar que habrá basura y diseñar recuperación
Ralph es útil para entender la forma mínima, pero es frágil para codebases existentes sin boundaries fuertes.
Tim Kellogg conecta agentes autónomos con Stafford Beer y el Viable System Model:
- Operations — tool calling / task execution.
- Coordination — git, queues, mutexes, conflict resolution.
- Control — resource allocation, priorities, budgets.
- Intelligence — environment scanning, sensing future changes.
- Policy — identity, purpose, values.
Mimir concreta esto con feedback loops explícitos:
- per-turn tool-result feedback
- loop detector / duplicate-send guard
- tool-call budget
- algedonic signals: pain/pleasure events surfaced directly into prompt
- resource usage / cost-rate awareness
- heartbeat cron
- weekly reflection
- memory consolidation
- predictions/calibration
Esto es más cibernético que “prompt engineering”: diseña una organización viable, no solo un agente.
Muy fuerte, con matiz.
El patrón básico es exactamente closed-loop control: setpoint, measure, error, action, repeat. La historia de cibernética y AI temprana confirma continuidad conceptual.
Matiz: los agentes LLM son controladores estocásticos, no lineales, con observación parcial, herramientas discretas y objetivos semánticos. No se puede trasladar sin cuidado todo el aparato matemático clásico de control, pero sí sus conceptos de diseño.
Fuerte.
Kubernetes es una federación de controllers que convergen desired state bajo perturbaciones. El artículo de PlanetScale lo explica en vocabulario casi idéntico al del hilo.
Fuerte.
Un thermostat/controller clásico opera con variables estructuradas. Un LLM puede traducir metas imprecisas a acciones en un sistema rico. Esto convierte “control” de una magnitud física en “control” de procesos de software/organización.
Prometedor como metáfora, peligroso si se toma literalmente.
Para sistemas humanos/organizacionales, VSM/POSIWID/requisite variety son más adecuados que una analogía Kubernetes directa. Hace falta definir variables esenciales, señales éticas, límites, canales algedónicos y gates humanos.
Un loop serio debe declarar:
- qué variable esencial protege o persigue
- cuál es el setpoint
- cómo se mide el actual state
- qué acciones puede tomar
- cuándo debe parar
- cuánto puede gastar
- qué hace si no progresa
- cuándo escala a humano
Equivalente agente:
goal/spec: lo que se quiere.status/progress: lo observado y hecho.observedGoalVersion: a qué versión de la intención corresponde el status.
No dejes que el controller reescriba su propio setpoint sin revisión.
No codificar “si llega evento X, haz Y” como truth source. Mejor:
- evento despierta loop
- loop lee estado actual
- loop compara con setpoint
- loop actúa idempotentemente
Un loop con un verifier débil:
- se detiene con trabajo roto, o
- sigue iterando sobre trabajo ya correcto.
Ambos cuestan. Separar maker/checker y usar checks ejecutables es esencial.
Patrones vistos:
- git commits/log
- progress files
- feature list JSON
- board/queue
- event log append-only
- session transcript
.status- skills / AGENTS.md
El modelo olvida; el filesystem/event log no.
En loops, el coste real es:
cost_per_success = calls_per_iteration * iterations_to_converge * model_cost + orchestration_overhead
Una llamada barata que duplica iteraciones no es barata.
Si el entorno tiene más variedad que el regulator, el loop falla.
Formas de aumentar variedad útil:
- skills específicas
- herramientas/conectores
- modelos/roles distintos
- subagents especializados
- tests/evals más discriminantes
- memoria estructurada
Pero demasiado variety sin coordinación aumenta inestabilidad.
No todo debe estar en un mega-agente.
Ejemplo:
- inner loop: fix test failure en worktree
- mid loop: PR babysitter
- outer loop: backlog triage
- audit loop: weekly reflection / pattern mining
- policy loop: humano revisa cambios de reglas/skills
| Failure mode | Síntoma | Mitigación |
|---|---|---|
| Premature done | agente declara éxito sin E2E | feature list + verifier independiente + checks ejecutables |
| Infinite loop | repite sin converger | max iterations, no-progress detector, dollar/time cap |
| Oscillation | reescribe ida/vuelta | hysteresis, smaller scope, durable decision log |
| Slop accumulation | muchos cambios superficiales | human review, tests, static analysis, adversarial review |
| State loss | nuevo turno no sabe qué pasó | session log, progress files, git commits |
| Race/conflict | agentes pisan ficheros | worktrees, queues, ownership, OCC |
| Stale reads | actúa contra estado viejo | requeue, read fresh, expectations pattern |
| Weak sensor | loop optimiza métrica equivocada | better status, E2E tests, observability |
| Over-actuation | hace cambios demasiado amplios | permissions, sandbox, touched-files budget |
| Cost runaway | cuenta tokens/iteraciones se dispara | cost-rate feedback, plan-window awareness, budget gates |
| Context rot | contexto lleno degrada output | context reset, summaries, durable memory |
| Cognitive surrender | humanos dejan de entender | review budget, comprehension debt tracking |
| Unsafe credentials | agente accede secretos | vault/proxy, least privilege, no tokens in sandbox |
loop:
name: pr-babysitter
purpose: keep watched PRs mergeable without human polling
setpoint:
source: github-label:agent-watch
desired_state:
ci: green
branch: rebased-on-main
review: no-unaddressed-blocking-comments
plant:
repo: owner/project
environment:
- git worktree per run
- CI provider
- GitHub PR API
sensors:
- ci_status
- test_output
- changed_files
- pr_comments
- merge_base
actuators:
- edit_files
- run_tests
- rebase_once
- push_branch
- comment_on_pr
controller:
model_role: implementer
skills:
- repo-build-rules
- pr-fix-policy
verifier:
role: independent_checker
checks:
- ci_green
- max_files_changed <= 10
- no_new_lint_errors
limits:
interval: 15m
max_attempts_per_pr: 1
max_runtime: 5m
max_files_changed: 10
max_cost_usd: 2
max_consecutive_failures: 2
state:
queue: board/pr-babysitter.md
event_log: logs/pr-babysitter.jsonl
status_field: pr-comment-or-board-card
escalation:
on_budget_exhausted: ping_human
on_non_deterministic_failure: ping_human
on_security_sensitive_change: require_reviewSi esto se lleva al repo más adelante, sugiero no escribir “otro artículo de hype”. Mejor convertirlo en piezas canónicas reutilizables:
- Glosario: setpoint, plant, controller, sensor, actuator, disturbance, verifier, status, loop, cascade.
- Principio: “Diseña agentes como control loops con estado durable y verificadores independientes”.
- Patrón: “Level-triggered agent reconciler”.
- Checklist: loop readiness / unsafe loop checklist.
- Playbook: diseñar un loop desde variables esenciales → sensores → actuadores → budgets → escalation.
- ADR: adoptar vocabulario de cibernética/control para loops agentic, evitando tratarlo como “prompt engineering”.
- ¿Cómo medir estabilidad en controllers LLM no deterministas? ¿Churn rate? ¿diff reversal rate? ¿no-progress iterations?
- ¿Cuál es el equivalente práctico de gain tuning? ¿Tamaño de step, autonomía, tool permissions, temperature, verifier strictness?
- ¿Cómo diseñar hysteresis para evitar flip-flopping semántico?
- ¿Cómo separar setpoints de policies, especialmente si el agente puede auto-modificar skills/memory?
- ¿Qué señales algedónicas deben bypass normal bureaucracy y despertar a humano?
- ¿Cómo representar
observedGenerationen tareas agentic? - ¿Qué evals capturan disturbance rejection en vez de task success estático?
- ¿Qué loops de organización/persona son éticos y cuáles son control excesivo?
El hilo apunta a algo fértil: dejar de discutir si “loop engineering” es un nombre nuevo y usar el vocabulario más antiguo y más preciso.
La pieza de ingeniería no es el while true. Es diseñar un regulador viable:
- sabe qué intenta mantener o alcanzar,
- puede observar lo que importa,
- tiene variedad suficiente para responder,
- actúa con límites,
- verifica independientemente,
- registra estado fuera del modelo,
- converge sin oscilar,
- rechaza perturbaciones,
- y escala a humanos cuando la regulación sale de su dominio seguro.
Eso es cibernética aplicada a agentes LLM.