AgentWatch — Python SDK
Predict when production AI agents are degrading — before they visibly fail.
AgentWatch watches your agent's traces and runs statistical change-point detection (CUSUM/EWMA), an LLM-judge correctness gate, and semantic-drift scoring server-side to catch quality collapse before your error rate moves. This SDK just captures traces and ships them — it has zero required dependencies and never adds latency to or raises errors in your agent's request path.
Install
pip install agentwatch-dev
# optional, only for instrument_openai():
pip install "agentwatch-dev[openai]"
The distribution is named agentwatch-dev (after agentwatch.dev); the import name
is just agentwatch.
Configure
import agentwatch
agentwatch.configure(api_key="aw_live_...", agent_id="<agent-uuid>")
Self-hosting? Pass endpoint="https://your-host" to configure(...).
Option A — auto-instrument (one line)
Works for any OpenAI-compatible client — OpenAI, Groq, Cerebras, Together,
vLLM — because they all use the openai client with a different base_url.
from openai import OpenAI
client = OpenAI(base_url="https://api.groq.com/openai/v1", api_key=GROQ_API_KEY)
agentwatch.instrument_openai(client)
# Every chat completion from here on is traced automatically:
client.chat.completions.create(
model="llama-3.3-70b-versatile",
messages=[{"role": "user", "content": "Refund order #47829"}],
)
Option B — wrap your agent function
@agentwatch.watch()
def run_agent(query: str) -> str:
...
return answer
# async is supported too:
@agentwatch.watch()
async def run_agent_async(query: str): ...
watch() captures the first argument as the input and the return value as the
output. If the return value is an OpenAI-shaped response, it also extracts the
model, token counts, and tool names automatically.
Option C — manual trace
client = agentwatch.AgentWatchClient(api_key="aw_live_...", agent_id="<uuid>")
client.trace(
input="Refund order #47829",
output="I've issued the refund…",
model="llama-3.3-70b-versatile",
latency_ms=812,
prompt_tokens=220, completion_tokens=180, total_tokens=400,
tools_used=["search_kb", "issue_refund"],
)
Notes
- Fire-and-forget: traces are POSTed on a daemon thread; delivery failures are swallowed so monitoring can never break your agent.
- Metadata: attach tags via
configure(..., metadata={"env": "prod"})or per-call@agentwatch.watch(metadata={"version": "2.1"}). - Streaming (
stream=True) responses aren't fully captured yet — the trace is still recorded, but token/output extraction may be partial.
MIT licensed.
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 agentwatch_dev-0.1.0.tar.gz.
File metadata
- Download URL: agentwatch_dev-0.1.0.tar.gz
- Upload date:
- Size: 9.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/7.0.0 CPython/3.10.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
db370d9e2df94b3803a6a6294287def992684d9de3d28a10a09887ceb886f87c
|
|
| MD5 |
2ce2f6e4619652f1fab825b788d4c421
|
|
| BLAKE2b-256 |
83da5a6685947a6bf0784f660c8e19206398cbb6315e20d18d15b47f4f3a4fab
|
File details
Details for the file agentwatch_dev-0.1.0-py3-none-any.whl.
File metadata
- Download URL: agentwatch_dev-0.1.0-py3-none-any.whl
- Upload date:
- Size: 9.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/7.0.0 CPython/3.10.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0abcf7e82dd8ddf87af33886f1e707732bbeb37aaf6d69f177e96c110934dbef
|
|
| MD5 |
93e6718537a02e1cba05885fc7c26365
|
|
| BLAKE2b-256 |
8e95b76b8441ac8cb233764627e293d27fa401ef2638a947b79ed18aa9912574
|