dvarドキュメント
1ページ中1ページDvarはAIエージェント向けのポリシーファイアウォールです。副作用が発生する前にツール操作を評価し、allow、deny、require_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_allow、would_deny、would_require_approvalを記録します。 |
enforce | 実行処理の前に、拒否または承認待ちの操作をブロックします。 |
strict | 設定された中で最も強い強制動作を適用します。 |
off | 設定された境界でDvarの評価を無効にします。 |
現在の機能
- 宣言的なYAML・JSONポリシー
- 決定論的な優先順位
- JavaScript・TypeScript向け汎用ツールラッパー
- JSON Schemaによる引数検証
- 安定した理由コード
- プライバシーに配慮した監査イベント
- 組み込みポリシーテスト
- ツールを呼び出さないJSONLリプレイ
- 初期化、検証、診断、テスト、リプレイ、バージョン確認のCLIコマンド
本番導入
- Dvarの境界を通るツールと能力を定義します。
monitorモードから開始します。- 監査イベントとポリシーテストの結果を確認します。
- 強制適用前に想定外の判断を修正します。
- 高リスクな操作から段階的に強制適用を有効にします。
- アプリ認可、IAM、サンドボックス、シークレット、インフラポリシーを維持します。