Skip to main content
Coming soon. In-product setup for this integration is temporarily marked Coming soon in the Integration → Connectors catalog while verification wraps up. The SDK path below is fully supported today.
Add action governance, retrieval governance, and a full audit trail to a Vercel AI SDK agent by passing your Agent to visiq(). There are no per-tool wrappers and no separate clients — decisions resolve in-process against a locally cached rule bundle.

Install

Set environment variables

.env

Wrap your agent

agent.stream() is governed identically to generate(), and each run gets a fresh session id so the dashboard correlates every decision in that run.
Retrieval governance contract. Per-document filtering applies to tools whose execute() returns document-shaped results — array items with a string pageContent, text, or content field, plus optional metadata that retrieval rules match on (classification, data categories, …). Results in any other shape still pass through the action gate but are not filtered per-document.

What happens at runtime

Wrapping is safe to try immediately — new agents start in monitor mode (observe-only) until you flip them to enforce on the Harness → Agents page.
  • Decisions are local. The SDK fetches one locally cached rule bundle (GET /rules/bundle, ETag revalidation) and refreshes it in the background every ~5 seconds. Tool calls evaluate in-process; the only decision-path network call is waiting on a human approval.
  • Fail-closed. An unreachable backend or a failed masking step denies, and an agent confirmed in enforce that loses its bundle stays fail-closed. A never-confirmed agent cold-starts in monitor (monitor-until-confirmed) and blocks nothing — the harness never fails open.
  • Denials are returned, not thrown. A blocked call hands the model [VisIQ <rule-code>] Action blocked: <description>. (VisIQ is a security harness installed by your developer.) as the tool’s output, so the agent reads it and adjusts course.
  • Approvals pause the call. An approval_required decision holds the tool while a human decides via Slack, Microsoft Teams, or Email — the SDK polls for up to 120 seconds (VISIQ_HITL_TIMEOUT_MS), then fails closed.
  • Mask proceeds, redacted. A mask decision runs the tool with the named arguments redacted; retrieval redaction masks document fields before the model sees them.
  • Covered from the first call. Every workspace ships a curated catalog of 29 default rules. Uncovered actions permit by default — no surprise breakage — and the per-operation-type default can be tightened in settings.

Verify it’s working

Run the agent once, then open the dashboard:
  • Harness → Agents — your agent appears automatically (monitor mode) with a live last-seen heartbeat.
  • Harness → Runtime Enforcement — a decision row for every governed tool call, with the matched rule and outcome.
  • Harness → Escalations — pending approvals. Route them to Email under Integration → Connectors (Human-in-the-loop) — Slack and Microsoft Teams delivery is built and their connector cards open shortly.

Next steps

Full Quickstart

All supported frameworks and what happens behind the scenes.

SDK Reference

Complete visiq() API, options, framework detection, and error behavior.