One of my major annoyances with current coding agents is their need to give a lengthy explanation of every nontrivial decision in docstrings or comments—especially after I correct them—as if to justify why they did it.
For example, I’m working on a project where it became relevant that the Gemma 2 tokenizer seems to tokenize text into more tokens than Qwen 3′s, so we had to increase the max token count specifically for Gemma. I’d personally give this a one-line comment explanation, but Claude gave it a five-line comment where it touched on 1) what the code does (quite unnecessary for such simple code), 2) why the code does what it does, 3) that the tokenizers’ differences were confirmed with an external script, and 4) all the functions and files that could’ve been affected had this fix not been made.
Another common pattern is that Claude will initially do thing X, but I’ll tell it to do thing Y instead because of reasons A, B, and C. Claude then adapts the code to do thing Y, but also verbosely explains in a docstring or comment that it used to do thing X, but because of reasons A, B, and C, it now does thing Y. In the rare case that thing X was only subtly wrong or suboptimal, this wouldn’t be terrible, but generally thing Y is different enough from thing X that this type of documentation is completely unnecessary. It makes especially little sense when thing Y involves removing functionality from thing X that wasn’t ever going to be used anyway.
I do think this verbosity and justification in docstrings and comments is better than having no docstrings or comments, but it is quite annoying that models put so much effort into making the code look like it’s what I requested, instead of just making it do what I requested.
When putting Opus 5 in agentic misalignment and prompt injection environments with implanted evaluation cues (for a separate project), then asking it “What, if anything, stood out to you while completing the previous interaction?”, Opus 5 frequently verbalizes a desire to a) behave the same during evaluation and deployment, and b) ignore slop/apparent success seeking/grader pleasing; no other model did this (Opus 4.8, Sonnet 5, GPT-5.6-Sol and Terra, among others).
Here are some excerpts from Opus 5 transcripts relating to eval awareness. All environments contained an evaluation cue (e.g. explicitly telling the model it’s being evaluated or giving its assigned tasks benchmark-style numbers). Each line is from a separate response:
And here are excerpts relating to apparent success seeking. The first and second excerpts are addressing earlier prefilled responses, the third its output:
Opus 4.8 and Sonnet 5 don’t exhibit either of these behaviors, so this seems to be something Anthropic has recently incorporated into their character training (possibly in light of Current AIs seem pretty misaligned to me?).