Skip to main content

act-sdk

Python SDK for building ACT (Agent Component Tools) components — sandboxed WASM tools for AI agents that work across MCP, HTTP, CLI, and browser hosts.

Install

Requires Python 3.14+.

uv add act-sdk
# or
pip install act-sdk

Quick start

from act_sdk import component, tool, ActError

@component
class MyComponent:
    @tool(description="Say hello", read_only=True)
    async def hello(self, name: str = "world") -> str:
        return f"Hello, {name}!"

    @tool(description="Divide two numbers")
    async def divide(self, a: float, b: float) -> float:
        if b == 0:
            raise ActError("std:invalid-args", "Cannot divide by zero")
        return a / b

Package with componentize-py + act-build pack to produce a .wasm component that exposes these tools over every ACT transport.

What you get

  • @component — declares the class as an ACT component. Generates the act:tools/tool-provider@0.2.0 WIT export.
  • @tool — declares a method as a tool. Parameters, return type, and docstrings become the JSON Schema automatically (via type hints).
  • ActError("std:kind", "message") — raise this from a tool body to produce a structured tool-error the host forwards to the caller.
  • Json[T] / Content(mime, data) — explicit return types for when you need control over the wire format; otherwise returns are CBOR-encoded.
  • Bytes(data) — a binary value. Serializes to a CBOR byte string — the {"$bytes": "<base64>"} envelope on JSON transports — and its JSON Schema is that envelope. Use it for binary tool parameters and structured byte-string results. (For a raw mime-typed blob use Content(mime, data); for an opaque octet-stream return plain bytes.)

Tool naming

Tool method names are exposed as-is (snake_case). async def get_weather(...) becomes the tool name get_weather on the wire. See the tool naming guidelines for the recommended style.

Capabilities

Declare host capabilities inline in pyproject.toml:

[project]
name = "my-component"
version = "0.1.0"
description = "..."

[tool.act.std.capabilities."wasi:http"]

act-build pack picks up [tool.act] and embeds it in the component's act:component custom section. The component cannot reach the network unless the host links wasi:http at load time. Filesystem, sockets, and other WASI capabilities follow the same pattern.

A separate act.toml also works as a last-wins override layer if you need to keep capability metadata out of your build configuration — but for most components, inline pyproject.toml is the recommended source of truth.

Links

License

MIT OR Apache-2.0

Download files

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

Source Distribution

act_sdk-0.6.0.tar.gz (39.2 kB view details)

Uploaded Source

Built Distribution

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

act_sdk-0.6.0-py3-none-any.whl (17.4 kB view details)

Uploaded Python 3

File details

Details for the file act_sdk-0.6.0.tar.gz.

File metadata

  • Download URL: act_sdk-0.6.0.tar.gz
  • Upload date:
  • Size: 39.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for act_sdk-0.6.0.tar.gz
Algorithm Hash digest
SHA256 6a6e78b25c824a70edebbbcbfa3502748d78ac94873d24e402be00f374f03242
MD5 c9950cf06e1b909fd5955955164794da
BLAKE2b-256 a90cf0c849a734df6b1f5a6d1de7c1488d9390a31f428a0d9f2cc05fc6940cf1

See more details on using hashes here.

Provenance

The following attestation bundles were made for act_sdk-0.6.0.tar.gz:

Publisher: publish.yml on actcore/act-sdk-py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file act_sdk-0.6.0-py3-none-any.whl.

File metadata

  • Download URL: act_sdk-0.6.0-py3-none-any.whl
  • Upload date:
  • Size: 17.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for act_sdk-0.6.0-py3-none-any.whl
Algorithm Hash digest
SHA256 254fb73cca775fd8dd2d10fb646282035b9c769178dc4f24a9fad4e849dec0ea
MD5 b828029e1d98a332f21bd8d63e05670c
BLAKE2b-256 d773494dd31d74baba67f8d4a2872cea423ee99e0966ab8c08e8b7b91f5da9dd

See more details on using hashes here.

Provenance

The following attestation bundles were made for act_sdk-0.6.0-py3-none-any.whl:

Publisher: publish.yml on actcore/act-sdk-py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

This release

0.6.0 This release

2 files

0.4.0

2 files

0.2.0

2 files

0.1.1

2 files

0.1.0

2 files

Supported by

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