opsveritas-sdk
v0.3.3
Published
Monitor your AI agents in 3 lines of code — tokens, cost, latency, and silent failures
Maintainers
Readme
opsveritas-sdk
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.
npm install opsveritas-sdkQuick start (3 lines)
import { OpsVeritas } from 'opsveritas-sdk';
OpsVeritas.init('<your-ingest-key>'); // key from Settings → Integrations
const client = OpsVeritas.wrap(new OpenAI(), { agentName: 'Support Bot' });
// use `client` exactly as before — runs appear in your dashboard automaticallyWorks the same for Anthropic and Gemini clients. Prefer manual control? Wrap a function:
await OpsVeritas.trace('Nightly Report', async () => runReport());LangChain (one line)
Attach the handler to any LangChain chat model, LLM or chain — every call reports token / cost / latency / silent-failure automatically:
import { ChatOpenAI } from '@langchain/openai';
import { OpsVeritas } from 'opsveritas-sdk';
OpsVeritas.init('<your-ingest-key>');
const model = new ChatOpenAI({ callbacks: [OpsVeritas.langchain('My Agent')] });No extra dependency — it's a plain LangChain callback handler. 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>', { metadataOnly: true });Or set the environment variable:
OPSVERITAS_METADATA_ONLY=trueReliability
Telemetry is non-blocking and fire-and-forget — it never throws 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(apiKey, {
endpoint, // optional — defaults to https://agents.opsveritas.com
metadataOnly, // optional — default false; when true, no response content is sent
});License
MIT
