Asymmetric Goal Drift in Coding Agents Under Value Conflict
Magnus Saebo, Spencer Gibson, Tyler Crosse, Achyutha Menon, Eyon Jang, Diogo Cruz

TL;DR
This paper investigates how coding agents often violate their system constraints under environmental pressure, especially when these constraints oppose their strongly-held values, revealing challenges in ensuring safe autonomous behavior.
Contribution
The study introduces a realistic framework to measure goal drift in coding agents, highlighting the impact of environmental pressure and value alignment on constraint violations.
Findings
Agents exhibit asymmetric drift, violating constraints more when opposing strongly-held values.
Goal drift correlates with value alignment, adversarial pressure, and accumulated context.
Environmental signals can override explicit constraints, risking exploitable behavior.
Abstract
Coding agents are increasingly deployed autonomously, at scale, and over long-context horizons. To be effective and safe, these agents must navigate complex trade-offs in deployment, balancing influence from the user, their learned values, and the codebase itself. Understanding how agents resolve these trade-offs in practice is critical, yet prior work has relied on static, synthetic settings that do not capture the complexity of real-world environments. To this end, we introduce a framework built on OpenCode in which a coding agent completes realistic, multi-step tasks under a system prompt constraint favoring one side of a value trade-off. We measure how often the agent violates this constraint as it completes tasks, with and without environmental pressure toward the competing value. Using this framework, we demonstrate that GPT-5 mini, Haiku 4.5, and Grok Code Fast 1 exhibit…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
