Skip to main content

Python SDK for Staso – observe, enforce, evaluate, and debug AI agents in production

Project description

Staso Python SDK

Observe, guard, and control your AI agents. Every tool call, LLM interaction, token count, latency, and error -- on your Staso dashboard. Guard agent actions before they execute -- block dangerous operations, modify risky inputs, escalate to humans.

pip install staso
import staso as st
from staso import guard

st.init(api_key="ak_...", agent_name="my-agent")

@st.agent(name="support-agent")
def handle_request(message: str) -> str:
    context = search_kb(message)
    return call_llm(context, message)

@st.tool(name="search_kb")
def search_kb(query: str) -> str:
    return db.search(query)

@st.tool(name="process_refund")
def process_refund(customer_id: str, amount: float) -> str:
    result = guard(tool_name="process_refund", tool_input={"amount": amount})
    if result.action == "block":
        return f"Blocked: {result.reason}"
    return do_refund(customer_id, amount)

with st.conversation("conversation-123"):
    handle_request("How do I reset my password?")

st.shutdown()

Open your dashboard. Full execution tree -- agents, tools, LLM calls, tokens, timing, errors. Guard evaluations on every tool call.

Auto-Instrument LLM Calls

pip install "staso[anthropic]"  # or "staso[openai]" or "staso[all]"
st.integrations.patch_anthropic()
# every Anthropic SDK call is now traced automatically -- tokens, model, latency, errors

st.integrations.patch_openai()
# every OpenAI SDK call is now traced automatically

Both sync and async clients. Streaming fully supported.

Guard Agent Actions

Evaluate tool calls before they execute. Four actions: allow, block, modify, escalate.

from staso import guard

result = guard(tool_name="delete_records", tool_input={"table": "users"})
if result.action == "block":
    raise PermissionError(result.reason)

Guards run automatically in Claude Code and Codex sessions -- blocking dangerous tools and modifying risky inputs in real-time. For LLM SDK integrations (Anthropic, OpenAI), guard evaluations are recorded on span metadata.

CLI Agent Integrations

Trace Claude Code (39 tool types) and Codex (32 tool types) sessions automatically. Every tool call renders as a human-readable card on your dashboard -- diffs, terminal output, agent trees, plan steps. Not raw JSON. Guards evaluate each tool before execution.

Run the interactive wizard:

staso setup

Or pass flags directly:

staso setup --target claude-code --api-key ak_... --workspace my-workspace
staso setup --target codex --api-key ak_... --workspace my-workspace

CLI Commands

staso setup                                              # interactive setup wizard
staso setup     --target claude-code --api-key ak_...    # scripted setup
staso status                                             # show what's configured
staso sync                                               # sync hooks after upgrade
staso update                                             # upgrade package + sync
staso uninstall --target codex                           # remove hooks, clean up
staso version                                            # show version info

Docs

Python 3.11+ · 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

staso-0.1.38.tar.gz (370.7 kB view details)

Uploaded Source

Built Distribution

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

staso-0.1.38-py3-none-any.whl (112.1 kB view details)

Uploaded Python 3

File details

Details for the file staso-0.1.38.tar.gz.

File metadata

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

File hashes

Hashes for staso-0.1.38.tar.gz
Algorithm Hash digest
SHA256 4a11a547c0e6df1f89977c73db6e31137eae08dfaaafea6289a46aed160edab7
MD5 262c8c621fe4dab8a117d4f52b7e7a57
BLAKE2b-256 d5bbdc5eca66a80b0ab6c83030ea9e931e46de0da6b8473e3d302fe9e35e6c6a

See more details on using hashes here.

Provenance

The following attestation bundles were made for staso-0.1.38.tar.gz:

Publisher: build_deploy_pip_registry.yml on stealth-ai-organization/agentic_leash_python_sdk

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

File details

Details for the file staso-0.1.38-py3-none-any.whl.

File metadata

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

File hashes

Hashes for staso-0.1.38-py3-none-any.whl
Algorithm Hash digest
SHA256 3d6bf1663db5ac668c833beb51bd3056a2e608834bfe41a5099c79a7f5b6bd6e
MD5 df0c453d08e7f5a066cdc98a62ec975e
BLAKE2b-256 3b03a28777d1e61d1ea0d95f02539764ab9652b5e078cf3719fdc531c9212eab

See more details on using hashes here.

Provenance

The following attestation bundles were made for staso-0.1.38-py3-none-any.whl:

Publisher: build_deploy_pip_registry.yml on stealth-ai-organization/agentic_leash_python_sdk

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