Skip to main content

AgentAudit Python SDK

Official Python SDK for the AgentAudit API — audit logging and compliance monitoring for AI agents.

Installation

pip install agentaudit-client

With LangChain support:

pip install agentaudit-client[langchain]

Quick Start

from agentaudit import AgentAudit

# Initialize
audit = AgentAudit(api_key="aa_your_key_here")

# Log an agent action
audit.log(
    action="prompt_submitted",
    prompt="What is the weather?",
    response="It is sunny today.",
    metadata={"model": "gpt-4", "tokens": 150}
)

LangChain Integration

pip install agentaudit-client[langchain]
from agentaudit import AgentAuditCallbackHandler
from langchain_openai import ChatOpenAI

audit_handler = AgentAuditCallbackHandler(
    api_key="aa_your_key_here",
    agent_id="uuid-of-your-agent",
    guard=True   # default
)

# Use with any LangChain component
llm = ChatOpenAI(model="gpt-4o", callbacks=[audit_handler])
llm.invoke("What is the weather?")
# Automatically logged + guarded to AgentAudit!

Async chains and agents

Use AgentAuditAsyncCallbackHandler with ainvoke so API calls do not block the event loop:

from agentaudit import AgentAuditAsyncCallbackHandler
from langchain_openai import ChatOpenAI

handler = AgentAuditAsyncCallbackHandler(
    api_key="aa_your_key_here",
    agent_id="uuid-of-your-agent",
    guard=True,
)

llm = ChatOpenAI(model="gpt-4o", callbacks=[handler])
await llm.ainvoke("What is the weather?")
print(handler.trace_id)

OpenAI Integration

pip install agentaudit-client[openai]
from agentaudit import AgentAuditOpenAI

client = AgentAuditOpenAI(
    openai_api_key="sk-...",
    api_key="aa_your_key_here",
    agent_id="uuid-of-your-agent",
    guard=True,  # default
)

response = client.chat_completions_create(
    model="gpt-4o",
    messages=[{"role": "user", "content": "What is the weather?"}]
)
# Automatically logged + guarded!
print(client.trace_id)

AutoGPT Integration

from agentaudit import AgentAuditAutoGPT

logger = AgentAuditAutoGPT(
    api_key="aa_your_key_here",
    agent_name="MyAutoGPT",
    guard=True,
)

with logger.trace() as trace:
    result = agent.run("Research topic X")
    trace.log_action("run", prompt="Research topic X", response=result)

print(trace.trace_id)

Decorator

from agentaudit import AgentAuditAutoGPT, ComplianceViolationAutoGPT

@AgentAuditAutoGPT.guard(api_key="aa_your_key_here", agent_name="MyAutoGPT")
def run_agent(task: str) -> str:
    return agent.run(task)

try:
    result = run_agent("Research topic X")
except ComplianceViolationAutoGPT as e:
    print(f"Blocked: {e.violations}")

Features

  • Simple logging: One-line audit log submission
  • Automatic compliance: PII detection, keyword matching, rate limiting, regex matching, sentiment analysis, custom validators
  • Agent registration: Track which agents are performing actions
  • Query and export: Retrieve audit logs with filters
  • LangChain support: Drop-in callback handler
  • Type hints: Full type annotation support

Agent-to-Agent Audit Trails

Track multi-agent conversations and CrewAI workflows with distributed tracing:

import uuid
from agentaudit import AgentAudit

audit = AgentAudit(api_key="aa_your_key_here")

# Start a trace — e.g. when a CrewAI crew begins execution
trace_id = str(uuid.uuid4())

# Log the root event (crew start)
root = audit.log(
    action="crewai_crew_start",
    trace_id=trace_id,
    metadata={"crew": "Research Crew", "task_count": 3}
)

# Log child events (tasks, agent actions) with parent_span_id
audit.log(
    action="crewai_task_start",
    trace_id=trace_id,
    parent_span_id=root.id,
    prompt="Research topic X",
    metadata={"task_id": "task-1"}
)

# Query the full trace later
# (use the HTTP client or dashboard to query by traceId)

CrewAI Integration

The CrewAI observer (agentaudit.crewai) automatically manages trace IDs and parent span IDs:

from agentaudit import AgentAuditObserver

observer = AgentAuditObserver(api_key="aa_key", crew_name="My Crew")
# trace_id is generated automatically in on_crew_start
# every event shares the same trace_id with proper parent_span_id linking

Documentation

Full API documentation: https://agentaudit.online/docs

License

MIT


Publishing (Maintainers Only)

This package is published automatically via GitHub Actions when you push a version tag:

Prerequisites

  1. Create a PyPI account
  2. Generate an API token at pypi.org/manage/account/token
  3. Add the token to your GitHub repo: Settings → Secrets and variables → Actions → New repository secret
    • Name: PYPI_API_TOKEN
    • Value: your PyPI API token (starts with pypi-)

Publish a New Version

# Update version in sdk/python/setup.py
git add sdk/python/setup.py
git commit -m "chore: bump Python SDK to v1.0.1"
git tag v1.0.1
git push origin v1.0.1

The publish-python.yml workflow will automatically build and upload to PyPI.

Metadata

Release files for agentaudit-client 1.0.6

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for agentaudit-client 1.0.6
File Size Uploaded Provenance
agentaudit_client-1.0.6.tar.gz 18.3 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for agentaudit-client 1.0.6
File Interpreter ABI Platform
agentaudit_client-1.0.6-py3-none-any.whl Python 3 none any Details

Total release size: 37.9 kB

Release files / agentaudit_client-1.0.6.tar.gz

Download URL agentaudit_client-1.0.6.tar.gz
Size 18.3 kB
Tags Source
SHA-256 checksum
How to use checksums
eb9c61540cc050698cf552aa7a4336955b2e91a139a92b141d56a58901da0ce6
BLAKE2b-256 checksum
How to use checksums
63167da31207c561dab27290e1af7b4ee4bc373258e52b0ae0479785c370cd98
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.15

Release files / agentaudit_client-1.0.6-py3-none-any.whl

Download URL agentaudit_client-1.0.6-py3-none-any.whl
Size 19.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
8b558da10b15fe92bb4eea667e7057501fe75cba23b7551459ceae56e1958484
BLAKE2b-256 checksum
How to use checksums
d5bd49bfe4574b095e1f7b925d5f22ac03c2b499437497f046792e557c94ce75
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.15

Security for agentaudit-client 1.0.6

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.

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