You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit 3020d0c
Browse filesBrowse the repository at this point in the historyBrowse files
[agentOS](/agentos/docs) needs no provider account. For <ahref="https://e2b.dev"target="_blank"rel="noopener noreferrer">E2B</a>, install `e2b` and set `E2B_API_KEY`. For <ahref="https://daytona.io"target="_blank"rel="noopener noreferrer">Daytona</a>, install `@daytonaio/sdk` and set `DAYTONA_API_KEY`. See [Sandboxes](/agents/docs/sandboxes).
100
+
[agentOS](/agentos/docs) needs no provider account. For <ahref="https://e2b.dev"target="_blank"rel="noopener noreferrer">E2B</a>, install `e2b` and set `E2B_API_KEY`. For <ahref="https://daytona.io"target="_blank"rel="noopener noreferrer">Daytona</a>, install `@daytonaio/sdk` and set `DAYTONA_API_KEY`. For <ahref="https://freestyle.sh"target="_blank"rel="noopener noreferrer">Freestyle</a>, install `freestyle` and set `FREESTYLE_API_KEY`. See [Sandboxes](/agents/docs/sandboxes).
Copy file name to clipboardExpand all lines: vendor/agents/docs/content/docs/sandboxes.mdx
+30-11Lines changed: 30 additions & 11 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,6 +1,6 @@
1
1
---
2
2
title: "Sandboxes"
3
-
description: "Run an agent without a sandbox, or give it a shell in agentOS, E2B, Daytona, or a sandbox provider you write."
3
+
description: "Run an agent without a sandbox, or give it a shell in agentOS, E2B, Daytona, Freestyle, or a sandbox provider you write."
4
4
---
5
5
6
6
An agent doesn't need a sandbox. Without one, its file tools work on files in the Actor's own database. Add a sandbox only when the agent needs a shell.
@@ -27,28 +27,30 @@ See [Built-in Tools](/agents/docs/built-in-tools) for what each tool does.
27
27
When the agent needs to run commands, such as tests or a build, pass a sandbox provider. <ahref="https://github.com/rivet-dev/agents/tree/main/packages/sandbox-adapter"target="_blank"rel="noopener noreferrer">`@rivet-dev/sandbox-adapter`</a> gives each Actor its own sandbox, and `CodingTools` run there.
28
28
29
29
<divstyle="overflow-x:auto">
30
-
<svgviewBox="0 0 676 246"role="img"aria-label="The agent Actor sends tool calls through the sandbox adapter, which creates and connects to one sandbox per Actor from a sandbox provider: agentOS, E2B, or Daytona."style="width:100%;min-width:520px;max-width:676px;height:auto;display:block;margin:2.5rem auto;font-family:system-ui,sans-serif">
30
+
<svgviewBox="0 0 676 306"role="img"aria-label="The agent Actor sends tool calls through the sandbox adapter, which creates and connects to one sandbox per Actor from a sandbox provider: agentOS, E2B, Daytona, or Freestyle."style="width:100%;min-width:520px;max-width:676px;height:auto;display:block;margin:2.5rem auto;font-family:system-ui,sans-serif">
|`create`| Options for Freestyle's `vms.create`, or a function that receives the Actor context and returns them. Required, because `firewall` is required. |
146
+
|`client`| A Freestyle client. Defaults to `new Freestyle()`, which reads `FREESTYLE_API_KEY`. |
147
+
|`cwd`| Working directory inside the VM. Created when the Actor connects. Defaults to `/workspace`. |
148
+
149
+
A Freestyle VM has no network access until a `firewall` rule allows it. Commands run as `root` through Python 3, so the image must include it. Every `freestyle/ubuntu*` snapshot does.
150
+
132
151
## How the sandbox is managed
133
152
134
153
- The sandbox is created the first time the agent needs it.
0 commit comments