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

Uploaded Python 3

File details

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

File metadata

File hashes

Hashes for agent_observability_langchain-1.2.1.tar.gz
Algorithm Hash digest
SHA256 db2101c1b32c0394acc652ab989c2555eed25ecc7a3498752912a961b416f1fa
MD5 478dd16b3d3ddff88b38c7efd8755736
BLAKE2b-256 cf19227568cd6abe22b60de5ca03cbd73a60ce9f277a7cdb88919f8d3836fd7f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for agent_observability_langchain-1.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 961d10995fa33749eefc696e24e0efc2be6da859db94e871f6c5bb60d1c22c12
MD5 48a3d4202d9c6ae74d56a5779178d956
BLAKE2b-256 1877e3f0d2a438a52cb65a270955d033bf3455586901975bb5bdc9c6bc5110cf

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