Skip to main content

SteerPlane SDK

Runtime guardrails for autonomous AI agents.

Cost limits · Loop detection · Dual enforcement (Kill/Alert) · SSE streaming gateway · Policy engine · Human-in-the-loop · CLI · Docker · 4 framework integrations

PyPI License Python

Install

pip install steerplane            # Core SDK
pip install steerplane[cli]       # + CLI tool
pip install steerplane[all]       # + CLI + YAML config + LangChain

Quick Start

Option 1: Gateway Mode (Zero Code Changes)

Point your existing OpenAI client to SteerPlane. Every LLM call is automatically monitored, rate-limited, and cost-tracked — including SSE streaming with mid-stream cost enforcement.

import openai

client = openai.OpenAI(
    base_url="http://localhost:8000/gateway/v1",
    api_key="sk_sp_...",  # SteerPlane API key
    default_headers={"X-LLM-API-Key": "sk-..."}
)

# All calls — including stream=True — are now guarded.
response = client.chat.completions.create(
    model="gpt-4o-mini",
    messages=[{"role": "user", "content": "Hello"}],
    stream=True  # SSE streaming with real-time cost tracking
)

Option 2: Decorator Mode

from steerplane import guard

@guard(
    agent_name="support_bot",
    max_cost_usd=10.00,
    max_steps=50,
    denied_actions=["DROP TABLE*", "rm -rf *"],
    rate_limits=[{"pattern": "send_email", "max_count": 5, "window_seconds": 60}],
    require_approval=["execute_trade*"]
)
def run_agent():
    agent.run()

Option 3: Context Manager

from steerplane import SteerPlane

sp = SteerPlane(agent_id="my_bot")

with sp.run(max_cost_usd=10.0, max_steps=50) as run:
    run.log_step("query_db", tokens=380, cost=0.002, latency_ms=45)
    run.log_step("generate_response", tokens=1240, cost=0.008, latency_ms=320)

What's New in v0.4.0

🌊 SSE Streaming Gateway

The AI Gateway now supports Server-Sent Events (SSE) streaming. It accumulates token costs per chunk in real time and can terminate a stream mid-response by injecting a steerplane_enforcement event when the cost ceiling is breached — without corrupting the SSE protocol.

🖥️ CLI Tool

steerplane status              # Check API health
steerplane runs list           # List recent runs
steerplane runs inspect <id>   # Inspect a run
steerplane runs kill <id>      # Kill a running agent
steerplane keys list           # List API keys
steerplane keys create         # Create new gateway key
steerplane logs --tail         # Live log stream

🐳 Docker Compose

Full 3-service production stack in one command:

docker compose up -d
# API (8000) + Dashboard (3000) + PostgreSQL (5432)

📄 Config File (.steerplane.yml)

Project-level defaults auto-discovered from your working directory:

api_url: http://localhost:8000
agent_name: my_bot
max_cost_usd: 10.0
max_steps: 100
detect_loops: true

🔌 Framework Integrations

Native support for 4 frameworks — all use lazy imports, so framework dependencies are only required when used:

LangChain:

from steerplane.integrations import SteerPlaneLangChainHandler
handler = SteerPlaneLangChainHandler(agent_name="lc_bot", max_cost_usd=5.0)
llm = ChatOpenAI(model="gpt-4o-mini", callbacks=[handler])

OpenAI Agents SDK:

from steerplane.integrations import SteerPlaneAgentHooks
hooks = SteerPlaneAgentHooks(agent_name="openai_agent", max_cost_usd=10.0)

CrewAI:

from steerplane.integrations import SteerPlaneCrewMonitor
monitor = SteerPlaneCrewMonitor(agent_name="crew_bot", max_cost_usd=15.0)

AutoGen:

from steerplane.integrations import SteerPlaneAutoGenMonitor
monitor = SteerPlaneAutoGenMonitor(agent_name="autogen_bot", max_cost_usd=10.0)

All Features

Feature Description
🌉 AI Gateway Proxy OpenAI-compatible proxy. Point your client, get instant monitoring.
🌊 SSE Streaming Real-time chunk forwarding with mid-stream cost enforcement.
🛡️ Policy Engine Allow/deny rules, sliding-window rate limits, human-approval callbacks.
🔄 Loop Detection Sliding-window pattern detector catches infinite agent loops.
💰 Hard Cost Ceiling Per-run and monthly USD limits across 25+ LLM models.
🚫 Step Limits Cap maximum execution steps.
📊 Deep Telemetry Tokens, cost, latency per step — synced to the dashboard.
🛡️ Graceful Degradation API down? SDK still enforces guards locally.
🖥️ CLI Tool steerplane status, runs, keys, logs from terminal.
🐳 Docker Compose 3-service production stack in one command.
📄 Config File .steerplane.yml for project-level defaults.
🔌 4 Integrations LangChain, OpenAI Agents SDK, CrewAI, AutoGen.

Architecture

┌─────────────┐     ┌──────────────┐     ┌────────────┐     ┌───────────────┐
│  AI Agent   │────▶│ SteerPlane   │────▶│  FastAPI    │────▶│  PostgreSQL   │
│  (Your App) │     │  SDK / GW    │     │  Server     │     │  Database     │
└─────────────┘     └──────────────┘     └────────────┘     └───────────────┘
                                                │
                                                ▼
                                         ┌───────────────┐
                                         │   Next.js     │
                                         │   Dashboard   │
                                         └───────────────┘

Tech Stack

Component Technology
Python SDK Python 3.10+, Decorator/Context Manager API, CLI, Config files
TypeScript SDK TypeScript, guard() wrapper, npm-ready
Gateway FastAPI + httpx, SSE streaming, 25+ model pricing
API FastAPI, Alembic migrations, OpenAPI docs
Database PostgreSQL 17 + SQLAlchemy ORM
Infrastructure Docker Compose (API + Dashboard + PostgreSQL)
CI/CD GitHub Actions (lint, test, Docker build)
Dashboard Next.js 16, React 19, Framer Motion

Links

License

MIT — Patent Pending

Release files for steerplane 1.0.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for steerplane 1.0.0
File Size Uploaded
steerplane-1.0.0.tar.gz 42.1 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for steerplane 1.0.0
File Interpreter ABI Platform
steerplane-1.0.0-py3-none-any.whl Python 3 none any Details

Total release size: 85.8 kB

Release files / steerplane-1.0.0.tar.gz

Download URL steerplane-1.0.0.tar.gz
Size 42.1 kB
Tags Source
SHA-256 checksum
How to use checksums
ec7df7f714925a856e3a42492a12b64d37948f659d6e9c4515139809e8cdd9f7
BLAKE2b-256 checksum
How to use checksums
591708ab64c369d55549d5332489d97e57b431b1bf6674978f672d99b9366c4c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.7

Release files / steerplane-1.0.0-py3-none-any.whl

Download URL steerplane-1.0.0-py3-none-any.whl
Size 43.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
c9cdd75f10781ec968ccc807d1d7f85af0b240b20fc9634ae4424686d22cfbfe
BLAKE2b-256 checksum
How to use checksums
5065c21573e5257a199eaa07a21096db30e6bbb7d4c1668733ac8693d232c4bf
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.7

Release history Release notifications | RSS feed

This release

1.0.0 This release

2 release files

0.4.1

2 release files

0.4.0

2 release files

0.3.0

2 release files

0.2.0

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page