Skip to main content

complyee-agent-guard

A customer-run companion that puts an Agent Control Room grant check in front of any Python agent tool — LangGraph, CrewAI, LangChain or plain functions. It does the repeatable work (fingerprinting, asking, waiting for a person, claiming, verifying the grant token, reporting the outcome); you supply the action name and the context facts your rules need.

Status: 0.1 (beta). Python 3.9 or later; depends only on httpx and cryptography.

pip install complyee-agent-guard

Agent Control Room is the decision point; this package is the enforcement point that runs inside your agent process. See agent-cr.com/plugins and agent-cr.com/enforcement-point.

Use

import os
from complyee_agent_guard import create_guard, ApprovalPending, ActionRefused, VerifiedGrant

guard = create_guard(
    workspace_url="https://acme.agent-cr.com",  # your workspace address (also the JWT audience)
    api_key=os.environ["ACR_API_KEY"],          # scopes: policy.decide, policy.read
    agent="finance-assistant",
    approvals={"mode": "poll", "poll_timeout_s": 30, "poll_interval_s": 2},  # the defaults
)

@guard.tool(action="refund.issue", context=lambda a: {"amount": a["amount"]})
async def issue_refund(payment_id: str, amount: float, acr_grant: VerifiedGrant = None):
    # Runs only after a verified grant for exactly these arguments.
    return await payments.refund(payment_id, amount, idempotency_key=acr_grant.decision_id)

A plain def tool works the same way, synchronously. Add a parameter named acr_grant to receive the verified grant; it is never part of the fingerprint.

Decorator options: name (tool name, default the function name), action (default the tool name), context, resource_ref, action_description, parent_decision_id (each a function of the arguments), and approvals to override the guard's approval settings for one tool.

When a person must approve

  • "poll" (default): waits up to poll_timeout_s, then claims the grant with the identical request. If nobody answers in time it raises ApprovalPending.
  • "raise": raises ApprovalPending at once — useful when a LangGraph workflow should checkpoint and resume later.
try:
    result = await issue_refund("pay_1", amount=40)
except ApprovalPending as held:
    store.save(held.to_checkpoint())                 # JSON-safe; arguments stay in your store
...
result = await issue_refund.resume(store.load())    # same request, same idempotency key

Fail closed

The tool body never runs when any of these is raised:

Exception Meaning
ActionRefused policy or a person refused, or the arguments cannot be fingerprinted
ApprovalPending a person has not approved yet
GrantInvalid the grant token is missing or failed verification (no fallback to any other format)
GuardUnavailable Agent Control Room could not be reached

Raw arguments never leave your process: they are hashed locally (sha256-canonical-json-v1, identical to ACR and the TypeScript MCP guard) and only the hash is sent. A failed outcome report never changes the tool result.

Tests

pip install -e ".[dev]" && pytest

tests/fixtures/grant.json and tests/fixtures/conformance-vectors.json are generated from Agent Control Room's own code and are shared with the TypeScript companion (complyee/mcp-guard), so all three hash and verify identically. Do not edit them by hand.

License

Apache License 2.0 — see LICENSE. Copyright Complyee AB.

Metadata

Release files for complyee-agent-guard 0.1.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 complyee-agent-guard 0.1.0
File Size Uploaded Provenance Actions
complyee_agent_guard-0.1.0.tar.gz 24.1 kB With provenance Details for complyee_agent_guard-0.1.0.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for complyee-agent-guard 0.1.0
File Interpreter ABI Platform Actions
complyee_agent_guard-0.1.0-py3-none-any.whl Python 3 none any Details for complyee_agent_guard-0.1.0-py3-none-any.whl

Total release size: 44.8 kB

Release files / complyee_agent_guard-0.1.0.tar.gz

Download URL complyee_agent_guard-0.1.0.tar.gz
Size 24.1 kB
Tags Source
SHA-256 checksum
How to use checksums
d7b8ea1de77af1b8c6b7e87c2b1a8fd45c65ce56d0dd6e171518cf1ad68aff30
BLAKE2b-256 checksum
How to use checksums
101ca79d79819a7317247c9b91bab01ca67fdd327b175afaddee1921d40f2d26
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 2, 2026.

Transparency log

Release files / complyee_agent_guard-0.1.0-py3-none-any.whl

Download URL complyee_agent_guard-0.1.0-py3-none-any.whl
Size 20.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
467b349e55e0f9e88b723e6b9a8895b14f0ae8215e024cb6e49ddee68ed7d160
BLAKE2b-256 checksum
How to use checksums
b19521ed16cea033b8752ab65272c340ce92acd58e449acab00702ecf8af1464
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 2, 2026.

Transparency log

Security for complyee-agent-guard 0.1.0

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.

Full provenance

All 2 files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for complyee_agent_guard-0.1.0.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 2, 2026.

Transparency log

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.

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files Full provenance

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