概要
このリリースでは、A2A サーバー経由でのリクエストコンテキストメタデータへのアクセスが可能になりました。また、OpenAI 依存関係が 2.x まで拡張され、LiteLLM との互換性が向上しています。S3SessionManager のキー生成問題、Graph のエッジ評価ロジック、OpenAI 互換エンドポイントでのツールメッセージ形式など、複数の重要なバグ修正も含まれています。
リリース: v1.31.0
新機能
A2A リクエストコンテキストへのアクセス (#1854)
この機能でできること:
- A2A サーバー経由で呼び出された際に、リクエストコンテキスト(メタデータ、タスク ID、設定など)にツールやフックからアクセス可能に
使用例:
from strands import tool
from strands.tools import ToolContext
@tool
def my_tool(input: str, tool_context: ToolContext) -> str:
# A2A リクエストコンテキストにアクセス
a2a_context = tool_context.invocation_state.get("a2a_request_context")
if a2a_context:
metadata = a2a_context.metadata
task_id = a2a_context.task_id
config = a2a_context.configuration
return f"Processed: {input}"
フックからのアクセス例:
from strands.hooks.events import BeforeToolCallEvent
def before_tool(event: BeforeToolCallEvent) -> None:
a2a_context = event.invocation_state.get("a2a_request_context")
if a2a_context and a2a_context.metadata.get("priority") == "high":
logger.info("High-priority A2A request for task %s", a2a_context.task_id)
ポイント:
a2a_request_contextキーは A2A サーバー経由の呼び出し時のみ存在RequestContextオブジェクト全体が渡されるため、metadata、task_id、context_id、configuration、related_tasksなど全てのプロパティにアクセス可能
OpenAI 2.x サポート (#1793)
この機能でできること:
- OpenAI SDK 2.x との互換性を追加し、LiteLLM の最新バージョン(SAP Generative AI Hub サポートなど)が利用可能に
使用例:
# LiteLLM の最新バージョンで SAP Generative AI Hub を使用
from strands import Agent
from strands.models.litellm import LiteLLMModel
model = LiteLLMModel(model_id="sap/gpt-4")
agent = Agent(model=model)
ポイント:
openaiパッケージのバージョン上限が<2.0.0から<3.0.0に拡張litellm、openai、sagemakerの全ての optional dependency で適用- OpenAI 2.0 の破壊的変更(Responses API 関連)は Strands SDK では影響なし
バグ修正
S3SessionManager のキー生成問題を修正 (#1915)
- 空のプレフィックス (
prefix="") 使用時に先頭スラッシュが付与され、MinIO などの S3 互換バックエンドで読み取りに失敗する問題を修正 - 末尾スラッシュ付きプレフィックス (
prefix="sessions/") での二重スラッシュ問題も修正 - これにより、以前の会話履歴が破棄されてしまう問題が解消
Graph のエッジ評価ロジックを修正 (#1846)
- ノード完了時に全エッジではなく、完了したノードからの出力エッジのみを評価するよう修正
- 依存関係が完了していないノードが誤って実行される問題を解消
- パフォーマンスも
O(all_edges)からO(outbound_edges)に改善
OpenAI 互換エンドポイントでのツールメッセージ形式を修正 (#1878)
- ツールメッセージのコンテンツを配列形式ではなく文字列形式で送信するよう修正
- Kimi K2.5、vLLM、SGLang、Ollama など多くの OpenAI 互換エンドポイントで、ツール結果が無視されモデルが幻覚を起こす問題を解消
Graph/Swarm のマルチモーダルプロンプト永続化を修正 (#1870)
- バイナリコンテンツ(PDF など)を含むマルチモーダルプロンプトのセッション永続化で
TypeErrorが発生する問題を修正 - バイナリ値を Base64 エンコードしてシリアライズするよう修正
OpenAI Responses API のエラーハンドリングを修正 (#1931)
- コンテキストウィンドウオーバーフロー時に
ContextWindowOverflowExceptionが正しく発生するよう修正
まとめ
v1.31.0 は A2A 統合の強化と OpenAI エコシステムとの互換性向上に加え、セッション管理やマルチエージェント機能の安定性を高める重要なバグ修正を含むリリースです。