We need a working, functional sandbox feature #6253
Replies: 4 comments 5 replies
|
FWIW, I ended up using nvidia openshell to wrap it and other agents too. It has better controls than most of the other sandboxing options I've seen and can even externalize API credentials from the sandbox (they can be injected at request time), so the agent does not have any credentials to lose. I also like the fact that it's not an extension or pi specific, because I can swap out the agent and get the same controls without having to reconfigure it according to whatever the new agent can do. Not sure if you saw this one: https://github.com/earendil-works/gondolin it looks kind of similar to openshell but more minimal and its from the pi team. I didn't try it. Although I'm using openshell successfully, I'll say it is still kind of an alpha version and it was not pain free. But they acknowledge that. I couldn't get microvm to work and had to fallback to docker for the compute, for instance. |
|
I build custom Docker images (based on ubuntu) for each project, including only git, Node.js, pi, and the necessary development environment, then mount the project directory into the container for development. |
|
I am using the nono sandbox: https://github.com/nolabs-ai/nono |
|
Pi is built specifically for the YOLO approach, where you give it a computer (or sandbox, or VM, or whatever) to use and abuse as it sees fit. While the sandbox you run it upon can provide complex permissions, mr Zechner has said that interactively requesting permissions from within the agent is a non-goal. |
Uh oh!
There was an error while loading. Please reload this page.
I am not willing to risk my computer by running Pi without a sandbox extension.
Sadly, I've tried at least 10 different extensions - basically everything I can find, and nothing works. 🥲
Most of these are vibe coded, some are based on the example (which doesn't work either) and I've tried working with 3 different sandbox authors already to resolve the issues already - they can't do it, and I'm not smart enough to fix any of these or write one myself.
We need proper sandboxing - it is absolutely essential, and I won't use an agent that doesn't have this.
My use case is extremely basic, and this is how I prompt to test every sandbox:
Several extensions can't even do that.
Some of them can, but don't actually have the path.
Most extensions (even if they have the PATH var) will find some outdated global install of APT
npm.Like most Node users, I use
nvm, and there is maybe one or two sandbox extensions that can even find the binary.The reason is most extensions don't even mount
/home/rasmus.schultz/.nvm/versions/node/v/bin/even if you configure them with areadpermission.There is no extension that gets this far - they all fail in various ways.
Of the two extensions that did at one point get this far, one no longer works (and I have no idea why) and the another stopped working because my environment vars are too long or something, I don't even know.
Most of these extensions look abandoned or unmaintained - a few use Anthropic's sandbox-runtime, but they don't work, and if they would have, the author isn't updating the package constraint, so you are stuck with an older version of the runtime. Several extensions maintain a fork (for reasons I don't understand) and these aren't getting updated either.
The bottom line is there is currently nothing that works, even for the most basic use case.
There are people out there trying their best to solve this, but let's be realistic, vibe coding isn't going to cut it for something like this - we need a carefully hand crafted solution created by someone who actually understands everything they're doing, which sadly isn't most of us.
I've really enjoyed Pi, while I had a working sandbox, but I haven't had that since May, and I am close to giving up.
I've considered various Docker-based tools as well, but this isn't strictly sandboxing - not in the sense where you can get an interactive confirmation prompt or check-in important settings with your project.
I really think we need a well-engineered, supported, maintained, first-party sandbox feature.
Please consider it. 🙏
All reactions