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

Uploaded Python 3

File details

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

File metadata

  • Download URL: sandflare_autogen-0.1.4.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.4.tar.gz
Algorithm Hash digest
SHA256 aaf69021e3684998e0f0b19775279e13e9e969c16299150ff84a0348b47a03e1
MD5 a973b477b8cb917865bcc1f69f75f141
BLAKE2b-256 e5b4c1765f34e66293cef9890b1e2a766757327d52a1b9fb426a2fc3bf4b79d5

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for sandflare_autogen-0.1.4-py3-none-any.whl
Algorithm Hash digest
SHA256 06f3ab86b8cf558cfbbb174623ba5b04d5a6e0c7c651b2cf9c7809ca9e2b99f6
MD5 438543f203096c0537c569fba6222d5d
BLAKE2b-256 6cfa07da066305c93f07324b3ccc768978c970bad456b7ca78a48653d3c36933

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