Exploration collapse: agents converge to fixed policies, losing novel behavior discovery
Los mantenedores suelen responder en 4 días
Evaluación
- Dificultad
- 5/5
- Tiempo estimado
- Más de una semana
- Aptitud para principiantes
- 20/100
- Tipo de issue
- Nueva funcionalidad
- Claridad
- Necesita aclaración
- Estado de actividad
- Estancado
- Stack tecnológico
- python
- Área
- ai, machine-learning
Línea de trabajo
El issue no nombra archivos ni pruebas; empieza localizando el bucle de entrenamiento y los puntos de entrada de captura de trayectorias agl.emit_*. Limita la propuesta a un mecanismo y, a continuación, define la métrica o el comportamiento que se debe exponer, así como la validación que demuestre que funciona sin ocultar el seguimiento de recompensas existente.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Problem
Agent Lightning's training loop (RL, SFT, prompt optimization) optimizes toward a reward signal. This works well for tasks with stable reward landscapes, but introduces a structural risk: trained agents lose the ability to discover novel behaviors that weren't represented in the reward signal.
This isn't hypothetical — it's a known failure mode in RL literature (reward hacking, policy collapse, mode collapse in generative models), but Agent Lightning doesn't currently surface any mechanisms to detect or mitigate it.
Concrete Engineering Gaps
- No exploration decay monitoring
Once an agent's policy converges, its trajectory diversity drops. Currently there's no metric tracking behavioral diversity over training runs — e.g., how many distinct tool-call sequences the agent explores at epoch N vs epoch 0. Without this, you can't distinguish "agent got better" from "agent got narrower."
Suggested metric: Trajectory entropy over a sliding window. If entropy drops below a threshold while reward plateaus, the agent has likely collapsed to a fixed policy rather than genuinely mastering the task space.
- No reward function staleness detection
The reward signal is assumed to be correct for the duration of training. But in real deployments, the environment changes — APIs evolve, data distributions shift, new capabilities become available. A reward function that was correct last month may be optimizing for a stale objective today.
Suggested mechanism: Periodic reward function auditing. Track correlation between reward signal and downstream task success (measured independently). When correlation degrades, flag the reward function for review rather than continuing to train against it.
- No mechanism for productive multi-objective tension
Many real agent tasks involve competing objectives that shouldn't be collapsed into a single scalar reward. For example:
Speed vs. thoroughness in research agents
Cost vs. quality in code generation
Exploitation of known-good strategies vs. exploration of potentially-better ones
Agent Lightning's current architecture assumes a single reward signal per trajectory. This forces the user to pre-resolve tensions that might be more valuable left as competing objectives.
Suggested approach: Support Pareto-front tracking across multiple reward dimensions. Let the trainer surface the trade-off frontier rather than collapsing it into a weighted sum. This preserves optionality and lets downstream consumers choose their operating point.
- No "policy dissolution" mechanism for stale behaviors
Once a behavior is trained into an agent, there's no structured way to detect that it has become counterproductive and should be unlearned. Fine-tuned behaviors accrete — the agent gets layers of learned policy but never sheds outdated ones.
Suggested mechanism: Attach TTL metadata or validity conditions to trained behaviors. For example: "this prompt optimization was trained against GPT-4o pricing as of 2025-08. Re-evaluate if pricing model changes." The trainer could periodically re-validate policies against their stated conditions and flag stale ones.
- Trajectory capture doesn't distinguish novel vs. routine behavior
agl.emit_*() captures what the agent did and what reward it got. It doesn't capture whether the behavior was novel (first time the agent tried this approach) or routine (repeating a known-good policy). This distinction matters because:
High reward + novel behavior = genuine discovery (should be studied, not just reinforced)
High reward + routine behavior = exploitation (fine, but not learning)
Low reward + novel behavior = exploration (might be valuable signal, currently just negative reward)
Suggested approach: Add an optional novelty flag or auto-compute trajectory similarity to historical traces. Novel high-reward trajectories could be surfaced to the user for analysis rather than just folded into the training batch.
Why This Matters at Scale
The README highlights 128-GPU training and production deployments (Tencent's Youtu-Agent). At that scale, these gaps compound:
Policy collapse is harder to detect across distributed training
Reward staleness affects all replicas simultaneously
Novel behaviors are drowned out by volume of routine trajectories
Multi-objective tensions get resolved implicitly by whoever designed the reward, with no visibility into what was lost
Context
These observations come from building an MCP server where AI agents autonomously discover DeFi strategies. We found that the environment design (what signals agents see, what ambiguity is preserved, what tensions are left unresolved) matters as much as agent optimization for producing useful novel behavior. The failure mode we kept hitting: agents that were "better" by any metric were also more predictable and less likely to find strategies we hadn't anticipated.
- Lenguaje dominante
- Python
- Estrellas
- 18.8k
- Forks
- 1.7k
- Merge medio
- 5 d 22 h
- PR fusionados (30 d)
- 6
Preparar el entorno
Este proyecto no incluye contenedor de desarrollo, Dockerfile ni guía de contribución, así que la configuración corre por tu cuenta: empieza por su README y consulta nuestra guía para la primera contribución para los pasos generales.
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de microsoft/agent-lightning
-
Local workers fail for non-coroutine awaitable run resultsPosiblemente ocupada @Elon-Jiang la tomó hoy. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
microsoft/agent-lightning#666 ·
Los mantenedores suelen responder en 4 días
-
Low-precision rollout normalization can overflow its divisor and erase advantagesPosiblemente ocupada @lll-hhh la tomó hace 2 días. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
microsoft/agent-lightning#661 ·
Los mantenedores suelen responder en 4 días
-
RayPPOTrainer._dump_generations() missing gts argument in _train_step callPosiblemente ocupada @yunkai-yyk la tomó hace 255 días. Abiertobug v0.x verl
Dificultad 1/5 Menos de una hora Aptitud para principiantes 68/100
microsoft/agent-lightning#492 ·
Los mantenedores suelen responder en 4 días
-
enhancement store v0.x
Dificultad 2/5 1-3 horas Aptitud para principiantes 62/100
microsoft/agent-lightning#372 · 10 comentarios ·
Los mantenedores suelen responder en 4 días
-
Proxy transport retry exhaustion is missing from rollout eventsPosiblemente ocupada @feiiiiii5 la tomó hoy. Abierto
Dificultad 3/5 1-2 días Aptitud para principiantes 45/100
microsoft/agent-lightning#664 ·
Los mantenedores suelen responder en 4 días
Todos los issues de microsoft/agent-lightning
Issues similares
-
ReadQwen3PaperTask5 rejects correct answers that differ only in order, case, or underscore formPosiblemente ocupada @Kingpython123 la tomó hoy. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 90/100
Tongyi-MAI/MobileWorld#72 ·
-
_threads/application: Update typing annotations using `pyupgrade --py311-plus`Posiblemente ocupada @gudnimg la tomó hoy. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
Los mantenedores suelen responder en 1 día
-
Health probes return 401 when authentication is enabled and the API is served under /orbPosiblemente ocupada @fgogolli la tomó hoy. Abiertoarea: api priority: p2 size: S type: bug
Dificultad 2/5 Medio día Aptitud para principiantes 75/100
finos/open-resource-broker#704 ·
Los mantenedores suelen responder en 1 día
-
bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 74/100
BCDA-APS/polar-bits#93 ·
-
bug
Dificultad 1/5 Menos de una hora Aptitud para principiantes 90/100
GoogleCloudPlatform/gce-rescue#218 ·
Los mantenedores suelen responder en 2 días