Skip to main content

TraceCtrl Enterprise SDK — agentic AI security observability for the enterprise platform

Project description

tracectrl-enterprise

TraceCtrl Enterprise SDK — instrument your agentic AI application to send traces to a TraceCtrl Enterprise deployment.

Apache 2.0 licensed. Built directly on OpenTelemetry and OpenInference — self-contained, with no other TraceCtrl runtime dependency. Adds enterprise-specific defaults (collector endpoint, required ingest-key auth, fail-loud behaviour) plus configure(), instrument(), and track() for deterministic, source-declared agent identity.

Install

pip install "tracectrl-enterprise[strands]"   # or [agno], [langchain], [crewai], [google-adk], [all]

The framework extras pull the matching OpenInference instrumentor. The base package (pip install tracectrl-enterprise, just OpenTelemetry) is enough if you only use configure() + track() without framework auto-instrumentation.

Quickstart

import os
from tracectrl_enterprise import configure, instrument, track

configure(ingest_key=os.environ["TRACECTRL_INGEST_KEY"])  # auth + endpoint
instrument("strands")                                      # framework auto-instrumentation

from strands import Agent
agent = track(Agent(name="PaymentAgent", system_prompt="..."))  # declare identity once

agent("refund order 123")   # every invocation is now a clean AGENT span

Three calls:

  1. configure(ingest_key=...) — initialise the OTLP pipeline against your collector (required ingest key; fails loud if missing).
  2. instrument(framework) — activate OpenInference auto-instrumentation for your framework ("strands", "agno", "langchain", "crewai", "google-adk", a list, or "auto" to pick up whatever's installed), plus the enterprise enrichment processors.
  3. track(agent) — wrap an agent object once. track reads the agent's name and system prompt automatically and stamps the canonical openinference.span.kind=AGENT + tracectrl.agent.{id,name,framework} (and role/system_prompt when available) at the source — so the platform never has to guess agent identity from span names. Returns the same agent (chainable).

Override any field explicitly when the defaults aren't right (notably for LangChain/CrewAI/Google ADK, whose agents don't self-describe):

agent = track(my_chain, id="invoice-extractor", name="InvoiceExtractor",
              framework="langchain", role="document_extraction")

For multi-turn flows, group traces with the session helpers:

from tracectrl_enterprise import new_session
new_session()   # or set_session_id("<your conversation id>")

Mark externally-triggered entry points with the ingress decorator so the platform records how a run was triggered:

from tracectrl_enterprise import ingress

@ingress(trigger_type="email")
def handle_inbound(msg): ...

Tenancy is set by the collector, never the SDK

Spans export over OTLP/gRPC with Authorization: Bearer <ingest_key>. The collector resolves your ingest key to a tenant and stamps tracectrl.tenant_id on every span — your app can't (and shouldn't) set tenancy itself; the collector is the trust boundary.

Configuration

configure(ingest_key=..., endpoint=..., service_name=...):

Argument Env var Default Required
ingest_key TRACECTRL_INGEST_KEY yes — fails loud if not set
endpoint TRACECTRL_ENDPOINT https://app.tracectrl.ai/ingest no
service_name TRACECTRL_SERVICE_NAME tracectrl-agent no

Migrating from 0.1.x

0.1.x exposed a tag_agent(id=, name=, framework=) decorator placed on each agent invocation. It has been removed in favour of track(), which reads identity off the agent object, captures the system prompt, and composes with the framework instrumentors. Replace @tag_agent(id="x", name="X", framework="f") on a function with agent = track(my_agent, ...) on the agent object.

License

Apache 2.0. The TraceCtrl Enterprise server-side platform (engine, collector, UI) is BUSL-licensed; the SDK is permissively licensed so it can be embedded in your proprietary code without restriction.

Reporting issues

https://github.com/tracectrl/tracectrl-enterprise/issues

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

tracectrl_enterprise-0.2.3.tar.gz (20.5 kB view details)

Uploaded Source

Built Distribution

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

tracectrl_enterprise-0.2.3-py3-none-any.whl (25.8 kB view details)

Uploaded Python 3

File details

Details for the file tracectrl_enterprise-0.2.3.tar.gz.

File metadata

  • Download URL: tracectrl_enterprise-0.2.3.tar.gz
  • Upload date:
  • Size: 20.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for tracectrl_enterprise-0.2.3.tar.gz
Algorithm Hash digest
SHA256 bbc9029df4773e19c02d90967295c62958ed3bb1add7f8f3e5c7de0e0a5f296f
MD5 554cc7a8ad254043a5d272bc45de4121
BLAKE2b-256 f81c34d0b169174564106b32c8b7415fd42f1e4b9447b88d573ab2ca0f1f387d

See more details on using hashes here.

Provenance

The following attestation bundles were made for tracectrl_enterprise-0.2.3.tar.gz:

Publisher: publish-sdk.yml on tracectrl/tracectrl-enterprise

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file tracectrl_enterprise-0.2.3-py3-none-any.whl.

File metadata

File hashes

Hashes for tracectrl_enterprise-0.2.3-py3-none-any.whl
Algorithm Hash digest
SHA256 0d6e464d8a06a227704081a5ab9e7c0ece7516e23da0022c16fbabf5fd628cb7
MD5 cffa312d97e3e3a71b01fe308ca0c686
BLAKE2b-256 2b73ecbf49cc32a4afb84ae824e55808fc8f800edd9ddff2c99752abdf96160f

See more details on using hashes here.

Provenance

The following attestation bundles were made for tracectrl_enterprise-0.2.3-py3-none-any.whl:

Publisher: publish-sdk.yml on tracectrl/tracectrl-enterprise

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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