Skip to main content

AutoGen code executor for Sandflare Firecracker microVM sandboxes — run agent-generated code safely

Project description

sandflare-autogen

AutoGen CodeExecutor that runs agent-generated code in isolated Sandflare Firecracker microVM sandboxes.

Installation

pip install sandflare-autogen

Usage

Basic — SandflareCodeExecutor

Each execute_code_blocks() call runs in the same sandbox. The sandbox is destroyed when stop() is called or the context manager exits.

from sandflare_autogen import SandflareCodeExecutor
from autogen.coding import CodeBlock

with SandflareCodeExecutor(api_key="pa_live_...") as executor:
    result = executor.execute_code_blocks([
        CodeBlock(code="print('hello from Firecracker!')", language="python")
    ])
    print(result.output)
    # hello from Firecracker!

Set SANDFLARE_API_KEY in your environment to omit the api_key argument.

Persistent State — SandflarePersistentExecutor

Variables, imports, and installed packages are preserved between calls via a persistent Jupyter kernel.

from sandflare_autogen import SandflarePersistentExecutor
from autogen.coding import CodeBlock

with SandflarePersistentExecutor() as executor:
    executor.execute_code_blocks([
        CodeBlock(code="import numpy as np\nx = np.array([1, 2, 3])", language="python")
    ])
    result = executor.execute_code_blocks([
        CodeBlock(code="print(x.mean())", language="python")
    ])
    print(result.output)  # 2.0

ConversableAgent Example

from sandflare_autogen import SandflareCodeExecutor
from autogen import ConversableAgent

with SandflareCodeExecutor(api_key="pa_live_...") as executor:
    agent = ConversableAgent(
        name="coder",
        llm_config={"model": "gpt-4o", "api_key": "sk-..."},
        code_execution_config={"executor": executor},
    )
    user = ConversableAgent(
        name="user",
        human_input_mode="NEVER",
        is_termination_msg=lambda x: x.get("content", "").rstrip().endswith("TERMINATE"),
    )
    user.initiate_chat(
        agent,
        message="Write Python code to find the 50th prime number. Reply TERMINATE when done.",
    )

Constructor Options

Parameter Type Default Description
api_key str env var Sandflare API key (SANDFLARE_API_KEY)
template_id str "" Sandbox template ID (empty = base Ubuntu + Python 3)
size str "small" VM size: nano, small, medium, large, xl
timeout int 60 Per-execution timeout in seconds
persistent bool False Preserve sandbox state across restart() calls
base_url str None Override API base URL (self-hosted deployments)
env dict {} Environment variables injected into the sandbox

Docs

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

sandflare_autogen-0.1.2.tar.gz (4.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

sandflare_autogen-0.1.2-py3-none-any.whl (5.1 kB view details)

Uploaded Python 3

File details

Details for the file sandflare_autogen-0.1.2.tar.gz.

File metadata

  • Download URL: sandflare_autogen-0.1.2.tar.gz
  • Upload date:
  • Size: 4.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for sandflare_autogen-0.1.2.tar.gz
Algorithm Hash digest
SHA256 d6839c0f70838bc5c3ee8ab0d820856b6d060a3fff49b7379a20d9af7989510c
MD5 5a0c5178961b6d3d57ba20dcdce9a78c
BLAKE2b-256 269e15ecf89bbaee6a5cecdccbb09fac9552b34abece8a94456ef3a591d45597

See more details on using hashes here.

File details

Details for the file sandflare_autogen-0.1.2-py3-none-any.whl.

File metadata

File hashes

Hashes for sandflare_autogen-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 66d07ff62ec6b7b3654a844f689d375350932afa72fbac9621073a07fa4521f4
MD5 e0a16cd480a118c4c41f00cac21d5d3f
BLAKE2b-256 11bc55fa2b6095bdd9a9bcea670d3980078efe8fa0ac6c97dc076e990a3b1c74

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page