Steer
The Active Reliability Layer for AI Agents.
Intercept hallucinations and protocol drift in runtime.
Enforce deterministic truth on probabilistic model outputs.
Mission Control: Enforcing deterministic protocols on frontier reasoning models.
Why Steer?
I built Steer because probability cannot fix probability. It provides the deterministic verification required to ship autonomous agents without performing an Agent Lobotomy (stripping features to ensure safety).
Steer functions as an Agent Service Mesh. It decouples your reliability policy from your application logic, allowing you to secure entire frameworks or specific functions with a unified protocol.
Operational Resilience
- Low-Latency Sidecar: Verification adds <5ms overhead by running in-process.
- Fail-Safe Design: Configurable behavior for internal errors to prioritize uptime.
- Zero Data Exfiltration: Local-first architecture. Traces and prompts never leave your network.
- Audit-Ready Logging: Every blocked response is logged with a deterministic reason code.
Installation
pip install steer-sdk
Integration Paths
1. The Agent Service Mesh (Global Governance)
Steer provides zero-touch reliability for frameworks like PydanticAI. Patch the framework at your application entry point to enforce a central policy across all agents.
import steer
from pydantic_ai import Agent
# Initialize the Service Mesh via a central policy file
steer.init(patch=["pydantic_ai"], config="steer_policy.yaml")
# Steer auto-detects the agent name and introspects tools/types to apply locks.
agent = Agent('openai:gpt-5.2', name="finance_bot")
result = agent.run_sync("Query Q4 revenue")
2. Sidecar Dependency Injection (Manual Control)
For custom workflows or non-framework code, use the decorator pattern. Steer automatically injects taught rules into the steer_rules argument at runtime.
from steer import capture, JsonJudge, SlopJudge
locks = [JsonJudge(), SlopJudge(entropy_threshold=3.5)]
@capture(Judges=locks)
def finance_agent(query, steer_rules=""):
# steer_rules is populated automatically from Mission Control.
# Update behavior via local UI without a code redeploy.
system = f"You are a read-only SQL analyst.\n{steer_rules}"
return model.generate(system, query)
Quickstart
Ensure you run all commands from the same directory to keep the local database synced.
steer init # Generates interactive demo agents
steer ui # Launches Mission Control at http://localhost:8000
- Fail: Run
python 01_structure_guard.py. Output shows[-] Status: Blocked. - Teach: Go to the UI. Click the incident, select Teach, and save the rule.
- Fix: Run the script again. Output shows
[+] Status: Passed.
Reality Locks in Action
The Steer workflow follows a simple loop: Catch → Teach → Fix.
1. Structure Guard (JSON)
Problem: Agent wraps JSON in Markdown backticks, breaking your parser.
Fix: Block the output and enforce raw JSON formatting via the dashboard.
2. Safety Guard (PII)
Problem: Agent accidentally leaks customer emails or internal keys despite system instructions.
Fix: Block the response and enforce redaction protocols across all agent outputs.
3. Logic Guard (Ambiguity)
Problem: Agent guesses an ambiguous city (e.g., Springfield, IL) instead of asking for clarification.
Fix: Force the agent to ask the user clarifying questions when tool results are non-unique.
4. Slop Filter (Brand Voice)
Problem: Agent uses sycophantic "AI-voice" (emojis, em-dashes, apologies) that pollutes data protocols.
The Fix: Measures Shannon Entropy of the response. If the signal is too smooth (low entropy), Steer identifies it as an aesthetic lobotomy and blocks the output.
Cookbook
Explore the cookbook/ directory for enterprise-grade implementations.
- Zero-Touch Framework Patching: Secure an entire PydanticAI agent fleet via a central policy file without decorators.
- RAG Reliability: Enforcing grounded citations and schema validity.
- SQL Security: Preventing destructive injections in analytics agents.
Data Engine: Synthetic Data for DPO
Steer transforms runtime failures into a training asset. By capturing the delta between a Blocked Response (Rejected) and a Taught Response (Chosen), Steer generates contrastive pairs for Direct Preference Optimization (DPO).
# Export pairs ready for trl or unsloth
steer export --format dpo
Production-Ready Checklist
- Pydantic v2 Compatible: Built on high-performance serialization.
- Thread-Safe: Tested for high-concurrency production environments.
- Zero Dependencies: Minimal footprint to reduce supply-chain risk.
- Local-First: No external API dependencies for core verification logic.
What is the "Confident Idiot" Problem?
The Confident Idiot is a failure mode where an LLM generates a factually incorrect or structurally broken response with high probability (confidence). Because LLMs fail silently and plausibly, traditional observability is insufficient. Steer provides the verification layer to catch these failures before they hit your users.
Metadata
Release files for steer-sdk 0.4.3
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| steer_sdk-0.4.3.tar.gz | 462.0 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| steer_sdk-0.4.3-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 942.0 kB
Release files / steer_sdk-0.4.3.tar.gz
| Download URL | steer_sdk-0.4.3.tar.gz |
|---|---|
| Size | 462.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
7a601dfa7a389be26cea7491c1460996f5ad8719d562b5de1e20952dc3b2e050
|
|
BLAKE2b-256 checksum How to use checksums |
2f75b9c9082622178d71a5855729570ac6b995da25c9fcb1bd07dc2a52228150
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
poetry/2.2.1 CPython/3.13.9 Darwin/24.6.0
|
Release files / steer_sdk-0.4.3-py3-none-any.whl
| Download URL | steer_sdk-0.4.3-py3-none-any.whl |
|---|---|
| Size | 480.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
aaf75bb9d3f90b28625aeba4e29889668267160fd7024ad0f311bf028fe10174
|
|
BLAKE2b-256 checksum How to use checksums |
c0790a4e3011a7b7034394ed5515521e9aeb6755e216138302904b22839b0c34
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
poetry/2.2.1 CPython/3.13.9 Darwin/24.6.0
|
Security for steer-sdk 0.4.3
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.