Java 27のRC2公開、G1がGCの標準に・TLSはポスト量子鍵交換に対応

概要 Java 27の2回目のリリース候補(RC2)ビルドが8月20日に公開され、9月15日の正式リリースに向けた機能セットが確定した。今回のリリースはLTS(長期サポート)版ではない通常のリリースで、8月6日公開のRC1に続くもの。合計9件のJEP(JDK Enhancement Proposal)が含まれ、うち5件はプレビューまたはインキュベーション機能の再提出となっている。 G1ガベージコレクタの全面デフォルト化 最大の変更点はJEP 523「Make G1 the Default Garbage Collector in All Environments」で、これまでサーバークラスのマシンに限定されていたG1のデフォルト適用を、すべての実行環境に拡大する。JDK 26でG1と他のGC実装とのパフォーマンス差が縮まったことでこの変更が可能になった。すでに-XX:+UseG1GCを指定してG1を利用しているアプリケーションへの影響はなく、-XX:+UseParallelGCや-XX:+UseSerialGCで従来のGCを選択することも引き続き可能。 TLSのポスト量子ハイブリッド鍵交換 もう一つの主要な変更がJEP 527で、アプリケーション側のコード変更なしにTLS 1.3向けのポスト量子ハイブリッド鍵交換を追加する。JVMは古典的な楕円曲線鍵交換とNIST FIPS 203で標準化されたML-KEM-768を組み合わせたX25519MLKEM768をアドバタイズするようになる。これは、攻撃者が現在暗号化された通信を収集しておき、将来量子コンピュータで復号する「Harvest Now, Decrypt Later」攻撃への対策となる。 その他の変更点 このほか、64ビットJVMでコンパクトオブジェクトヘッダーをデフォルト化するJEP 534、Flight Recorderのデータから機密情報を自動的に除去するJEP 536も標準機能として含まれており、オブジェクトヘッダーサイズが96ビットから64ビットに縮小され、実運用ワークロードでヒープフットプリントを22%削減するとされている。プレビュー・インキュベーション機能としては、構造化並行性(Structured Concurrency)が7回目のプレビューを迎えるJEP 533、プリミティブ型のパターンマッチングに対応するJEP 532などが含まれる。Vector APIのインキュベーションも継続される。 今後の見通し Java 27は9月15日に正式リリースされる予定で、LTS版ではないため主に最新機能を試したい開発者向けのリリースとなる。次のLTS版であるJava 29に向けて、今回のプレビュー機能の多くが正式機能化されると見込まれる。

August 24, 2026

Google、AIコーディングエージェント「Antigravity」をJetBrains・Zedにも展開、Gemini Enterpriseで企業統制機能を強化

概要 Googleは、DeepMind発のAIコーディングエージェント「Antigravity」の対応範囲を拡大し、これまで対応していたVisual Studio Codeに加えて、Visual Studio、JetBrains系IDE、Zedへの拡張機能提供をプレビューとして開始した。あわせてAntigravityをGemini Enterpriseのサブスクリプション(Standard、Plus、Standard Emerging Marketの各プラン)に統合し、企業の管理者が組織全体でAIコーディングエージェントの利用を一元管理できるようにした。Antigravityはデスクトップアプリ(v2.0)、CLI、SDK、IDE拡張という複数のインターフェースを通じて利用できるエージェント型の開発ツールであり、今回の展開により主要な開発環境のほぼすべてをカバーする形になった。 エンタープライズ向け管理機能 新たに追加された管理機能は、大きく予算管理とセキュリティ・監査の2系統に分かれる。予算管理面では、プロジェクト単位での月間予算上限の設定、複数チーム間でのトークンプール共有、利用量が上限を超えた際の課金オプションなど、コストの可視化と統制を目的とした機能が用意された。セキュリティ・監査面では、ワークスペースやブラウザ、MCPサーバーへのアクセス制御、ターミナルでのコマンド実行に対するサンドボックス化や承認制の適用、プロンプトおよびレスポンスの監査ログ取得、Workforce Identity Federationへの対応などが盛り込まれている。これらはGoogle Cloudのデータ処理補足契約(DPA)に準拠する形で提供され、企業のデータプライバシー要件にも対応する。 背景 Googleによれば、これらの企業向け統制機能はエンタープライズ顧客からの要望を受けて実装されたものであり、AIコーディングエージェントを組織内で安全かつ管理可能な形で展開したいというニーズに応える狙いがある。導入企業の一つであるAccentureは、「セキュアで信頼できるGoogle Cloudの基盤のもと、最高レベルのテクノロジーで技術者を支援できる」とコメントし、今回の統合を評価している。一方でThe Registerは、この発表がDeepMindの組織再編や主要AI研究者の相次ぐ離脱など、Google社内のAI部門をめぐる一連の動揺(“AIシェイクアップ”)のさなかに行われた点を指摘しており、Antigravityのエンタープライズ強化はGoogleが競合の激しいAIコーディングツール市場での地位を固めようとする動きの一環とみられる。 今後の展望 JetBrainsおよびZed向けの拡張機能は現時点でプレビュー版としての提供にとどまっており、正式版への移行時期は明らかにされていない。今後、対応IDEの拡大や管理機能の追加が進めば、Antigravityは個人開発者向けツールから企業のソフトウェア開発基盤の一部としての位置づけをさらに強めていく可能性がある。

August 24, 2026

Flutter 3.47リリース、MaterialとCupertinoを独立パッケージ化しWebAssembly標準化へ前進

概要 Googleは2026年8月12日、クロスプラットフォーム開発フレームワークFlutterの最新版「Flutter 3.47」を正式リリースした。今回の目玉は、これまでFlutter本体に統合されていた「Material」と「Cupertino」の2つのUIライブラリがスタンドアロンパッケージとして分離されたことだ。MaterialはGoogleの「Material Design」に準拠し、Android・Windows・Webアプリ向けのUI構築に適したライブラリ、CupertinoはAppleの「Human Interface Guidelines」に準拠し、iOS向けUI構築に特化したライブラリである。これらがFlutter本体から独立したことで、それぞれ独自のリリースサイクルで更新できるようになった。 技術的な詳細 UIライブラリの分離による最大の利点は、プラットフォーム側の仕様変更に対して迅速に追随できる点にある。たとえばAppleがiOSのデザインガイドラインを更新した際、これまではFlutar本体のアップデートを待つ必要があったが、今後はCupertinoパッケージ単体で即座に対応できる。また、開発者が独自のデザインシステムを構築しやすくなる効果も見込まれている。 Web出力に関しては、現在HTML・CSS・JavaScriptで生成されているコンテンツに加え、将来的にはデフォルトでWebAssemblyも自動生成する方向性が示された。WebAssembly出力自体はビルドオプションとして既に利用可能だが、これを標準機能へと格上げする狙いがある。このほか、デスクトップ向けのデフォルトレンダラーとして「Impeller」が採用されたほか、UIコンポーネントをコード変更なしに確認できる「Widget Previews」機能が安定版として提供開始された。 背景と今後の展望 今回のアップデートは、2026年秋に登場予定のiOS 27・macOS 27への対応準備という側面も持つ。あわせてIntel Mac向けサポートの段階的な廃止も始まっており、Appleのプラットフォーム移行に合わせたFlutterのロードマップ再編が進んでいることがうかがえる。UIライブラリのモジュール化とWebAssembly標準化という2つの方向性は、Flutterがプラットフォームごとの差分吸収とパフォーマンス向上を同時に追求する戦略の一環であり、開発者はより柔軟にプラットフォーム対応や描画性能の最適化を行えるようになると期待される。

August 23, 2026

Zed 1.16.1リリース、Gemini 3.6 Flash対応やGitパネルの折りたたみ表示を追加しつつパストラバーサル脆弱性を修正

概要 Rustで書かれた高速コードエディタZedの開発チームは8月19日、安定版1.16.1をmacOS・Windows・Linux向けにリリースした。今回のアップデートはAIモデルのラインアップ拡充とGit・Markdown周りの操作性改善が中心で、あわせてターミナルツール関連のパストラバーサル脆弱性を含む複数のバグ修正も行われている。 AIモデルとエージェント機能の拡充 Zedに統合されているAIエージェント機能では、Google AI経由で新たに「Gemini 3.6 Flash」が利用可能になった。あわせてOpenCode Zen経由でもClaude Opus 5やGemini 3.7 Flashなどが追加され、選択できるモデルの幅が広がっている。またエージェントが利用するターミナルツールが改善され、プロジェクトのサブディレクトリへのアクセスがより適切に行えるようになった。なお破壊的変更として、OpenAIのサブスクリプションを利用しているユーザー向けのデフォルトモデルはGPT-5.6 Solに変更されている。 Git・Markdown周りの操作性改善 開発者の日常的なワークフローに関わる改善も多い。Git Panelでは変更ファイルのグループ化セクションが折りたたみ可能になり、大量の変更がある際の見通しが良くなった。スタッシュ実行時にメッセージを入力できるプロンプトオプションや、ファイルへのコンテキストメニューに「Copy Path」「Copy Relative Path」が追加され、パス操作の手間が減っている。またMarkdownプレビューやAgent Panelで表示されるMermaid図には、ズームおよび横スクロール機能が新たに加わり、複雑な図の閲覧がしやすくなった。このほか、新規ワークスペース作成時にTerminal Panelを自動起動するかどうかを制御する設定「terminal.starts_open」も追加されている。 セキュリティ修正とその他の不具合対応 今回のリリースでは、AIエージェントが利用するターミナルツールに存在したパストラバーサル脆弱性が修正されており、セキュリティ面での改善として注目される。このほかSSHやWSL経由の接続時に絶対パスの扱いに問題があった点や、リモート接続時にMarkdown Previewで画像が正しく表示されないケース、バイナリファイルがUTF-16と誤検出されてZedがハングしてしまう不具合なども解消された。 今後の展望 AIモデルの選択肢拡大とGit・ドキュメント表示の細かな使い勝手向上を両立させた今回のアップデートは、Zedが単なるエディタにとどまらず、AIエージェントを組み込んだ開発環境としての完成度を高め続けていることを示している。今後もモデル対応の追随とセキュリティ面の継続的な強化が期待される。

August 23, 2026

Next.js、Critical脆弱性を修正するセキュリティリリースを8月26日に予告

概要 Next.jsチームは2026年8月20日、深刻度「Critical」の脆弱性を修正するセキュリティリリースを8月26日に実施すると事前告知した。対象となるのはバージョン16.3.3および15.5.24で、当日は影響範囲・対象バージョン・アップグレード手順を含む詳細なアドバイザリも合わせて公開される予定だ。現時点では脆弱性の技術的な詳細は明かされておらず、チームはパッチ公開後速やかにアップグレードするよう開発者に呼びかけている。 背景にある新しいセキュリティリリース体制 今回の予告は、Next.jsが2026年7月13日に正式導入した「セキュリティリリースプログラム」に基づくものだ。従来、Next.jsのセキュリティパッチは事前告知なしに不定期で公開されており、利用チームにとっては予測不能な対応を強いられる要因となっていた。新体制では月1回程度のペースで、リリース予定日と想定される最大深刻度を事前にブログで公表し、開発者がアップグレード計画を立てやすくする。あわせてホスティング事業者などのプラットフォームパートナーとも連携し、パッチ未適用のアプリケーションを守るファイアウォールルールなどの緩和策を先行して展開できるようにするという。なお、悪用が確認されている脆弱性や、公開を待てない緊急の開示については、これまで通り予告なしの臨時パッチとして対応するとしている。 脆弱性研究の急増という背景 チームがこの新体制に踏み切った背景には、LLM(大規模言語モデル)を活用した脆弱性研究の急増がある。ブログ記事では、AnthropicのMythos Previewによって発見された271件もの脆弱性が単一のFirefoxリリースでMozillaから一括開示された事例が引き合いに出されており、業界全体で自動化された脆弱性発見のペースが加速していることがうかがえる。Next.jsチーム自身も、独自ツール「deepsec」や社内研究者、拡大されたバグバウンティの対象範囲を通じて同種の手法を適用し、攻撃者に先んじて問題を把握する体制を強化しているという。この体制は、2025年12月に開示された「React2Shell」の脆弱性対応を教訓として整備が進められてきた経緯がある。 今後の見通し 直近では2026年7月21日に最初の定例セキュリティリリースが実施されており、Next.js 16.2系および15.5系を対象に、High深刻度4件・Medium深刻度5件の脆弱性が修正されている。今回8月の対象はそれよりも深刻度の高いCriticalとされており、影響を受けるアプリケーションの範囲によっては早急な対応が必要になる可能性がある。Next.jsを利用する開発者は、8月26日の正式リリースとアドバイザリ公開を待ち、対象バージョンやCVEの詳細が判明次第、速やかに16.3.3または15.5.24へのアップグレードを検討することが推奨される。

August 23, 2026

Bun v1.4リリース、コアをRustへ全面移行しCPU使用率5分の1に

概要 JavaScriptランタイムのBunが8月20日、v1.4をリリースした。最大の変更点は、約100万行に及ぶコア実装をZigからRustへ全面的に書き換えたことで、これはRust化されたBunとしては最初の正式リリースとなる。開発チームによれば、AIコーディングツールのClaude CodeはすでにRust版のBunを数ヶ月にわたり本番運用しており、Prismaも新製品「Prisma Compute」をこの新しい基盤の上に構築しているという。Rust移行の詳細な技術的背景は別のブログ記事で説明されているが、今回のリリースではこの新基盤の上でメモリ使用量削減やCPU負荷低減、起動時間短縮といった具体的な性能改善が示されている。 性能面の改善 ベンチマークでは、Claude Codeの本番環境における計測でCPU使用率がp99で24%から10%に、p50で5.8%から2.5%へと大幅に低下したことが報告されている。アイドル時のCPU使用率は5倍削減され、HTTPサーバのメモリ使用量も13〜48%削減された。起動時間についても、Windowsで2.5倍(15.5ms)、Linuxで2倍(5.1ms)高速化し、バイナリサイズもLinux・Windows向けで最大17%縮小したという。npmパッケージのインストール速度に関しては、T3スタックのNext.jsアプリでの初回インストールが1.41秒となり、npmと比較して15倍高速だったと報告されている。 追加された機能 v1.4では15個の外部依存パッケージが組み込み機能として内蔵化された。ヘッドレスブラウザ自動化を可能にする「Bun.WebView」はPuppeteerやPlaywrightを必要とせず、macOSではシステムのWebKitを利用する。画像処理APIの「Bun.Image」は1080pのPNGを400×400のJPEGにリサイズする処理でsharpより1.38倍高速だとされる。このほか、GFMテーブルや打消し線、チェックリストに対応したMarkdownパーサ「Bun.markdown」、OSレベルのスケジューリングと連携する「Bun.cron()」、PTYをサポートしbashやvim、htopを操作可能な「Bun.Terminal」、SIMDを用いたXMLパーサ「Bun.XML」、JSON5・JSONLのパースとストリーミング対応などが新たに加わった。 Node.js互換性の向上 Node.js互換性の面でも大きく前進しており、Bun 1.0以降で最大となる1,517件の新規テスト合格を達成した。node:http、node:fs、node:cluster、node:timers、node:zlib、node:vmといったモジュールは97%の互換率に達し、node:quicは99%、node:events・node:trace_events・node:sqliteは100%の互換率となっている。worker_threadsのresourceLimitsやstdout/stderr、wsのupgrade・unexpected-responseイベント、node:clusterのソケット共有など新たなAPIサポートも加わり、PlaywrightやNext.js 16、vitest、OpenTelemetry、dd-traceなどが実際にそのまま動作することが確認されている。 今後の展望 一方でHTTP/3対応は依然として実験的な位置付けにとどまっており、公式ブログでも本番環境への投入は避けるよう明記されている。HTTP/2・HTTP/3対応のfetchクライアントについても段階的な展開が続けられる方針だ。開発チームはNode.jsの「drop-in replacement」となることを目標に掲げており、互換性テストスイートを全コミットで実行する体制を構築するなど、継続的な互換性強化に取り組んでいくとしている。

August 22, 2026

VS Code 1.134リリース、チャットのサイドバイサイド表示とプロンプトタイムラインでAIエージェント作業を強化

概要 Microsoftは2026年8月19日、Visual Studio Codeの月例アップデートとなるバージョン1.134を公開した。今回の目玉は、複数のチャットセッションを同時に扱うためのUI強化だ。関連するチャットやサブエージェントとのやり取りを水平または垂直方向にグループ化して並べて表示できる「Side-by-side chats」が追加され、ドラッグ&ドロップで会話同士を並べて比較検討できるようになった。レイアウトはセッションを再開した際にも保持されるため、複数のタスクを並行してエージェントに依頼するようなワークフローとの親和性が高い。 あわせて、長い会話を素早く見渡せる「Prompt timeline」も導入された。タイムライン上に各プロンプトがドットとして表示され、ファイル変更を伴ったプロンプトについては追加・削除行数がその場で確認できる。これにより、エージェントとの長時間のやり取りの中でも、どの時点でどのような変更が加えられたかを直感的に把握できるようになった。 技術的な詳細 チャット機能ではこのほか、Ctrl+F(Windows/Linux)またはCmd+F(Mac)でチャット全体を検索できる「Find in chat」も追加された。大文字小文字の区別、全文一致、正規表現による検索に対応しており、長い会話履歴から特定のやり取りを探し出す際に有用だ。 エージェント関連では「Agent host」という仕組みが導入され、複数のVS Codeウィンドウから同一のエージェントセッションに接続できるようになった。これはAgent Host Protocol(AHP)という専用プロトコルに基づき、独立したプロセス上でエージェントを動作させる仕組みで、マルチウィンドウでの作業とエージェントの状態管理を切り離して扱えるようにする狙いがある。サイドペインのレイアウトもworkbench.editor.showTabs設定に対応してタブ表示をカスタマイズできるようになり、セッションを切り替えてもレイアウトが保持される。 このほか、エディタ体験の面では、タブをAltクリックすることで他のタブを一括で閉じられる機能や、workbench.editorAssociations設定によりローカルHTMLファイルを統合ブラウザで直接プレビューできる機能が加わった。あわせて複数のメモリリーク修正も行われており、全体的なパフォーマンス向上にもつながっている。 背景と今後 近年のVS Codeのアップデートは、AIコーディングエージェントとの協働を前提としたUI・UX改善に重点が置かれる傾向が強まっている。今回のSide-by-side chatsやPrompt timelineも、単一のチャットで完結しない、複数のサブエージェントが並行してタスクをこなすような開発スタイルを後押しするものだ。Agent Host Protocolの導入により、エディタのウィンドウ管理とエージェントのセッション管理が疎結合になったことで、今後はマルチウィンドウ・マルチデバイスでの継続的なエージェント活用がさらに進むことが見込まれる。

August 21, 2026

Rust 1.98.0安定版リリース、C可変長引数関数の定義が可能に

概要 Rustプロジェクトは8月20日、最新安定版「Rust 1.98.0」をリリースした。7月3日からベータ版として運用されており、シンボルマングリングの既定値変更や整数ビット演算メソッド追加を行った前バージョン1.97に続く更新となる。今回の目玉は、これまで「呼び出す」ことしかできなかったC言語の可変長引数関数(variadic functions)を、Rust側で「定義」できるようになった点だ。c_variadic機能が安定化され、unsafe extern "C"関数としてargs: ...のような可変長引数を受け取り、VaArgSafeを実装する型(c_intやc_double、各種ポインタなど)をnext_argで順次取り出す実装が可能になった。プラグインシステムやロギングフレームワーク、C言語からRustへの段階的移行時に可変長のコールバックを実装する用途での活用が見込まれる。 技術的な詳細 組み込みおよびOS開発者向けには、c_variadic_naked_functionsも同時に安定化された。これは#[unsafe(naked)]属性と可変長パラメータを組み合わせ、アセンブリによる実装で複数のABIをサポートするというもので、標準のc_variadicが"C"と"C-unwind"のみに対応するのに対し、naked variadicでは"aapcs"、"efiapi"、"sysv64"、"win64"、"cdecl"など多様な呼び出し規約に対応する。これによりARM組み込みボード、UEFIファームウェア、Linux x86-64環境それぞれに合わせた実装が書けるようになる。 もう一つの注目点は、2018年から未解決だったIssue #49505、#[derive(PartialOrd)]マクロのバグ修正だ。従来このマクロは(a > b) || !(b > a) && trueのような冗長な比較ロジックを生成しており、LLVMによる最適化が難しい状態だった。今回、同じ型に対してOrdとPartialOrdの両方を導出する最も一般的なパターンにおいて、partial_cmpがcmpに直接委譲するよう修正され、生成コードが簡潔になりバイナリサイズも削減される。利用者側の対応は不要で、再ビルドするだけで自動的に適用される。 このほか、x86/x86-64向けにu128/i128型をasm!マクロ内でXMM・YMM・ZMMレジスタ経由で扱えるようになり、AES-NIやSIMD、UUID処理の効率化に寄与する。またPanicHookInfoのlocation()メソッドが返すライフタイムがOption<Location<'static>>に変更されたため、カスタムパニックフックを利用しているプロジェクトは動作確認が推奨される。Rustdocのビルド速度も2025年12月時点と比較して約28%短縮されたという。廃止された機能としては-Zemscripten-wasm-ehフラグがある。アップグレードは通常通りrustup update stableで行えるが、nightly版の機能フラグを使っていた場合は対応する#![feature(...)]属性の削除、カスタムパニックフックや古いビルドスクリプトの確認が必要となる。

August 20, 2026

Go 1.27正式リリース、ジェネリックメソッドとポスト量子暗号対応で言語とライブラリを強化

概要 Go言語の開発チームは8月19日、最新版となる「Go 1.27」を正式リリースした。今回のリリースでは、ジェネリックメソッドのサポートやネストされた構造体フィールドの直接初期化、型推論の拡張といった言語仕様の改善に加え、標準ライブラリにはポスト量子暗号(ML-DSA)、書き直されたencoding/json/v2、UUIDパッケージ、実験的なSIMD対応が新たに加わった。あわせて、小さなオブジェクトのメモリ割り当てコストを最大30%削減するパフォーマンス改善も実施されており、言語機能・標準ライブラリ・実行効率のいずれの面でも着実な進化を遂げたリリースとなっている。 言語仕様の変更点 Go 1.27では3つの主要な言語仕様の変更が導入された。1つ目は長らく要望の多かった「ジェネリックメソッド」のサポートで、これまで型ごとに個別定義する必要があったメソッドを、型パラメータを使って汎用的に記述できるようになった(例: func (r *Rand) N[Int intType](n Int) Int)。2つ目は、埋め込み構造体を持つ型において、ネストされたフィールドを複合リテラル内で直接指定できるようになった変更で、これまで冗長だった初期化コードを簡潔に書けるようになる。3つ目はジェネリック型推論の適用範囲の拡大で、複合リテラル・型変換・チャネル送信といった文脈でも関数の型引数を自動推論できるようになった。これらの変更に対応するため、go fixコマンドにはatomictypesやembedlitといった新しい最適化ルールも追加されている。 標準ライブラリとツールの強化 標準ライブラリでは、FIPS 204準拠のポスト量子暗号アルゴリズムを実装したcrypto/mldsaパッケージが新設され、crypto/x509やcrypto/tlsとも統合されたことで、TLS通信でもポスト量子暗号による署名が利用可能になった。またJSON処理を刷新するencoding/json/v2が追加され、より高度でカスタマイズ可能なエンコード・デコードオプションを提供する。このほか、UUIDの生成・パースを行うuuidパッケージ、実験的なSIMD(単一命令複数データ)対応パッケージsimdも加わった。開発ツール面でも、go docでパッケージのバージョンを指定したクエリ(例: go doc example.com/pkg@v1.2.3)がサポートされたほか、go mod tidyがrequireブロックを自動的に整理・統合する機能も追加され、日常的な開発体験の改善が図られている。 パフォーマンス改善 今回のリリースでは実行時性能の最適化にも力が入れられた。80バイト未満の小さなオブジェクトに対するメモリ割り当てコストが最大30%削減され、割り当てが多いプログラム全体では約1%の性能向上が見込めるという。またruntime/pprofのgoroutineリーク検出プロファイル機能(Go 1.26で実験的に導入されていたもの)が正式に一般提供(GA)となり、永続的にブロックされたまま解放されないゴルーチンを自動的に検出できるようになった。これにより、本番環境でのリソースリーク調査がより容易になることが期待される。 今後の展望 Go 1.27は、言語のエルゴノミクス改善とセキュリティ・性能面の強化を両立させたリリースといえる。特にポスト量子暗号への正式対応は、今後本格化するとみられる量子コンピュータ時代の暗号移行を見据えた重要な布石であり、TLSスタックへの統合によって既存のGoアプリケーションが比較的スムーズに移行できる土台が整った。ジェネリクス関連の改善も継続的に進められており、次期リリースでもさらなる型システムの洗練が見込まれる。

August 20, 2026

AWS、Cedarを拡張しAIエージェントの行動履歴を統治するポリシー言語「Dogwood」をオープンソース化

概要 AWSは、認可ポリシー言語Cedarを拡張した新しいオープンソース言語「Dogwood」を発表した。Apache 2.0ライセンスで公開され、AgentCore PolicyでのAIエージェント統治に利用できる。最大の特徴は、エージェントが過去に行ったツール呼び出しの履歴を時系列条件として参照できる点だ。Cedarは個々のリクエストを単発で評価する言語であり、同じリクエストは事前の文脈や実行順序に関わらず常に同じ結果を返すステートレスな設計になっている。この性質は形式的な検証を可能にする一方で、一連の行動にまたがる制約を表現できないという限界があった。Dogwoodはこの限界に対応し、「承認を得るまでは行動しない」「累計の支出上限を超えない」「機密データにアクセスした後は外部との通信を禁止する」といった、行動の順序に依存するルールをポリシーとして表現できるようにする。 技術的な詳細 Dogwoodは、Cedar既存のwhen条件に加えてwhen temporalという新しい句を導入する。この時系列ロジックは、イベント履歴から生成されるCedarのコンテキストフィールドに変換される仕組みだ。時系列条件を表現するための演算子として、以下の4つが用意されている。いずれも言語のプリミティブとしてではなく、標準ライブラリのマクロとして実装されている。 formerly: 特定の時間枠内に何かが発生したかどうかを確認する count_within: 特定の時間枠内での発生回数をカウントする count_distinct_within: 特定の時間枠内でのユニークな値の数をカウントする sum_within: 特定の時間枠内での累計値を計算する 発表では、分散システム特有の落とし穴についても指摘されている。レート制限のポリシーが「レスポンスイベント」を参照するか「リクエストイベント」を参照するかによって、並行処理時の挙動が変わってしまうというものだ。たとえば2,000ドルの送金を3件並行して実行した場合、ポリシーがレスポンス(まだ確定していない)を参照していると5,000ドルの上限をすり抜けてしまう一方、リクエストを参照していれば正しく拒否される。エージェントは並行してツール呼び出しを行うことが多いため、この非同期性に起因する脆弱性は実運用上重要な注意点となる。 トレードオフと制約 時系列評価はステートフルなイベント追跡を必要とするため、計算コストが増加する。より本質的な制約として、時系列条件は「Cedarが提供する自動推論による解析ツールをサポートしない」点が挙げられており、これにより形式的検証の機能が失われる。AWSがCedarとは別にDogwoodという新しい言語を用意した理由もここにある。また、AWSは参照実装のインタプリタについて「言語を探索・テストするためのものであり、本番環境での認可処理に使うものではない」と明言している。本番環境での運用には、信頼できるタイムスタンプ、認証済みイベント、永続的なトレースストレージ、機密データの保持ポリシーといった要素が別途必要になる。 MCPとの関係と今後の展望 今回の発表は、AIエージェントのツール呼び出しを識別するHTTPヘッダーを要求するModel Context Protocol(MCP)の2026-07-28仕様と時期を同じくしている。MCPがゲートウェイでのツール呼び出しの可視性を提供するのに対し、Dogwoodはそれらの呼び出しの連なりが何を達成できるかを統治する役割を担う。今後のロードマップとしては、実時刻に基づく時間枠のサポート、必須の結果を保証するライブネス特性、そしてハンドオフやロックを含むマルチエージェントのオーケストレーションポリシーへの対応が予定されている。

August 20, 2026