AI agent observability and control — AgentWatch SDK
Project description
ai-watcher
Python SDK for AgentWatch — AI agent observability and control.
Install
pip install ai-watcher
Quickstart
export AGENTWATCH_API_KEY=aw_live_...
One-liner wrapper (Lambda / serverless)
from agentwatch import track_llm
result = track_llm(
'classify-document',
lambda: openai.chat.completions.create(...),
{
'human_id': customer_id,
'agent_name': 'doc-classifier',
'model': 'gpt-4o',
'framework': 'aws-lambda',
'session_name': 'Classify: invoice',
'input': {'doc_type': 'invoice', 'pages': 3},
}
)
Chained model calls (multi-step pipeline)
from agentwatch import track_chain
results = track_chain(
steps=[
{
'action': 'extract',
'model': 'gpt-4o',
'fn': lambda: openai.chat.completions.create(...),
'input': {'pages': 3},
},
{
'action': 'classify',
'model': 'claude-sonnet-4-20250514',
'fn': lambda: anthropic.messages.create(...),
'input': {'text': '...'},
},
],
opts={
'human_id': customer_id,
'agent_name': 'shipping-pipeline',
'session_name': 'Process Shipping Document',
}
)
Both wrappers are zero-dependency and never break your app — if AgentWatch is unreachable, the underlying function still runs.
Session context manager (full control)
from agentwatch import Session, tool
with Session(human_id="you@example.com") as session:
@tool(session)
def search_web(query: str) -> str:
return "results..."
result = search_web("AI agent security")
Full Session config
from agentwatch import Session, tool
with Session(
api_key="aw_live_...",
human_id="sarah@acme.com",
agent_name="billing-agent",
agent_version="2.0.0",
model="claude-sonnet-4-20250514",
system_prompt="You are a billing assistant.",
tools=["send_invoice", "fetch_invoice"],
framework="langchain",
) as session:
@tool(session, action_class="send", data_scope="financial")
def send_invoice(recipient: str, amount: float) -> dict:
return {"sent": True}
send_invoice("client@acme.com", 1200.00)
API reference
track_llm(action, fn, opts)
| Field | Type | Description |
|---|---|---|
action |
str |
Name of the operation (e.g. "classify-document") |
fn |
Callable |
Zero-argument callable that makes the model call |
opts |
dict |
Session options (see below) |
track_chain(steps, opts)
Each step: {'action': str, 'fn': callable, 'model': str, 'input': dict}
Common opts fields
| Key | Default | Description |
|---|---|---|
human_id |
"anonymous" |
User or customer identifier |
agent_name |
"agent" |
Name of the agent/pipeline |
model |
"unknown" |
Default model (overridden per step in track_chain) |
framework |
"python" |
Runtime (e.g. "aws-lambda", "langchain") |
session_name |
action name | Human-readable session title in the dashboard |
input |
None |
Input metadata to log with the event |
Exceptions
| Exception | When raised |
|---|---|
ExecutionBlockedException |
Policy blocked the tool call |
HitlDeniedException |
Human reviewer denied the action |
AgentwatchAPIError |
Non-2xx response from the API |
AgentwatchConnectionError |
Network error after retries |
Environment variables
| Variable | Default | Description |
|---|---|---|
AGENTWATCH_API_KEY |
— | Required. Your aw_live_... key. |
AGENTWATCH_API_URL |
https://agentwatch.vercel.app |
Override for self-hosted. |
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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file ai_watcher-0.2.2.tar.gz.
File metadata
- Download URL: ai_watcher-0.2.2.tar.gz
- Upload date:
- Size: 7.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6c33ef0b0b941c88dfa62e1cebdb21e8dc7b582a9121f20788c904c6e0519047
|
|
| MD5 |
f1ad6340c39107e9ab4b89fdd7d7c5ad
|
|
| BLAKE2b-256 |
fffcb7586baee666950d26cb4be02cf928c5895cb4f88ca77d396a05223b14c0
|
File details
Details for the file ai_watcher-0.2.2-py3-none-any.whl.
File metadata
- Download URL: ai_watcher-0.2.2-py3-none-any.whl
- Upload date:
- Size: 10.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d22904df851a26efe271caedceb8852e6cec086af3ba9d918e3d77ec8b35faed
|
|
| MD5 |
dddea662e022908bea8c61a6a6802c95
|
|
| BLAKE2b-256 |
49148105addc3fbf5086cebd6d467434b35733eaee1a32636e4e15e1325617f6
|