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.0.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.0.0-py3-none-any.whl (11.0 kB view details)

Uploaded Python 3

File details

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

File metadata

File hashes

Hashes for agent_observability_langchain-1.0.0.tar.gz
Algorithm Hash digest
SHA256 411effcacf28c5c9f08b5cc76ad2c786722ffd6501014f6b26b0ff04329be97f
MD5 b1a3ff3d69d53e3e4491e6f1a0abcae8
BLAKE2b-256 1f1a9e8811069b369072fc06b21f64e215ec173dae3e159427c99fa3656a5f57

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for agent_observability_langchain-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 d9e9d981315249ce29ddbe3e230f031d6e9b4e1ae331b43ebd361ab2e745aff3
MD5 6b9a178ca9166adec934c698784e3e38
BLAKE2b-256 f44718c7792846536a176795cdebf29988af6efe73a7846f3d6815db1280c1c7

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