AIF / ドメイン2 生成AIの基礎
Strands Agents
は、AWSが公開しているオープンソースのAIエージェント開発用です。 少ないコードでエージェントを作り、手元の試作から本番まで同じ書き方で進められます。 AIF-C01では、アプリケーションを作るための技術の1つとして問われます。
概要
は、モデル主導 (model-driven) の考え方をとります。 開発者は、、指示 ()、使わせるツールを用意するだけで、手順の組み立てはモデルのに任せます。
| 観点 | 内容 |
|---|---|
| 提供の形 | オープンソースのです。PythonとTypeScriptで使えます。 |
| モデル | のモデルのほか、ほかの提供元のモデルも使えます。エージェントごとに別のモデルを選べます。 |
| ツール | 関数をツールにしたり、サーバーのツールを読み込んだりできます。 |
| 実行場所 | 、、、のほか、や他のクラウドでも動かせます。 |
試験では、「エージェントを作るためのSDK (Strands Agents)」と「エージェントを動かす基盤 (AgentCore)」を区別できるかが問われます。
Point
- SDK = Software Development Kit の略で、アプリケーションを作るための部品と道具のまとまりです。
- strand は「より糸」です。モデルとツールを糸のように撚り合わせる、というイメージで覚えます。
- 和訳
- strand: より糸、要素
- Weblio英和辞書「strand」
主要技術
①モデル主導のエージェントループ ⚠️ 頻出
| 方式 | 手順の決め方 | 向く場面 |
|---|---|---|
| モデル主導 (の基本) | モデルが状況を見て次に呼ぶツールを決めます。 | 依頼の内容が毎回違い、手順を事前に書けない |
| 流れを固定する方式 | 開発者が手順と分岐をコードで決めます。 | 手順が決まっていて再現性が必要 |
モデルの能力が高くなるほど、細かな手順を書かずに済むという考え方です。 ただし、取り消せない操作には人間の承認を挟むなど、制御の仕組みは別に用意します。
②マルチエージェントのパターン ⚠️ 頻出
は、複数のエージェントを協調させる部品を備えています。
| パターン | 内容 | 向く場面 |
|---|---|---|
| エージェントをツールとして使う | 専門のエージェントをツールにし、まとめ役のエージェントから呼びます。 | まとめ役が全体の制御を保ちたい |
| スウォーム | 対等なエージェントが共有の情報を見ながら担当を引き継ぎます。 | 進め方を事前に決めにくい作業 |
| グラフ | 条件付きの経路を明示して、エージェントの流れを決めます。 | 承認や品質確認の関門がある業務 |
| ワークフロー | 決まった順番や並列で処理を進めます。 | 手順が決まった定型処理 |
| 人への引き継ぎ | 会話の文脈を保ったまま、人に判断を渡します。 | エージェントだけで判断できない場面 |
パターンは組み合わせられます。たとえば、グラフの中の1段をスウォームにできます。
③外部との接続
| 接続先 | 方法 |
|---|---|
| 外部のツールやデータ | サーバーのツールを読み込みます。 |
| ほかのエージェント | プロトコルで、別の仕組みのエージェントと連携します。 |
| 会話の保存 | セッションの管理機能で、会話と状態を保存して再開できます。 |
④AgentCoreとの組み合わせ
| 役割 | 担当 |
|---|---|
| エージェントの中身 (指示、ツール、流れ) を書く | |
| 本番で動かす、記憶する、認証する、監視する |
AgentCoreは特定のフレームワークに依存しないため、Strands Agents以外で作ったエージェントも載せられます。
⑤ほかの選択肢との比較
| 選択肢 | 開発の手間 | 自由度 | 向く場面 |
|---|---|---|---|
| 開発なし | 設定の範囲 | 業務利用者がすぐ使うAIアシスタントが欲しい | |
| 設定中心 | 限られます | 既存の利用者が保守中のエージェントを使い続ける | |
| + | コードを書く | 高い | 自社の要件に合わせたエージェントを作り込みたい |
試験対策
①判断マトリクス
| 問題文のキーワード | 選ぶもの |
|---|---|
| オープンソースので、少ないコードでエージェントを作りたい | |
| 作ったエージェントを本番で安全に動かしたい | |
| エージェントにサーバーのツールを使わせたい | Strands AgentsのMCP対応 |
| 専門のエージェントをまとめ役から呼びたい | エージェントをツールとして使うパターン |
| 承認の関門を含む決まった流れで動かしたい | グラフやワークフローのパターン |
| 開発せずに業務アシスタントを使いたい |
②よくある誤答
- をAWS上でしか動かないサービスと考えること。オープンソースので、実行場所を選びます。
- Strands Agentsとを同じものと考えること。前者は作る道具、後者は動かす基盤です。
- モデル主導なら制御が不要と考えること。権限の最小化と人間の承認は別に設計します。