Skip to main content
Pre-release

This release is a pre-release and may not be stable for production use.

Adeptiv GenAI Tracing SDK

Adeptiv GenAI is a lightweight, vendor-neutral OpenTelemetry tracing SDK for LLMs, agents, and AI workflows.

It captures latency, execution flow, hashes, and metadata for all AI use cases.


Key Features

  • Trace-only observability (no response normalization)
  • Works with any LLM (OpenAI, Anthropic, Gemini, local models)
  • Supports chat, summarization, agents, tools, RAG
  • Sync & async compatible
  • Enterprise-safe (hashing, redaction, previews)
  • OpenTelemetry compatible

This ensures zero lock-in and maximum compatibility.


Installation

pip install adeptiv-ai-evaluator-sdk

Adeptiv GenAI Tracing SDK

Tracing an LLM Call

SDK configuration

config.api_key = "" #project Key 
config.project_name = "customer-support-bot" # Project Name


from adeptiv_evaluator_sdk import trace_llm

@trace_llm(model="gpt-4o", operation="chat", workflow_id="")
def chat(prompt):
    return llm.invoke(prompt)

chat("Hello world")
# Adeptiv GenAI Tracing Agents SDK

from adeptiv_evaluator_sdk import trace_llm

@trace_agent("support_agent", model="gpt-4o",workflow_id="")
async def run_agent(query):
    return await agent.run(query)

Containment

When a containment rule in Adeptiv acts on an agent (pause it, block a tool, allow only approved models, slow it down), the SDK enforces it inside your process. Only the agent the rule acted on is affected; every other agent keeps working.

The SDK keeps the use case's policy in memory and refreshes it in the background (every 15 s by default), so a check costs about a microsecond and never makes a network call. Each action ends at the time the rule set, even if Adeptiv cannot be reached. If the policy has never been fetched, nothing is enforced: an Adeptiv outage never stops your agents.

Only functions marked @containment are checked; @trace alone never is, and an app that uses no @containment makes no policy requests. Name agents the way they are named in Adeptiv, and put @containment below @trace so a refused call still shows on its span:

from adeptiv_evaluator_sdk import trace, containment, ContainmentError

@trace(operation="agent", agent_name="Refund Agent")
@containment(agent="Refund Agent")        # pause, approved models, slow down
def refund_agent(question):
    ...

@trace(operation="tool")
@containment(tool="issue_refund")         # blocked for the current agent?
def issue_refund(order_id):
    ...

@containment(model="gpt-4.1")             # outside the approved models?
def ask_model(prompt):
    ...

try:
    reply = refund_agent(question)
except ContainmentError as exc:        # AgentPaused, ToolBlocked, ModelNotApproved, RateLimited
    reply = exc.fallback_message       # "A team member will reply to you shortly." or the rule's message

For a tool dispatcher or a model call you cannot decorate, check it before it runs; the agent is the one of the enclosing @containment(agent=...):

from adeptiv_evaluator_sdk import guard_tool, guard_model

for call in response.tool_calls:
    guard_tool(call.name)              # raises ToolBlocked if this tool is blocked
    run_tool(call)
guard_model("gpt-4.1")                 # raises ModelNotApproved outside the approved list
Setting Env var Default
containment_enabled ADEPTIV_CONTAINMENT true
containment_poll_seconds ADEPTIV_CONTAINMENT_POLL_SECONDS 15 (min 5)
containment_initial_wait_seconds ADEPTIV_CONTAINMENT_INITIAL_WAIT 1 (first call of a process only)
containment_max_wait_seconds ADEPTIV_CONTAINMENT_MAX_WAIT 10 (slow-down wait before RateLimited)
containment_endpoint ADEPTIV_CONTAINMENT_ENDPOINT the policy API Gateway (/v1/containment is appended)

Inside a @trace span, a refused or delayed call marks it with adeptiv.containment.action, adeptiv.containment.outcome (blocked / delayed) and adeptiv.containment.event_id, so Adeptiv can show the containment held.

Metadata

Release files for adeptiv-ai-evaluator-sdk 1.50.0.dev1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for adeptiv-ai-evaluator-sdk 1.50.0.dev1
File Size Uploaded Provenance Actions
adeptiv_ai_evaluator_sdk-1.50.0.dev1.tar.gz 60.5 kB Without provenance Details for adeptiv_ai_evaluator_sdk-1.50.0.dev1.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for adeptiv-ai-evaluator-sdk 1.50.0.dev1
File Interpreter ABI Platform Actions
adeptiv_ai_evaluator_sdk-1.50.0.dev1-py3-none-any.whl Python 3 none any Details for adeptiv_ai_evaluator_sdk-1.50.0.dev1-py3-none-any.whl

Total release size: 132.8 kB

Release files / adeptiv_ai_evaluator_sdk-1.50.0.dev1.tar.gz

Download URL adeptiv_ai_evaluator_sdk-1.50.0.dev1.tar.gz
Size 60.5 kB
Tags Source
SHA-256 checksum
How to use checksums
a393abdcf98ccc3d7c8048ca3968ac3bb6fb64f0cdd7ca076c8d6f2bd2f90e03
BLAKE2b-256 checksum
How to use checksums
a257236b8d4b1569ed11b4fd5d6fc5f946aa2cb55534f5c9d48238b361a451e7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.10.21

Release files / adeptiv_ai_evaluator_sdk-1.50.0.dev1-py3-none-any.whl

Download URL adeptiv_ai_evaluator_sdk-1.50.0.dev1-py3-none-any.whl
Size 72.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
59ba050fdfefd36ea8ad396d0448c1742fb97f80bd1f51e7f2c80581fbf3a85e
BLAKE2b-256 checksum
How to use checksums
5c62a55d94cd515e6c29a3e0ff070ad602e90560ef1d28b2f4cfa18f090d21f2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.10.21

Security for adeptiv-ai-evaluator-sdk 1.50.0.dev1

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release
Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page