Amazon社は、AIエージェント開発をモデル駆動型アプローチで簡素化するオープンソースSDK「Strands Agents」を公開した。このフレームワークは、最小限のコードでプロンプトとツールリストを定義することでエージェントを構築できる。
このプロジェクトは主要な技術およびコンサルティング企業の支援を受けて開始されており、Amazon社は「Accenture社、Anthropic社、Langfuse社、mem0.ai社、Meta社、PwC社、Ragas.io社、Tavily社を含む複数の企業が支援と貢献をしている」と述べている。Strandsは、シンプルなエージェントの利用ケースから複雑なものまで、またローカル開発から本番環境への展開までスケール可能であり、プロトタイプから本番対応のAIエージェントへの移行を効率化する。
このフレームワークは、エージェントを定義する3つの主要コンポーネント「モデル、ツール、プロンプト」に基づいて構築されている。これらの要素はAmazon社が「エージェンティックループ」と呼ぶ仕組みで連携し、「エージェントはこれら3つのコンポーネントを使用してタスクを完了する。多くの場合、自律的に動作する」と説明されている。運用中には、「Strandsはプロンプトとエージェントコンテキスト、さらにエージェントのツールの説明を伴ってLLMを呼び出す」とされている。このシステムは現在のLLMの能力を活用し、「LLMがいかに強力であるか、またネイティブに推論、計画、ツール選択が可能であるか」を強調している。
出典:Strands Agents
実行フローは構造化されたパターンに従い、「LLMはエージェントのエンドユーザーに自然言語で応答する、複数のステップを計画する、エージェントの以前のステップを振り返る、または1つ以上のツールを選択可能だ」とされている。Strandsは、ツール実行を処理することで技術的な複雑さを管理し、「LLMがツールを選択すると、Strandsがそのツールを実行し、結果をLLMに返す」と説明されている。このプロセスは「LLMがタスクを完了し、Strandsがエージェントの最終結果を返す」まで反復的に続く。
Strands Agentsは「軽量で本番対応可能であり、多くのモデルプロバイダーと展開ターゲットをサポートする」と位置付けられている。このSDKは展開シナリオにおいて柔軟性を提供し、「会話型、非会話型、ストリーミング型、非ストリーミング型」のエージェントタイプを異なるワークロードに対応させる。
主な機能には「大規模エージェント運用のための完全なオブザーバビリティ、トレーシング、展開オプション」が含まれており、開発者が迅速に開始できる組み込みツールも提供されている。このフレームワークは「マルチエージェントや自律型エージェント」を含む高度な実装をサポートし、「エージェントチームや自己改善型エージェント」といった技術を可能にしている。
Amazon社は、Strandsが「安全性とセキュリティを優先事項として維持し、組織が責任を持ってエージェントを運用しながらデータを保護できるようにする」と強調している。このSDKのアーキテクチャは、シンプルでカスタマイズ可能なエージェントループを提供しながら、モデル、プロバイダー、展開に依存しない設計を採用しており、異なるプロバイダーの多様なモデルをサポートしている。
SDKには開発用の追加パッケージとしてstrands-agents-toolsとstrands-agents-builderが含まれており、どちらもGitHubで利用可能だ。toolsパッケージはエージェントの機能を拡張する例を提供し、builderパッケージは開発者が独自のStrandsエージェントやツールを作成するために設計されたエージェントを含んでいる。これらのコンポーネントはカスタム実装をサポートし、フレームワークの機能を拡張する手助けをする。
Strands AgentsはAmazon Bedrockを超えて複数のモデルプロバイダーをサポートしている。開発者はAnthropic社のClaudeモデルに直接API統合を通じてアクセス可能であり、LiteLLMはOpenAI社、Mistral社、その他のプロバイダー向けの統一インターフェースを提供している。このフレームワークはMeta社のLlamaモデルをLlama APIを通じてサポートし、プライバシーやオフライン要件のためにOllamaを介したローカルモデル実行を可能にしている。OpenAI社のモデルは直接API接続を通じてアクセス可能であり、OpenAI互換の代替モデルも利用できる。このSDKは、特定の実装ニーズに対応するためのカスタムプロバイダーの構築も可能だ。
Strandsを使用してAIエージェントを構築したい開発者は、GitHubでオープンソースSDKにアクセス可能であり、ドキュメントや例を確認し、プロジェクト周辺の成長するコミュニティに貢献できる。