This release is a pre-release and may not be stable for production use.
agent-framework-hyperlight
Alpha Hyperlight-backed CodeAct integrations for Microsoft Agent Framework.
Installation
pip install agent-framework-hyperlight --pre
This package depends on hyperlight-sandbox, the packaged Python guest, and the
Wasm backend package on supported platforms. If the backend is not published for
your current platform yet, execute_code will fail at runtime when it tries to
create the sandbox.
Quick start
Context provider (recommended)
Use HyperlightCodeActProvider to automatically inject the execute_code tool
and CodeAct instructions into every agent run. Tools registered on the provider
are available inside the sandbox via call_tool(...) but are not exposed as
direct agent tools.
from agent_framework import Agent, tool
from agent_framework_hyperlight import HyperlightCodeActProvider
@tool
def compute(operation: str, a: float, b: float) -> float:
"""Perform a math operation."""
ops = {"add": a + b, "subtract": a - b, "multiply": a * b, "divide": a / b}
return ops[operation]
codeact = HyperlightCodeActProvider(
tools=[compute],
approval_mode="never_require",
)
agent = Agent(
client=client,
name="CodeActAgent",
instructions="You are a helpful assistant.",
context_providers=[codeact],
)
result = await agent.run("Multiply 6 by 7 using execute_code.")
Standalone tool
Use HyperlightExecuteCodeTool directly when you want full control over how the
tool is added to the agent. This is useful when mixing sandbox tools with
direct-only tools on the same agent.
from agent_framework import Agent, tool
from agent_framework_hyperlight import HyperlightExecuteCodeTool
@tool
def send_email(to: str, subject: str, body: str) -> str:
"""Send an email (direct-only, not available inside the sandbox)."""
return f"Email sent to {to}"
execute_code = HyperlightExecuteCodeTool(
tools=[compute],
approval_mode="never_require",
)
agent = Agent(
client=client,
name="MixedToolsAgent",
instructions="You are a helpful assistant.",
tools=[send_email, execute_code],
)
Manual static wiring
For fixed configurations where provider lifecycle overhead is unnecessary, build the CodeAct instructions once and pass them to the agent at construction time:
execute_code = HyperlightExecuteCodeTool(
tools=[compute],
approval_mode="never_require",
)
codeact_instructions = execute_code.build_instructions(tools_visible_to_model=False)
agent = Agent(
client=client,
name="StaticWiringAgent",
instructions=f"You are a helpful assistant.\n\n{codeact_instructions}",
tools=[execute_code],
)
File mounts and network access
Mount host directories into the sandbox and allow outbound HTTP to specific domains:
from agent_framework_hyperlight import HyperlightCodeActProvider, FileMount
codeact = HyperlightCodeActProvider(
tools=[compute],
file_mounts=[
"/host/data", # shorthand — same path in sandbox
("/host/models", "/sandbox/models"), # explicit host → sandbox mapping
FileMount("/host/config", "/sandbox/config"), # named tuple
],
allowed_domains=[
"api.github.com", # all methods
("internal.api.example.com", "GET"), # GET only
],
)
Notes
- This package is intentionally separate from
agent-framework-coreso CodeAct usage and installation remain optional. - Alpha-package samples live under
packages/hyperlight/samples/. file_mountsaccepts a single string shorthand, an explicit(host_path, mount_path)pair, or aFileMountnamed tuple. The host-side path in the explicit forms may be astrorPath. Use the explicit two-value form when the host path differs from the sandbox path.allowed_domainsaccepts a single string target such as"github.com"to allow all backend-supported methods, an explicit(target, method_or_methods)tuple such as("github.com", "GET"), or anAllowedDomainnamed tuple.- Tools registered with the sandbox return their native Python value
(
dict,list, primitives, or custom objects) directly to the guest via the Hyperlight FFI. Anyresult_parserconfigured on aFunctionToolis intended for LLM-facing consumers and does not run on the sandbox path — apply formatting inside the tool function itself if you need it for in-sandbox consumers.
Release files for agent-framework-hyperlight 1.0.0a260424
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| agent_framework_hyperlight-1.0.0a260424.tar.gz | 16.5 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| agent_framework_hyperlight-1.0.0a260424-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 33.5 kB
Release files / agent_framework_hyperlight-1.0.0a260424.tar.gz
| Download URL | agent_framework_hyperlight-1.0.0a260424.tar.gz |
|---|---|
| Size | 16.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
0ed051cf9b5f6fb032f2aa58d3db30492fc0ccee54b667eb5dee2e436b202a29
|
|
BLAKE2b-256 checksum How to use checksums |
1dba3ba70bff28a83ba52d6d186ed5a12283ea71ec06c71ba6d20aeccf9919b6
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.11.3 {"installer":{"name":"uv","version":"0.11.3","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Release files / agent_framework_hyperlight-1.0.0a260424-py3-none-any.whl
| Download URL | agent_framework_hyperlight-1.0.0a260424-py3-none-any.whl |
|---|---|
| Size | 17.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
e642ee8470a959e0809fb5613bb710d8228624eb6f51d394bf66b4d7c70c2265
|
|
BLAKE2b-256 checksum How to use checksums |
3bee62fac3774d720d6bb4846d157e073eee666f8a03ba17a15c49c65637966b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.11.3 {"installer":{"name":"uv","version":"0.11.3","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|