Rokad
すべてのドキュメント
dvarドキュメント

はじめに

Dvarを導入し、AIエージェントのツール操作の前に決定論的なポリシー制御を配置します。

リポジトリを見る
dvarドキュメント
1ページ中1ページ

DvarはAIエージェント向けのポリシーファイアウォールです。副作用が発生する前にツール操作を評価し、allowdenyrequire_approvalのいずれかを決定論的に返します。

Dvarは、アプリケーション認可、IAM、サンドボックス、シークレット管理、データベース権限、ネットワークポリシーを補完します。これらを置き換えるものではなく、Dvarのインターセプト境界を通る操作だけを保護します。

状態

現在のリリースは安定版前です。更新前にリリースノートを確認し、本番で強制適用を有効にする前にポリシーの動作をテストしてください。

インストール

bash
npm install @rokadhq/dvar

ポリシーを初期化

bash
npx dvar init
npx dvar validate
npx dvar test-policy

生成されるポリシーはmonitorモードで開始します。監視モードでは操作を実行しつつ、Dvarが適用したはずの判断を記録します。

ツールを保護

ts
import { createDvar } from "@rokadhq/dvar";

const dvar = await createDvar({ policyPath: "dvar.yaml" });

const readCustomer = dvar.protectTool({
  name: "crm.read_customer",
  capabilities: ["data.read"],
  inputSchema: {
    type: "object",
    additionalProperties: false,
    required: ["customerId"],
    properties: {
      customerId: { type: "string", minLength: 1 },
    },
  },
  execute: async ({ customerId }: { customerId: string }) => ({
    customerId,
    status: "active",
  }),
});

実行コンテキストとともに保護されたツールを呼び出します。

ts
const customer = await readCustomer(
  { customerId: "customer-1" },
  {
    principal: { id: "user-1", type: "user" },
    agent: { id: "support-agent" },
    tenant: { id: "tenant-a" },
    environment: "production",
  },
);

動作モード

モード動作
monitor操作を実行し、would_allowwould_denywould_require_approvalを記録します。
enforce実行処理の前に、拒否または承認待ちの操作をブロックします。
strict設定された中で最も強い強制動作を適用します。
off設定された境界でDvarの評価を無効にします。

現在の機能

  • 宣言的なYAML・JSONポリシー
  • 決定論的な優先順位
  • JavaScript・TypeScript向け汎用ツールラッパー
  • JSON Schemaによる引数検証
  • 安定した理由コード
  • プライバシーに配慮した監査イベント
  • 組み込みポリシーテスト
  • ツールを呼び出さないJSONLリプレイ
  • 初期化、検証、診断、テスト、リプレイ、バージョン確認のCLIコマンド

本番導入

  1. Dvarの境界を通るツールと能力を定義します。
  2. monitorモードから開始します。
  3. 監査イベントとポリシーテストの結果を確認します。
  4. 強制適用前に想定外の判断を修正します。
  5. 高リスクな操作から段階的に強制適用を有効にします。
  6. アプリ認可、IAM、サンドボックス、シークレット、インフラポリシーを維持します。