Dvarは、agent actionが実システムへ入る境界を保護します。バージョン0.7では、その境界はframework tool、MCP call、通常の関数、local subprocess、または返却されたtool outputになり得ます。
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" }
}
});adapterはframework向けのtool shapeを維持し、実行をDvarへ通します。ラップされていない元のtool objectを呼び出すとDvarをbypassします。
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 filteringは、protected-tool resultがapplicationまたはmodel contextへ返される前に行われます。denyされたoutputはprotected-tool callerへ返されません。
Stdioとlocal 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は監督対象processをshell: falseでspawnし、標準ではparent environmentを継承しません。executable identityを検査し、argumentを拘束し、cwdとpathを制限し、outputをcapし、outcomeを記録できます。
境界ルール
Dvarはsandbox、IAM layer、secrets manager、DLP platform、SIEMではありません。OS permission、workload isolation、application authorization、credential scoping、network policyと組み合わせる必要があります。