> A lot of what an agent does doesn't need a sandbox at all: thinking, calling APIs, summarizing, waiting for CI. I don’t get it. Calling an API requires a sandbox in most cases. The others could be abused in service of an un-sandboxed agent with API access. If the harness is outside the sandbox then it’s just an ambiguous and confusing security model and boundary.
The agent harness belongs outside the sandbox
41–50 of 140 posts
Re: The agent harness belongs outside the sandbox
#42A lot of this post presents false dichotomies. It assumes the existence of a sandbox that is by definition ephemeral or "cattle-like". Why? There are reasons to do that and reasons not to do that. You can have a durable computer with a network identity and full connectivity, and you can have that computer spin down and stop billing when not in use.
There are a zillion different shapes for addressing these problems, and I'm twitchy because I think people are super path-dependent right now, and it's causing them to miss a lot of valuable options.
[1]: https://fly.io/blog/tokenized-tokens/ (I work at Fly.io but the thing this post talks about is open source).
Re: The agent harness belongs outside the sandbox
#43> A lot of what an agent does doesn't need a sandbox at all: thinking, calling APIs, summarizing, waiting for CI. I don’t get it. Calling an API requires a sandbox in most cases. The others could be abused in service of an un-sandboxed agent with API access. If the harness is outside the sandbox then it’s just an ambiguous and confusing security model and boundary.
I think the confusion is that “agent” is used for two very different things:
- building an agent
- an “agent” product/runtime (Claude Code, etc)
In the first case, the model never executes anything. It just outputs something like “call this API”. Your code is the one doing it, with whatever validation you want. There’s no need for a sandbox there because there’s no arbitrary execution.
Re: The agent harness belongs outside the sandbox
#44Personally, I find it fascinating to watch how, whenever a new technology appears, people start competing to define and own its standards. Manus rebuilt its harness five times in six months. The model stayed the same, but the architecture changed five times. LangChain re-architected Deep Research four times in one year. Anthropic also ripped out Claude Code’s agent harness whenever the model improved. Ever since Mitc…
Re: The agent harness belongs outside the sandbox
#45I'm really intrigued by your point on read-memory vs a dedicated read interface, because it is a real insight about success rates in harness design.
How did you come to the conclusion you did? Could you speak a little to the evaluations you ran, or the data or anecdotes you collected to validate that decision?
I'm also curious about the overall framing of the question, which I'll challenge with, does the agent have to have a where?
An agent could be modeled by a set of states and transitions. I don't think that there's anything inherently necessary about the current "one process claude" approach for harnesses, other than convenience. Why hasn't a fully distributed harness, built on functions and tables, gained more mindshare?
Re: The agent harness belongs outside the sandbox
#46I still kind of think it’s a decent idea but it’s too close to MCP with drawbacks that make it a harder sell than MCP. It’s hard to compete on functionality from a secure sandbox if users decide they don’t care about security.
Re: The agent harness belongs outside the sandbox
#47Earlier quoted context omitted.
Author here. My definition is: you take an agent, remove the model and you’re left with the harness. Tools, memories, sandboxing, steering, etc
Clean definition, stealing it. Way better than mine: "Now imagine Claude as Shinji and Claude Code as Eva..."
Because there isn't really much more to it. And ever since we, i.e. those of us who played with ChatGPT API early on, bolted tools to it, some half a year before OpenAI woke up and officially named it "function calling" - ever since then, we knew that harness was the key. What kept changing was which logic (and how much of it) to put in explicitly, vs. pushing it back to the model on the "main thread", vs. pushing it to a model on a separate conversation track. But the basic insight remains the same.
--
[0] - Well, today - until recently you'd call it a "runner" or "runtime".
Re: The agent harness belongs outside the sandbox
#48I am not sure anyone knows what a harness is at this point. I've heard 17 different definitions of it at this point. It's almost like a buzzword in search of a problem.
Author here. My definition is: you take an agent, remove the model and you’re left with the harness. Tools, memories, sandboxing, steering, etc
Re: The agent harness belongs outside the sandbox
#49There are other models. Eschew the sandbox. Give the agent a computer, with all the trimmings, but keep that computer segregated from sensitive resources. Tokens are a solved problem: tokenize them[1] or do something equivalent with a proxy. The same thing goes for secrets. A lot of this post presents false dichotomies. It assumes the existence of a sandbox that is by definition ephemeral or "cattle-like". Why? There…
I've heard many claims that because LLMs are tuned to specific harnesses, we should expect worse performance with novel architectures. That seems to make people reluctant to try to put effort into inventing them.
Re: The agent harness belongs outside the sandbox
#50> A lot of what an agent does doesn't need a sandbox at all: thinking, calling APIs, summarizing, waiting for CI. I don’t get it. Calling an API requires a sandbox in most cases. The others could be abused in service of an un-sandboxed agent with API access. If the harness is outside the sandbox then it’s just an ambiguous and confusing security model and boundary.
I'm not following why this would this be the case? The purpose of calling the API is to get data or effect a state transition on some remote service, but I don't follow why the originating machine matters.
Or is your objection about auth?