Skip to main content

Monitor your AI agents in 3 lines of code — tokens, cost, latency, and silent failures

Project description

opsveritas

Monitor your AI agents in three lines of code. Tracks tokens, cost, latency, model, and silent failures (200 OK with empty output) — and routes alerts to Slack / Email / Teams via OpsVeritas AI Agents Control Tower.

pip install opsveritas

Quick start (3 lines)

import opsveritas

opsveritas.init("<your-ingest-key>")                       # key from Settings → Integrations
client = opsveritas.wrap(openai_client, agent_name="Support Bot")
# use `client` exactly as before — runs appear in your dashboard automatically

Works the same for Anthropic and Gemini clients. Prefer manual control? Use the decorator:

@opsveritas.monitor("Nightly Report")
def run_report():
    ...

LangChain (one line)

Attach the handler to any LangChain chat model, LLM or chain — every call reports token / cost / latency / silent-failure automatically:

from langchain_openai import ChatOpenAI
import opsveritas

opsveritas.init("<your-ingest-key>")
model = ChatOpenAI(callbacks=[opsveritas.langchain("My Agent")])

Needs langchain-core (optional): pip install "opsveritas[langchain]". Works with any LangChain-backed provider (OpenAI, Anthropic, Gemini, Groq…). Inside opsveritas.run(...) the handler aggregates into a single execution instead of double-counting.

What data is sent

By design the SDK sends metadata only, plus a short output snippet — never your prompts/inputs:

Sent Detail
✅ Metadata agent name, status, timestamps, duration, token counts, model, cost, tool-call count
⚠️ Output snippet first ~3,000 chars of the response (output_summary) — powers silent-failure detection
⚠️ Error message the exception text, if a call fails
❌ Prompts / inputs never sent — only token counts

Metadata-only mode (for regulated / client data)

Drop the output snippet and redact error text so no response content ever leaves your environment — token/cost/latency metadata still flows:

opsveritas.init("<your-ingest-key>", metadata_only=True)

Or set the environment variable:

OPSVERITAS_METADATA_ONLY=true

Reliability

Telemetry is non-blocking and fire-and-forget — it never raises into your code and never slows your agent. If the ingest endpoint is briefly unreachable, sends are retried with backoff and buffered in memory (bounded), then flushed on the next event — so a transient outage doesn't lose telemetry.

Configuration

opsveritas.init(
    api_key,
    endpoint="https://agents.opsveritas.com",  # optional
    metadata_only=False,                        # optional; when True, no response content is sent
)

License

MIT

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

opsveritas-0.4.0.tar.gz (22.0 kB view details)

Uploaded Source

Built Distribution

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

opsveritas-0.4.0-py3-none-any.whl (18.8 kB view details)

Uploaded Python 3

File details

Details for the file opsveritas-0.4.0.tar.gz.

File metadata

  • Download URL: opsveritas-0.4.0.tar.gz
  • Upload date:
  • Size: 22.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.9

File hashes

Hashes for opsveritas-0.4.0.tar.gz
Algorithm Hash digest
SHA256 3bd4c0e90003a3b71b1c3475719f5794bdfcdb2588faca55ca9f01476b12fdb2
MD5 3b4b0b730074d76001213c9f7eec9c19
BLAKE2b-256 df84c47d03c45d0fa9fe043b881eace6a088da36014fb9b1a89f32a527c0db15

See more details on using hashes here.

File details

Details for the file opsveritas-0.4.0-py3-none-any.whl.

File metadata

  • Download URL: opsveritas-0.4.0-py3-none-any.whl
  • Upload date:
  • Size: 18.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.9

File hashes

Hashes for opsveritas-0.4.0-py3-none-any.whl
Algorithm Hash digest
SHA256 25154f7b30b8101ec6fff84101eadeda1ebfecb7b3b270d2c5aad1161a35ea27
MD5 e5e08d8c609324e34de3027e01d5303e
BLAKE2b-256 1d4b89b9915d1b48096f07b4734db2614e931b0f07202b261284a6370cd9f7b2

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