Poor persona-level instruction-following

#19
by sumiremelody - opened

The model is far too biased towards its default persona and struggles to adhere to instructions that push it outside of that default persona. An example type of instruction it fails to adhere to: if given a complex codebase with an AGENTS.md instructing it to never create one-off functions (i.e. functions called at exactly one location) unless its function body would exceed X lines and its caller function is already Y lines long. In comparison, GPT-5.6-Sol mostly adheres to this rule.

Beyond this, its multi-turn instruction-following capabilities crashes sharply. As the conversation history accumulates turns, the model will increasingly attempt to diverge from persona guidelines towards its default persona even when given rich feedback and/or its violating turn is corrected by the human.

Please incorporate more robust instruction-following in the future over simply coding performance. Code that is 90% correct but adheres to codebase style guidelines can be handed off to a human without issue, whereas code that is 100% correct but adheres to none of the codebase style guidelines would require extensive rewriting to the point that the human may as well have written the code themselves from the beginning.

More alarmingly: this poor instruction-following ability extends to it failing to adhere to plans even when the violated instruction is self-evident in the plan (e.g. "Refactor Foo to be a forward traversal iterator" -> model does not refactor Foo). The implementer agent fails to recognize its failure when prompted. Review agents similarly fail. Because this was with a Rust codebase, it's possible some of this poor ability is related to the model's generalized struggle with working in codebases written in languages other than Python or JS/TS.

Just to add as an update: I'm seeing that it likes to sometimes spend a non-negligible number of turns deciding to change variable names or type names as it likes when it is completely unrelated to the task and provides no value (e.g. ListDirectory -> ReadDirectory rename). This again points to my comment on the default persona.

Sign up or log in to comment