Skip to main content

Splyntra SDK - Agent observability & security, built on OpenTelemetry

Project description

Splyntra

Splyntra Python SDK

PyPI License

Unified observability and security for AI agents in Python. Built on OpenTelemetry, the Splyntra SDK captures every agent step, LLM call, and tool invocation as a structured trace — enriched with real-time risk scoring for leaked secrets, PII exposure, and prompt injection.

Installation

pip install splyntra

With framework auto-instrumentation:

pip install "splyntra[langgraph,openai]"

Available extras: langgraph, openai, openai-agents, crewai

Getting Started

Initialize once at application startup. The instrument parameter enables automatic tracing for supported frameworks — no per-call changes required.

from splyntra import Splyntra

Splyntra(
    api_key="splyntra_dev_key",
    project="my-app",
    endpoint="http://localhost:4318",
    framework="langgraph",
    instrument=("langgraph", "openai"),
)

# Run your LangGraph / OpenAI agent as usual — spans are captured automatically.

To instrument separately (e.g., after configuring the client elsewhere):

from splyntra import instrument

instrument()                 # auto-detect all installed frameworks
instrument("langgraph")      # or target a specific one

Manual Instrumentation

For custom agent, tool, and LLM functions, use decorators. Both sync and async functions are supported.

from splyntra import trace_agent, trace_tool, trace_llm

@trace_agent(name="support_agent", workflow="refund")
def run(query: str):
    customer = read_customer("42")
    return call_llm(query)

@trace_tool(name="crm.read")
def read_customer(id: str):
    ...

@trace_llm(model="gpt-4o", provider="openai")
def call_llm(prompt: str) -> dict:
    # Return a dict with a "usage" key for token/cost analytics
    ...

Configuration

Parameter Default Description
api_key required Splyntra API key (sent as Bearer token)
project required Project slug
endpoint http://localhost:4318 Collector base URL
environment development Deployment environment label
service_name value of project OpenTelemetry service.name resource
framework None Framework label shown on the Agents page
redact_by_default True Strip secrets from spans before export
instrument None Tuple of frameworks to auto-instrument

Client-Side Redaction

High-confidence secrets (AWS keys, JWTs, bearer tokens, API keys) are stripped from span attributes before they leave your process. The collector applies a second pass on ingest as defence-in-depth.

Disable with redact_by_default=False (not recommended for production).

Supported Frameworks

Framework Extra name Span mapping
OpenAI SDK openai Chat completions → llm_call spans
LangGraph langgraph Graph run → agent span, nodes → step spans
OpenAI Agents openai-agents Runner.runagent span
CrewAI crewai Crew kickoff → agent, tasks → step, tools → tool_call

Each instrumentor is a safe no-op when its target package is not installed.

For out-of-process platforms (Dify, n8n), see Integrations.

Evaluation

Run scored evaluations against the Splyntra evaluation service. The CLI exits non-zero on regression, making it suitable as a CI gate.

from splyntra import eval as ev

ev.push_dataset("support-qa", [{"input": "...", "expected_output": "..."}])
result = ev.run(dataset_id, results=[{"input": "...", "actual": "..."}], gate=True)
splyntra eval push --name support-qa --file dataset.jsonl
splyntra eval run  --dataset <id> --file results.jsonl --gate

Governance

Request delegation decisions and record consequential actions to the immutable ledger:

from splyntra import authorize, log_action

decision = authorize(
    "payments.refund",
    agent_id="support_agent",
    context={"amount": 80},
)

if decision["decision"] == "allow":
    # proceed with action
    ...
elif decision["decision"] == "needs_approval":
    # routed to human approval in the dashboard
    ...

log_action("refund", actor="support_agent", resource="order_42", metadata={"amount": 80})

Examples

python examples/quickstart.py             # Decorator-based, framework-free
python examples/langgraph_quickstart.py   # LangGraph end-to-end
python examples/crewai_quickstart.py      # CrewAI crew
python examples/security_demo.py          # Deliberately triggers security detections

License

Apache-2.0 — see LICENSE.

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

splyntra-1.3.0.tar.gz (25.4 kB view details)

Uploaded Source

Built Distribution

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

splyntra-1.3.0-py3-none-any.whl (36.6 kB view details)

Uploaded Python 3

File details

Details for the file splyntra-1.3.0.tar.gz.

File metadata

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

File hashes

Hashes for splyntra-1.3.0.tar.gz
Algorithm Hash digest
SHA256 f655d8a022bc4e3133794e0259d7341441aa46a7cce57efc63a527499d025cc9
MD5 fab246d9d28f08d8eba7d1165a682ae4
BLAKE2b-256 f993e1a8e29b1bc0948fcdd7ba20e1b91b0be7ecf27f20fe6f448aa2da6e3ad2

See more details on using hashes here.

Provenance

The following attestation bundles were made for splyntra-1.3.0.tar.gz:

Publisher: release.yml on splyntra/splyntra

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

File details

Details for the file splyntra-1.3.0-py3-none-any.whl.

File metadata

  • Download URL: splyntra-1.3.0-py3-none-any.whl
  • Upload date:
  • Size: 36.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for splyntra-1.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 6cbe3c1474940da80731a6d0a1df8adbbc0d8639471443303ae76694b308cf60
MD5 cb09b4ee8c8761f725e5cd82b3e2d644
BLAKE2b-256 581f8bb0e50864fac419afd549a014294c7a43667c36bf4b49044d127ba74b11

See more details on using hashes here.

Provenance

The following attestation bundles were made for splyntra-1.3.0-py3-none-any.whl:

Publisher: release.yml on splyntra/splyntra

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