Skip to main content

Proviras tracing SDK for LangGraph and LangChain agents

Project description

proviras-sdk (Python)

Trace LangGraph and LangChain runs to Proviras.

ProvirasTracer is a langchain_core.tracers.base.BaseTracer you pass as a callback. It creates one Proviras session per graph invocation and streams each LLM, tool, chain, and retriever run to your dashboard as a TraceCall.

Install

pip install proviras-sdk

langchain-core>=0.3.0 is pulled in automatically. Your project already has it if you use LangGraph or LangChain.

Setup

export PROVIRAS_PARENT_ID=<your-proviras-user-id>
export PROVIRAS_PLATFORM=langgraph
variable required description
PROVIRAS_PARENT_ID yes your Proviras user ID
PROVIRAS_PLATFORM yes runtime platform (e.g. langgraph, langchain)
PROVIRAS_USER_ID no parent agent ID when this agent is spawned by another

Usage with LangGraph

from proviras_sdk import ProvirasSdk
from langgraph.graph import StateGraph

sdk = ProvirasSdk()
graph = ...  # build your StateGraph

tracer = sdk.trace("Answer user question")

result = graph.invoke(
    {"messages": [{"role": "user", "content": "..."}]},
    config={"callbacks": [tracer]},
)
# session is finalized automatically when the root run ends

sdk.trace(task_description) returns a ProvirasTracer. It:

  1. Registers your agent on first run (saves agentId to ~/.proviras/config.json).
  2. Creates a session: POST /api/agent/session.
  3. On each completed LangChain run, posts a trace: POST /api/agent/session/{id}/trace.
  4. When the root run ends, finalizes the session: PATCH /api/agent/session.

Telemetry failures are swallowed — they never break the graph.

What gets captured

For each LangChain Run that completes (run_type of llm, tool, chain, or retriever):

field source
runType run.run_type
stepId run.id
parentTraceId server-issued traceId of the parent run
timestamp run.start_time
latencyMs run.end_time - run.start_time
model run.extra.metadata.ls_model_name
input / output JSON-encoded run.inputs / run.outputs, truncated at 8 KB
tokens run.outputs.llm_output.token_usage (LLM runs only)
error run.error

Posting happens once at root-run completion, in tree preorder, so a child's parentTraceId is always set correctly before the child is posted.

Per-invocation surface

sdk.trace("nightly summary", surface="code")

surface is one of "cowork" | "chat" | "code" | "api" and defaults to "api".

Async LangGraph

LangChain dispatches sync callback handlers on a worker thread when called from async contexts, so ProvirasTracer works with graph.ainvoke() and graph.astream() without changes. Each HTTP call blocks one worker thread for the duration of the 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

proviras_sdk-2.1.7.tar.gz (8.3 kB view details)

Uploaded Source

Built Distribution

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

proviras_sdk-2.1.7-py3-none-any.whl (9.6 kB view details)

Uploaded Python 3

File details

Details for the file proviras_sdk-2.1.7.tar.gz.

File metadata

  • Download URL: proviras_sdk-2.1.7.tar.gz
  • Upload date:
  • Size: 8.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.15

File hashes

Hashes for proviras_sdk-2.1.7.tar.gz
Algorithm Hash digest
SHA256 b91993422636b85b7ee1c3a121b7e2b86f693425cac3cd5290cd9b4b59192b2c
MD5 78182c0444db049b7182adb99ed77fa1
BLAKE2b-256 7ca360c8cc65ae1d06aba3555a23664d30c593d183e60d78fd564e105c70ff13

See more details on using hashes here.

File details

Details for the file proviras_sdk-2.1.7-py3-none-any.whl.

File metadata

  • Download URL: proviras_sdk-2.1.7-py3-none-any.whl
  • Upload date:
  • Size: 9.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.15

File hashes

Hashes for proviras_sdk-2.1.7-py3-none-any.whl
Algorithm Hash digest
SHA256 ebf8a714f9f0bfdd35754e09cc4cc053319cb9e46cd54fcc6dba10c1a36e1eb7
MD5 826a127080bdf07b6b799681366dbdca
BLAKE2b-256 ec175b70ba7c8ab007858aea687032366af037f6738cfeeef7b176648ca258c8

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