Skip to main content

Runtime security for AI agents — evaluate tool calls against policies in real time

Project description

verdicter

Runtime security for AI agents. Evaluate every tool call against your policies — get ALLOW, DENY, MODIFY, or ESCALATE in under 50ms.

PyPI version Python versions license

Get your free API key at verdicter.dev


Install

pip install verdicter

With LangChain support:

pip install "verdicter[langchain]"

Quick start

import asyncio
from verdicter import Verdicter

client = Verdicter(api_key="verdicter_live_...")

async def main():
    result = await client.evaluate(
        agent_id="support_bot",   # registered in your Verdicter dashboard
        tool="send_email",
        payload={"to": user_email, "subject": subject, "body": body},
    )

    if result.decision == "ALLOW":
        await send_email(payload)
    elif result.decision == "MODIFY":
        await send_email(result.modified_payload)   # Verdicter rewrote the payload
    elif result.decision == "DENY":
        raise PermissionError(f"Blocked: {result.reason}")
    elif result.decision == "ESCALATE":
        await request_human_approval(payload)

Wrap a function

Zero per-call boilerplate — evaluation happens automatically on every invocation:

from verdicter import Verdicter, WrapOptions

client = Verdicter(api_key="verdicter_live_...")

safe_send_email = client.wrap(
    "send_email",
    send_email,
    WrapOptions(agent_id="support_bot"),
)

# Policy enforcement is automatic
await safe_send_email(to=user_email, subject=subject, body=body)

LangChain adapter

from verdicter import Verdicter
from verdicter.adapters.langchain import wrap_tools
from langchain_core.tools import tool

client = Verdicter(api_key="verdicter_live_...")

@tool
def send_email(to: str, subject: str, body: str) -> str:
    """Send an email."""
    ...

# Wrap your tools — every invocation goes through Verdicter
safe_tools = wrap_tools([send_email], client, agent_id="support_bot")

agent = create_react_agent(llm=llm, tools=safe_tools)

Configuration

client = Verdicter(
    api_key="verdicter_live_...",
    timeout=5.0,        # seconds, default 5.0
    max_retries=2,      # default 2
    fail_open=False,    # if True, ALLOW on network errors (default: False = fail closed)
)

Decisions

Decision Meaning
ALLOW Policy passed — run the tool
DENY Policy blocked it — don't run
MODIFY Policy rewrote the payload — use result.modified_payload
ESCALATE Needs human review — route to your approval flow

Links


MIT License © Verdicter

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

verdicter-1.0.0.tar.gz (5.8 kB view details)

Uploaded Source

Built Distribution

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

verdicter-1.0.0-py3-none-any.whl (8.0 kB view details)

Uploaded Python 3

File details

Details for the file verdicter-1.0.0.tar.gz.

File metadata

  • Download URL: verdicter-1.0.0.tar.gz
  • Upload date:
  • Size: 5.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.9.6

File hashes

Hashes for verdicter-1.0.0.tar.gz
Algorithm Hash digest
SHA256 ea71988c94191c6af73a078eb77c014f8acfad155435ac3c0fb9c23498afa4db
MD5 402c2873cbc5d9994605a3b65d5c9d0b
BLAKE2b-256 ab82600390a9b5312912cab8ada050f5d2827d67e5af5e56dcd28403df81e527

See more details on using hashes here.

File details

Details for the file verdicter-1.0.0-py3-none-any.whl.

File metadata

  • Download URL: verdicter-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 8.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.9.6

File hashes

Hashes for verdicter-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 5b3be5bfd6486a6528988b1e9b47a5b104e4766550e62e3a7ec902f2276a60b5
MD5 8c2b2ef7051603359c0fce4e2b2e6d20
BLAKE2b-256 e0e953c88adffe32e2640b3b2b6ba470196a51137f2e1b93e61d034873130794

See more details on using hashes here.

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