Catalog PyPI
Back to packageRELEASE DETAILS

0.3.0

PyPI

agentsec-agentwatch

Execution traces for agent behavior - OpenTelemetry-style observability for AI agent workflows

agent-securityai-agentsllmmonitoringobservabilityopentelemetrytracing
Published12 Oct 2026
Direct dependencies15
Transitive dependenciesNot calculated

README

Version 0.3.0 documentation

agentwatch

PyPI version Python versions License: Apache-2.0 Status: v0.1.0

Instrumentation SDK for AI agents — turn agent behavior into OpenTelemetry GenAI spans and validated, redacted execution records. Part of agentwatch.

Installation

pip install agentsec-agentwatch

Optional extras:

pip install "agentsec-agentwatch[langgraph]"   # LangGraph adapter
pip install "agentsec-agentwatch[otlp]"        # OTLP export
pip install "agentsec-agentwatch[signing]"     # cryptographic signing helpers

Requires Python 3.10+.

Quickstart

Trace a plain Python agent — no framework required:

from agentwatch.raw import trace_agent
from agentwatch.spans import plan_span, execute_tool_span

@trace_agent("support-bot", agent_version="v0.1.0", model="gpt-4o", provider="openai")
def answer(request: str) -> str:
    with plan_span("decide next action"):
        ...
    with execute_tool_span("search", arguments={"q": request}):
        ...
    return "done"

Or drive the run context explicitly:

from agentwatch.config import default_config
from agentwatch.tracer import configure_tracing
from agentwatch.context import RunContext
from agentwatch.instrument import invoke_agent

configure_tracing(default_config())          # once at startup
with invoke_agent(RunContext(agent_name="request-triage")):
    ...

LangGraph:

from agentwatch.langgraph import trace_graph

graph = trace_graph(compiled_graph, agent_name="planner")

Privacy

Records are redacted by default. Four privacy modes are available per span/tool call:

ModeWhat is stored
truncated (default)Content-safe truncated values
metadata-onlyNames, timings, and counts; no content
hashedOne-way digests of content
fullRaw content (opt-in)

Record, replay, verify

The same package installs the CLI:

agentsec-agentwatch init            # install Claude Code hooks + start the local daemon
agentsec-agentwatch sessions        # list recorded sessions
agentsec-agentwatch replay <id>     # reconstruct a session's action timeline
agentsec-agentwatch verify-store    # verify the hash chain

Records are written to a local-first, hash-chained JSONL store; OTLP export is opt-in and gated on a redaction self-test.

Documentation

License

Apache-2.0 — see LICENSE.

Downloads & popularity

Awaiting observations

No metric observations yet

Download counts and popularity will appear here as the collector receives them.

Declared dependencies 18

Native requirements
15 direct targetsNot calculated transitive count
Package / targetRequirementRelationship
opentelemetry-api
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": ">=3.10",
  "evaluation": "NOT_EVALUATED"
}
opentelemetry-api>=1.24runtime
opentelemetry-sdk
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": ">=3.10",
  "evaluation": "NOT_EVALUATED"
}
opentelemetry-sdk>=1.24runtime
tomli
Environment
{
  "extras": "",
  "marker": "python_version < \"3.11\"",
  "requires_python": ">=3.10",
  "evaluation": "NOT_EVALUATED"
}
tomli>=2; python_version < "3.11"runtime
langgraph
Environment
{
  "extras": "",
  "marker": "extra == \"langgraph\"",
  "requires_python": ">=3.10",
  "evaluation": "NOT_EVALUATED"
}
langgraph>=1.0; extra == "langgraph"runtime
zstandard
Environment
{
  "extras": "",
  "marker": "python_version < \"3.14\" and extra == \"codex\"",
  "requires_python": ">=3.10",
  "evaluation": "NOT_EVALUATED"
}
zstandard>=0.22; python_version < "3.14" and extra == "codex"runtime
cryptography
Environment
{
  "extras": "",
  "marker": "extra == \"signing\"",
  "requires_python": ">=3.10",
  "evaluation": "NOT_EVALUATED"
}
cryptography>=41; extra == "signing"runtime
opentelemetry-exporter-otlp-proto-grpc
Environment
{
  "extras": "",
  "marker": "extra == \"otlp\"",
  "requires_python": ">=3.10",
  "evaluation": "NOT_EVALUATED"
}
opentelemetry-exporter-otlp-proto-grpc>=1.24; extra == "otlp"runtime
pytest
Environment
{
  "extras": "",
  "marker": "extra == \"dev\"",
  "requires_python": ">=3.10",
  "evaluation": "NOT_EVALUATED"
}
pytest>=8; extra == "dev"runtime
pytest-cov
Environment
{
  "extras": "",
  "marker": "extra == \"dev\"",
  "requires_python": ">=3.10",
  "evaluation": "NOT_EVALUATED"
}
pytest-cov>=5; extra == "dev"runtime
ruff
Environment
{
  "extras": "",
  "marker": "extra == \"dev\"",
  "requires_python": ">=3.10",
  "evaluation": "NOT_EVALUATED"
}
ruff>=0.9; extra == "dev"runtime
mypy
Environment
{
  "extras": "",
  "marker": "extra == \"dev\"",
  "requires_python": ">=3.10",
  "evaluation": "NOT_EVALUATED"
}
mypy>=1.13; extra == "dev"runtime
build
Environment
{
  "extras": "",
  "marker": "extra == \"dev\"",
  "requires_python": ">=3.10",
  "evaluation": "NOT_EVALUATED"
}
build>=1.2; extra == "dev"runtime
jsonschema
Environment
{
  "extras": "",
  "marker": "extra == \"dev\"",
  "requires_python": ">=3.10",
  "evaluation": "NOT_EVALUATED"
}
jsonschema>=4.20; extra == "dev"runtime
tomli
Environment
{
  "extras": "",
  "marker": "extra == \"dev\"",
  "requires_python": ">=3.10",
  "evaluation": "NOT_EVALUATED"
}
tomli>=2; extra == "dev"runtime
opentelemetry-exporter-otlp-proto-grpc
Environment
{
  "extras": "",
  "marker": "extra == \"dev\"",
  "requires_python": ">=3.10",
  "evaluation": "NOT_EVALUATED"
}
opentelemetry-exporter-otlp-proto-grpc>=1.24; extra == "dev"runtime
hypothesis
Environment
{
  "extras": "",
  "marker": "extra == \"dev\"",
  "requires_python": ">=3.10",
  "evaluation": "NOT_EVALUATED"
}
hypothesis>=6.100; extra == "dev"runtime
zstandard
Environment
{
  "extras": "",
  "marker": "extra == \"dev\"",
  "requires_python": ">=3.10",
  "evaluation": "NOT_EVALUATED"
}
zstandard>=0.22; extra == "dev"runtime
cosmic-ray
Environment
{
  "extras": "",
  "marker": "extra == \"mutation\"",
  "requires_python": ">=3.10",
  "evaluation": "NOT_EVALUATED"
}
cosmic-ray>=8.7; extra == "mutation"runtime

Distribution files

2 collected
agentsec_agentwatch-0.3.0-py3-none-any.whl

bdist_wheel · 522.3 KB · Python py3

Source file
agentsec_agentwatch-0.3.0.tar.gz

sdist · 724.28 KB · Python source

Source file

Repository

PENDING
agentic-suite/agentsec-agentwatch

Shared repository data · GitHub

License detected in repository
Not collected

Metadata history

Meaningful changes
Current collected state Current

Observed since 20 Oct, 23:18 UTC

No superseded metadata states collected. Unchanged observations do not create new revisions.

Record identity

package_version:ccfe77c79de1413666e2b101352f3daa189167cb6ea5f124d1796282ef90372c

Other collected versions

View all collected versions →