Skip to main content

agents24

Last Updated: 2026-07-15

Unified Python SDK for Agents24.

Interrupted runs use the strict V2 resume envelope: schema_version = "agents24.hitl.resume.v2", one exact interrupt_id, one approve | reject | connect | skip action, and an optional comment. Reattach after every successful or idempotent resolution.

Endpoint methods are generated from packages/agents24-sdk-contract/agents24.sdk.json. Do not edit files under agents24/generated/ directly. For SDK maintenance, see docs/references/agents24_sdk_development_guide.md.

from agents24 import Agents24

client = Agents24(
    base_url="http://localhost:8000",
    api_key="tpk_...",
    organization_id="org-id",
)

agent = client.agent({
    "name": "Support Agent",
    "instructions": "Answer briefly.",
}).create()

client.agents.publish(agent["id"])

Published-Agent Runtime

Use client.embed from server code to call a published agent through the public embed runtime:

def on_event(event):
    print(event["event"])

result = client.embed.stream_agent(
    "published-agent-id",
    {
        "input": "Help me with my account.",
        "external_user_id": "customer-user-123",
    },
    on_event=on_event,
)

The namespace also includes thread detail/delete, run-context, cancel, and attachment-upload methods.

Thread history can be listed for one agent or across several agents:

threads = client.embed.list_agent_threads(
    "published-agent-id",
    external_user_id="customer-user-123",
)

sidebar_threads = client.embed.list_agent_threads_multi({
    "agent_ids": ["agent-a", "agent-b"],
    "external_user_id": "customer-user-123",
})

Async backends can use AsyncAgents24.embed.list_agent_threads_multi(agent_ids, external_user_id=...).

Artifact Authoring

Artifact code imports lightweight helpers from agents24.artifacts:

from pydantic import BaseModel, Field

from agents24.artifacts import tool


class EchoInput(BaseModel):
    text: str = Field(description="Text to echo.")


class EchoOutput(BaseModel):
    text: str


@tool(
    name="echo",
    input_schema=EchoInput,
    output_schema=EchoOutput,
)
async def echo(input, config, context):
    return {"text": input["text"]}

The agents24.artifacts module is transport-free and safe for artifact runtime code. If artifact code imports Pydantic, declare pydantic as an artifact dependency.

Self-hosted Python services can expose decorated tools through the framework-neutral server helper:

from agents24.server import create_artifact_server

server = create_artifact_server(
    exports=[echo],
    signing_secret="shared-environment-secret",
)

manifest = server.manifest()
health = server.health()
response = await server.invoke(body=request_body, headers=request_headers)

Use a built-in adapter when the SDK should create the application and mount the protocol routes:

from agents24.server_adapters import create_artifact_fastapi_app

app = create_artifact_fastapi_app(
    exports=[echo],
    signing_secret="shared-environment-secret",
)

Adapters are available for FastAPI, Starlette, Flask, Django urlpatterns, and aiohttp. Application adapters create a new app by default or mount into an existing app passed as app=. Install only the selected extra, for example agents24[fastapi]; agents24[server] installs every supported framework adapter.

For custom providers, keep using ArtifactServer directly or wrap create_artifact_asgi_app() / create_artifact_wsgi_app(). server.routes() exposes the canonical method/path list and await server.dispatch(...) provides framework-independent routing and normalized JSON responses.

Development

pnpm run generate:sdk
pnpm run check:sdk-contract
pnpm run test:agents24-python

Generated endpoint methods must stay in parity with the TypeScript @agents24/sdk package.

Download files

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

Source Distribution

agents24-0.2.0.tar.gz (33.1 kB view details)

Uploaded Source

Built Distribution

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

agents24-0.2.0-py3-none-any.whl (25.6 kB view details)

Uploaded Python 3

File details

Details for the file agents24-0.2.0.tar.gz.

File metadata

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

File hashes

Hashes for agents24-0.2.0.tar.gz
Algorithm Hash digest
SHA256 bffc0a03d11b48b8ea39b45bbfcc84c0a53a42bc4dd7d5ff42228422067c42ed
MD5 cb0ddc1697ece09a457f40e81c0e8c6f
BLAKE2b-256 f759a6b97fff16154c8d3f53d7fdc1dec4e917c80866c04bc16816c40c8cccd8

See more details on using hashes here.

Provenance

The following attestation bundles were made for agents24-0.2.0.tar.gz:

Publisher: agents24-sdk-release.yml on daniel5426/talmudpedia

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

File details

Details for the file agents24-0.2.0-py3-none-any.whl.

File metadata

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

File hashes

Hashes for agents24-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 cdaaad194323084ef9db23fee5e3aa5d5eb835245675113cae4a368f9d3fa631
MD5 74e06e31b0131846e94262da57a8bced
BLAKE2b-256 83528850331d52b1fdb9df854979258d3f655b79f0f344eb02739a0c2a40974a

See more details on using hashes here.

Provenance

The following attestation bundles were made for agents24-0.2.0-py3-none-any.whl:

Publisher: agents24-sdk-release.yml on daniel5426/talmudpedia

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