Skip to main content

Sondera Harness

Deterministic guardrails for AI agents.

Open-source. Works with LangGraph, ADK, Strands, or any custom agent.

Docs · Quickstart · Examples · Slack

PyPI version Python 3.12+ License: MIT


What is Sondera Harness?

Sondera Harness evaluates Cedar policies before your agent's actions execute. When a policy denies an action, the agent gets a reason why and can try a different approach. Same input, same verdict. Deterministic, not probabilistic.

Example policy:

forbid(principal, action, resource)
when { context has parameters_json && context.parameters_json like "*rm -rf*" };

This policy stops your agent from running rm -rf, every time.

Quickstart

Try it now: Open In Colab - no install required.

1. Install

uv add "sondera-harness[langgraph]"   # or: pip install "sondera-harness[langgraph]"

Works with LangChain/LangGraph, Google ADK, Strands, and custom agents.

2. Add to Your Agent (LangGraph)

from langchain.agents import create_agent
from sondera.harness import SonderaRemoteHarness
from sondera.langgraph import SonderaHarnessMiddleware, Strategy, create_agent_from_langchain_tools

# Analyze your tools and create agent metadata
sondera_agent = create_agent_from_langchain_tools(
    tools=my_tools,
    agent_id="langchain-agent",
    agent_name="My LangChain Agent",
    agent_description="An agent that helps with tasks",
)

# Create harness with agent
harness = SonderaRemoteHarness(agent=sondera_agent)

# Create middleware
middleware = SonderaHarnessMiddleware(
    harness=harness,
    strategy=Strategy.BLOCK,  # or Strategy.STEER
)

# Create agent with middleware
agent = create_agent(
    model=my_model,
    tools=my_tools,
    middleware=[middleware],
)

[!NOTE] This example uses Sondera Platform (free account), which also enables the TUI below. For local-only development, see CedarPolicyHarness.

3. See It in Action

Sondera TUI
uv run sondera   # or: sondera (if installed via pip)

Why Sondera Harness?

  • Steer, don't block: Denied actions include a reason. Return it to the model, and it tries something else.
  • Deterministic: Stop debugging prompts. Rules are predictable.
  • Drop-in integration: Native middleware for LangGraph, Google ADK, and Strands.
  • Full observability: Every action, every decision, every reason. Audit-ready.

Documentation

Community

License

MIT

Download files

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

Source Distribution

sondera_harness-0.10.0.tar.gz (192.0 kB view details)

Uploaded Source

Built Distribution

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

sondera_harness-0.10.0-py3-none-any.whl (208.2 kB view details)

Uploaded Python 3

File details

Details for the file sondera_harness-0.10.0.tar.gz.

File metadata

  • Download URL: sondera_harness-0.10.0.tar.gz
  • Upload date:
  • Size: 192.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for sondera_harness-0.10.0.tar.gz
Algorithm Hash digest
SHA256 c78a028ebfb95305382a5384c41a48f7f5ca6018a8f41088a9860ae3b0dbfa3c
MD5 462c4adc3fc78941455b1d06bae998a1
BLAKE2b-256 a5a84805623398618b1e557482059dae0588cf68a4475b456817b093aef583c8

See more details on using hashes here.

File details

Details for the file sondera_harness-0.10.0-py3-none-any.whl.

File metadata

File hashes

Hashes for sondera_harness-0.10.0-py3-none-any.whl
Algorithm Hash digest
SHA256 235ba512ed6dbe2e893001648e941b6b54f402454799aa288b0707d61fdfd414
MD5 527587ee2e189130675bc2ac45daa7a3
BLAKE2b-256 09fabf8d924f8886030cd70479b3e8f91d4f833b587003e60b459920e736c968

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

0.10.0 This release

2 files

0.9.1

2 files

0.9.0

2 files

0.8.1

2 files

0.8.0

2 files

0.7.1

2 files

0.7.0

2 files

0.6.3

2 files

0.6.2

2 files

0.6.1

2 files

0.6.0

2 files

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page