概要
このリリースでは、実行の一時停止を可能にする sleep tool、複数のツールを並列実行できる batch tool が追加されました。また、memory tool で AWS リージョンのカスタマイズが可能になり、Mem0 tool では複数のバックエンド設定がサポートされるようになりました。
リリース: v0.1.5
新機能
Sleep Tool (#60)
この機能でできること: 指定した秒数だけエージェントの実行を一時停止できます。SIGINT(Ctrl+C)での中断にも対応しています。
使用例:
from strands import Agent
from strands_tools.sleep import sleep_tool
# エージェントに sleep tool を追加
agent = Agent(tools=[sleep_tool()])
# 5秒間スリープ
result = agent.run("5秒間待機してください")
ポイント:
- 長時間の処理の間に意図的な待機時間を挿入できます
- レート制限のある API 呼び出しの間隔調整に便利です
- Ctrl+C で中断可能なため、デバッグ時にも使いやすいです
Batch Tool - 並列ツール実行 (#46)
この機能でできること: 複数のツールを並列で実行し、それぞれの結果を取得できます。各ツールのエラーハンドリングも個別に行われます。
使用例:
from strands import Agent
from strands_tools.batch import batch_tool
from strands_tools.calculator import calculator_tool
from strands_tools.file_read import file_read_tool
# 複数のツールを登録
agent = Agent(
tools=[
batch_tool(),
calculator_tool(),
file_read_tool()
]
)
# 複数のツールを並列実行
result = agent.run(
"計算機で 10 + 20 を計算し、同時に README.md を読み取ってください"
)
ポイント:
- 複数の独立したタスクを効率的に処理できます
- 各ツール呼び出しのエラーは個別にキャプチャされ、詳細なトレースバック情報が提供されます
- すべての結果は JSON シリアライズ可能な形式で返されます
Memory Tool - AWS リージョンカスタマイズ (#57)
この機能でできること: memory tool で使用する AWS リージョンをカスタマイズできるようになりました。
使用例:
from strands import Agent
from strands_tools.memory import memory
# 特定のリージョンを指定
agent = Agent(
tools=[memory(region_name="ap-northeast-1")]
)
# 東京リージョンの Knowledge Base を使用
result = agent.run("以前の会話内容を覚えていますか?")
ポイント:
- マルチリージョン展開時に、データ保存先のリージョンを明示的に指定できます
- デフォルトのリージョン以外を使用する場合に便利です
- テストでも region_name が正しく Knowledge Base クライアントに渡されることが検証されています
Mem0 Tool - 複数のバックエンド設定サポート (#16)
この機能でできること: Mem0 tool が 3 つの異なるバックエンド設定をサポートするようになりました。
使用例:
from strands import Agent
from strands_tools.mem0_memory import mem0_memory
# 1. Mem0 Platform を使用(本番環境推奨)
agent = Agent(
tools=[mem0_memory(backend="mem0_platform", api_key="your-mem0-api-key")]
)
# 2. OpenSearch を使用(AWS 環境推奨)
agent = Agent(
tools=[mem0_memory(
backend="opensearch",
opensearch_config={
"endpoint": "https://your-opensearch-endpoint.amazonaws.com",
"region": "us-east-1"
}
)]
)
# 3. FAISS を使用(ローカル開発用・デフォルト)
agent = Agent(
tools=[mem0_memory(backend="faiss")]
)
ポイント:
- Mem0 Platform: 本番環境での使用に推奨。Mem0 API キーが必要です
- OpenSearch: AWS 環境での使用に推奨。AWS 認証情報と OpenSearch 設定が必要です
- FAISS: ローカル開発に推奨。faiss-cpu パッケージが必要です
- 環境に応じて最適なバックエンドを選択できます
バグ修正
use_llm の callback_handler 処理改善 (#55)
use_llm ツールが callback_handler を正しく尊重するようになりました。以前は、親エージェントの callback_handler を変更しても、use_llm は常にデフォルトの callback_handler を使用していました。
修正内容:
- 引数として
callback_handlerが渡された場合はそれを使用 - 渡されない場合は親エージェントの
callback_handlerを使用 - どちらも利用できない場合はデフォルトにフォールバック
この修正により、カスタム callback_handler を使用する際の動作が一貫性を持つようになりました。
file_read の冗長な Base64 エンコーディング削除 (#53)
file_read ツールでファイルコンテンツが二重にエンコードされていた問題を修正しました。
問題: AWS SDK は自動的にバイナリコンテンツを Base64 エンコードしますが、file_read ツールも独自にエンコードを行っていたため、二重エンコーディングが発生していました。
修正内容: 余分な Base64 エンコーディングステップを削除し、bedrock クライアントに処理を任せるようにしました。これにより、ファイルの読み取りが正しく動作するようになりました。
まとめ
v0.1.5 では、実行制御を可能にする sleep tool、効率的な並列処理を実現する batch tool など、エージェントの機能を拡張する重要なツールが追加されました。また、AWS 関連のツールの柔軟性が向上し、より多様な環境での利用が可能になりました。