Skip to main content

Framework-agnostic agent governance and telemetry library

Project description

Agent Governance Library

Framework-agnostic Python library for monitoring and governing AI agents with automatic telemetry, cost tracking, and OpenTelemetry integration.

Features

  • Framework Agnostic: Works with any Python agent framework (ADK, Strands, LangGraph, custom)
  • Automatic Tracking: Token counting, cost calculation, duration measurement
  • OpenTelemetry: Built-in traces, metrics, and logs
  • Zero Impact: Non-blocking telemetry, graceful error handling
  • Simple Integration: Single decorator to add governance

Installation

pip install agent-governance

Quick Start

1. Set Platform URL

export AGENT_GOVERNANCE_PLATFORM_URL=https://your-platform-url
export AGENT_GOVERNANCE_API_KEY=your-api-key  # optional

2. Add Decorator to Your Agent

from agent_governance import track_agent

@track_agent(
    agent_id="my-agent-001",
    agent_name="My Agent",
    framework="strands"  # or "adk", "langgraph", "custom"
)
async def my_agent(query: str):
    # Your agent code here
    return result

That's it! Every execution is now tracked automatically.

Usage Examples

With Strands SDK

from agent_governance import track_agent
from strands import Agent
from strands.models import VertexAIModel

model = VertexAIModel(model="gemini-2.0-flash-exp")
agent = Agent(name="my_agent", model=model)

@track_agent(agent_id="strands-agent-001", framework="strands")
async def execute_agent(query: str):
    response = await agent.run(query)
    return {"result": response.content}

With LangGraph

from agent_governance import track_agent
from langgraph.prebuilt import create_react_agent

agent = create_react_agent(model=llm, tools=[])

@track_agent(agent_id="langgraph-agent-001", framework="langgraph")
async def execute_agent(query: str):
    result = await agent.ainvoke({"messages": [...]})
    return {"result": result}

With Google ADK

from agent_governance import track_agent

@track_agent(agent_id="adk-agent-001", framework="adk")
async def execute_agent(query: str):
    # Your ADK agent code
    return result

With Custom Framework

from agent_governance import track_agent

@track_agent(agent_id="custom-agent-001", framework="custom")
def my_custom_agent(input_data):
    # Any Python function
    result = process(input_data)
    return result

What Gets Tracked

For every agent execution:

Metric Description
agent_id Unique identifier
agent_name Human-readable name
execution_id Per-call UUID
framework Framework used
timestamp Execution time
duration Time taken (seconds)
input_tokens Request tokens
output_tokens Response tokens
total_tokens Sum of tokens
cost Calculated cost ($)
status success/error
error Error message if failed

Configuration

Environment Variables

# Required
export AGENT_GOVERNANCE_PLATFORM_URL=https://your-platform-url

# Optional
export AGENT_GOVERNANCE_API_KEY=your-api-key

Decorator Parameters

@track_agent(
    agent_id="my-agent",           # Required: Unique identifier
    agent_name="My Agent",         # Optional: Display name
    api_key="...",                 # Optional: Override env var
    platform_url="https://...",    # Optional: Override env var
    framework="strands"            # Optional: Framework name
)

Cost Tracking

Automatic cost calculation based on token usage:

Model Input (per 1M tokens) Output (per 1M tokens)
gemini-2.0-flash $0.075 $0.30
gemini-1.5-pro $1.25 $5.00
gpt-4o $2.50 $10.00
gpt-4o-mini $0.15 $0.60

OpenTelemetry Integration

The library automatically:

  • Creates spans for each execution
  • Records metrics (executions, tokens, cost, duration)
  • Sends traces to your platform
  • Exports to OTLP-compatible backends

Error Handling

The library is designed to never break your agent:

  • Telemetry failures are caught and logged
  • Non-blocking async operations
  • Graceful degradation if platform is unavailable

Requirements

  • Python >= 3.9
  • opentelemetry-api >= 1.20.0
  • opentelemetry-sdk >= 1.20.0
  • opentelemetry-exporter-otlp >= 1.20.0
  • requests >= 2.31.0

Platform Setup

This library requires a governance platform to receive telemetry. You can:

  1. Deploy the included platform (see platform documentation)
  2. Use any OTLP-compatible backend
  3. Build your own receiver

Development

# Install in development mode
pip install -e .

# Install with dev dependencies
pip install -e ".[dev]"

# Run tests
pytest

License

MIT License - see LICENSE file for details

Support

Contributing

Contributions welcome! Please read CONTRIBUTING.md first.

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

agent_governance_telemetry-0.1.0.tar.gz (7.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

agent_governance_telemetry-0.1.0-py3-none-any.whl (8.4 kB view details)

Uploaded Python 3

File details

Details for the file agent_governance_telemetry-0.1.0.tar.gz.

File metadata

File hashes

Hashes for agent_governance_telemetry-0.1.0.tar.gz
Algorithm Hash digest
SHA256 a39bc415cdbdb29b62258ed471e1fb64a9ca564999f02998a9bec0b17e0808c9
MD5 c178a1006b79e5d6fe84df344cacd649
BLAKE2b-256 e94a67de42ff24a69d8b8e127339231fc120309242f5715d771066e0c84bf7c4

See more details on using hashes here.

File details

Details for the file agent_governance_telemetry-0.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for agent_governance_telemetry-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 3b6638ea8fe0e079191e26248243ec093201aaa879e5bf0f981e8ecac3cfaa8d
MD5 1adce3d02b063bc3f21bfc73e268f0d0
BLAKE2b-256 888b9399972a9a74b0b04fdab5723ea4c92089eed96e9c4797f9387a8044a87c

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page