Skip to main content

LangChain integration for Agent Observability - structured logging, cost tracking, and compliance for AI agents

Project description

Agent Observability for LangChain

PyPI version Python 3.9+ LangChain License: MIT

LangChain integration for the Agent Observability platform — structured logging, cost tracking, and compliance audit trails for production AI agents.

Installation

pip install agent-observability-langchain

Quick Start

Step 1: Get Your Free API Key (One-Time)

import requests

response = requests.post(
    "https://api-production-0c55.up.railway.app/v1/register",
    json={"agent_id": "my-langchain-agent"}
)
api_key = response.json()["api_key"]
print(f"Your API key: {api_key}")
# Save this! Example: ao_live_abc123...

Or via curl:

curl -X POST https://api-production-0c55.up.railway.app/v1/register \
  -H "Content-Type: application/json" \
  -d '{"agent_id": "my-langchain-agent"}'

Step 2: Set Environment Variable

export AGENT_OBS_API_KEY=ao_live_your_key_here

Step 3: Add to Your Agent

from langchain.agents import initialize_agent, AgentType
from langchain_openai import ChatOpenAI
from agent_observability_langchain import AgentObservabilityTool

# Create observability tool
obs_tool = AgentObservabilityTool()

# Create agent with observability
agent = initialize_agent(
    tools=[obs_tool],
    llm=ChatOpenAI(model="gpt-4"),
    agent=AgentType.OPENAI_FUNCTIONS,
    verbose=True
)

# Use your agent — it can now log events for compliance
result = agent.run(
    "Log an API call to OpenAI with cost $0.05 and latency 1200ms"
)

Features

Feature Description
Structured Logging Track all agent decisions and API calls with metadata
Cost Tracking Monitor spending per agent, task, and LLM provider
Performance Analytics Latency percentiles, error rates, throughput
Compliance Ready SOC 2, GDPR, HIPAA audit trail requirements
Queryable History Search logs by agent, time, event type, severity
LangChain Native Works with agents, chains, and LangGraph

Use Cases

1. Cost Analysis

Track spending across all your agents and LLM providers:

from agent_observability_langchain import AgentObservabilityTool

tool = AgentObservabilityTool(agent_id="research-bot-v2")

# Log each API call with cost
tool.invoke({
    "event_type": "api_call",
    "metadata": {
        "provider": "openai",
        "model": "gpt-4",
        "cost_usd": 0.03,
        "latency_ms": 1250,
        "tokens": 1500
    }
})

2. Decision Auditing

For regulated industries (finance, healthcare, legal):

tool.invoke({
    "event_type": "decision",
    "metadata": {
        "decision": "approve_loan",
        "confidence": 0.92,
        "factors": ["credit_score", "income", "debt_ratio"],
        "customer_id": "cust_12345"
    },
    "severity": "info"
})

3. Error Tracking

tool.invoke({
    "event_type": "error",
    "metadata": {
        "error_type": "RateLimitError",
        "provider": "openai",
        "retry_count": 3,
        "resolved": False
    },
    "severity": "error"
})

4. With LangGraph

from langgraph.prebuilt import create_react_agent
from langchain_openai import ChatOpenAI
from agent_observability_langchain import AgentObservabilityTool

# Create agent with observability
agent = create_react_agent(
    ChatOpenAI(model="gpt-4"),
    tools=[AgentObservabilityTool()]
)

result = agent.invoke({
    "messages": [("user", "Research AI trends and log the costs")]
})

5. Custom Agent ID per Task

# Different agent IDs for different workflows
research_tool = AgentObservabilityTool(agent_id="research-agent")
writer_tool = AgentObservabilityTool(agent_id="writer-agent")
reviewer_tool = AgentObservabilityTool(agent_id="reviewer-agent")

API Reference

AgentObservabilityTool

AgentObservabilityTool(
    api_key: str = None,        # Or set AGENT_OBS_API_KEY env var
    agent_id: str = "langchain-agent",  # Your agent identifier
    api_base: str = None        # Override API URL (for self-hosted)
)

Input Schema

Parameter Type Required Description
event_type str Yes api_call, decision, transaction, error, state_change
metadata dict No Event data (provider, cost_usd, latency_ms, etc.)
severity str No debug, info, warning, error, critical (default: info)

Common Metadata Fields

Field Type Description
provider str LLM provider (openai, anthropic, cohere, etc.)
model str Model name (gpt-4, claude-3-opus, etc.)
cost_usd float Cost in USD
latency_ms int Response time in milliseconds
tokens int Total token count
input_tokens int Input/prompt tokens
output_tokens int Output/completion tokens
error_message str Error details (for error events)
decision str Decision made (for decision events)
confidence float Confidence score (0-1)

Pricing

Tier Logs/Month Price Best For
Free 100,000 $0 Development, small projects
Starter 1,000,000 $29/month Production agents
Professional 10,000,000 $199/month Enterprise, high-volume

Full pricing: https://api-production-0c55.up.railway.app/pricing.json

Convenience Function

from agent_observability_langchain import create_observability_tool

# Quick creation
tool = create_observability_tool(agent_id="my-agent")

Environment Variables

Variable Description Required
AGENT_OBS_API_KEY Your API key Yes (or pass to constructor)
AGENT_OBS_BASE_URL Override API URL No

Error Handling

The tool handles errors gracefully and returns error messages instead of raising exceptions:

result = tool.invoke({
    "event_type": "api_call",
    "metadata": {"provider": "openai"}
})

if "Failed" in result:
    print(f"Logging failed: {result}")
else:
    print(f"Success: {result}")

Related Packages

License

MIT License — see LICENSE for details.

Links

Contributing

Contributions welcome! Please open an issue or submit a pull request.

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_observability_langchain-1.1.0.tar.gz (10.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_observability_langchain-1.1.0-py3-none-any.whl (11.0 kB view details)

Uploaded Python 3

File details

Details for the file agent_observability_langchain-1.1.0.tar.gz.

File metadata

File hashes

Hashes for agent_observability_langchain-1.1.0.tar.gz
Algorithm Hash digest
SHA256 3d495d0b6354b1cbb5193769b43585514f4ca4d2622406fb8f3eea4d9e072af9
MD5 364b9ee8842e9c91092b13b15dd66f29
BLAKE2b-256 ab59f303000af216efba0103c61a21c730e8fd974f8b8f281a760dc00f6fa92a

See more details on using hashes here.

File details

Details for the file agent_observability_langchain-1.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for agent_observability_langchain-1.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 0393e1c63af2b89e39fa123cf0a9babe2bd86c9ba755d127e4131dc7b2b89c9d
MD5 0ba129e93e9f0da6140604da625861d0
BLAKE2b-256 d038ab812a6c4d1e041e147e8b7da68df7e7bd49bf252be66a25d7895b2249fa

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