Skip to main content

AgentGovern Python SDK

Compliance-as-code for agentic AI workflows.

Beta — API may change before 1.0. Report issues.

AgentGovern intercepts AI agent actions, evaluates them against configurable compliance policies (EU AI Act, NIST AI RMF, ISO 42001), and generates audit-ready evidence — in near real-time (compliance verdicts within seconds; the SDK never blocks your agent). This SDK instruments your LangChain, CrewAI, or OpenAI Agents code with minimal changes.

Install

pip install "agentgovern[langchain]"

Quickstart — LangChain

import agentgovern
from langchain.agents import AgentExecutor, create_openai_tools_agent
from langchain_openai import ChatOpenAI

# 1. Initialize once at startup
agentgovern.init(
    api_key="ag_prod_...",           # from https://agentgovern.zirahn.com/settings/api-keys
    base_url="https://agentgovern.zirahn.com",
    environment="development",       # "production" | "staging" | "development"
)

# 2. Register your agent
agentgovern.register_agent(
    external_id="credit-scoring-v2",
    name="Credit Scoring Agent v2",
    framework="langchain",
)

# 3. Get the callback handler — binds to credit-scoring-v2 automatically
handler = agentgovern.instrument_langchain()

# 4. Pass it to your AgentExecutor — no other changes needed
llm = ChatOpenAI(model="gpt-4o")
agent = create_openai_tools_agent(llm, tools, prompt)
executor = AgentExecutor(agent=agent, tools=tools, callbacks=[handler])

result = executor.invoke({"input": "Evaluate loan application for customer #12345"})

instrument_langchain() binds to the most recently registered agent. Every tool call, LLM invocation, and agent step is captured, evaluated against your compliance policies, and visible in the dashboard.

Enforcement modes (current limitations)

AgentGovern supports four enforcement modes per policy:

Mode Behavior (v0.1)
warn Logs violation, agent continues
log Silently logs violation, agent continues
disabled Policy not evaluated
enforce Logs violation, agent should halt — see below

Known limitation: enforce mode with LangChain (v0.1)

LangChain's callback machinery catches exceptions raised from callback handlers and logs them as warnings rather than propagating them to halt the agent chain. This means that when Gate 1 returns action_taken='block' for an enforce-mode rule, our SDK correctly raises PolicyViolation, but LangChain swallows the exception and the agent continues executing.

Today: enforce-mode rules log the violation to input_evaluations with full regulatory citation. The audit trail is complete, but the agent chain does not halt.

v0.2 (Q3 2026): We are releasing a ChatModel wrapper that invokes Gate 1 before the LLM call (not as a callback), enabling real hard-block behavior.

Workaround: For customers who need hard-block today, call agentgovern.evaluate_input() directly before invoking your agent, and check result.action_taken == 'block' yourself:

result = agentgovern.evaluate_input(agent_external_id="my-agent", prompt=user_prompt)
if result.action_taken == "block":
    raise HTTPException(status_code=403, detail="Prompt blocked by compliance policy")
agent.invoke({"input": user_prompt})

Multiple agents in one process

If you run more than one agent in the same process, pass the agent ID explicitly to avoid ambiguity:

agentgovern.register_agent("fraud-detector", name="Fraud Detector")
agentgovern.register_agent("kyc-agent", name="KYC Agent")

handler_fraud = agentgovern.instrument_langchain("fraud-detector")
handler_kyc   = agentgovern.instrument_langchain("kyc-agent")

fraud_executor = AgentExecutor(agent=..., tools=..., callbacks=[handler_fraud])
kyc_executor   = AgentExecutor(agent=..., tools=..., callbacks=[handler_kyc])

Manual instrumentation (all frameworks)

from agentgovern.types import ActionType, ActionStatus

agentgovern.track_action(
    agent_external_id="my-agent-id",
    action_type=ActionType.TOOL_CALL,
    action_name="fetch_credit_bureau_data",
    status=ActionStatus.COMPLETED,
    duration_ms=312,
    input_payload={"bureau": "experian", "customer_id": "..."},
    output_payload={"fico_score": 720},
)

Supported frameworks

Framework Auto-instrumentation Status
LangChain instrument_langchain() — wraps tool and LLM callbacks Stable
CrewAI Manual via track_action() Beta
OpenAI Agents API Manual via track_action() Beta

Auto-instrumentation for CrewAI and OpenAI Agents is on the roadmap.

Compliance frameworks

Framework Status
EU AI Act (High-Risk Systems) Available
NIST AI RMF Coming soon
ISO 42001 Coming soon

Enable policy packs from the AgentGovern dashboard.

Configuration

Parameter Default Description
api_key required SDK ingest key from the dashboard
base_url https://agentgovern.zirahn.com API endpoint
environment "production" "production" | "staging" | "development"
fail_silently True If True, SDK errors never raise into your agent

Claude Code Hook

The SDK ships a built-in CLI for installing the AgentGovern hook into Claude Code. The hook intercepts PreToolUse events and enforces your tenant policies in real time — before any write-class tool (Bash, Write, Edit, MultiEdit, NotebookEdit) executes.

Install

agentgovern hook install

This deploys the hook script to ~/.agentgovern/hook.py, merges the correct entry into ~/.claude/settings.json (with an atomic backup), and prints instructions for any missing env vars.

Required env vars

export AGENTGOVERN_API_KEY="ag_prod_..."           # Settings → API Keys
export AGENTGOVERN_ACTOR_USER_ID="user_2xxxx..."   # Settings → Profile → User ID

Subcommands

Command Description
agentgovern hook install Install the hook (flags: --dry-run, --force, --matcher, --python-command)
agentgovern hook uninstall Remove the hook entry from settings.json (script file preserved)
agentgovern hook status Show installation state, script path, and env var status
agentgovern hook test Fire a synthetic event to verify end-to-end connectivity

Bypass

To skip governance for a session without removing the hook:

AGENTGOVERN_HOOK_MODE=off claude

See packages/claude-hook/README.md for the full option reference.

Design guarantees

  • track_action() returns in < 5 ms — all I/O is async in a background thread
  • Buffer cap: 10,000 actions; oldest dropped when full
  • Retry: 3 attempts with exponential backoff (1 s → 30 s max)
  • If AgentGovern is unreachable, your agent continues unaffected

Links

License

MIT — Copyright (c) 2026 Zirahn

Download files

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

Source Distribution

agentgovern-2.2.1.tar.gz (131.8 kB view details)

Uploaded Source

Built Distribution

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

agentgovern-2.2.1-py3-none-any.whl (77.8 kB view details)

Uploaded Python 3

File details

Details for the file agentgovern-2.2.1.tar.gz.

File metadata

  • Download URL: agentgovern-2.2.1.tar.gz
  • Upload date:
  • Size: 131.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for agentgovern-2.2.1.tar.gz
Algorithm Hash digest
SHA256 9b53b6ccf2fda79856171e27e4fc681e603b016a9d6b9ed022cb86a7e0373aa0
MD5 0760cf48520c9cf15fb0709c7dea7850
BLAKE2b-256 74ecc738f96818a318905db948aa584f4b3f485e6080541c01245f1787e07d5a

See more details on using hashes here.

Provenance

The following attestation bundles were made for agentgovern-2.2.1.tar.gz:

Publisher: publish-sdk.yml on ahmedkhan-zirahn/agentgovern

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

File details

Details for the file agentgovern-2.2.1-py3-none-any.whl.

File metadata

  • Download URL: agentgovern-2.2.1-py3-none-any.whl
  • Upload date:
  • Size: 77.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for agentgovern-2.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 7918dc1fd14214722a2f55992e616c71482152d81e2b2985937554e8991e3c5d
MD5 91378212ff535aa04455b97b14ffc0d4
BLAKE2b-256 fdda4427a0e054106f71f30a289f6287be71c51b4ae8138a45125d115dad140d

See more details on using hashes here.

Provenance

The following attestation bundles were made for agentgovern-2.2.1-py3-none-any.whl:

Publisher: publish-sdk.yml on ahmedkhan-zirahn/agentgovern

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.
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