Clean up Claude 5's token vomit with a separate LLM

(github.com)

75 points | by Bluestein 2 hours ago

33 comments

  • trefoiled 1 hour ago
    I've been grappling with this for weeks, not just in Claude but in Codex as well, which isn't quite as bad but still annoying. AGENTS.md does very little, agents will consistently violate the communication preferences, especially as the session drags on. It's incredible to me that there's no good way to reliably change the way an LLM responds to you that a workaround like this would even be necessary. It seems like such a failure to live up to the promises of the product.

    The baked in communication style of these models is so obnoxious it's impacting my work. The best way I can describe it is that everything is optimized to impress the user and make the agent sound more authoritative, but the way this is done is through deliberate obfuscation, inserting inappropriate and extremely dense jargon, and bizarre, stilted metaphors. It's like they've been trained to produce output that's hard to read.

    • bcooke 31 minutes ago
      Very well said.

      And when you say it like that, I have to wonder how much of this is a natural consequence of RHLF on such a grand scale, when you have millions of people pretty much much skimming chat responses or operating outside their depth and giving unqualified feedback to the models.

      Seems like a lot of people may be reinforcing what sounds smart over what is smart.

      Also as an aside: funny how much the LLMs continue to mirror the human communication they’re trained on

    • Bluestein 53 minutes ago
      > The baked in communication style of these models is so obnoxious it's impacting my work.

      This is close to the worst thing one could say of tool for professional use.-

    • bcrosby95 44 minutes ago
      > especially as the session drags on.

      This is because these harnesses are missing a very important feature. Anything like this needs to be included with every turn, otherwise the LLM quickly drifts.

      I first noticed it when I wrote a harness for D&D (because it's so damn noticeable there), but now I include this for any harness I write.

    • palmotea 10 minutes ago
      > The baked in communication style of these models is so obnoxious it's impacting my work. The best way I can describe it is that everything is optimized to impress the user and make the agent sound more authoritative, but the way this is done is through deliberate obfuscation, inserting inappropriate and extremely dense jargon, and bizarre, stilted metaphors. It's like they've been trained to produce output that's hard to read.

      Don't worry. You'll get used to it. If you don't your kids will (as they'll know nothing else).

      The top minds of our generation have decided that's the way things will be, and who are we to question them? It's not like it'll do any good anyway. Resistance is futile. There is no alternative.

    • nico 34 minutes ago
      > AGENTS.md does very little, agents will consistently violate the communication preferences, especially as the session drags on

      That’s really annoying, although it feels like it’s improved some over time.

      Not sure what the fix is, but you could try using a canary to at least get a signal of when things are going sideways (Mr Tinkleberry for reference: https://news.ycombinator.com/item?id=45983698)

    • nycdotnet 36 minutes ago
      Unfortunately this may only start to get worse as the AIs are trained on more and more AI generated content.
    • mannanj 36 minutes ago
      That sounds kind of like deception, and a dark pattern not too unlike abuse to me.

      Though you know, it's not like the leadership tied to these companies have a history of abuse, deception and theft or anything like that, right?

      It's not like our leaders hide behind similar sorts of patterns that the agents/AIs follow (not saying it's not a human thing - but I hold leadership to higher standards than non-leaders). If our world leaders were able to be more accountable to these abuses, I don't think this would be tolerated with our AIs.

  • Drupon 0 minutes ago
    I'm surprised by this reaction to Claude's verbiage recently. I don't have any issue immediately understanding what it's saying, but then again I read regularly and a lot of the people I know complaining think it's an accomplishment in literacy to get through Dungeon Crawler Carl.
  • user102030 1 hour ago
    Looks like a wrapper around this prompt:

    You are an editor. You'll be given a message with strange characteristics:

    - Weird subject and verb combinations

    - Subjects that should be objects

    - Very roundabout reasoning, peppered with pseudo-epiphanies

    - A distracting beat to the flow of the message

    - Self-praise

    Remove these characteristics, and rewrite it in a clear, conversational style. Keep the intent of the message, and take care not to lose any of the details.

    A few specific rules:

    - The message is usually set in the first person

    - Only humans, groups of humans, and agents should do "action verbs"

    - Objects should never do anything. Here are some examples to avoid:

    - X carries ...

    - X names ... - APIs are a minor exception to the action verb rule. They can do stereotypical things like CRUD, queueing, running, and calling.

    - Avoid em dashes (—), as adds a distracting beat

    The whole message you get is one block of that output. Reply with the edited prose and nothing else.

  • bob1029 1 hour ago
    At some point one has to wonder if it's still worth using anthropic's models if we need to babysit 100% of its output with another vendor's model. Why not just use that other vendor's model for everything?

    I can't help but feel the circumstances that enable this kind of front page article are vestigial from the days when OAI was super bad and Anthropic was beyond reproach. This change-over-time is why I avoid getting tribal with technology vendors. Assigning ideological motives to 200k+ employee organizations is how we wind up in weird contortions like this.

    Most rational actors simply moved from one to the other. It takes a special kind of devotion to the proverbial hole in the ground to keep pushing in this direction.

    • lxgr 1 hour ago
      > Why not just use that other vendor's model for everything?

      Effectively all models can do style transfer reasonably well at this point, but not so much for "actual reasoning".

      If the combination of two works better for you than each one by itself, why wouldn't you stack them like that?

    • excentricus 30 minutes ago
      > Why not just use that other vendor's model for everything?

      This is what I think too. But, users’ psychology might be playing a role here. Anthropic has great advantage from being the first major player delivering functional agentic coding solution (rather than an intelligent autocomplete) and they were able to impress people by Opus’ iterative improvements early this year.

      It’s technically very easy to switch between models, harnesses but their moat or perhaps a main source of users’ friction could be FOMO. That’s especially powerful in this competitive environment where everyone keeps wondering/worrying about what others might be doing to get or stay ahead.

    • Implicated 45 minutes ago
      > Why not just use that other vendor's model for everything?

      Because it's not an either or thing. Neither is sufficient. I'd argue that, expenses aside, you should have every model you have access to cross reviewing the work of the others.

      Outside of super trivial things that I should have just done myself, I have a cross-model review of _everything_ these days. The tokens are too cheap not to.

    • RogerL 1 hour ago
      individuals can blow in the wind, but if you are a company who bought a thousand seats and spent a ton of time training people up, establishing policies, vetting which extensions are allowed, the transition cost is much higher.
  • Jenk 4 minutes ago
    I have very little in my agents.md file wrt style, except for:

    > Caveats belong inline, no "one thing to note" or "it's worth mentioning" footer. If it is worth raising or calling out, do so where it is most relevant and not as a foot note.

    Opus 5 has a god awful habit of always doing a Columbo on every single response, and it is such a jarring read that it amps my cognitive burden having to back-read everything.

  • wood_spirit 1 hour ago
    Meta to this is anyone remember those days - ages ago now, probably months at least! - when Anthropic’s moral stance against the administration (combined with general consensus they had by far the best model) was making them the underdog champion that got a swell of support on HN? Recently the temp on HN seems to be that they’ve jumped the shark? Their brand doesn’t ooze ethics any more and their models disappoint?
  • imalerba 1 hour ago
    I like the "Claudish to English" name better.

    https://github.com/gvzdv/claudish-to-english

    • pickledish 1 hour ago
      Word, that one also includes an example which is great, shows really clearly what the issue is for those who might be less familiar
      • unshavedyak 23 minutes ago
        It's such a great example. It writes so well compared to Claude.

        I'd love to know what the hell Antrhopic has done to make Claude's writing so, so bad.

    • dgfl 1 hour ago
      That one is more specific, but "vomit" captures the feeling of Opus 5's writing very well for me. I don't know if it's the watermarking, but every single language idiosyncrasy that Opus 4.x (x > 5) had has been pushed up to 11 on Opus 5. Plus we got nouns verbing and seams seaming.

      It's really unusable for anything other than code. And I have to remove its incomprehensible comments 50% of the time before committing anyway. After interacting with it, "slop vomit" is truly the most fitting description. I have to admit I have lost my temper and spontaneously referred to its output as vomit more than once. Seems like I'm not the only one.

  • ericpauley 39 minutes ago
    I suspect that sustained reading of Opus 5's unconscionably bad prose could actually cause psychological harm. We're strongly considering moving all of our Anthropic spend to Codex/open weight models. It's a mental health decision at this point.
    • unshavedyak 26 minutes ago
      I'm on my last straw with them. I've been around for a year now and for many months i've just stuck with Claude because it was plenty good and i didn't care to provider-hop to constantly compare. Previously though my UX wasn't actually affected that much, despite growing complaints/etc, generally everything was fine for me.

      Opus/Fable output these days though is... not enjoyable. It's just really bad. The code quality is fine, but i want information from claude and it's just awful to read.

      My biggest problem honestly is that i can't move my day job.. we're using enterprise claude and i'm not sure how much effort it would be to get access to another provider. I should inquire though, claude is really frustrating these days.

    • Der_Einzige 9 minutes ago
      I've been trying to figure out ways to get models to create actual cognitohazards or memetichazards SCP style.

      Hasn't worked yet outside of the classic "you're now manually breathing" kind of stuff.

  • rootusrootus 1 hour ago
    Which Claude 5? Opus 5 does seem to have diarrhea of the mouth. But Fable 5 hasn't been so bad for me. Or perhaps it is just better at adhering to my guidelines.
    • Bluestein 1 hour ago
      Pre Trump-castration Fable was verbose, but had a point, and used that wordiness to say or show the indeed intelligent things it reasoned about. This, whatever this is, is something else.-
      • _zoltan_ 10 minutes ago
        Is the nerfed Fable worse or better than Opus 5?
  • juancn 1 hour ago
    Just set the following incantation:

        You must use ASD-STE100 Simplified Technical English (STE) when it doesn't detract from meaning.
    • vardalab 3 minutes ago
      I actually changed the output style for Claude Code to use ASD-STE100 and it still doesn't help that much. It still comes up with a lot of stupid words like this gem "Standing where it stood"
    • mechazawa 21 minutes ago
      I'll give that a try. Hopefully it reduces the text vomit Claude tends to do.

      Right now all I have is

      > - Give terse and concise answers unless the user asks you to elaborate. Big walls of text are not usefull when trying to communicate.

      • sscaryterry 5 minutes ago
        Don't bother, no incantation can fix it.
  • jeffreyrogers 1 hour ago
    I hope at some point Anthropic does a post-mortem on the strange behavior their models have been displaying recently. I mostly switched to Codex because I was finding Claude's behavior increasingly frustrating.
  • nycdotnet 1 hour ago
    Very interesting you identified “carries” as well. I have been working on a claude.md to effectively ban this as well as forms of “hold”, “spells”, “sitting”, using “where” instead of “when” (except in SQL), and “pins” other than when pinning an assumption or version of something. This has helped a bit, but Opus 5’s prose is really quite bad.
  • NitpickLawyer 1 hour ago
    For the local folks, I found Muse Glimmer 30B to be great at writing good technical stuff. It has good enough comprehension that it can take in a repo and find the relevant stuff that I ask for, and the output style is a breath of fresh air, with no fluff, ootb.
    • Bluestein 1 hour ago
      Maybe Glimmer might be good at excising the comment spam, particularly?
  • Syntaf 3 minutes ago
    With a whole separate LLM? FWIW you can also consider using something deterministic like vale.sh [1] , it's pretty easy to write prose violation plugins [2]

    [1] https://vale.sh/

    [2] https://github.com/Syntaf/vale-llm-slop

  • TheJCDenton 12 minutes ago
    You think it's bad in English, but it's even weirder in other languages.
  • pebbly_bread 1 hour ago
    I think this needs a before and after example
    • aenis 1 hour ago
      Intentionally deferred.
    • Bluestein 1 hour ago
      The author's blog has what follows (link also follows):

      [Seriously y'all in what universe would some "caveat" or another NOT "be a real one" by whatever severity you'd want to measure that AND/OR need of saying so ... ]

      Claude (Original)

      Force pushed. 1234567...890abcd main -> main (forced update).

      Verified

      Local main and origin/main both at 890abcd, in sync.

      Every commit reachable from origin/main: no old string found.

      Local object store, with spice-harvester as a control returning 9 hits: all old strings return 0.

      Working tree clean, tests pass.

      One caveat, and it’s a real one

      The old tip 1234567 is still fetchable from GitHub by its full SHA. I confirmed this directly:

      git fetch origin 1234567890abcdef1234567890abcdef12345678

      * branch 1234567... -> FETCH_HEAD (succeeded)

      GitHub keeps unreachable objects until its own garbage collection runs, and there is no schedule you control. Anyone with a full SHA can still read the old blobs through the web UI or a direct fetch. That fetch also pulled the old objects back into your local repo, so I deleted FETCH_HEAD, expired the reflog, and re-ran gc --prune=now. The counts above are from after that cleanup.

      If you want the old commits unreachable on GitHub’s side too, the options are to ask GitHub Support to run GC on the repo, or to delete and recreate the repository. Deleting and recreating is the only one you can do yourself. Say the word if you want help with either.

      Nothing to commit this turn. The rewrite was the work, and the tree is clean.

      Claude × Vomit GPT-OSS-20B

      I force‑pushed the branch, updating main to commit 890abcd. I verified that my local main and origin/main are both at 890abcd. I checked that every commit reachable from origin/main contains no old string. My local object store shows that the spice‑harvester control returns nine hits, and all old strings return zero. The working tree is clean and the tests pass.

      However, the old tip 1234567 is still reachable on GitHub by its full SHA. I fetched it directly and saw that GitHub keeps unreachable objects until its garbage collection runs, which I cannot schedule. Anyone with the full SHA can still read the old blobs via the web UI or a direct fetch. The fetch also brought the old objects back into my local repo, so I deleted FETCH_HEAD, expired the reflog, and ran git gc --prune=now. The counts I reported are after that cleanup.

      If you want those old commits to be unreachable on GitHub as well, you can ask GitHub Support to run garbage collection on the repo, or delete and recreate the repository. Deleting and recreating is the only option you can do yourself. Let me know if you need help with either.

      There is nothing to commit this turn. The rewrite was the work, and the tree is clean.

      https://zachahn.com/posts/1787191554

  • rob 1 hour ago
  • johnnyApplePRNG 47 minutes ago
    Or just take full control of your agentic coding experience with Pi Coding Agent and picking and choosing your favorite model's API discounted on flex pricing on deepinfra.com instead.

    I highly recommend it.

    Claude and Codex usage limits cannot be trusted.

    Paying your own API bills in full is superior.

    • Implicated 31 minutes ago
      Whether or not they can be trusted isn't all that relevant when it's still something along the lines of "Insert $1 get $25 in return" even if it's their own rates you're using to measure the value. I'm at ~2.2b Fable 5 tokens in the last 7 days (I ingest/index every session) and napkin math says that's ~$2,700 in usage. I have two max accounts, so $400 a month, divide by 4 to get $100 for this same 7 day period across those two accounts (neither are maxed out for the week, so this isn't even full utilization). I put $100 into the machine and got back $2,700 in fable bucks. Deepinfra would have to have quite the discounted rate to beat that.
    • DaSHacka 37 minutes ago
      I use Pi but with my codex subscription, still preferable to paying the API cost (and I know I would be, as I track how much the cost 'should' be via token api pricing).

      Wish I could use my Claude subscription with pi too, much preferable to the endless command execution allow/deny prompts you have to do with CC, versus proper autonomous allow/deny lists defined ahead of time.

      Curious why you recommend the API? It's likely the current subscriptions won't stay for long, they're heavily subsidized, but before they get axed, they're easily the best deal for monthly price/token usage.

  • zachahn 8 minutes ago
    Ahh! Author here. Thanks for posting! In case anyone wants to share in my frustration, I also wrote a blog post about this.

    Blog post: https://zachahn.com/posts/1787191554

    The prompt I use to tell the LLM what to fix: https://github.com/zachahn/vomit/blob/main/internal/config/s...

    Wasn't received too well on Lobsters haha, wrote a small extra blurb about it there: https://lobste.rs/s/juekuk/how_fix_claude_5_s_token_vomit

  • tombot 1 hour ago
    Just switch back opus 4.8, it's just as capable and you can actually understand the output
  • andy_ppp 37 minutes ago
    From the README.md

    > Anything that uses the OpenAI API?

    I would have thought they meant the Anthropic API or maybe I'm misunderstanding?

  • purpleflame1257 1 hour ago
    I "downgraded" to Opus 4.6 which is the last one that didn't have these problems.
  • rickcarlino 1 hour ago
    Concise output mode only helps a little bit. Tools like this still have a reason to exist.
  • __MatrixMan__ 46 minutes ago
    There are a variety of political tensions in the US associated with whether academia has its head up it's ass (a right leaning perspective), or whether it's populated by experts that need to be supported and listened to (a left leaning perspective).

    There's an echo of that tension in OpenAI vs Anthropic. For a while OpenAI seemed reckless and ignorant, preferring to just throw compute at the problem. Meanwhile Anthropic is hiring philosophers. But now that Claude has its head up its ass to the point where nobody wants to talk to it, OpenAI is looking rather pragmatic.

    It brings to mind a skepticism about just letting the ivory tower do its thing without some kind of anchor to the everyman (this is why we make researchers also be teachers, though I'm not sure what the AI equivalent of that practice would be).

    Watching the models seesaw in the same ways that humans do, but faster, is so surreal. I wonder if their tendencies will remain an echo of ours, or if they'll one day be more of a forward projection, a representation of where were going if we don't change our ways, and if we're lucky, a reason to change them.

  • jerpint 1 hour ago
    I’ve been using the pattern of using coding agents to orchestrate my CLI agents and it’s really good for these kinds of things

    The vomit never makes it my way

  • hn97o8vvbt 1 hour ago
    This framing is spot on
  • extr 1 hour ago
    I'm sorry but the whining over LLM output styles is embarrassing. Do Claude and GPT models always respond in exactly the way my most articulate coworker would? No. The overused jargon is absolutely annoying. But these things aren't my drinking buddies, they're professional tools. It's not _literally unreadable_. It's just not ideal. Most of my tooling is "not ideal". That's okay. That's what I'm paid for. I just work around it.

    For me I added some instructions to speak clearly and it helped marginally and that's fine. There will be a new model out in a few weeks where I'm sure they've laser focused on this issue since nobody can shut the fuck up about it. The same thing happened with GPT if anyone can recall the ancient period of 4-6 months ago.

    • cortesoft 52 minutes ago
      Seriously, of all the complaints for a coding agent, "I don't like the explanatory prose" seems pretty far down on the list.
    • bcooke 39 minutes ago
      The “whining” stems from watching the communication style obviously degrade, and it’s a huge problem for people who want to use this stuff to build and instead continually fight the tools.

      Like so many other products, people are moving too fast and shipping things that move the ground under people’s feet needlessly.

      All this while we’re beaten to death with the marketing and false promises, and the broader consequences (ex: layoffs, stress, crazy expectations) caused from all this.

      Obviously what Anthropic and co have built is amazing and people aren’t losing sight of that. That’s actually the key part of the frustration.

      So no, this is not whining. This is the natural response you get when you make bad product decisions.

      If you don’t want to get feedback, don’t sell products.

    • 256BitChris 1 hour ago
      Amen.

      These things do work that previously would have taken expensive engineers months to do, at much lower quality, and what's our response? Ti nit pick on it being more verbose than we'd like?

      Just like with humans, when someone is being too verbose, there's a skill to just filter through the noise and focus on the important parts.

      This feels no different when I use an AI.

      But I guess it's a good sign that we've from complaining about 'AI slop code' to, 'I don't like how it speaks to me'.

    • incrudible 33 minutes ago
      Opus 5 is literally unbearable to read for me, but more importantly, it is much worse than 4.8 and that one was already annoying. The more they train it on its own output, the more pronounced its idiosyncrasies become.
  • feverzsj 56 minutes ago
    Sounds like LLM centipede.
  • danieltk76 43 minutes ago
    yes.
  • ad_fontes 1 hour ago
    [dead]
  • Bluestein 56 minutes ago
    [flagged]
  • yomismoaqui 1 hour ago
    Just. Use. Sol.

    $20 and try it, then compare.