TypeScript
@vouch/sdk
refund-agent.ts
// @vouch/sdk (TypeScript)
import { instrumentOpenAI, scan, guard } from "@vouch/sdk";
import OpenAI from "openai";
const openai = instrumentOpenAI(new OpenAI(), {
agentId: "refund-agent",
baseUrl: process.env.VOUCH_BASE_URL,
});
// 1) auto-instrument every chat call
const reply = await openai.chat.completions.create({
model: "gpt-4o-mini",
messages: [{ role: "user", content: input }],
});
// 2) one-off scan
const verdict = await scan({ prompt: input });
if (verdict.action === "block") throw new Error(verdict.reason);
// 3) guard wrapper (throws VouchBlockedError on policy block)
const result = await guard(input, async () => {
return await callOurAgent(input);
});Python
vouch_sdk
refund_agent.py
# vouch_sdk (Python)
from vouch_sdk import instrument_openai, scan, guard
openai = instrument_openai(
openai_client,
agent_id="refund-agent",
base_url=os.environ["VOUCH_BASE_URL"],
)
verdict = scan(prompt=user_input)
if verdict.action == "block":
raise PolicyBlocked(verdict.reason)
result = guard(user_input, lambda: call_our_agent(user_input))Coverage
What gets instrumented.
- Trace ingestion — model name, prompt + system, retrieved context, tool calls, tool results, latency, cost, agent fingerprint.
- Firewall scan — pre-tool input scan + post-generation output scan. Blocks land as findings.
- Policy gates — guard() wraps any function with the agent's policy graph. Throws VouchBlockedError on block.
- Cert reporting — every call ticks the score components (firewall block-rate, intent failure-rate). Cert auto-mints every 6h.