Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Dogwoodって何?

 Dogwoodって何?

Avatar for 赤神青空

赤神青空

August 21, 2026

More Decks by 赤神青空

Other Decks in Programming

Transcript

  1. ▪2026年8月6日、Apache 30秒でわかるDogwood 2.0 でオープンソース公開 エージェントのツール呼び出しの列を統治するための言語です。 AgentCore Policy にも同日から載っています 01 02

    03 04 既存ポリシーは書き換え不 要 when temporal で履歴を条 件に書ける メトリック一階時相論理と いう形式体系 動かしながら仕様違反を捕 まえる Cedarを内包 今ココ 導入 過去が見える 土台はMFOTL 実行時検証 3/13
  2. ▪Dogwood5つの部品でできている の話に出てくるのは Gateway だけ エージェント本体 Strands / LangGraph / CrewAI

    / LlamaIndex ── フレームワークもモデルも問わない Runtime エージェントを動かす場所 セッションごとに 隔離されたmicroVM Gateway ツールの⼊り⼝ 既存のAPIやLambdaを MCPサーバーに変える AgentCore Policy Gateway に付ける認可の層 Memory 短期‧⻑期の記憶 ユーザー単位で 持ち回す Identity エージェントの⾝元 Cognito / Okta / Entra ID とつなぐ Observability 推論‧ツール呼び出しの トレース CloudWatch へ 組み込みツール Code Interpreter(コード実⾏)∕ Browser(ブラウザ操作) 必要なものだけ選んで使える。全部⼊りで採⽤する必要はない Policy は Gateway に付ける層。ほかの部品とは独立している 今ココ どこにある 4/13
  3. ▪モデルの外側、ゲートウェイの内側で判定する そもそもどこにいるのか Dogwood が効くのは、Gateway と Policy Engine の境界 既定は deny∕forbid

    が permit に勝つ。判定は ALLOW か DENY のどちらかにしかならない AIエージェント 呼び出しを「提案」するだけ ポリシーは⾒えない ① ③ 許可なら通す Gateway MCP ツール transfer / delete ... ツール呼び出しの⼊り⼝ エージェントのコードの外側 ② 可否を尋ねる ④ 禁⽌なら DENY request イベントに付く判定 照会 Policy Engine イベント履歴 Cedar / Dogwood を評価 request / response / error Gateway に「アタッチする」別リソース セッション単位‧既定の上限は24時間 追記 モデルは呼び出しを「提案」するだけで、可否には触れない 今ココ どこにある 5/13
  4. ▪同じリクエストでも、判定に使える材料が変わる 見えている範囲が違う Cedar|⾒えるのは「今」だけ ApproveSale response GetPrice response Transfer request Transfer

    request SellShares いま来た request 判定 過去のイベントは評価に⼀切⼊らない。だから同じ⼊⼒なら常に同じ答えになる(=解析しやすい) Dogwood|窓の中の「列」が⾒える ApproveSale response within h の窓(いまから遡って測り直される) GetPrice Transfer response request Transfer request SellShares いま来た request 判定 承認があったか‧何回やったか‧いくら使ったかが、そのまま条件式に書ける Dogwood は窓の中の履歴ごと条件に書ける 今ココ なぜ要る 7/13
  5. ▪when の隣に 節がひとつ増えただけ when temporal が並ぶ 「1時間以内に、同じ銘柄・同じ株数の承認が下りていること」を条件にします。 dogwood permit (principal,

    action == AgentCore::Action::"SellShares", resource) when temporal { formerly within 1h AgentCore::Action::"ApproveSale"::response{ input.stock: input.shares: context.input.stock, context.input.shares, output.approved: true } }; 今ココ 何が書ける 8/13
  6. ▪上3つが言語のプリミティブ、下4つが標準マクロ 演算子の早見表 有無 直前 継続 回数 種類 合計 変数 formerly

    previous since count_within count_distinct sum_within bind 今ココ 何が書ける 窓の中で一度でも起きたか ひとつ前の時点を見る ある事象からの継続を見る 窓の中のイベント数 束ねた値の異なり数(_within) 束ねた値の合計 集計に名前を付けて比較する 9/13
  7. ▪足したものと、その代償が対になっている 包含関係で見る Dogwood 構⽂的に妥当なCedarポリシーは、そのままDogwoodポリシーとしても妥当 Cedar principal / action / resource

    when { ... } 現在のリクエストだけを⾒る deny by default‧forbid が permit に勝つ ⾃動推論による静的解析が効く 実⾏前に「何を許し、何を許さないか」を証明できる Dogwood が⾜したもの when temporal { ... } 過去のイベント列を⾒る formerly + count / sum / bind などのマクロ ⼟台は MFOTL(メトリック⼀階時相論理) 静的解析は、いまのところ効かない 実⾏時に履歴を持って初めて判定できる 移⾏作業は不要。書き換えずに、必要な箇所だけ temporal を⾜していける 認可のセマンティクス(deny by default、forbid優先)は変わらない 今ココ 代償 10/13
  8. ▪Rust 1.96.1 参照実装のCLI / dogwood 1.0.0 で確認 検証 再生 変換

    生成 validate replay lower schema mcp 今ココ 入口 構文・型・スキーマを検査する 履歴を流して判定の変化を見る Cedar に落とした姿を見る tools/list からスキーマを作る 11/13