One must admit. The amount of effort and money that goes into convincing everyone that we live in the era of the mythical AGI is admirable. The models that are so good and we are almost there, and our lives are about to change forever, so much so that we must keep them under tight control or else the universe implodes – because what is the universe if not the adventures of a bunch of tech bros in the open market.
This blog was made to share hard-earned lessons from the “frontier”, and that’s what I’ll attempt here.
October 3rd 2026, still not replaced – building more than ever.
Fables, Dragons and the Unsane
If you were lucky enough to be developing in the open, or, most probably, unlucky if your organisation didn’t care about the sudden departure of the Zero Data Retention option, at some point or another you probably got access to Fable, the safeguarded version of the model class almighty, Mythos. Admittedly Fable is a strong model, an experience that felt like an improvement over the load-bearing Opus 4.8, unless of course you came anywhere near the dark arts of cybersecurity, because come on, play fair, how are the agents gonna hack you if you go and improve your posture.
If by any chance however you or your employer decided that, hey, I may not wanna be sharing all of my conversations with this vendor, because - reasons, you were most probably granted a free dive into the “Unsane”. Unsane, beyond sanity, and yet not insane. A period where all the hard-earned learnings from the eons of Opus 4.6 through Opus 4.8 started to collapse. And not only for the sham that Opus 5 was, but also for models that once worked just absolutely right.
At that moment I either had to do something about forge and its products, or I would be recommending something with demonstrable performance degradation over a very short time. Something that I had indeed used to build a whole lot of things but suddenly was giving me a hard time with laughable issues like agents not trusting each other’s output, going into token apocalypse loops like mad, or ignoring simple instructions that were once followed without significant hiccups.
And lo and behold, forge was reborn, coming back stronger than ever – but this time, with an exit plan.
The Harness
The evidence was not really pointing to the model being the culprit, though that would be a comforting answer. Guilty as charged, I had my “fun” times with Opus 5, but the degradation was clearly there with previous models too.
First suspect, the harness. I did not rush to attribute it to malice, but it could very well be that the harness evolved to accommodate the newer, better, and enhanced Mythos-class models which we mortals were barred from using. I immediately opted for something open source, to give a chance to something whose success didn’t immediately depend on how many tokens I burn.
I tried out various harnesses, I spent some time in the pi ecosystem, then the DeepSeek Harness made a bang and caught my attention, but it was evident that they were all asking me to take care of a bit too much, and with the ground moving under our feet at such breakneck pace, I was certainly not in the “doing too much” business. In fact, the whole idea behind forge is about achieving the most by solving the select few problems that really matter.
Enter opencode
That made the choice to make opencode the second harness that forge supports pretty easy. A comparatively polished product, with Dax Raad et al developing it in public, and a plethora of open models readily available to test, for a mere $10 on the opencode-go subscription.
There were really only a couple of gaps.
forge outputs were tuned to work best with dynamic workflows. Agents organised in workflows of arbitrary width and depth depending on the task, orchestrated from a main session, on the engineer’s command, with the sole purpose of augmenting engineers in walking their code through the steps that the (at least in name) agile process of their organisation dictates, all the way to release and deploy. And this one was easy to solve. opencode is rather easy to extend, and thus, without too much fuss after a few test runs in order to bring the feel as close as possible to the one I was familiar with from Claude Code it was ready.
The other gap is the auto mode. I yielded, I had no time to crack this one yet. But with decision models becoming the new cool kids on the block, I suspect we are going to be able to get quite close real soon.
Was the harness the real problem though? I had to know.
The Workflow
Next up was the workflow itself. And the literature review was clear and brutal; agents traversing graphs perform significantly better when compared to graphs consisting of specialised agents, both in terms of quality and more importantly in terms of cost.
In fact, Google Research, DeepMind, and MIT put a single agent against four different multi-agent topologies, keeping all else the same, finding that, unless the work was truly independent and with clear splits, in multi-agent approaches sequential planning degraded up to 70%, with every single multi-agent configuration doing worse than the lone agent on SWE-bench. Granted, it was never a blowout in terms of percentages, but even the small defeats came at a steep cost.
Tran and Kiela from Stanford say that the reason is annoyingly simple. Information theory didn’t stop applying because we got new toys. Every context split, every summary, every handoff and every command acts as lossy compression, and destroys information that we cannot get back. The spec-driven attraction was too shiny even for me to resist. Facepalm emoji, and thoughts of compassion for my orchestrator agent drowning in the endless Opus 5 blabber.
But more agents, more work done, right? No. Resounding no. UCL ran a couple thousand multi-agent sessions to find that messaging among them increases near-quadratically with team size, and oh the surprise, defining a coordinator among them has little to no effect. What you get instead is your agents enjoying the pinnacle of productivity. A first-class meeting-about-a-meeting situation.
So what do you do? You flip it. One task, one agent, start to finish. The agent traverses the graph with a predefined round budget, loading skills progressively only once needed – understand, build, validate, review, fix, clear, verify, you name it. Fan-out is still a thing, just placed where it belongs.
Trust but verify
There is of course a catch, but this one we know. Agents are terrible critics of their own work and aren’t really shy about demonstrating occasionally treacherous behaviour – quietly modifying test files to pass the tests, falsely reporting successes on utter failures, skipping verification steps, you know the drill. To get past this, the last step of the graph is not agentic at all. We just have to do some work, define what our validation looks like and come up with a deterministic script the agent has to execute to get past the gates.
Pretty much what we had to do for as long as there have been untrusted contributors to our codebases, and quite possibly one of the reasons why substitution by AI is still a myth, at least for some of us.
How did I verify? I pretty much had the graph build itself and then immediately turned it on real work. Not quite the controlled experiment, I know, but we also got work to do.
Long Live the King
Right as all of this was coming out of the oven, Opus 5.5 came along. Ready to sit on its throne, the new undisputed king of the hill, my hill at least, for now. Faith in machines, restored.
However, this time around, the king’s grasp on the throne feels weakened, ephemeral even. Kimi K3 made its landing on AWS Bedrock as the prophecies foretold. GLM, DeepSeek, and the rest of the open crowd on opencode-go and a myriad of other providers now leave a very good aftertaste, albeit not there yet. A “yes, and” kind of feeling. Is this why the king decided to finally show up? Who knows, I enjoy speculation but this is not the place for it.
What I know is that a quick glance over the last few thousand years of history tells us that royalty tends to either be forcibly removed or left to fade into oblivion. Only now, forge has an exit. Some other king, or no kings at all – switching is now just a setting. And if anyone tries to play funny games again, while dreaming of moats that try to lock models out of harnesses, I have the tool for that too.
forge is at v0.10 now, speaks both Claude Code and opencode, and is still very much a work in progress. MIT licensed, issues and PRs welcome.
Code: github.com/ktoulgaridis/forge
Act one, if you missed it: forge init



