We’re sharing Unreal Agent — an agent harness that delivers up to 40% cost savings compared to Codex on production workloads and coding/science benchmarks, without any negative performance impact.

247 points•trollied•8 days ago•125 comments•

125 comments

dvt8 days ago
I think this space is very untapped. Models are interesting, but I am absolutely obsessed with some things I've been researching/working on for the past few years:

Fractal tool discovery: tool taxonomy where an agent can "drill deeper" to find what specific tool it's looking for. Helps if/when polluting context with a zillion (mostly unnecessary) tools.

Leveraging splay trees: this is my favorite data structure and I think relatively unused in the context of agents/harnesses. A lot of times, recently-used workflows/tool-chains will be used again, so having those at the top of the search hierarchy is an awesome optimization.

Virtual containerized notebooks: models working in sandboxed (WASI) Python notebooks is incredible. Even local models (if given enough time) will usually converge on a good solution. Being able to mount tools/resources/fs is again, imo quite untapped. Some problems here are running native things (thing numpy/pandas) in containers is a nightmare (or impossible).

Anyway, happy to see other folks seriously doing stuff in this space. If anyone wants to collaborate on anything don't hesitate to reach out :) I'm also actively looking for a job or some contract gigs.

Fun times ahead.

ravenstine8 days ago
> Helps if/when polluting context with a zillion (mostly unnecessary) tools.

Ugh, I can't help but respond to this one point. The fact that this is even an issue in the current year just tells us how screwed the software field is in a lot of ways. I don't mean that in existential terms, but of how divided we've become in terms of what's happened to human reasoning. On the one hand, you have people who apply deep thinking to develop the sort of approaches you described, and there's the exponentially growing segment of not-even-programmers who seem to never ask themselves whether any of their ideas have any sort of consequences.

Take MCPs for instance. Sure, I guess it can sometimes make sense to have a stateful API that is optimized for agents. Yet, more often than not, these MCPs frontload a ton of context where it's not needed, and solve problems where none existed. Merely sticking an API (MCP) in front of an API (CLI, REST, GraphQL) without a benefit that can be explained in a single sentence is lunacy and demonstrates a real lack of complex thinking.

sublinear8 days ago
> tells us how screwed the software field is in a lot of ways

But, you just very clearly described why human software engineers are in higher demand than ever before.

It's always been "screwed" in the sense that everyone else sucks at wielding the power.

What we're actually witnessing is a watershed moment where a lot of technologically illiterate people are getting left behind. Those of us on the literate side are left to fight amongst ourselves and the powers that be for control over the future. We have actually been doing an alright job all things considered (else this conversation wouldn't be happening). Politicians are aging out and we're the adults in the room now.

rockostrich7 days ago
Your point is valid for individual developers or small teams of technical folks.

However, MCPs are a godsend to anyone trying to manage access to systems (especially SaaS systems) in a large organization that includes a ton of non-technical employees. We use at least a couple of SaaS products where RBAC is severely limited in what it can govern or where API keys do not have any kind of governance so handing one out is basically handing out read/write on the entire system. Being able to configure an MCP to only have read endpoints enabled it a very useful piece of duct tape. Obviously it would be great if the underlying API was just designed with proper governance but that's out of the user's control.

rozal8 days ago
MCP’s make sense because, people want to click the + icon on chatgpt or claude to connect their data. nobody cares if you can do it manually
kaurimu8 days ago
Isn't that what codemode is for?

mcp with 2 tools: execute(code) and search(query)

all other tools, mcps, apis, whatever are encapsulated by the one interface. new tools don't bloat the agent's context, and it can write its own code to perform more advanced and batch operations against the available tools (executed within a sandbox).

executor is a great implementation of this - https://executor.sh

opencode v2 also provides its own native implementation

never_giveup8 days ago
Have you had workflows/benchmarks to test this on? I'm primarily interested if there are real use cases that would benefit.
wyre8 days ago
Fractal tool discovery is a fascinating idea! Have you worked on implimenting this into any agent harnesses already to any success? My first impression is allowing the agent to fork itself, not unlike launching a subagent, then returning it's response back to the main agent.
spdustin8 days ago
I've also explored s/Fractal tool discovery/Skill tree approaches, seems to work pretty well when you stick the equivalent of XREFs in the frontmatter.
tekacs8 days ago
The headline graph is kind of bizarre.

For some reason they're comparing their harness running on Astra xhigh to Codex with Astra max?

---

Also worth noting that OpenAI just added support for async tool calling to their harness, which isn't 1:1 with this approach, but is slowly ramping up in being able to provide something similar.

A big part of why Codex uses so many tokens is that it basically hot loops on polling tasks it starts for... absolutely no good reason: https://www.reddit.com/r/codex/comments/1wdlp7q/weve_discove...

I fixed it on my fork of Codex too, also back in Jan/Feb – I keep this patch rebased, for anyone who wants it: https://github.com/tekacs/codex/commit/9ffcf8db9078eae43d411...

It results in token savings similar in scale to those displayed here by Unreal.

---

My harness has used a slightly fancier version of the approach that Unreal is using since ~Feb, and... it definitely works excellently, but it's also assuredly smoother with Astra and other recent models that are more aware of async tool calling.

NostraDavid8 days ago
To reduce the codex polling I slapped this into my ~/.codex/config.toml:

  [features.multi_agent_v2]
  enabled = true
  wait_agent_enabled = true
  min_wait_timeout_ms = 10000 # 10s
  default_wait_timeout_ms = 300000 # 5m
  max_wait_timeout_ms = 3600000 # 1h
Seems to do the job and reduce usage; I just ran Astra for ~5 hours (using a goal) and it used the last 30% of my usage. And now they released GPT-6 Sol and Luna (which is basically 5.6 Sol and Luna, but a bit better and also 50% cheaper) ;_;
AmazingTurtle8 days ago
Perfect, I will incorporate this as default as well as the commit from the other guy into my own codex fork https://github.com/AmazingTurtle/codex btw. I'm rebasing on 0.156.0 right now
discobot28 days ago
the headline chart was lazy on our part, thanks for the flag and I’ll update it.

each individual benchmark that is combined into agentic coding index was compared on xhigh between ua / codex / pi, and headline improvement was calculated on xhigh, but then agentic coding index pareto chart by default includex codex max, hense the confusion.

tapoxi8 days ago
Sounds like a trademark issue when Epic ships a wildly popular Unreal Engine
bryant8 days ago
I had to scroll to the bottom to realize that this had absolutely nothing to do with Unreal Engine or Epic. There's no reason to think that Epic wouldn't have an "Unreal Labs" creating harnesses to help them with software engineering.

This plainly seems like a trademark issue in progress considering it's in the same exact domain and considering how many others were confused the way I probably was.

esher8 days ago
I liked the 3D effects on the homepage of unreal labs https://unreallabs.ai/ - so I was sure it's related to 3D engine makers, and of course great idea to have an agent for that too.
nosyke8 days ago
yep, can confirm i was confused too
tantalor8 days ago
lol it took me to read this comment to find out this has nothing to do with Unreal.

People, I'm begging you, please talk to a lawyer before launching.

MisterMunchkin7 days ago
Yeah there’s no way they can use this name for software, it is a complete ripoff of their brand
orliesaurus8 days ago
But I don't think you can trademark a generic word like Unreal...
llm_nerd8 days ago
Unreal is trademarked. This is not in question. And personally I 100% thought this was an agent specifically for dealing with the Unreal Engine, and was interpreting all of that information in that context. Very weird name for a company/product.
neuronexmachina8 days ago
They've trademarked it for quite a few closely-related domains: https://tsdr.uspto.gov/#caseNumber=87709072&caseSearchType=U...

>Computer software, namely, game engine software for video game development and operation; Computer software, namely, software development tools for the creation of computer-generated imagery and graphics for the production of video games; Computer software, namely, software development tools for the creation of computer-generated imagery and graphics for the production of content for virtual worlds and 3D platforms; Computer software, namely, software development tools for the creation of computer-generated imagery and graphics for the production of motion pictures, television shows, videos, 3D animations, 3D simulations, 3D visualizations, virtual reality motion pictures, virtual reality television shows; Computer software, namely, software development tools for the creation of computer-generated imagery and graphics for the production of virtual reality video games; Virtual reality game software; Virtual reality software for creating multimedia content; Augmented reality game software; Augmented reality software for use in mobile devices for integrating electronic data with real world environments for the purposes of entertainment

ramesh318 days ago
>"But I don't think you can trademark a generic word like Unreal..."

Sure you can, trademarks are contextual. If they were a landscaping business it wouldn't matter. But within the same industry absolutely.

max-privatevoid7 days ago
An XR glasses company, Nreal, changed their name to XREAL, allegedly because of Epic Games.
wannabe448 days ago
Suggestion: rename it to "Unreliable Agent"
pyrolistical8 days ago
Funny, I solved this problem by having Claude write a pi extension

https://github.com/Pyrolistical/pi-notify

Now my pi agent setups its own trigger to notify itself when a background process is done

solarkraft8 days ago
Right! It’s not really rocket science. I’ve been thinking of building a general “wait” command that just blocks until some event occurs. Still more “active” waiting, but as far as I understand the efficiency problem comes from polling.
tontinton8 days ago
Oh very nice, can you also compare it to https://maki.sh?

Would be interesting to compare to a harness optimizing for cost reduction too.

solarkraft8 days ago
The techniques appear to be orthogonal, so you might be able to combine them

Read the full thread on Hacker News →

Related stories