Features
Sandbox
Execute code in isolated environments
Sandbox provides secure, isolated containers for executing shell commands.
Agentic Sandbox Tools
Give your agent command execution with pre-built tools.
Quick Start
Create a sandbox
import os
from acontext import AcontextClient
client = AcontextClient(api_key=os.getenv("ACONTEXT_API_KEY"))
sandbox = client.sandboxes.create()import { AcontextClient } from '@acontext/acontext';
const client = new AcontextClient({
apiKey: process.env.ACONTEXT_API_KEY,
});
const sandbox = await client.sandboxes.create();Execute commands
result = client.sandboxes.exec_command(
sandbox_id=sandbox.sandbox_id,
command="echo 'Hello!' && python3 --version"
)
print(f"stdout: {result.stdout}")
print(f"exit_code: {result.exit_code}")const result = await client.sandboxes.execCommand({
sandboxId: sandbox.sandbox_id,
command: "echo 'Hello!' && python3 --version",
});
console.log(`stdout: ${result.stdout}`);
console.log(`exit_code: ${result.exit_code}`);Kill sandbox
client.sandboxes.kill(sandbox.sandbox_id)await client.sandboxes.kill(sandbox.sandbox_id);Disk Integration
Transfer files between disk and sandbox:
Setup
from acontext import FileUpload
disk = client.disks.create()
sandbox = client.sandboxes.create()
# Upload file to disk
client.disks.artifacts.upsert(
disk.id,
file=FileUpload(filename="input.txt", content=b"Line 1\nLine 2"),
file_path="/input/"
)import { FileUpload } from '@acontext/acontext';
const disk = await client.disks.create();
const sandbox = await client.sandboxes.create();
// Upload file to disk
await client.disks.artifacts.upsert(disk.id, {
file: new FileUpload({
filename: "input.txt",
content: Buffer.from("Line 1\nLine 2"),
}),
filePath: "/input/",
});Download to sandbox
client.disks.artifacts.download_to_sandbox(
disk_id=disk.id,
file_path="/input/",
filename="input.txt",
sandbox_id=sandbox.sandbox_id,
sandbox_path="/workspace/"
)await client.disks.artifacts.downloadToSandbox(disk.id, {
filePath: "/input/",
filename: "input.txt",
sandboxId: sandbox.sandbox_id,
sandboxPath: "/workspace/",
});Process in sandbox
client.sandboxes.exec_command(
sandbox_id=sandbox.sandbox_id,
command="wc -l /workspace/input.txt > /workspace/output.txt"
)await client.sandboxes.execCommand({
sandboxId: sandbox.sandbox_id,
command: "wc -l /workspace/input.txt > /workspace/output.txt",
});Upload result to disk
client.disks.artifacts.upload_from_sandbox(
disk_id=disk.id,
sandbox_id=sandbox.sandbox_id,
sandbox_path="/workspace/",
sandbox_filename="output.txt",
file_path="/output/"
)await client.disks.artifacts.uploadFromSandbox(disk.id, {
sandboxId: sandbox.sandbox_id,
sandboxPath: "/workspace/",
sandboxFilename: "output.txt",
filePath: "/output/",
});Clean up
client.sandboxes.kill(sandbox.sandbox_id)
# Disk persists after sandbox is killedawait client.sandboxes.kill(sandbox.sandbox_id);
// Disk persists after sandbox is killedNext Steps
Last updated on