Harness Engineering for Self-Improvement

(lilianweng.github.io)

219 points | by tosh 10 hours ago

22 comments

  • bisonbear 1 hour ago
    I’ve been thinking about how we practically implement this at an organizational layer for large codebases. There’s clearly alpha to be had in optimizing AGENTS.md / skills / tools / … to improve performance, quality, and cost efficiency of an agent. The problem is defining what quality means, and providing a way for agents to optimize the harness using that lever.

    The first step I see towards this is building a generic, reliable, and accurate *fitness function* for codebases - turning PRs into gradeable tasks that an agent can solve, and improve on.

    I’m pretty curious how others are optimizing the coding agent harness now, as this has been a huge pain point for my company (we’re pretty much relying solely on vibes).

    • sulam 43 minutes ago
      You've just described what the AI industry refers to as "evals", a collection of which forms a particular benchmark. I definitely encourage you to define your own evals, because the public benchmarks are often either saturated (largely solved and only going to see small improvements going forward) or seemingly not predictive of real world performance. I could also go further and speculate that they are in the training data, although credible benchmarks avoid this, I'm just not sure how successful they are.
      • bisonbear 8 minutes ago
        Thanks for the comment - I’ve actually been working on something to generate evals from private repos, as I 100% agree that public benchmarks are either contaminated (as OpenAI found with SWE-bench Verified), not high quality (as OpenAI found with SWE-bench Pro), or in the case of “good” benchmarks (Cognition’s Frontier Code comes to mind), non-representative of a specific repo’s work.

        Sharing some challenges / learnings from the journey so far:

        * Tests alone are non-representative: an agent can pass tests but write the code in a way that’s subjectively worse than another test-passing result

        * However, tests are still important and the best form of deterministic evaluation we have * Creating executable environments to run the tests is challenging, especially when considering that this should be doable for arbitrary repos * Selecting tasks that discriminate is an art - they need to be challenging, but not too challenging, represent the variety of work that’s done in the repo, and contain tests that failed prior to the change * LLMs / agents are very powerful at judging code - but doing so in a way that is calibrated, consistent, and representative of codebase standards requires careful rubric creation and grading * I’ve shifted towards using agents (from “static” LLM calls) to generate the rubrics, and to later grade the rubrics. This is powerful but even more non-deterministic

    • clamshelldev 44 minutes ago
      [flagged]
  • zby 2 hours ago
    IMHO training weights has peaked and now it is time for a training paradigm for prompts and code. We don't have the gradient descent here - but I think it can be more sample efficient because causal theories can be better than just correlations.

    I am working on a unified theory in https://zby.github.io/commonplace/ - it is all agent edited so it might be hard to read, but hopefully we are catching most logical errors. Some day the llm prose will improve.

    I have even a preliminary theory on what is needed for the positive feedback loop: https://zby.github.io/commonplace/articles/reflective-self-i... - (this is not stable yet - but I think you can give it to your agent to read :).

    • ianm218 1 hour ago
      Is there any reason to think that training weights has peaked rather than is accelerating? It feels like now they are increasingly able to pick some low hanging fruit by using the models in order to improve themselves and test optimizations.
      • zby 1 hour ago
        to be frank - mostly because they are now good enough to unlock the other learning paradigms
  • sim04ful 18 minutes ago
    All this work for something we already solved 40+ years ago with ontologies and expert systems
  • cahaya 4 hours ago
    Thanks for the post. For https://Document.bot (Kinda Cursor IDE for knowledge workers), im already trying to improve the harness (besides spotting bugs) using hillclimb experiments. More and more i'm using a AI harness engineering skill in Codex to further improve the app. This blog post helped me to improve the skill a bit.
    • robbru 2 hours ago
      Very interesting, will give it a demo.
  • erwincoumans 2 hours ago
    Thanks for the really nice in-depth post! Hoping for a future one about:

    "Much recent work on auto-research, self-improving agents, and evolutionary program search can be organized around this question. Other work on model self-play, synthetic data, test-time training and a broader theme of continual learning also matches the RSI vision (e.g. Yuan et al. 2024, Chen et al. 2024), Zhao et al. 2025, Choi et al. 2026)) but they will not be the focus of this post."

  • Kinrany 6 hours ago
    The quest for Torment Nexus continues
    • Drakim 6 hours ago
      If we don't create the Torment Nexus first, somebody else who is much less responsible is gonna create the Torment Nexus before us. It's outright irresponsible to not take the lead, we might have to even give up on all safety concerns to make sure we make it to Torment Nexus IPO first.
      • K0balt 4 hours ago
        Since we all know that at this point, someone is definitely going to build the torment nexus, we all may as well get involved and help, so that at least we can exert some limited degree of control over the eventual character of the torment nexus. At least that way maybe we can make it a little less terrible. At any rate, it can’t make it worse than it would have been if we -didn’t- help build it!
        • velcrovan 1 hour ago
        • tdeck 3 hours ago
          If you're going to get involved in a torment nexus project, at least do yourself a favor and research the different comp packages being offered and choose the best one.

          And of course, a healthy skepticism of "the man" is essential when you're busting your ass building his unfathomably horrifying torture apparatus for him 40-50 hours a week (excluding PTO days and parental leave of course).

        • cyanydeez 4 hours ago
          whats the other option, touch grass? not likely!
      • Cthulhu_ 3 hours ago
        If we don't do our best to awaken Dead Cthulhu, when He invariably awakens He will know that we didn't do our best and we'll be eaten last by the Great Old Ones upon Their return!
      • fineIllregister 5 hours ago
        We cannot allow a Torment Nexus gap!
    • grim_io 4 hours ago
      Eagerly waiting for the TormentBench.
  • kriro 3 hours ago
    Very enjoyable article.

    Isn't the harness basically where the frontier model companies can capture value and create a moat of sorts? I am also curious about building a harness for fun but would expect it to be more interesting in a scenario where I can self host an open weight model.

    What motivates the people who build their own ChatGPT/Claude harness for example? And how do you keep it tuned with the rapid development of frontier models.

    • sbysb 3 hours ago
      There is a really good video by the author of pi.dev (which I have used to build some of my own harnesses): https://www.youtube.com/watch?v=RjfbvDXpFls

      The basis of the argument is that the labs are constantly pushing updates to their system prompts that are used in claude code or codex, which are exceptionally bloated and change the sand beneath your feet with every update.

      By rolling your own harness, as long as you keep up with the latest advances and changes in the ecosystem, you capture a lot of the 'control' that LLM-based development feels like it strips from you.

      Obvious disclaimer that I use pi.dev when I am aiming for consistency, not absolute quality. Custom harnesses on pi are what I ship, claude code is still my fallback if I need to make sure a PR is the highest absolute quality

      • intrasight 2 hours ago
        My own opinion is that the "harness companies" (Anthropic, OpenAI, Cursor etc.) are fucked long-term since customers will tire of that quicksand. As the models improve, we will tire of that harness crap.
    • anon373839 2 hours ago
      > Isn't the harness basically where the frontier model companies can capture value and create a moat of sorts?

      They're trying. I see a few main avenues:

      1. Fitting the models to their specific harness, so that if you want peak model performance, you're stuck with their harness. But this only works if there aren't alternative models that are similar in capability or good enough that don't have that restriction.

      2. Locking you out of the harness so that you eventually are just letting it do "stuff" with your data and system, although you don't get to see what the stuff is or why it's doing it. This is the pattern discussed in that Earendil blog post, "The session you cannot take with you." Encrypted reasoning tokens, secret agent prompts, perhaps eventually not even seeing what files are being read or what data is being sent back to their server. This way, you are also shackled to their harness because nothing is portable. But it only works if you trust them implicitly and don't have alternative models and harnesses that don't treat you this way.

      3. Tying subscription pricing to the use of their harness, so that it's financially punitive to use another one. This is what Anthropic does. But again, it only works if there aren't alternative models and harnesses that work similarly well for you and don't have that restriction.

      4. Marketing. Anthropic is leaning into this one heavy, from what I can tell, based on the constant ads I see for Claude Code. Can it work? People do overpay for things like vodka in fancy bottles that are chemically identical to the cheap stuff. Is Veblen-good AI a trillion dollar business, though?

      I think the pressure from open source innovation in models and model tooling is going to make it a tough row to hoe. But I'm biased, as I'm actively rooting for Openthropic's demise.

  • gopalraja 5 hours ago
    Really good points Lillian. Agreed on keeping the evaluator outside the loop that evolves the harness.

    One practical failure mode I’ve have experienced in my agentic harness tasks similar to the “weak evaluators” point: an incomplete check suite that still reports full success. That’s was worse than a weak evaluator, because it made it look correct and decisive.

    After several trial and error, what helped was fail-closed on coverage i.e if the fixed checks for each operation aren’t all there, nothing ships / nothing gets sent. Otherwise you can “pass” while never running the cases that would have failed.

  • bob1029 3 hours ago
    I think the biggest problem with RSI is the tendency of models to try and find "clever" solutions when presented with very hard problems (aka cheat).

    I just got done asking gpt5.5 to make some suggestions that would improve the convergence properties of a symbolic ML experiment and the very first thing it did was add an instruction for directly emitting bytes and a way to store those verbatim in the model. Perfect score achieved in record time but the result is pointless.

    If you know the direction of improvement you need to head in, I think the current models could take you there. However, I do not think they are capable of deciding which direction is best, especially not when given some scalar quantity to min/max and autonomy over that process.

  • mark_l_watson 4 hours ago
    Great article! I am currently writing my second harness (first was in Emacs Lisp, using Emacs as UI; second is a command line coding agent written in Common Lisp).

    If anyone wants to argue that it is inefficient writing your own AI coding harness, I wouldn’t disagree. That said it is satisfying to have long coding sessions using my own tools.

    The article is a valuable resource, thanks to the author.

    • lmf4lol 2 hours ago
      The dream of the AI lisp machine ! Did you build in the functionality that the agent can on the fly rewrite its own (harness)-code?
      • mark_l_watson 1 hour ago
        No, but a good idea. I want something simple, practical, understandable. I think I will write a short book on this general topic.
  • tosh 6 hours ago
    one form of very effective self-improvement that coding agents do all the time:

    install or build stuff that they can then use

    it changes the environment instead of the agent/harness but in a sense how separate is the agent from its environment and why do we apply this distinction re self-improvement?

    animals and humans do the same thing and are great at it, without 'self-improvement' with emphasis on the 'self'

    • sigbottle 5 hours ago
      Blame Descartes? I don't know. Extended theories of cognition all get shot down, even analytic philosophers who are accused of being more "continental" still primarily hold mind-body dualisms
  • manojbajaj95 7 hours ago
    I've been working with self improvement harness a little bit and one thing i've come to conclusion is harness task fit. The learning can be significantly improved if we understand the behaviour of task and how it should be learned. I'm pretty sure a general solution will definitely exist which will do fine, but we are yet to see one.
    • djsavvy 6 hours ago
      Agree with the sibling comment that an example would be useful. I'm also curious what kinds of tasks you have in mind. Theoretically almost every knowledge work task boils down to the file editing that agent harnesses already are built around (which probably explains the second half of your comment).
    • epolanski 6 hours ago
      I haven't understood a bit.

      Can you make an example?

  • amelius 7 hours ago
    They say engineering but it's more a soft science.
    • HPsquared 6 hours ago
      It's engineering management I suppose.
      • cyanydeez 3 hours ago
        HN seems to think LLMs are hard science, despite all the evidence they're basically cultural artifacts generated by complex models.
  • hn5xz7plcj 5 hours ago
    The simplicity is the point
  • xander_north 3 hours ago
    Fascinating article, thank you!
  • knighthacker 1 hour ago
    [flagged]
  • adoltech 7 hours ago
    [dead]
  • sulot3212 7 hours ago
    [flagged]
  • BehanPrW 2 hours ago
    [dead]
  • devilfileprong 5 hours ago
    [flagged]
  • devilfileprong 5 hours ago
    [dead]