Dvar schützt die Grenze, an der eine Agentenaktion in ein reales System eintritt. In Version 0.7 kann diese Grenze ein Framework-Tool, ein MCP-Aufruf, eine gewöhnliche Funktion, ein lokaler Subprozess oder zurückgegebener Tool-Output sein.
Vercel AI SDK Adapter
import { protectVercelAISDKTools } from "@rokadhq/dvar/adapters/vercel-ai-sdk";
const tools = protectVercelAISDKTools(originalTools, {
runtime: dvar,
context: {
principal: { id: "user-1", type: "user" },
agent: { id: "assistant", framework: "vercel-ai-sdk" },
environment: "production",
session: { id: "session-1" }
}
});Der Adapter erhält die Framework-seitige Tool-Form und routet Ausführung durch Dvar. Aufrufe der ursprünglichen, nicht gewrappten Tool-Objekte umgehen Dvar.
Output Guard
const dvar = await createDvar({
policyPath: "dvar.yaml",
outputGuard: {
policy: {
maxBytes: 64000,
allowedContentTypes: ["json", "text"],
redactBuiltInSecrets: true,
deny: [{ id: "prompt-injection", pattern: "ignore previous instructions" }]
}
}
});Output-Filterung geschieht, bevor Ergebnisse geschützter Tools an Anwendung oder Modellkontext zurückgegeben werden. Verweigerter Output wird nicht an Aufrufer geschützter Tools zurückgegeben.
Stdio und lokale Tools
import { createStdioSupervisor } from "@rokadhq/dvar/stdio";
const supervisor = createStdioSupervisor({
runtime: dvar,
policy: {
requireAbsoluteCommand: true,
allowedExecutables: [{ command: "/usr/bin/git" }],
timeoutMs: 10000,
maxStdoutBytes: 32000,
env: { inherit: false }
}
});Dvar startet überwachte Prozesse mit shell: false und erbt standardmäßig nicht die Parent-Umgebung. Es kann Executable-Identität prüfen, Argumente binden, cwd und Pfade beschränken, Output begrenzen und Ergebnisse aufzeichnen.
Grenzregel
Dvar ist keine Sandbox, IAM-Schicht, kein Secrets Manager, keine DLP-Plattform und kein SIEM. Es muss mit Betriebssystemberechtigungen, Workload-Isolation, Anwendungsautorisierung, Credential-Scoping und Netzwerk-Policy kombiniert werden.