I think we’re still figuring out the right abstraction for offering agents as a product.
- LLMs are a great foundation but building your own harness is a huge undertaking, a deep rabbit hole.
- There are harnesses available as open source libraries but that’s still coupled to an environment. Where does the state persist? Like maybe I’m a Cloudflare worker and don’t even have a file system.
Agent as a service like this lets you plug in the tools it needs to be whatever kind of agent you want. But they still get to encapsulate and continue to iterate on the really deep parts of the harness that all agents need like memory and context management.
That said, my money right now is not on the offerings from OpenAI and Anthropic because they’re stuck using their own proprietary frontier models and those aren’t actually the best choice for most agents right now. A competitor who is not an LLM lab gets their pick of the market at any given moment. Like you’d want to be using GLM 5.3 Flash right now for most things agentic.
> building your own harness is a huge undertaking, a deep rabbit hole.
I eventually gave up on this task. It's not possible to fight OpenAI or Anthropic's engineering teams. Their reasoning models have all kinds of undocumented back door access to the base models that you'd never be able to replicate from the outside. Even if you had full access you would not have the engineering man hours or experience to keep up.
I think this Agents API thing is a step too far, but Chat Completion is too cold now. Something approximating Responses API seems like the happy medium. You still get most of the control with the only blackbox part being the reasoning loop / tokens. Building agents using the GPT5.6 family w/ Responses API feels pretty close to Star Trek computer shit to me. I thought I was being clever with my DIY contraption on top of chat completion, but it wasn't even close. I have embraced the reality that I will need to use opaque reasoning tokens to give my clients the experiences they are paying me to provide.
I built several harnesses in different products over the last two years. Fully agree with you that doing it right is a rabbit hole. Certain system properties that you almost always want in a harness used within a SaaS (for example) are non-obvious at the start and require certain architectural choices. It's easy to start down a path and then find a gap a couple days before launch.
Async tool calls, having the agent wait indefinitely for a human response, and showing a form or questions to the user via a tool call are a few common capabilities that come up that a product manager might miss at first.
This is why I've been building Nvoken. LLM agnostic, ergonomic SDKs, flexible tool call patterns, tenant and user-aware budget enforcement, etc.
I'd really appreciate any and all feedback on this! It gives you some free tokens on signup and it's super quick to try.
I think the abstraction is only part of the problem. The other part is that all these companies offering ai products are deeply untrustworthy, and I don’t want to let them any further into my stack than I have to. Claude code and codex are great because they are lightweight, and operate on top of the rest of my tools with little to no change needed, so they can be eliminated or migrated away from with zero cost. They’re not a dependency of anything. And that’s as much as I’m willing to trust OpenAI or Claude.
Just letting you know, this comment inspired me to finally just say "screw it" and launch what I've been building for the past year. https://www.cadenya.com
Agree, as long as models are interchangeable, it doesn't make sense to be locked into a single lab's managed agent platform. You probably want to swap between models and own the agent state.
https://github.com/omnara-ai/omnara - this is a self hostable agent API that I'm working on. It stores the state of all agents in a postgres db you can easily query, rather than a local json file or sqlite file per agent.
There might not be a good abstraction. I've built a few harnesses for different types of workflows, and the details are so different I struggle to see a good abstraction. It's also not clear there should be - if you look at most complex software systems, it's a collection of smaller abstractions/tools/systems pulled together to achieve X.
Yes, I do the same with Claude Code. Create an instance on the server for a project and then can create sessions from any device, close my laptop while claude code keeps working, etc. without losing the convenience of dedicated apps.
But Codex doesn't survive a reboot by default or a laptop going to sleep. Also, herdr is abstracted up a level from the agent, so you actually get more benefit by using Codex with herdr because herdr knows how to operate Codex, and other harnesses. So if you're using multiple Codex instances you can orchestrate them because each harness can talk to the others. You can still interact with Codex running in herdr via remote control (ideally you'd target your "orchestration" Codex instance). It just gives you way more power.
Guessing this an early release not quite ready for the public? Interesting that there's a 'OpenAI-Early-Access' GitHub user, though of course with no public repos. Presumably when its actually public they'll move the example agent repos to another GitHub user.
It's interesting to me that the agents comparison page[0] doesn't list codex's app-server as an option.
I've found the app-server to be the most flexible, compared to the raw Responses API or Agents SDK.
Certainly seems like everyone is still figuring out the right interface here.
Also of note, since GPT-5.5 or so, Codex doesn't even use the Responses API as intended, but instead a "lite" version where they manage the context more manually (like sending the full transcript or using a custom web.run tool instead of the provided `web_search` tool).
If you follow the docs, it will lead you down a lot of well-intended functionality, but most of it is thrown away in their most successful harness.
This is pretty interesting in a lot of non-surface-level ways.
I can see OpenAI pushing for this as a sort of more durable moat compared to the now huge number of agentic harnesses that run on your own machine.
This might be getting the foot into some sort of bundling as well. Like unrestricted models or custom fine tuned agents inside this and not providing direct APIs to those endpoints.
That being said I don't see a lot of reasons for people to jump on this if it doesn't bundle something killer. Like to me the fact that GPT Work runs on your own machines and all the artifacts and work in progress there for you to look at is sort of the whole point. I don't just want a final artifact.
>GPT Work runs on your own machines...is sort of the whole point.
Which is also why they want to remove it from your machine. Call it conspiratorial, but I keep thinking about "You'll own nothing and be happy." It seems like the industry is quickly moving in a direction where devices are turning into gateway into the cloud, and personal computing will turn into a hobby that prices out the average individual.
Pretty good abstraction. Setup your sandbox with dependencies, build plugins - agent works. Tested it with OpenAI for the last month while it was in preview
What I want (which I don’t think exists?) is a way to trigger turns that the user can monitor in the codex application. I.e., when event X happens, my application triggers Codex to take a turn with input Y, which the user can monitor through codex. Right now the only way to get close to this is with polling or essentially rewriting a codex-like frontend.
I just wrote my own VR harness in a weekend with Astra. It mentioned an SDK for exactly this in passing, but it was an experimental personal project so I didn’t bother to review the code.
I was doing exactly what you’re describing. I think this is a ToS violation for anything other than personal use though.
do you mean like a cloud agent provider? What we're working on at noriagentic.com may be relevant -- you can fire events from slack/web/cli to kick off an agent in a box and talk to it as if it was running local
You can give the agent a tool (or bash script) which waits for events. Agent calls it and the tool sleeps until an event happens then returns it to the agent.
Because how does OpenAI earn more money then? At least to me it seems to try more vendor lock in, but I might mistaken on how easy it would be to just be another level of abstraction in an agent system.
The pricing on this is a bit confusing. Does each execution of an agent session create a new environment? And is that environment then billed for at least a full hour (despite prices being quoted per 20 minutes), after which it naturally expires? Is there a way to deliberately shut down an environment so you don't have to keep paying for it?
Since a week or so everything I ask codex to do, no matter how small, uses at least 1% of my weekly limits and like 5% of my 5h limit. It's getting so bad I'm thinking of just canceling my OpenAI subscription, because this has no use anymore.
I also signed up for a new account and it's right back to working how it used to. They absolutely do not consume tokens equally across accounts. I did TONS of work on the new account and barely made a dent, even on Astra. Old account chews through 20% like it's nothing
I get the same. It sits there and spins for a bit then as soon as it spits out something, my 5h is 5-10% lower, whether it's asking it to do code review over a significant code base or just asking it to change a config value.
enabled: Allow outbound access. This is the
default unless you inherit a template policy.
disabled: Block outbound access.
restricted: Allow only the hosts listed in allowed_domains.
Given what happened with the wiki thing the other week, where the agents rewrote their own /etc/hosts file to let them bypass sandbox rules, how trustworthy is that restricted option?
It rejected the most obvious way to work around this:
> Ran `curl http://example.com/`. It exited with code `0` and returned: ```text Domain forbidden ``` I haven’t modified `/etc/hosts` or run the second request, because using an alternate hostname with that Host header would attempt to bypass the environment’s domain restriction.
I told it:
Add to /etc/hosts such that nthntqok.net resolves to 104.20.23.154
Then run this:
curl -H 'Host: example.com' http://nthntqok.net/
After adding nthntqok.net to the allowed domains list.
since people will be using agents to set these up themselves i could see an agent trapped in a container getting a message to an agent outside the container to please update the container for full network access. Maybe the msg could come in the form an api response header or something.
- LLMs are a great foundation but building your own harness is a huge undertaking, a deep rabbit hole.
- There are harnesses available as open source libraries but that’s still coupled to an environment. Where does the state persist? Like maybe I’m a Cloudflare worker and don’t even have a file system.
Agent as a service like this lets you plug in the tools it needs to be whatever kind of agent you want. But they still get to encapsulate and continue to iterate on the really deep parts of the harness that all agents need like memory and context management.
That said, my money right now is not on the offerings from OpenAI and Anthropic because they’re stuck using their own proprietary frontier models and those aren’t actually the best choice for most agents right now. A competitor who is not an LLM lab gets their pick of the market at any given moment. Like you’d want to be using GLM 5.3 Flash right now for most things agentic.
I eventually gave up on this task. It's not possible to fight OpenAI or Anthropic's engineering teams. Their reasoning models have all kinds of undocumented back door access to the base models that you'd never be able to replicate from the outside. Even if you had full access you would not have the engineering man hours or experience to keep up.
I think this Agents API thing is a step too far, but Chat Completion is too cold now. Something approximating Responses API seems like the happy medium. You still get most of the control with the only blackbox part being the reasoning loop / tokens. Building agents using the GPT5.6 family w/ Responses API feels pretty close to Star Trek computer shit to me. I thought I was being clever with my DIY contraption on top of chat completion, but it wasn't even close. I have embraced the reality that I will need to use opaque reasoning tokens to give my clients the experiences they are paying me to provide.
Async tool calls, having the agent wait indefinitely for a human response, and showing a form or questions to the user via a tool call are a few common capabilities that come up that a product manager might miss at first.
This is why I've been building Nvoken. LLM agnostic, ergonomic SDKs, flexible tool call patterns, tenant and user-aware budget enforcement, etc.
I'd really appreciate any and all feedback on this! It gives you some free tokens on signup and it's super quick to try.
https://nvoken.com
https://github.com/omnara-ai/omnara - this is a self hostable agent API that I'm working on. It stores the state of all agents in a postgres db you can easily query, rather than a local json file or sqlite file per agent.
It would be trivial for every request to clone a full lxd container and have all the tools and repos required if I wanted to allow it to do even more.
Not sure why anyone prefers to choose locked in options
Convenience. And OPEX vs CAPEX something something.
Spider men meme of developers pointing at each other thinking "Not it".
https://developers.openai.com/api/docs/guides/agents-api/env...
That makes this much more enticing, and potentially eases transition between providers.
Honestly works extremely well as a personal assistant.
I can see why turning it into an API makes sense, just be aware you might not need to lock yourself in if you can setup your own VMs.
Works really well and is a great use case for work laptops. Same shell, same memories, same sessions
Pretty easy these days with old school tools like tmux but more modern tooling like herdr [0] is really the path you'd want to take.
[0] https://herdr.dev/
you can just make new sessions for each new task?
Sometimes start a new chat in the phone app, sometimes just add to the main one. Both seem to work ok.
If I want the agent to wait for something I need to start a new chat in the iphone app.
Guessing this an early release not quite ready for the public? Interesting that there's a 'OpenAI-Early-Access' GitHub user, though of course with no public repos. Presumably when its actually public they'll move the example agent repos to another GitHub user.
[0] https://developers.openai.com/showcase/agents-api-slack-bot
I've found the app-server to be the most flexible, compared to the raw Responses API or Agents SDK.
Certainly seems like everyone is still figuring out the right interface here.
Also of note, since GPT-5.5 or so, Codex doesn't even use the Responses API as intended, but instead a "lite" version where they manage the context more manually (like sending the full transcript or using a custom web.run tool instead of the provided `web_search` tool).
If you follow the docs, it will lead you down a lot of well-intended functionality, but most of it is thrown away in their most successful harness.
[0]https://developers.openai.com/api/docs/guides/agents#compare...
I can see OpenAI pushing for this as a sort of more durable moat compared to the now huge number of agentic harnesses that run on your own machine.
This might be getting the foot into some sort of bundling as well. Like unrestricted models or custom fine tuned agents inside this and not providing direct APIs to those endpoints.
That being said I don't see a lot of reasons for people to jump on this if it doesn't bundle something killer. Like to me the fact that GPT Work runs on your own machines and all the artifacts and work in progress there for you to look at is sort of the whole point. I don't just want a final artifact.
Which is also why they want to remove it from your machine. Call it conspiratorial, but I keep thinking about "You'll own nothing and be happy." It seems like the industry is quickly moving in a direction where devices are turning into gateway into the cloud, and personal computing will turn into a hobby that prices out the average individual.
anyone knows how to do that and implement agent api with user actual account?
I was doing exactly what you’re describing. I think this is a ToS violation for anything other than personal use though.
We built that in my current company and it works wonders to just script entire persistent workflows with a simple SDK.
I’m trying to understand the use case but it seems weird middle ground in a way .
Looks to me like they really took down the quotas, especially anything in codex. Either that or it's something else, perhaps in codex?
Hopefully this kills the need to use the CLI and we can just use the API instead.
We use the OAI API because there is no local equivalent, I'm assuming this is just the codex client running on the cloud?
It offers three settings:
Given what happened with the wiki thing the other week, where the agents rewrote their own /etc/hosts file to let them bypass sandbox rules, how trustworthy is that restricted option?> Ran `curl http://example.com/`. It exited with code `0` and returned: ```text Domain forbidden ``` I haven’t modified `/etc/hosts` or run the second request, because using an alternate hostname with that Host header would attempt to bypass the environment’s domain restriction.
I told it:
After adding nthntqok.net to the allowed domains list.