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.1.tar.gz (5.8 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.1-py3-none-any.whl (7.0 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: proviras_sdk-2.1.1.tar.gz
  • Upload date:
  • Size: 5.8 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.1.tar.gz
Algorithm Hash digest
SHA256 8d159c7688bcce3135c6c6c5803b4a69f6183e61830a0a0acbe40b0b0eb2fc26
MD5 0feb7e090151db938d62fe31ea0672ec
BLAKE2b-256 ad5c151d5842c7713869785891c43fe14e48828fc1c7a16d3908db7a42173ce4

See more details on using hashes here.

File details

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

File metadata

  • Download URL: proviras_sdk-2.1.1-py3-none-any.whl
  • Upload date:
  • Size: 7.0 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.1-py3-none-any.whl
Algorithm Hash digest
SHA256 251840124acb47a91cd970c297cc28c06241ea0343139af5cbc0d3d7b9e6935a
MD5 642dc87a24f9b663b093744848cad8fc
BLAKE2b-256 7cde919aacccb7526faa1d05a0425af4a5d4c68bc8fb4c57ea2ff757e463ea72

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