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.5.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.5-py3-none-any.whl (5.0 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: sandflare_autogen-0.1.5.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.5.tar.gz
Algorithm Hash digest
SHA256 4805de323b61c6b817b15a8d5103bbe8c3dc627b5f928ca7aebff9dcaa5f0172
MD5 2a4c765483b2ab584c319f556290c9d5
BLAKE2b-256 23c24dd1fd174dd09735373073bb27e9f501d58f9d3e7f5af0d9da4462745579

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for sandflare_autogen-0.1.5-py3-none-any.whl
Algorithm Hash digest
SHA256 da8763453880073628beac3a7febea1bb9fe0ffd74424d87ee58d9f8f7f69d62
MD5 4a5ed3202af3cb08dc1da2bb43e42cde
BLAKE2b-256 b0c360cec9c1717982b2c77ad0e18e5dc2a473e27c9b62705f3a72a161e8d34f

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