Googleがエージェント開発フレームワークADK Python版2.14.0を公開した。実行環境とエージェント間通信、評価機能が実験段階を脱し、長いワークフローの時間とメモリ使用量も減少した。開発者は同じ評価を複数回実行して結果を確認し、大きなファイルを扱う際のメモリ負荷を軽減できる。
1. 実行環境と主要機能が安定版に移行
今回のリリースでは、ローカル・Daytona・E2Bの実行環境と環境ツール群が安定版になった。
エージェント間通信をつなぐA2A統合と、成熟した評価・ユーザーシミュレーション機能も実験段階を終えた。認証・環境・アプリ・コマンドライン・キャッシュの26モジュールと、16のツール群・統合機能が安定機能に昇格し、実験警告なしで利用できる。
ファイル読み取りツールは必要な行範囲をチャンク単位で受け取り、ファイル全体を一度にメモリに読み込まない。クラウド実行環境のAgentEngineEnvironmentも、大きなファイルの読み書きをチャンク単位で処理する。
AgentEngineEnvironmentはコマンドが570秒を超えると、サービスの期限前にタイムアウトを通知する。
コンテナコード実行器は入出力ファイルに対応する。
2. 反復評価と引数比較で検証範囲を拡大
入力と期待結果を組み合わせた評価ケースを複数回実行する機能が追加された。複数の作業を同時に処理する並列実行に対応し、実行ごとのスコアや合格率を集約して結果を要約する。実行回数と並列度を指定できるため、1回の実行に左右されていた評価判定を複数の結果に基づいて検討できる。
ワークフローの個々の実行段階であるノードやアプリを実行中に生成し、評価対象にできる。
評価ファイルは、参照のみ可能で変更が禁止された読み取り専用のエージェントディレクトリの外に保存できる。評価資料の保存先をより柔軟に扱えるようになった。
ツールに渡す入力値である呼び出し引数の比較は、完全一致に加え、大文字・小文字を区別しない比較、数値の許容誤差、言語モデルによる意味比較に対応する。評価と環境シミュレーションで、同じツール引数が意図どおりに渡されたかを確認するために使える。
3. 会話チャネルと記憶検索を外部サービスに接続
Microsoft TeamsのチャットとチャネルにADKエージェントを接続する統合が追加された。
A2Aにはコマンドラインでエージェントカードを作成する機能が加わり、他のエージェントとの接続に必要な情報を準備できる。
入力を種類ごとに分ける分類器も含まれる。OpenAI Decisions APIを使い、ワークフローとツールを使用するかどうかを判定する。外部の判定サービスをエージェントの実行フローにつなぐ選択肢が増えたことになる。
MongoDB記憶サービスには、内容をベクトルで表現して関連する記憶を探す検索方式と、記憶の有効期間設定が追加された。保存した記憶をどう探し、どれだけ長く保持するかをまとめて設定できるようになった。
4. 長いワークフローで実行時間とメモリを削減
同社発表による性能改善の数値は以下のとおり。
表:長いワークフローの実行時間・メモリ削減率
条件:30ノードで構成したワークフローの200ターン実行、同社発表による
単位:%
| 指標 | 測定条件 | 削減率 |
|---|---|---|
| 実行時間 | 30ノード・200ターン実行 | 23% |
| ピークメモリ使用量 | 30ノード・200ターン実行 | 9% |
内部ではノードのパス処理を簡素化し、条件に応じてイベント履歴の検索を省略して反復作業を減らした。ターンごとに繰り返していた検索を減らすため、長い作業を続ける開発者にとっては、個々の段階だけでなく実行全体の累積負荷を軽減する改善と捉えられる。
アップグレードでは既存の呼び出し・ストレージの互換性確認を優先するとよい。その後、大きなファイル処理のメモリ負荷を確認し、反復評価で判定のばらつきを調べる順序で適用を検討できる。
5. 実行効率の利点と呼び出し・保存方式変更のコスト
ファイル全体を読む負荷と長いワークフローの反復作業は減るが、既存の呼び出しを新方式に合わせる作業が伴う。Enumは事前に定めた値の1つを選ぶ列挙型のデータ型だ。この型で宣言したツール引数は、文字列ではなく事前定義された値のオブジェクトとして渡されるようになる。既存の文字列比較は、メンバー同士を比較するか、.valueで値を取り出す方式に変更できる。
スキルスクリプトツールは、実行環境と併用するモードで自由形式のシェルコマンドの代わりに検証済みのパスと引数を受け取る。シェルコマンドはOSに作業を指示するテキストだ。これは、外部入力でモデルをだまして意図しないコマンドを実行させる「プロンプトインジェクション」による任意コマンド実行の経路を塞ぐ変更だ。従来コマンド文字列を渡していた呼び出し・評価資料・プロンプトの修正が必要になる。
ストレージを使うチームは、ロールバック計画と外部クエリも確認対象となる。Firestoreは既存セッションを引き続き読み取り、イベントを追加でき、PostgreSQLの既存テーブルも維持される。
ただし、今回のバージョンが記録したFirestoreセッションは、2.13.0以下に戻した後は読み取れない。
PostgreSQLの新しいJSON列はjsonbではなくjsonで作成されるため、jsonb専用演算子を使う外部クエリは調整が必要だ。
v2.14.0は実行・評価の基盤を安定化し、長期ワークフローの効率を高める一方、一部の既存呼び出しとストレージ連携の確認を求めるリリースだ。
