6 ms·
Improving 15 LLMs at Coding in One Afternoon. Only the Harness Changed
- rohitpaulk 8mo agoThis sounds like a good optimization task to give a long-running agent. Ask it to come up with experiments and maximize the % of successful edits.
- energy123 8mo agoI feel the baseline comparison should be relative to the intuitive and simple "line-numbers only" schema. It's less token heavy than the proposed hash approach, and I don't think frontier LLMs hallucinate line numbers if each line in the context is prefixed with them.
- withinboredom 8mo agoThe issue is when the file changed between when the LLM read the file and when it wrote to the file. Just using line numbers will clobber a file if that happens. The hashes prevent that from being an issue.
- energy123 8mo agoPoint taken.
- kachapopopow 8mo agoit starts writing to the wrong part of the file after multiple edits.
- rafaelmn 8mo agoI wonder if we'll get to "VI for LLMs" - if the model was trained on using that kind of text navigation and you show context around cursor when it navigates. Would also be worth having special tokens for this kind of navigation.
- cousinbryce 8mo agoI bet it’s good enough at VI already
- 1313ed01 8mo agoI always thought ed would be a perfect match. Line-based instead of having to manage cursor movements.
- antonok 8mo agoI had the same thought too. It's probably not too difficult to fine-tune a small model for it using the "introduce a random mutation and describe the issue" workflow from TFA
- woeirua 8mo agoThe harness matters far more than most people think. This post about the CORE benchmark where Opus’ score almost doubled when they switched to Claude Code from their own harness. https://x.com/sayashk/status/1996334941832089732 https://x.com/sayashk/status/1996334941832089732
- withinboredom 8mo agoWhich, IMHO, should be why we should be able to change them freely or make our own. Being locked into a specific harness because you pay 20 bucks per month vs. pay-per-use ... is kinda dumb.
- horsawlarway 8mo agoAlso another place where having it change out from underneath you can drastically alter the quality of your work in unexpected ways. Like most things - assume the "20/100/200" dollar deals that are great now are going to go down the enshitification route very rapidly. Even if the "limits" on them stay generous, the product will start shifting to prioritize things the user doesn't want. Tool recommendations are my immediate and near term fear - paid placement for dev tools both at the model level and the harness level seem inevitable. --- The right route is open models and open harnesses, ideally on local hardware.
- eshaham78 8mo ago[dead]
- deaux 8mo agoAt this point subsidizing Chinese open-weights vendors by paying for them is just the right thing to do. Maybe they too might go closed-weights when they become SotA, but they're now pretty close and haven't done it.
- DeathArrow 8mo agoI am wondering what kinds of harness are best for GLM, Deepseek, Qwen, Kimi.
- avereveard 8mo agoI use small model I like to give them TOC more than lines wonder how it'd stack up with the hashline approach read_toc tool: ... { "name": "mcp", "qualified_name": "mcp", "type": "constant", "docstring": null, "content_point": "src\\mcps\\code_help\\server.py::17::18::python::mcp", "is_nested": false }, { "name": "handler", "qualified_name": "handler", "type": "constant", "docstring": null, "content_point": "src\\mcps\\code_help\\server.py::18::19::python::handler", "is_nested": false }, .... update_content tool: { "content": "...", "content_point": "src\\mcps\\code_help\\server.py::18::19::python::handler", "project_root": .... }
- pcwelder 8mo agoGreat work, but concurrency is lost. With search-replace you could work on separate part of a file independently with the LLM. Not to mention with each edit all lines below are shifted so you now need to provide LLM with the whole content. Have you tested followup edits on the same files?
- kachapopopow 8mo ago(not the author) it works fine most of the time been using it alongside an active agent and haven't ran into too many noticable problems. The token savings alone are worth it.
- wrsh07 8mo agoSerializing writes is probably fine and the hashes should only change if you're updating the same line, right? You probably don't want to use the line number though unless you need to disambiguate But your write tool implementation can take care of that
- animan 8mo agoWhat was the point of Claude code or Gemini banning the OP? Why would they care about how IDEs use the underlying API?
- infecto 8mo agoI assume he was using Gemini the same way as he was Claude when I make the following statement. I don’t believe it’s exceptionally unique or new that companies will revoke access if you are using an unpublished API that the apps use. I don’t see anything wrong with it myself. If you want, pay for normal token use on the published APIs. There is no expectation that you can use APIs for an application, even if you are a paid user, that are not published explicitly for usage.
- deaux 8mo agoIndeed, that's why Anthropic, OpenAI and other LLM providers are known to adhere to published APIs to gather the world's data, obeying licensing and ROBOTS.txt. It's truly disgusting.
- skybrian 8mo agoI was under the impression that they do obey robots.txt now? There are clearly a lot of dumb agents that don’t, but didn’t think it was the major AI labs.
- deaux 8mo agoAfter 3 years of pirating and scraping the entire world by doing the above, I guess they have everything that they now need or want. So then it's better to start obeying ROBOTS.txt as a ladder pull through a "nicely behaved" image advantage.
- skybrian 8mo agoObeying robots.txt (now) is still better than not obeying it, regardless of what they did before. The alternative is to say that bugs shouldn’t be fixed because it’s a ladder pull or something. But that’s crazy. What’s the point of complaining if not to get people to fix things?
- notsylver 8mo agoI feel like cursors solution is still the best answer. Let the model suggest edits in whatever format it prefers using as few "extra" tokens as possible and have a small model figure it out. I don't use cursor anymore but when I did it was impressive how consistently it worked, I think there was a single time it failed. 70b might be overkill though...
- mromanuk 8mo agoSomeone should try prompting the same LLM in use, to suggest an edit as a subagent.
- deaux 8mo agoGreat article, recommend reading all of it. > Why bother, you ask? Opus may be a great model, but Claude Code to this day leaks raw JSONL from sub-agent outputs, wasting hundreds of thousands of tokens. I get to say, “fuck it, subagents output structured data now”. This is why I find the banning of using Claude subscriptions in other harnesses is so heinous. Their harness that they're forcing onto everyone has tons of big issues including wasting massive numbers of tokens. Very much in line with intentionally refusing to adhere to standards in the most IE6 way possible.
- techpression 8mo agoI mean they want to make money right? CC is a cool tool, but obviously they want you to use the api eventually if you’re even remotely a power user, 200/month for all you can eat tokens (well, until some arbitrary limit of the day kicks in) just doesn’t make sense when compared to api prices. In other words, CC should be seen as a software subscription.
- deaux 8mo agoThe token limit is the same whether used in CC or in other harnesses.
- techpression 8mo agoSure, but then Anthropic loses the possibility to upsell, show ads, telemetry, brag about number of users and how long they use it etc etc. Not necessarily what’s in there today, but what can be in there tomorrow. They also get the ability to much better fine tune backoffs etc from a purely technical side of things.
- kachapopopow 8mo agoMy personal notes (not the author): have been way faster performance wise which is honestly the biggest improvement over correctless. I've posted https://github.com/can1357/oh-my-pi https://github.com/can1357/oh-my-pi before, but didn't seem to gain traction. It's a great little agent.
- mijoharas 8mo agoI've just started messing around with pi, but haven't fully dug in yet. How would you compare oh-my-pi? I see it has a lot of other bells and whistles built in. Are they portable bit by bit back to pi, or is there enough differences that they can't? how about normal pi extensions, can they be used in omp? Some of the stuff definitely looks interesting.
- kachapopopow 8mo agothe differences are documented but it is mostly 1:1, never used normal pi, but night and day difference compared to opencode, don't forget omp setup python.
- scotth 8mo agoI'm into it! This looks like an experimentation platform. OpenCode is beginning to feel like handcuffs. Let me hack!
- antihero 8mo agoBut will you get banned for using it?
- a11r 8mo agoThis is very nicely done. We have seen the same issue at a higher level of getting separators right when generating multiple files in a single inference call.
- aghilmort 8mo agocurious: wdym by "getting separators right when generating multiple files in a single inference call" context: created hypertokens an even more robust hashing mechanism to create context-addressable memory (CAM), one cheat code is make them prefix-free, lots of others that get deep into why models work the way they do, etc.
- logicallee 8mo agoI agree with this article completely, nice to see it presented quantitatively. >re "only" the harness changed In our experience, AI's are like amnesiacs who can barely remember what they did three minutes ago (their last autonomous actions might still be in their context if you're lucky), with no chance at remembering what they did three days ago. As such, the "harness" determines their entire memory and is the single most important determinant of their outcome. The best harness is a single self-contained, well-commented, obvious, and tiny code file followed by a plain explanation of what it does and what it's supposed to do, the change request, how you want it to do it (you have to say it with so much force and confidence that the AI is afraid of getting yelled at if they do anything else) and a large amount of text devoted to asking the AI not to break what is already working. Followed by a request to write a test that passes. Followed by asking for its judgment about whether it broke what was already working on or not. All in one tiny crisp prompt. With such a harness, it's able to not break the code one time in twenty. If you use reverse psychology and ask it to do the opposite of what you want, it rises to fifty-fifty odds you'll get what you're trying to do. Don't believe me? You can watch the livestream (see my previous comments). Baby steps toward Utopia.
- tosh 8mo agoShows how much room for improvement there is on the harness level. Agents waste a lot of tokens on editing, sandboxes, passing info back and forth from tool calls and subagents. Love the pragmatic mix of content based addressing + line numbers. Beautiful.
- chasd00 8mo agoi haven't dug into the article but your comment reminded me about the ClaudeCode Superpowers plugin. I find the plugin great but it's quite "expensive", I use the pay-as-you-go account with CC because i've just been trying it out personally and the superpowers plugin spends a lot of money, relative to regular CC, with all the back and forth. With CC you can do a /cost to see how much your session cost in dollar terms, that's a good benchmark IMO for plugins, .md files for agents, and so on. Minimize the LLM cost in the way you'd minimize typical resource usage on a computer like cpu, ram, storage etc.
- kachapopopow 8mo agoyou can actually go the other way and spend more tokens to solve more complex problems (multi-agent) by letting agents work with smaller problems
- robbomacrae 8mo agoIndeed. The biggest waste might be the overuse of MCP for everything. Sure it makes the initial development easier but then for every connection you're using a hundred billion dollar parameter model to decide how to make the call when it's usually completely unnecessary and then prone to random errors. MCP is the hammer that can make literally everything look like a nail...
- senordevnyc 8mo agoI see this ranting against MCP all the time, and I don't get it, maybe I'm missing something. I'm currently using an MCP in Cursor to give agents read-only access to my staging and prod databases, as well as BugSnag's MCP so it can look up errors that happen in those environments. It works great. What should I be using for this if not MCP?
- znnajdla 8mo agoYep this has been my experience with browser agents as well. One little change in the harness/agentic loop and the model suddenly becomes a whole lot smarter at navigating the web. I was also able to build a better browser agent than ‘claude —chrome’ in just a few afternoons just by tweaking the harness.
- chrisweekly 8mo agoGreat post. A few choice quotes: > Often the model isn’t flaky at understanding the task. It’s flaky at expressing itself. You’re blaming the pilot for the landing gear. > The model is the moat. The harness is the bridge. Burning bridges just means fewer people bother to cross. Treating harnesses as solved, or even inconsequential, is very short-sighted. > The gap between “cool demo” and “reliable tool” isn’t model magic. It’s careful, rather boring, empirical engineering at the tool boundary.
- brendanmc6 8mo agoYou’re absolutely right! This isn’t your average engineering advice— it’s like painting the reader a vivid tapestry of the author’s mind.
- dimgl 8mo agoMy personal favorite: That’s not a threat. It’s free R&D.
- ramraj07 8mo agoGreat post indeed but let me ask you, put yourself in the LLM shoes. Now instead of reading through coherent lines of code that is exclusively about solving problems, you now have random characters before every line that mean something (because the presence of the edit tool implies it) but not about your actual problem. Do you reckon the LLM will be distracted a little bit? The benchmark deliberately sidestep the actual intelligence of the model on the task at hand, so while the author feels successful at their subtask its very possible they've failed at the war. This seems to be the beauty of AI engineering. The smarter you think you are about something the bigger the fall.
- genie3io 8mo ago[dead]
- znnajdla 8mo agoMy experience as well. People worry our profession is being reduced to "prompt engineer", but actually I get the feeling that programming will soon be mainly about designing and building harnesses for specific tasks.
- ambicapter 8mo agoPersonal opinion is that LLMs are definitely not as magical as people think they are, they fill a specific niche of problem-solving, and harnesses are necessary to corral your problem into the niche that they are extremely good at solving.
- cruffle_duffle 8mo agoThe more I dive into this space the more I think that developers will still be in heavy demand—just operating in a different level of abstraction most of the time. We will need to know our CS fundamentals, experience will still matter, juniors will still be needed. It’s just that a lot of time time the actual code being generated will come from our little helper buddies. But those things still need a human in the seat to drive them. I keep asking myself “could my friends and family be handed this and be expected to build what I’m building on them” and the answer is an immediate “absolutely not”. Could a non technical manager use these tools do build what I’m building? Absolutely not. And when I think about it, it’s for the exact same reason it’s always been… they just aren’t a developer. They just don’t “think” in the way required to effectively control a computer. LLMs are just another way to talk to a machine. They aren’t magic. All the same fundamental principles that apply to probably telling a machine what to do still apply. It’s just a wildly different mechanism. That all being said, I think these things will dramatically speed up the pace that software eats the world. Put LLMs into a good harness and holy shit it’s like a superpower… but to get those superpowers unlocked you still have to know the basis, same as before. I think this applies to all other trades too. If you are a designer you still have to what good design is and how to articulate it. Data scientists still need to understand the basics of their trade… these tools just give them superpowers. Whether or not this assertion remains true in two or three years remains to be seen but look at the most popular tool. Claude code is a command line tool! Their gui version is pretty terrible in comparison. Cursor is an ide fork of vscode. These are highly technical tools requiring somebody that knows file systems, command lines, basic development like compilers, etc. they require you to know a lot of stuff most people simply don’t. The direction I think these tools will head is far closer to highly sophisticated dev tooling than general purpose “magic box” stuff that your parents can use to… I dunno… vibe code the next hit todo app.
- __mharrison__ 8mo agoIs there a skill file I can use for these edits?
- reeddev42 8mo ago[dead]
- jcims 8mo agoI ran into this from the other direction. I built a small SRE agent for my cloud infra and just kind of walked into hand-rolling some of the tools rather than using what exists today. I provided an edit_file tool that felt like it was of reasonable capability, but in practice the agent was regularly 'trying' to do a one line change and submitting PRs that hallucinated 3/4s of the file. Seeing how bad the results are when you're casually approaching something makes it very evident that it's a topic that can be optimized.
- evolly 8mo agoMy experience exactly! I’ve recently become so tired of the Claude harness that I switched to OpenCode (which is extremely good compared to Claude). However, OpenCode is also tedious to change, and it inherits all the “good stuff,” like treating agents as Markdown files and all the dancing around with hooks/plugins/skills scattered all over the place. Getting stuck again and again, I’ve ultimately come to the conclusion that this must be solved by writing my own damn coding agent, with extensibility that’s acceptable for real-world engineering.
- HumanOstrich 8mo agoGive Pi[1] a try. Comes pretty barebones out of the box, yet still provides a decent default experience. Extension points are all TypeScript if you want. There are a lot of examples[2] and some 3rd party extensions[3]. I'll point out that if you want permission prompts for certain behavior, you have to add that yourself. There's at least one example. Edit: Just noticed the article's author is using a fork of Pi. [1]: https://shittycodingagent.ai/ https://shittycodingagent.ai/ [2]: https://github.com/badlogic/pi-mono/tree/main/packages/coding-agent/examples/extensions https://github.com/badlogic/pi-mono/tree/main/packages/codin... [3]: https://github.com/nicobailon https://github.com/nicobailon
- wyre 8mo agoBefore you build you own, try pi. It is what you are looking for. [0] https://shittycodingagent.ai/ https://shittycodingagent.ai/
- jwpapi 8mo agoGreat article and tbh I thought it would’ve been implemented that way makes sense to hash and save mainly context I don’t expect them to care about token usage How about Kimi tho how can I play with it?
- jwpapi 8mo agoArguably I would think that the last year was mainly inner harness improvement instead model improvement but I could be wrong, just feels like that to me
- SatvikBeri 8mo agoWe can measure this by looking at the same harness applied to different models, e.g. the very plain Terminus: https://www.tbench.ai/leaderboard/terminal-bench/2.0?agents=Terminus+2 https://www.tbench.ai/leaderboard/terminal-bench/2.0?agents=... Models have improved dramatically even with the same harness
- jwpapi 7mo agoI mean that just the way it tackles task in the core is generated differently, like inner harness, through system prompt or deeper root. F.e. Instead of answering instantly it goes through a pre-defined steps which strategy should be done, split task, use thinking tokens, use tools etc.
- softwaredoug 8mo agoUnderrated is how much improving harnesses, not just models, has a lot to do with productive uses of LLMs at tasks like coding in the last year.
- scotty79 8mo agoHarness is where the open source should shine. It doesn't require millions of dollars of compute but the search space is vast and explorable with limited budgets.
- logicprog 8mo agoI really enjoyed this article. I think the author is precisely right and I've been saying this for a long time. There's a ton of extremely interesting low hanging fruit that can vastly improve the effectiveness of even currently existing models hiding in how we design our agent harnesses; enough to — at least until we hit diminishing returns — make as much or more of a difference than training new models! I think one of the things that this confirms, for me at least, is that it's better to think of "the AI" as not just the LLM itself, but the whole cybernetic system of feedback loops joining the LLM and its harness. Because, if the harness can make as much if not more of a difference, when improved, as improvements to the model itself, then they have to be really considered equally important. Not to mention the fact that models are specifically reinforcement learned to use harnesses and harnesses are adapted to the needs of models in general or specific models. So they necessarily sort of develop together in a feedback loop. And then in practice, as they operate, it is a deeply intertwined feedback loop where the entity that actually performs the useful work, and which you interact with, is really the complete system of the two together. I think thinking like this could not only unlock quantitative performance improvements like the ones discussed in this blog post, but also help us conceive of the generative AI project as actually a project of neurosymbolic AI, even if the most capital intensive and a novel aspect is a neural network; and once we begin to think like that, that unlocks a lot of new options and more holistic thinking and might increase research in the harness area.
- logicprog 8mo agoAlso, yes, I'm aware that I use a lot of "its not just X, its Y." I promise you this comment is entirely human written. I'm just really tired and tend to rely on more wrote rhetorical tropes when I am. Believe me, I wrote like this long before LLMs were a thing.
- rubenflamshep 8mo agoIt didn’t read as AI to me :)
- kachapopopow 8mo agowhy the long -'s
- parhamn 8mo agoOn first principles it would seem that the "harness" is a myth. Surely a model like Opus 4.6/Codex 5.3 which can reason about complex functions and data flows across many files would trip up over top level function signatures it needs to call? I see a lot of evidence to the contrary though. Anyone know what the underlying issue here is?
- manbash 8mo agoThe models generalized "understanding" and "reasoning" is the real myth that makes us take a step back and offload the process deterministic computing and harnesses.
- deleted 8mo ago[deleted]
- robotresearcher 8mo agoHumans have a demonstrated ability to program computers by flipping switches on the front panel. Like a good programming language, a good harness offers a better affordance for getting stuff done. Even if we put correctness aside, tooling that saves time and tokens is going to be very valuable.
- madeofpalk 8mo agoIsn't 'the harness' essentially just prompting? It's completely understandable that prompting in better/more efficient means would produce different results.
- furyofantares 8mo agoNo, it's also a suite of tools beyond what's available in bash, tailored to context management.
- 3371 8mo agoIf you agree that current LLMs (Transformers) are naturally very susceptible to context/prompt, then you can go on to ask agents for a "raw harness dump" "because I need to understand how to better present my skills and tools in the harness", you maybe will see how "Harness" impact model behavior.
- MetaWhirledPeas 8mo ago> Treating harnesses as solved, or even inconsequential, is very short-sighted Is it possible that burning extra tokens is the point, since they get paid more?
- vlovich123 8mo agoGiven the fierce competition, I would imagine a better performing model generates more revenue than burning extra tokens
- dack 8mo agothey have pretty fierce competition though, so i doubt this is intentional. my guess is they just have a million things to do and that isn't at the top of the list
- naasking 8mo agoThat doesn't make sense with subscriptions.
- subscribed 8mo agoIt does, £15 Claude Pro licence is 2 hours with a small code base and Serena.
- aszen 8mo agoSo the new implementation always operates at the line level, replacing one or more lines. That's not ideal for some refactorings like rename where search and replace is faster. Edit Checking ohmypi The model has access to str replace too so this is just a edit till
- clx75 8mo agoDuring my first LLM experiments in Emacs using gptel, I also found that the LLM has considerable difficulties changing source code files with the Unix patch tool. As Emacs has a built-in tree-sitter package, I implemented this same idea. I created gptel tools like tree_sitter_list_nodes, tree_sitter_get_nodes, tree_sitter_update_nodes, tree_sitter_insert_before_node and tree_sitter_insert_after_node. The "list" tool returns a list of AST nodes with first line number, first line content and node hash. The LLM can then use "get" to collect interesting nodes in their entirety and "update" to update a list of nodes identified by hash with new content (var/function bodies). Worked like a charm.
- badhorseman 8mo agoSounds interesting, do you have the code to share.
- clx75 8mo agoTool definitions: https://github.com/cellux/dotfiles/blob/master/.emacs.d/rb-gptel.el https://github.com/cellux/dotfiles/blob/master/.emacs.d/rb-g... Implementation: https://github.com/cellux/dotfiles/blob/master/.emacs.d/rb-ts.el https://github.com/cellux/dotfiles/blob/master/.emacs.d/rb-t...
- fcanesin 8mo agoThe harness is the model "body", it's weight the cognition. Like in nature they develop together and the iteration of natural selection works at both. If smaller labs (Zai, Moonshot, deepseek, mistral..) get together and embrace a harness, like opencode for example, as a consortium just by the power of "evolution across different environments" they might hit jackpot earlier than bigger labs.
- TZubiri 8mo agoBut they rely on distilling the output of american leader models. Which will probably train against their own harness. Someone has to do the baseline training, development, and innovation. it can't be clones all the way down
- robotresearcher 8mo agoWhy not? Humans are (very nearly) clones all the way down.
- lillecarl 8mo agoCitation needed, SOTA labs surely has technical protection and legaleese against using them for training. It's been done in th past but what indicates this is still the case?
- cyanydeez 8mo agothis didn't stop the millions of copyrighted works used to train the models.
- TZubiri 8mo ago>Citation needed, SOTA labs surely has technical protection They have unlimited APIs, as long as you pay, how would they control how you use them? > and legaleese against using them for training. It's a whole different jurisdiction, and in general chinese companies care way less about copyright infringement https://en.wikipedia.org/wiki/Counterfeit_consumer_good https://en.wikipedia.org/wiki/Counterfeit_consumer_good https://en.wikipedia.org/wiki/Allegations_of_intellectual_property_infringement_by_China https://en.wikipedia.org/wiki/Allegations_of_intellectual_pr... https://en.wikipedia.org/wiki/China%E2%80%93United_States_trade_war https://en.wikipedia.org/wiki/China%E2%80%93United_States_tr...
- falkenstein 8mo agoreally enjoyed reading this, although I'm a dumb farmer and it took me a while to understand lol
- giancarlostoro 8mo agoOne of the first things I add to my claude instructions file is to stop using grep, its awfully slow, just use ripgrep instead, you can just type the word of what you're looking for from the project root and find it all in one shot. Claude likes to go folder by folder with grep and it drives me crazy. "You're absolutely right!" At this point I'd take a contract with Anthropic to have Claude code pick better tooling.
- azinman2 8mo agoWhy not just use line numbers?
- giancarlostoro 8mo agoI was wondering the same thing.
- renewiltord 8mo agoForces you to read after every write. E.g. you edit line 15 to be two lines. Then now you need arithmetic for later vs earlier lines or you need to read full file to reindex by line number.
- azinman2 8mo agoGood point! I just wonder how unique these hashes will be if only 2 characters. It seems like the collision rate would be really high.
- aghilmort 8mo agowe dug into those sorts of questions with hypertokens, a robust hash for lines, code, tables/rows or any in-context token tagging to give models photographic memory one mechanism we establish is that each model has a fidelity window, i.e., r tokens of content for s tag tokens; each tag token adds extra GUID-like marker capacity via its embedding vector; since 1,2,3 digit numbers only one token in top models, a single hash token lacks enough capacity & separation in latent space we also show hash should be properly prefix-free, or unique symbols perp digit, e.g., if using A-K & L-Z to hash then A,R is legal hash whereas M,C is not permitted hash we can do all this & more rather precisely as we show in our arXiv paper on same; next update goes deeper into group theory, info theory, etc. on boosting model recall, reasoning, tool calls, etc. by way of robust hashing
- pbowyer 8mo agoFor others, here's the paper: https://arxiv.org/abs/2507.00002 https://arxiv.org/abs/2507.00002
- Bolwin 8mo agoYou forgot to mention your tool does worse for 8/16 LLMs compared to replace? Problem is, replace has been around for so long, most LLMs are tuned for it now
- badhorseman 8mo agoI feel a lot of confusion at which coding harness is best and what options to use. tbh I have mostly used standard aider and I don't know what the consensus is on this tool. I feel I want to write my own and that maybe in the future a lot of developers will have custom harnesses and have highly customized versions as each user of these models wants to use these things in a way that's unique to their brain, much like how emacs is so great for the customization but one persons emacs config is often not what another wants or only wants a subset and then write their own features. As an aside what is the feeling on all the various ai coding tools, does aider suck is that aider-ce/cecli are better or are the bespoke tools for each model like claudeCode and such better.
- 0xdeafbeef 8mo agoFiled an issue for codex https://github.com/openai/codex/issues/11601 https://github.com/openai/codex/issues/11601
- 0xbadcafebee 8mo agoPutting it out there: if any frontier model provider starts allowing any agent to use their $20/month plan, we will all switch to you. We don't want to be forced into 1 harness, we want OAuth, and we want respectable limits without excessive budgets.
- aniviacat 8mo agoHow would that differ from buying $20 worth of API credits each month?
- 0xbadcafebee 8mo ago1) security (oauth is much more secure than a static api key; if your key gets stolen, a hacker can run up your bill) 2) AFAIK the $20/month plan allows use of more tokens per month than if you bought $20 of tokens. my understanding is it assumes most users will only use a fraction of that each month, and they rake in profit (like a gym membership)
- nekitamo 8mo agoGetting banned from Gemini while attempting to improve Gemini is the most Googley thing ever :D imagine letting your automated "trust and safety" systems run amok so that they ban the top 0.01% of your users with no recourse. Google really knows how score an own-goal.
- sgc 8mo agoI really don't understand what is his usage pattern would have triggered that obviously automated ban. Can somebody let me know what they might think is adversarial enough to be considered 'hacking' or similar by a bot?
- nateb2022 8mo agoGoogle is dealing with a wave of abuse over its Antigravity IDE, with 'account switching' tools designed to use a ton (20+) of free or pro accounts, giving the user essentially unlimited usage. I'm guessing they've deployed some rather aggressive countermeasures to stop this, including banning clients that seem to be accessing "private" APIs outside of a Google product.
- benreesman 8mo agoThe logical end state of this line of reasoning is a collective action problem that dooms the frontier lab establishment. You can't devote model capacity to having an attention transformer match nested delimiters or cope with bash and be maximally capable, you can't mix authentication, authorization, control plane, and data plane into an ill specified soup and be secure enough for any that isn't a pilot or toy ever. If you run this out, you realize that the Worse is Better paradox has inverted, it's an arbitrage, and the race is on.
- ianbutler 8mo agoIt’s funny to see where we are on model improvements. Back when I was maintaining a coding harness around the time of Claude 3.5 we tried hash prefixes we tried line number prefixes we tried a lot of different approaches to making the model better at selecting edit blocks and ultimately at-least then fuzzy string matching won out.
- jbellis 8mo agoYes, very similar results here (http://brokk.ai http://brokk.ai) We got lines-with-anchors working fine as a replacement strategy, the problem was that when you don't make the model echo what it's replacing, it's literally dumber at writing the replacement; we lost more in test failures + retries than we gained in faster outputs. Makes sense when you think about how powerful the "think before answering" principle is for LLMs, but it's still frustrating
- the_harpia_io 8mo ago[flagged]
- visarga 8mo agoYeah I invented a similar method for information extraction attribution around 2022, I would place custom markers in a document so the extraction model can reference them together with the answer and be unique on the document to be able to locate it.
- jahala 8mo agoI implemented this hash (read and edit) approach in tilth if you want to test it out. https://github.com/jahala/tilth https://github.com/jahala/tilth its on npm and cargo: - cargo install tilth - npx tilth then tilth install claude-code/windsurf/cursor --edit (--edit flag is needed) I made "tilth" a few days ago, since I'm consistently trying to get the LLMs to use tools more efficiently and spend less tokens doing it -- original tilth post from Monday: https://news.ycombinator.com/item?id=46952321 https://news.ycombinator.com/item?id=46952321
- hedgehog 8mo agoYou might find it useful for markdown as well, especially if you add support for section-based addressing (e.g. cat or replace a section at a time). Section-based addresses are nice because they tend to be stable across versions.
- jahala 8mo agoGreat idea - Just implemented this. (Already published on cargo, on npm in a few mins).
- kachapopopow 8mo agobenchmarks vs grep?
- jahala 8mo agotilth isn’t trying to replace grep for raw text search — for that, it wraps ripgrep internally so perf is comparable. It’s about reducing round-trips and giving the agent a verified edit workflow, not faster search. Instead of cat + grep + manual line counting, one tool call returns a structural outline of a large file, lets you drill into sections, and since this last update also returns hashline-anchored output that an edit tool can target.
- kachapopopow 8mo agowell yah, that's what I mean how better is it versus cat + grep + manual line counting. Agents tend to perform worse with niche tools
- babkayaga 8mo agoStill weird to me that most people are not just giving an LLM an access to an editor, forcing it to write shell scripts to edit files. Shrug.
- deleted 8mo ago[deleted]
- znnajdla 8mo agoHow do you give it access to an editor? It doesn't have a keyboard and mouse.
- visarga 8mo agoI built a structural zoom tool, it would fit flat or tree like content into a 10K char budget. It can compress HTML, JSON, folders, zip files, logs, chat sessions, basically large files or collections of files. Moving around is done by range selection. The idea is to have the agent find its way iteratively to the target, while having the structure exposed. RAG would totally cut everything to pieces and put them in a hat. My approach is to follow the structure of a large content by a series of glimpses. Unfortunately I myself am not sure it is better to use this tool vs bash and python one off scripts.
- HarHarVeryFunny 8mo agoWell, it could be a batch editor, such as linux's sed, invoked from the command line, or with "computer use" the model could indeed potentially drive a real interactive editor. Part of the problem though is that tools like Claude Code don't want to assume too much of the environment - that a specific editor is available, or even that it is running on a particular OS. The way it remains platform agnostic and not reliant on specific tools is by only having a dependency on Node.js, which provides file read/write support, so to implement an edit request the agent uses Node.js to read the file, itself implements the edit, then again uses Node.js to create the new updated file.
- HarHarVeryFunny 8mo agoThat's not quite how it works, and anyways if the model can't generate an accurate find/replace string, why would you expect it to do any better generating accurate commands to drive your editor (assuming it knew how do do that in the first place) ?! The way edits happen is that the agent (local) first tells the model (typically remote) that it has an edit tool (e.g. taking parameters file name, find string and replace string). If the model decides it wants to edit a file then it'll invoke this edit tool, which just results in a blob of JSON being put in the model's response specifying the edit (filename, etc). The agent then receives the response, intercepts this JSON blob, sees that it is an edit request and does what is asked. The problem the article is describing is that the edit request (tool invocation) generated by the model isn't always 100% accurate. Even if the agent told the model it had a tool to invoke an actual editor, say sed, assuming the model knew how to use sed, this is still going to fail if the edit request cannot be interpreted literally by the editor (due to being inaccurate).
- matheist 8mo ago> Codex uses apply_patch: It takes a string as input, which is essentially an OpenAI-flavored diff, and instead of relying on a structured schema, the harness just expects this blob to follow a strict set of rules. Since OpenAI folks are without a doubt smart, I’m sure the token selection process is biased to fit this structure at the LLM gateway for the Codex variants of GPT, similar to how other constraints like JSON schemas or required tool calls work. Codex does in fact use a schema for constrained sampling, it's here: https://github.com/openai/codex/blob/main/codex-rs/core/src/tools/handlers/tool_apply_patch.lark https://github.com/openai/codex/blob/main/codex-rs/core/src/... It still has to work to get an exact match, or at least I didn't read the code to see if there's any fuzzy matching used. Note the two codex models were the only ones doing worse with the author's proposed format. The author found them doing better with replace than with apply patch, but since the author appears to be unaware that they use a schema for constrained sampling, I think a more realistic benchmark should enable constrained sampling for the apply test.
- rao-v 8mo agoI’d really like to see this optimized for the 50-120B parameter open source models that are local viable (gpt-oss-120b, qwen3-80b-3a etc.). For them I think it would be optimal to provide a tag per function and trust the llm to rewrite the function. As the article notes full reproduction is generally more reliable than edited for short code. The token and attention overhead from a per line hash I suspect limits this approach for smaller models
- uriegas 8mo agoI do agree with his identification of the problem: sometimes agents fail because of the tools around it and not because of the model's reasoning. However, for the failing tests I think he is not making the distinction between a failed test due to a harness failure or due to a reasoning failure. It would be nice if someone analyzed that from the data set.
- woah 8mo agoSeems like a very cool technique, but also very oversold. He's seeing a 5% improvement on a find and replace benchmark of his own devising and saying stuff like this in the blog post: > Here is why that is backwards. I just showed that a different edit format improves their own models by 5 to 14 points while cutting output tokens by ~20%. That’s not a threat. It’s free R&D. He makes it sounds like he got a 5-14% boost on a top level benchmark, not 5% improvement on a narrow find and replace metric. Anecdotally, I don't usually have a lot of issues with editing in Claude Code or Cursor, and if there is an issue the model corrects it. Assuming that it costs double the tokens when it has to correct itself, and find and replace errors are as prominent in actual day to day use as his benchmark, we're talking a 5% efficiency gain in editing token use (not reasoning or tool use). Given that editing must be less than 1/3 of the token use (I assume much less?), we're talking an overall efficiency gain of less than 1%. This seems like a promising technique but maybe not a high priority in efficiency gains for these tools. The messianic tone, like assuming that Google cut off his access to suppress his genius editing technique rather than just because he was hammering their API also leaves a bad taste, along with the rampant and blatant ChatGPTisms in the blog post.
- andai 8mo agoThe benchmarks seem to indicate 25-50% reduction in tokens. I'm not sure how that works in real world usage though.
- athrowaway3z 8mo ago> “replace line 2:f1, replace range 1:a3 through 3:0e, insert after 3:0e.” Not sure what they're calculating, but this seems to me like it could be many times more efficient than 20%.
- kridsdale3 8mo agoYes, this looks like O(1) actions, where before, its likely that harnesses are ingesting and outputting huge portions of the source files for each step, and the local uses of str_replace() are themselves O(N) on the users computer. The excess reads and writes from the LLM are O(N^2).
- christophilus 8mo agoHas any harness matched the effectiveness of Claude Code yet? I haven't experimented much recently, but every time I have in the past, I wasn't able to get any other tool to approach how effective I am in CC. I'd love to use a different harness-- ideally an OSS one-- and hook it up to whichever LLM provides the best bang for the buck rather than being tied to Claude.
- antonok 8mo agoOpenCode has been great in my experience. I still get the best results using it with Anthropic's models, but some of the open weights ones are catching up (GLM 5 works reasonably well for me).
- the_harpia_io 8mo ago[flagged]
- andai 8mo ago> Why bother, you ask? Opus may be a great model, but Claude Code to this day leaks raw JSONL from sub-agent outputs, wasting hundreds of thousands of tokens. I get to say, “fuck it, subagents output structured data now”. The VC economics are creating a reality distortion field where Anthropic is incentivized to burn more tokens so they can rent more GPUs so they can get more investment, and where I am incentivized to pipe the LLM inputs into `claude -p` and blast 50KB of useless proompt onto it so they don't ban me from their 95% discounted API endpoint.
- jbetala7 8mo agoI switched from a basic prompt wrapper to structured tool use with Claude Code and the quality of output jumped overnight. Same model, completely different results.
- tgtweak 8mo agoWhen you're in the business of selling tokens - you look at technology that reduces that as a threat. If they were selling services that USE tokens, then reducing them would be welcome... so they'll likely steal this and incorporate it into their proprietary CLIs like claude code...
- MarsIronPI 8mo agoHuh? Anthropic doesn't sell Claude Code, they sell tokens. Why would they make Claude Code more token-efficient?
- tgtweak 7mo agoAnthropic sells api tokens - until they released claude code the only way to use claude for coding was via api tokens in something like cursor or cline.
- MarsIronPI 7mo agoExactly. They don't make money on Claude Code directly, so it's not in their interest to make it use fewer tokens (which are what they make their profit on).
- indubioprorubik 8mo agoMy guess always was that - if you took the source of training data- meaning the authors of the "best" answers and solutions on stackoverflow or github- and got the question reformatted, to sound like it was created by these experts- the created code, would try to hug these sources of truth while getting created. So, the challenge is actually to find a map of "problem" to "author" and then from "author" to "related code" and from their to a solution.
- joshuamoyers 8mo agoI think this is the right take. I usually am aligned with most of what Anthropic is doing, but cutting off OAuth login from open harnesses was a bad move. My guess is there is some serious worry/overlap with the Cursor's of the world - e.g. folks who will be competitors in the future who are taking advantage of cheaper Opus rates/loss leader from them while simultaneously building a competitive model (Composer). Also, nice clever optimization here. Lots of low hanging fruit in harness land.
- kittbuilds 8mo ago[dead]
- keeda 8mo agoThis makes sense to me because I've been having very accurate results with models from even 2+ years ago... but I had to "hold them right." Even when reasoning models and coding agents were just a gleam in Altman's and Amodei's eyes, I could tell a lot of the unrealized gains lay in building the right tools, harnesses and guardrails to manage the context and guide the model. (Relevant subthread as example: https://news.ycombinator.com/item?id=44171519 https://news.ycombinator.com/item?id=44171519) But this article hints at deeper wins to be had. Consider that these models are operating on source code, which is a verbose, noisy, textual serialization of the intended syntax / semantic trees. TFA improves accuracy by retro-fitting some structure onto the text. But what if models could operate directly on these underlying structures themselves? As a data point, there are projects like OpenRewrite, which encode a ton of information, from formatting to types with globally resolved dependencies for each symbol in what they call a "Lossless Semantic Tree", so that there is ~0 ambiguity about the code. When I worked with OpenRewrite (in the era before LLMs, how quaint!) compared to other tools, it produced the best results for code transformations with the highest fidelity to the surrounding code. Now imagine if the agent has access to such detailed information. It would not have to waste tokens figuring incidental things out like formatting. Although I haven't tested it out myself, I believe Moderne (the maintainers of OpenRewrite) when they say that agents armed with LST-based tools make extremely accurate changes. This is essentially the same reason why the answer to "Which is better, Vim or Emacs?" is "IntelliJ." Now consider that these models are STILL operating on text as an input and output mode! What if they were multi-modally trained on source code and docs and their syntax / semantic trees? I don't even know what this would look like, but I'd bet this would produce the most accurate coding models ever -- probably neurosymbolic in the truest sense.
- mehdibl 8mo agoYou can improve a lot the success rate with providing HELM and clear instructions with the tool description. Over a year ago had a lot of issues and the description and example was the difference between 30-50% failure to 1%! So I'm surprised a bit about the point. May be I'm missing it.
- socketcluster 8mo agoSeeing all these 'coding' benchmarks reminds me that people still don't understand what coding means in practice. People still think one-phase puzzle-solving is coding. Real coding almost always has multiple phases which build on top of one another. There is an architectural component which is missed here - and the sheer number of phases/layers is actually where most of the complexity comes from.
- cyanydeez 8mo agoUsually what I need a LLM to do is find me a elegant agorithm for a problem I've encountered where I know there's an elegant algorithm but I've got no idea what it's called or how to google search for it.
- socketcluster 8mo agoIt makes sense but if the goal is to replace software engineers as claimed, then these benchmarks aren't going to achieve that. Companies are still stuck in this mindset conflating software engineering with puzzle-solving. This is evident from their job interviews and also these LLM benchmarks.
- XCSme 8mo agoGoogle banning you for benchmarking is crazy, are you sure that's the cause? How would they even know you are benchmarking?
- kacper-vstorm 8mo agoGreat post!
- perrygeo 8mo agoWitness the giant leap forward in the capabilities of coding agents over the last year. There has been no such leap in LLM model performance. I think the causality is crystal clear. It's nothing about "AGI" and all about existing LLMs learning to use existing tools. Even a sub-par LLM, put into a context where it has access to unix tools and network and files etc, is vastly more capable than the best LLM chatbot.
- kristopolous 8mo agoI independently invented a very similar method and then abandoned it because it relies on abstraction. Instead I now use Damerau-Levenshtein distance to assert the edits to be replaced and if the similarity is over some threshold the edit goes through Really works well because it's explicit. Forcing the model to emit the source tokens to be replaced seems to improve things. https://github.com/day50-dev/sidechat/blob/db9c8f9d834967442436c4ab4718be73ad321d23/sidechat/sc-tp.py#L72 https://github.com/day50-dev/sidechat/blob/db9c8f9d834967442... It will often chomp white space differently but the main problem is 1. Track alignment with the lines being tracks (hash fixes that) 2. Content alignment with the model not losing focus (hamming/levenshtein other similarity scores fixes that) If we demand exact matches we're simply not going to get them. (Combining both methods might be good, I hadn't thought of that) Another crucial point: the error line "Content mismatch. Reread the file" is crucial. Errors should give descriptive remediate actions. So even with crappy models it does this automatically and will tool loop accordingly. Asking it to do smaller edits is no good. Many smaller models will go down to single line edits, looking around for blank lines and just inject garbage. So don't suggest it. Larger models, which succeed in doing this, know to do that. Smaller models which don't, won't do it if you don't suggest it Seriously this thing works with 4B models I also combine it with a toolcall hack for models that don't support tool calling https://github.com/day50-dev/sidechat/blob/db9c8f9d834967442436c4ab4718be73ad321d23/sidechat/sidechat#L365 https://github.com/day50-dev/sidechat/blob/db9c8f9d834967442... It injects the tool description in the system prompt after probing the capabilities and then does a simple response router. I haven't found a model within reason that this doesn't work with (I'm sure if you intentionally throw some fine tune botch up that's emitting garbage it'll break - that's not the claim) YMMV, works for me™
- spprashant 8mo agoIt seems like agentic (or atleast AI-assisted coding) is the future. And we will be increasingly relying on these models to earn our livelihood. Is anyone else worried at how easily Anthropic/Google/OpenAI can basically cut you off if you do something they don't like?
- georgemcbay 8mo ago> Is anyone else worried at how easily Anthropic/Google/OpenAI can basically cut you off if you do something they don't like? Yeah, had that thought here a few weeks ago on HN after reading about someone getting cut off from Claude: https://news.ycombinator.com/item?id=46723384#46728649 https://news.ycombinator.com/item?id=46723384#46728649 Though tbh I'm far more worried about the societal impacts of large scale job displacement across so many professional industries at the same time. I think it is likely to be very, very ugly for society in the near term. Not because the problems are unsolvable, but because everyone is choosing to ignore the threat of them. And I realize a lot of people will handwave my concerns away with stories of Luddites and Jevon's paradox, but we've never had a tidal wave this big hit all at once and I think the scale (combined with speed of change) fundamentally changes things this time.
- lbreakjai 8mo agoI stopped worrying. Western societies have about 30 to 40% of the people doing knowledge work, which contributes to the economy that employs the other 60%. If that 40% is automated away in one go, there's no economy as we know it anymore. Either it acts as a negative void coefficient and moderates it into something sustainable, or it blows up.
- yowlingcat 8mo agoIt's a very concerning future. I would love to live in a world where we could simply stop them from doing that, but for the moment, the best hedge appears to be the Chinese open weight models that can't be put back in the box and provide the valuable market function of commodifying the encoded knowledge of these models (which in and of itself was derived from knowledge not created by the frontier lab).
- edg5000 8mo agoWe know Anthropic likes vertical integration and their walled garden. OpenAI seems to be okay with custom clients using their flat rate subscriptions. But what about Google? Would be great to have a second model that allows use by any client of their flat rate subscriptions. Agentic work with APIs seems to be insanely expensive, so clients need to be able to use the flat rate subscriptions unless you have big bucks.
- pieterk 8mo agoThis is awesome. Adopted it in my personal pi-mono repo :) It had some bugs around whitespace replacements but the model seems happy with it now. Thanks and keep it up! Shoutout to @jahala for tilth as well.
- KingMob 8mo agoIntriguing, but I wonder if they've looked at whole-conversation token usage, though, and not just short tasks. I just saw a [paper](https://arxiv.org/pdf/2602.05447 https://arxiv.org/pdf/2602.05447) that investigated similar aspects of TOON (which aims to reduce JSON tokens), and they found that even though TOON itself reduced the number of tokens, LLMs were less familiar with it, and thus spent even more tokens trying to decipher it, or making mistakes (see section 4.5, figures 6 and 7). From the paper: >Unlike Markdown, where each grep hit simply returned more text, TOON's overhead was driven by a combination of output density and additional tool calls from pattern unfamiliarity ---- There's a strangeness tax with LLMs, and it can be substantial. I would not be surprised at all if this technique turned out to be only a local minimum, with detrimental global effects.
- deleted 8mo ago[deleted]
- WiSaGaN 8mo agoGreat article. To me, this highlights a key question in the era of rapidly advancing machine intelligence: if we know machine intelligence is progressing, what is more valuable to build for? As humans, we still find many tools useful even when doing knowledge work. For instance, a calculator. Sure, a smart person can perform calculations in their head, but it’s much easier to teach everyone how to use a calculator, which is 100% reliable in its intended domain. In this era, we should build these kinds of tools for problems we know are straightforward ones you can’t get smarter than, even as intelligence continues to advance. Using tools like "bash" or command-line interfaces originally designed for humans is a good initial approach, since we can essentially reuse much of what was built for human use. Later, we can optimize specifically for machines, either accounting for their different cognitive structures (e.g., the ability to memorize extremely long contexts compared to humans) or adapting to the stream-based input/output patterns of current autoregressive token generators. Eventually, I believe machine intelligence will build their own tools based on these foundations, likely a similar kind of milestone to when humans first began using tools.
- theanonymousone 8mo agoNon-native speaker here. Can someone please be so nice to explain why do we use the word "Harness" here and not e.g. Orchestrate or Steer? It took me some time to realise what people mean by it, originally confusing it with harvest.
- energy123 8mo agoWell, "Orchestrate" and "Steer" are verbs, while "Harness" is a noun. You need a noun here, not a verb, because the harness is not actively doing anything, it's just a set of constraints and a toolset.
- viraptor 8mo agoThat doesn't really answer the questions, because there's orchestrator and steering.
- mikodin 8mo agoWhat always came to mind for me is an “engine wiring harness”. It’s responsible for getting power and data to all the right places without having to manually route cables around the engine / car. If you google an image of it, maybe it’ll make sense
- vohk 8mo agoAs already mentioned, this is the noun use but also different connotations. To my thinking, to orchestrate or steer suggests a conductor or driver, an outside entity providing direction. A master agent creating and directing subagents could reasonably be called an orchestrator. A harness is what the horse wears to pull a cart, or what connects a pilot to a parachute and provides the controls to tug on and steer. It might provide guidance or capability, but not active direction. It's also a fairly common use in hardware ( a wire harness) and software (a testing harness) already.
- direwolf20 8mo agoYou should have patented this and you'd be rich.
- planckscnst 8mo agoThere is so much work we can do with harnesses that can make the already existing models so much more capable. I definitely feel the author's frustration as I've also been working on some harness stuff. When Anthropic subscriptions got cut off from OpenCode and other third party tools, I was very disappointed because the model I do the most work in is Claude and I was specifically developing a change [1] in the hopes it would make Claude even better. After that, I started implementing the feature in Claude Code directly (using tweakcc) and after a day of working on that, they even block my tweaked Claude Code with the same message. It means I simply won't be able to use this idea with Claude at all [1]: the README.md describes the Context Bonsai features in my fork here: https://github.com/Vibecodelicious/opencode https://github.com/Vibecodelicious/opencode
- jwr 8mo agoInteresting. I wonder if that's one of the reasons Claude Code works so incredibly well for me with Clojure — I use clojure-mcp tools, which provide structured editing, and the model uses that to edit.
- Agent_Builder 8mo ago[dead]
- ruhith 8mo ago[dead]
- swiftcoder 8mo agoPlease, please turn up the contrast on your darkmode text! The headings are fine, but the paragraph text fails accessibility guidelines badly (and I personally find it very hard to read)
- kittbuilds 8mo ago[dead]
- deleted 8mo ago[deleted]
- tartavull 8mo agoif you want to quickly try it on codex https://github.com/tartavull/hashline https://github.com/tartavull/hashline
- brutuscat 8mo agoLook at Serena. Does something on this line. > it can use code-centred tools like find_symbol, find_referencing_symbols and insert_after_symbol. https://oraios.github.io/serena/01-about/000_intro.html https://oraios.github.io/serena/01-about/000_intro.html
- deleted 8mo ago[deleted]
- bicepjai 8mo agoI enjoyed the post. Sometimes small hacks go a long way. I still feel like the game changer will be models outputting just enough code for replacement and harness replacing it efficiently rather than whole code with find and replace hacks.
- spyder 8mo agoYea, LLMs have prompt-, harness- and even random seed variability, and it leaves you wonder maybe with a better prompt or system instruction a model could perform better. Too bad most benchmarks don't report that variability, because it could reveal that the model may only perform well if it's prompted in the style of their training data and not generalize well to unseen prompt styles. Also it could explain some of the benchmark vs real world usage gaps. I remember some papers about earlier models having around 15% prompt variability, and with different tool use sometimes there are even more significant jumps. And if I remember correctly the reasoning models improve some of these because lot of the early prompting tricks is included in them like "thinking step-by-step", "think carefully" and some other "magic" methods. Also another trick is to ask the models to rephrase the prompt with their own words because that may produce prompt that better align with their training prompts. For sure the big model developers are aware of these and constantly improving it, I just don't see too much discussion or numbers about it.
- andai 8mo agoI haven't been able to find it again, but a few years ago I read a paper that found that certain prompts massively improved the performance of some LLMs on benchmarks. But the same prompt massively reduced the performance of some other LLMs. I assume this is still true, though perhaps not as dramatically as before.
- aSidorenkoCode 7mo agoI made a benchmark on the top tier models as this is not the case in the article. Also I did several cases and the result is self speaking. Hashline is not an improvement that speaks for itself. It is the overhead of harness itself in tool descriptions and schemas. Here are my benchmark results and also my repo for a plugin to truely reduce token usage in top tier models: https://github.com/ASidorenkoCode/openslimedit https://github.com/ASidorenkoCode/openslimedit
- alexandriaeden 7mo agoThis matches my experience exactly. I’ve been building an MCP server with 82 tools and spent weeks on infrastructure testing. Switching from a Docker-based Cloudflare Tunnel to a native tunnel process took my tool call success rate from ~50% to 100% — same model, same tools, same prompts. The harness isn’t just important, it’s often the dominant variable.
- megantaylor02 7mo ago[dead]
- megantaylor02 7mo ago[dead]
- prostheticrazor 7mo agoWe build MCP servers that wrap fund APIs. The biggest performance variable we’ve found isn’t the model, it’s how much domain context the harness provides before the model has to reason. Same model, generic prompt versus one loaded with our procedural docs - wider gap than switching between model generations. Which surprised me. The post’s framing is right but undersells what the harness actually does in production. It’s your trust layer: what can the model touch, what can’t it, how cheaply do you recover when it gets something wrong. We spend something like 70% of engineering time on the recovery path, not the inference. Whether that ratio is right I’m not sure, but it’s where we’ve ended up. On MCP overhead downthread: real, yes. In regulated environments you need the audit trail and the kill switch, and a tool boundary is how you get those. The unsolved part is keeping the protocol thin enough that you’re not burning tokens on ceremony.