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.2.tar.gz (7.2 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.2-py3-none-any.whl (8.4 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: proviras_sdk-2.1.2.tar.gz
  • Upload date:
  • Size: 7.2 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.2.tar.gz
Algorithm Hash digest
SHA256 89528d798222ffda9d5bba0c88d6383e728a75c450a631f27ca8807fea9f8e91
MD5 e461b2c6e4bc6e2c7b255955f1958044
BLAKE2b-256 3588ee598a21a2bdc7ff855d4eee8d035a0aabd708b15a2cdcbbba92eb43c27b

See more details on using hashes here.

File details

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

File metadata

  • Download URL: proviras_sdk-2.1.2-py3-none-any.whl
  • Upload date:
  • Size: 8.4 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.2-py3-none-any.whl
Algorithm Hash digest
SHA256 f98e6263c5fe1437b7979a7f9ef6d4232a7da2c1d34aec4a094f8be9582a041f
MD5 59bdd7025c4cb77b5edb886fe75fb618
BLAKE2b-256 424f57e2910d7930420f66ccc5d6f22af55910e1422e09c16498acd0e28ae24d

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