Skip to main content

AI agent observability and error diagnosis for Python — trace LLM calls, detect errors, get AI-generated fix suggestions

Project description

risicare

AI agent observability and error diagnosis for Python.

PyPI version Downloads Python License: MIT

Monitor your AI agents in production. Trace every LLM call, detect errors automatically, and get AI-generated fix suggestions — with a single init().

Quickstart

pip install risicare
import risicare
from openai import OpenAI

# Initialize — auto-instruments all detected LLM providers
risicare.init(
    api_key="rsk-...",
    endpoint="https://app.risicare.ai",
)

client = OpenAI()  # Automatically traced by risicare

@risicare.agent(name="research-agent")
def research(query: str) -> str:
    response = client.chat.completions.create(
        model="gpt-4",
        messages=[{"role": "user", "content": query}],
    )
    return response.choices[0].message.content

result = research("What is quantum computing?")
risicare.shutdown()

That's it. Your agent's LLM calls, latency, token usage, and costs now appear in the Risicare dashboard.

Features

  • Auto-instrumentation — Detects and patches LLM providers on init(), zero code changes
  • 12 LLM providers — OpenAI, Anthropic, Google, Mistral, Groq, Cohere, Together, Ollama, HuggingFace, Cerebras, Bedrock, Vertex AI
  • 8 host-detected — DeepSeek, xAI, Fireworks, Baseten, Novita, BytePlus, vLLM, and any OpenAI-compatible API via base_url
  • 10 framework integrations — LangChain, LangGraph, CrewAI, AutoGen, Instructor, LlamaIndex, LiteLLM, DSPy, Pydantic AI, OpenAI Agents
  • Error Diagnosis (beta) — LLM-powered root cause analysis with fix suggestions; auto-apply not yet wired (see "Error Diagnosis" section below)
  • 13 built-in scorers — Faithfulness, relevance, toxicity, hallucination, and more
  • Streaming support — Full streaming trace enrichment with token counts
  • OpenTelemetry bridge — Compatible with existing OTel pipelines
  • Non-blocking — All telemetry is async, never slows your app

LLM Providers

# Auto-patching (default) — detects installed providers automatically
risicare.init(api_key="rsk-...", endpoint="https://app.risicare.ai")

# Disable auto-patching if needed
risicare.init(api_key="rsk-...", endpoint="https://app.risicare.ai", auto_patch=False)

All 12 native providers:

Provider Package Provider Package
OpenAI openai Anthropic anthropic
Google Gemini google-generativeai Mistral mistralai
Cohere cohere Groq groq
Together AI together Ollama ollama
AWS Bedrock boto3 Google Vertex AI google-cloud-aiplatform
Cerebras cerebras-cloud-sdk HuggingFace huggingface-hub

Plus 8 auto-detected via OpenAI base_url: DeepSeek, xAI, Fireworks, Baseten, Novita, BytePlus, vLLM, and any OpenAI-compatible API.

Framework Integrations

pip install risicare[langchain]    # LangChain + LangGraph
pip install risicare[crewai]       # CrewAI
pip install risicare[autogen]      # AutoGen
pip install risicare[instructor]   # Instructor
pip install risicare[litellm]      # LiteLLM
pip install risicare[dspy]         # DSPy
pip install risicare[pydantic-ai]  # Pydantic AI
pip install risicare[llamaindex]   # LlamaIndex
pip install risicare[all]          # Everything

Core API

import risicare

risicare.init(api_key, endpoint)            # Initialize (auto-patches providers)
risicare.shutdown(timeout_ms=5000)          # Flush pending spans and close

@risicare.agent(name="my-agent")            # Trace a function with agent identity
@risicare.trace                             # Trace any function (decorator or CM)
@risicare.session(session_id="sess-1")      # Group traces into user sessions

risicare.report_error(exception)            # Report caught errors for diagnosis
risicare.score(trace_id, "quality", 0.92)   # Record evaluation score [0.0-1.0]

risicare.enable() / risicare.disable()      # Runtime tracing control
risicare.is_enabled()                       # Check tracing status

Decision Phases

Structure your traces to see how your agent thinks, decides, and acts:

@risicare.agent(name="planner")
def plan(query: str):
    @risicare.trace_think
    def analyze():
        return llm.chat("Analyze this query...")

    @risicare.trace_decide
    def choose_action(analysis):
        return llm.chat("Pick the best action...")

    @risicare.trace_act
    def execute(action):
        return run_tool(action)

    analysis = analyze()
    action = choose_action(analysis)
    return execute(action)

Error Diagnosis

Beta status (2026-05): detect → diagnose → suggest is shipped and runs against Together.AI Llama-3.3-70B with a circuit-breaker / template-only fallback. Suggested fixes land in your dashboard as status=draft for human review. Automatic deployment, A/B rollout, and learning-from-outcomes (stages 4–6 in our docs) are in development and not yet wired in production. Treat this as AI-assisted error diagnosis today; auto-apply will follow.

When your agent fails, Risicare:

  1. Classifies the error (154 codes across TOOL, MEMORY, REASONING, OUTPUT, etc.)
  2. Diagnoses the root cause using AI analysis
  3. Generates a fix suggestion you can review in the dashboard and apply manually
try:
    result = my_agent(user_input)
except Exception as e:
    risicare.report_error(e)  # Triggers diagnosis pipeline; fix lands as draft for review

Scoring & Evaluation

# Custom scores
risicare.score(trace_id="tr-123", name="quality", value=0.92)

# 13 built-in scorers available in the dashboard:
# faithfulness, answer_relevance, context_precision, context_recall,
# hallucination, toxicity, bias, coherence, conciseness,
# fluency, g_eval, goal_accuracy, summarization

OpenTelemetry

pip install risicare[otel]
risicare.init(api_key="rsk-...", otel_bridge=True)
# Compatible with any OTel-instrumented application

Requirements

  • Python 3.10+

Documentation

Support

During the public beta, please file detailed reproduction steps for any SDK or platform issue — fast feedback shapes GA.

License

MIT

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

risicare-0.1.12.tar.gz (154.4 kB view details)

Uploaded Source

Built Distribution

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

risicare-0.1.12-py3-none-any.whl (161.5 kB view details)

Uploaded Python 3

File details

Details for the file risicare-0.1.12.tar.gz.

File metadata

  • Download URL: risicare-0.1.12.tar.gz
  • Upload date:
  • Size: 154.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.24 {"installer":{"name":"uv","version":"0.9.24","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for risicare-0.1.12.tar.gz
Algorithm Hash digest
SHA256 1ec7ce8e86ad4392ee08ab5cac8dee725201280edaff05952a8bf2e01d23aad5
MD5 7c7c2551d0af55d762f9b187d4e81873
BLAKE2b-256 8833ab40eb49919ddf467b6e747132f29459405b9d55e40e97e28afa81b5e2b9

See more details on using hashes here.

File details

Details for the file risicare-0.1.12-py3-none-any.whl.

File metadata

  • Download URL: risicare-0.1.12-py3-none-any.whl
  • Upload date:
  • Size: 161.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.24 {"installer":{"name":"uv","version":"0.9.24","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for risicare-0.1.12-py3-none-any.whl
Algorithm Hash digest
SHA256 bf0c059a063bbea1fa44381469f57298b9de1c764ae8b7ee62da8ca3f0fdbe1c
MD5 375474e77b5d626d664e704678782a87
BLAKE2b-256 0b32167f7231842be1a07830f0e8e65a1c5b65840bf473f87930b9bb38d1da1e

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