Skip to main content

Python SDK for ACT components

Project description

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

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

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.

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