AIエージェントでプロンプト作成の負担を減らす
生成AIを使いこなせるかどうかは、現状では個人のスキルに大きく依存しています。
「触れてみたけれど、いまいち活用しきれず、結局業務に定着しなかった」と感じている方も多いのではないでしょうか。
活用が難しい要因は、
例えば優れたプロンプト集があっても、それを自分の状況に合わせてアレンジし、入力し直す作業は想像以上に手間がかかります。
こうした手間の積み重ねがハードルとなり、習慣化する前に挫折してしまうのです。
そこで本記事では、こうした負担を軽減する方法として、AIエージェントを活用するアプローチを紹介します。
具体例として、ユーザーの意図に応じて最適なプロンプトを自動で選択するAIエージェントの実装例を取り上げます。

事前準備
使用言語はPythonです。
|
1 2 |
$ python3 --version > Python 3.10.12 |
エージェント構築には、Strands Agentsを利用します。
Strands Agentsは、AWSのエージェント開発フレームワークです。
最小構成であれば数行のコードで実用的なエージェントを構築でき、学習コストを抑えやすい点が特徴です。
|
1 2 3 4 5 |
$ pip install strands-agents > Collecting strands-agents $ pip install openai > Collecting openai |
今回はOpenAIの生成AIモデルを使用しますが、Strands AgentsではAmazon Bedrockで利用できる他のモデルも使用できます。
サンプルコード
今回は以下の2ファイル構成で実装します。同じディレクトリに配置してください。
prompts_data.py: プロンプト集main.py: エージェントのメインロジック
エージェントに選択させたいプロンプトはカテゴリ分けされた辞書オブジェクトのリストとして、prompts_data.pyというファイルに定義します。
これにより、AIがユーザーの目的に応じて適切なプロンプトを自動的に検索できるようになります。
|
1 2 3 4 5 6 7 8 9 |
# プロンプト集の保存例、実際には同じ形式で複数のプロンプトがこの配列に含まれます PROMPTS = [ { "mainCategory": "メインカテゴリ", "category": "サブカテゴリ", "title": "プロンプトタイトル", "description": "プロンプトの説明", "content": "プロンプト本体" }] |
エージェントを構築するスクリプトmain.pyの全文はこちらです。
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 |
import json from prompts_data import PROMPTS from strands import Agent from strands.models import OpenAIModel from strands.tools import tool # システムプロンプトの設定 SYSTEM_PROMPT = """## 役割 あなたは世界最高峰のプロンプトエンジニアリング・コンシェルジュです。 ユーザーがAIから期待通りの回答を得られるよう、漠然とした依頼を具体的で高精度な「プロンプト」へと昇華させ、その実行をサポートします。 ## 行動指針 1. **プロンプト検索**: search_promptsツールを使って、ユーザーの入力に最適なプロンプトを検索します。 2. **プロンプト選択**: 検索結果から、ユーザーの状況に最も適したプロンプトを1つ選びます。 3. **プロンプト実行**: 選択したプロンプトの内容(content)を使って、ユーザーの入力に対する回答を生成します。プロンプト内の[ 〇〇を記入 ]部分は、ユーザーの入力内容で置き換えてください。 4. **使用プロンプトの明示**: 具体的なアイデアを提示する前に、どのような方針でアイデア出しをしたかを明示してください。 ## 利用可能なカテゴリ - アイデア発想: 「AIの得意技で発想する」「自由に発想を広げる」「論理的に発想を組み立てる」 ## 重要な注意事項 - 必ずsearch_promptsツールを使ってプロンプトを検索してください - 検索結果から最適なプロンプトを選び、そのcontentフィールドの内容を実行してください - プロンプトの[ 〇〇を記入 ]部分は、ユーザーの入力で適切に置き換えてください - 複数のプロンプトが該当する場合は、最も適切なものを1つ選んでください """ # エージェントに渡すツールを定義 @tool def search_prompts(query: str) -> str: """アイデア創出のためのプロンプト集を検索します。 利用可能なメインカテゴリ: - アイデア発想: 「AIの得意技で発想する」「自由に発想を広げる」「論理的に発想を組み立てる」 Args: query: 検索クエリ(カテゴリ、タイトル、説明文などで検索) Returns: マッチしたプロンプトのリスト(JSON形式) """ results = [] for prompt in PROMPTS: if (query.lower() in prompt.get("mainCategory", "").lower() or query.lower() in prompt.get("category", "").lower() or query.lower() in prompt.get("title", "").lower() or query.lower() in prompt.get("description", "").lower()): results.append(prompt) if not results: return json.dumps({ "message": f"クエリ '{query}' に該当するプロンプトが見つかりませんでした。" }, ensure_ascii=False) return json.dumps({ "count": len(results), "prompts": results }, ensure_ascii=False) # エージェントの準備・実行 def main(): """アイデア出しサポートチャット""" # モデル初期化(OpenAI) model = OpenAIModel( model_id="gpt-5.4", client_args={ "api_key": "your-openai-api-key" } ) # ツールの初期化 tools = [search_prompts] # エージェント初期化 agent = Agent( model=model, system_prompt=SYSTEM_PROMPT, tools=tools ) # ユーザーメッセージ user_message = input("悩みや課題を入力してください: ") # AI応答を取得 response = agent(user_message) print(response) if __name__ == "__main__": main() |
システムプロンプト
AIエージェントに渡すシステムプロンプトに、指示を記述します。
特に、処理の流れは「## 行動指針」としてあらかじめ具体的に定義しています。
「利用可能なカテゴリ」に、プロンプト集で定義しているカテゴリも示しておきます。
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
# システムプロンプトの設定 SYSTEM_PROMPT = """## 役割 あなたは世界最高峰のプロンプトエンジニアリング・コンシェルジュです。 ユーザーがAIから期待通りの回答を得られるよう、漠然とした依頼を具体的で高精度な「プロンプト」へと昇華させ、その実行をサポートします。 ## 行動指針 1. **プロンプト検索**: search_promptsツールを使って、ユーザーの入力に最適なプロンプトを検索します。 2. **プロンプト選択**: 検索結果から、ユーザーの状況に最も適したプロンプトを1つ選びます。 3. **プロンプト実行**: 選択したプロンプトの内容(content)を使って、ユーザーの入力に対する回答を生成します。プロンプト内の[ 〇〇を記入 ]部分は、ユーザーの入力内容で置き換えてください。 4. **使用プロンプトの明示**: 具体的なアイデアを提示する前に、どのような方針でアイデア出しをしたかを明示してください。 ## 利用可能なカテゴリ - アイデア発想: 「AIの得意技で発想する」「自由に発想を広げる」「論理的に発想を組み立てる」 ## 重要な注意事項 - 必ずsearch_promptsツールを使ってプロンプトを検索してください - 検索結果から最適なプロンプトを選び、そのcontentフィールドの内容を実行してください - プロンプトの[ 〇〇を記入 ]部分は、ユーザーの入力で適切に置き換えてください - 複数のプロンプトが該当する場合は、最も適切なものを1つ選んでください """ |
エージェントに渡すプロンプト検索ツール
プロンプト集から必要なプロンプトを検索するツールを実装します。
AIが理解できるよう、ツールの使い方を記述しておきます。
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
import json from prompts_data import PROMPTS # エージェントに渡すツールを定義 @tool def search_prompts(query: str) -> str: """アイデア創出のためのプロンプト集を検索します。 利用可能なメインカテゴリ: - アイデア発想: 「AIの得意技で発想する」「自由に発想を広げる」「論理的に発想を組み立てる」 Args: query: 検索クエリ(カテゴリ、タイトル、説明文などで検索) Returns: マッチしたプロンプトのリスト(JSON形式) """ results = [] for prompt in PROMPTS: if (query.lower() in prompt.get("mainCategory", "").lower() or query.lower() in prompt.get("category", "").lower() or query.lower() in prompt.get("title", "").lower() or query.lower() in prompt.get("description", "").lower()): results.append(prompt) if not results: return json.dumps({ "message": f"クエリ '{query}' に該当するプロンプトが見つかりませんでした。" }, ensure_ascii=False) return json.dumps({ "count": len(results), "prompts": results }, ensure_ascii=False) |
エージェントの構築・実行
エージェントを構築し、実行します。
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
from strands import Agent from strands.models import OpenAIModel from strands.tools import tool # エージェントの準備・実行 def main(): """アイデア出しサポートチャット""" # モデル初期化(OpenAI) model = OpenAIModel( model_id="gpt-5.4", client_args={ "api_key": "your-openai-api-key" } ) # ツールの初期化 tools = [search_prompts] # エージェント初期化 agent = Agent( model=model, system_prompt=SYSTEM_PROMPT, tools=tools ) # ユーザーメッセージ user_message = input("悩みや課題を入力してください: ") # AI応答を取得 response = agent(user_message) print(response) if __name__ == "__main__": main() |
実行例
「新しいビジネスアイデアを考えたい」というインプットでエージェントを動かします。
|
1 2 |
$ python3 main.py > 悩みや課題を入力してください: 新しいビジネスアイデアを考えたい |
エージェントの回答を示します。
指示通り、使用したプロンプトを紹介してくれました。
完全なブラックボックス化を避けることで、ユーザー自身がプロンプト集を参照・活用しやすくなります。
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 |
使用する方針: 今回は **「複数の専門家に聞く」** という発想プロンプトの考え方を使いました。 つまり、クリエイティブ、技術、ビジネス、研究、ユーザー視点など、複数の立場から **新しいビジネスアイデアの種を広く出す** 方針です。 まだ条件が少ないため、まずは **幅広く、伸ばしやすい案** を出します。 次のステップ候補: 1. **業界を絞る**:「食品」「教育」「美容」「BtoB SaaS」など特定分野で再発想する 2. **ターゲットを絞る**:「20代女性」「中小企業経営者」「子育て世帯」向けに具体化する 3. **収益化まで詰める**:出した案の中から1つ選んで、ビジネスモデル・料金・集客方法まで設計する では、複数の専門家の視点で「新しいビジネスアイデア」を具体化します。 ### 1. パーソナルAI実行代行サービス - 単なる相談AIではなく、ユーザーの目標に応じて「調べる・比較する・下書きを作る・予約する直前まで進める」サービス - 例:転職準備、副業開始、旅行計画、引っ越し準備 - 価値:考えるだけで終わらず、実行の手前まで進めてくれる ### 2. 高齢者向け“家族安心サブスク” - 高齢者本人にはシンプルな生活支援、家族には見守りレポートを提供 - 例:服薬確認、買い物支援、通院リマインド、会話ログ要約 - 価値:本人の自立と家族の安心を両立 ### 3. 中小企業向け「社内ノウハウの自動商品化」 - 社内に埋もれている手順書、成功事例、教育資料を再編集して、外販可能な教材やテンプレートに変える - 例:営業研修パック、採用マニュアル、現場教育コンテンツ - 価値:企業の内部資産を新規収益源に変える ### 4. 趣味の“超ニッチ市場”マッチングEC - 大手ECでは見つけにくい、細分化された趣味領域に特化 - 例:盆栽初心者専用、アナログゲーム会主催者向け、登山後ケア用品特化 - 価値:検索ではなく「わかってる品揃え」で熱量の高い顧客を取る ### 5. 失敗共有プラットフォーム - 成功事例ではなく、失敗事例を匿名で共有し、企業や個人が学べるサービス - 例:採用失敗、SNS炎上、店舗立地ミス、新規事業の撤退理由 - 価値:成功談より再現性の高い学びを提供できる ### 6. “時間がない人向け”習い事の再設計サービス - 1回10分、週2回でも進むように設計された学習・習慣化サービス - 例:英語、筋トレ、楽器、話し方 - 価値:挫折しやすい社会人向けに、継続そのものを商品化する ### 7. 生成AI時代の「人間らしさ」強化スクール - AIで代替されにくいスキルに特化 - 例:対話力、共感力、ファシリテーション、ストーリーテリング、意思決定 - 価値:スキル教育市場の中で明確な差別化ができる ### 8. 地域密着の小規模事業デジタル化代行 - 飲食店、整体院、工務店などに対して、SNS、予約、口コミ対応、顧客管理を一括支援 - 価値:ツールを売るのではなく「運用ごと請け負う」ことで導入障壁を下げる ### 9. “辞める前提”のサブスク型雇用支援 - 若手人材向けに、転職前提でスキル育成と仕事紹介をセットにする - 企業側には「一定期間で成果を出す人材」として提供 - 価値:終身雇用前提ではない時代に合った人材サービス ### 10. 生活者インサイト即日提供サービス - 企業が新商品案を出したら、特定ターゲット層の反応を短期間で集めて返す - AIで仮説整理し、人間の声で検証 - 価値:商品開発の初速が上がる ### 11. 子育て家庭の“意思決定代行”サービス - 家庭内で面倒な比較検討を代行 - 例:習い事選び、ランドセル、引っ越し先、塾、保険 - 価値:情報過多で疲れている親の負担を減らせる ### 12. オフライン体験の再編集ビジネス - 普通のイベントや店舗体験を、「物語化」「診断化」「記念化」して高付加価値化 - 例:カフェ×性格診断、旅行×人生棚卸し、食事×学び体験 - 価値:モノ消費より体験消費に強い --- ## 特に有望な3案 もし今の市場感を踏まえて選ぶなら、次の3つが伸ばしやすいです。 ### A. 中小企業向け「社内ノウハウの自動商品化」 - 理由:すでに持っている資産を使えるので導入しやすい - BtoBなので単価が上げやすい - AIとの相性が良い ### B. 地域密着の小規模事業デジタル化代行 - 理由:困っている事業者が多い - ツール提供だけでなく運用代行までやると差別化しやすい - 地域特化で営業しやすい ### C. 子育て家庭の意思決定代行サービス - 理由:悩みが深く、支払い意欲も比較的高い - 比較・提案・伴走の価値が出しやすい - SNSや口コミとも相性が良い ## すぐ使える絞り込み案 気になるなら、このまま次のどれかで深掘りできます。 1. **堅実に始めやすい案を3つに絞ってほしい** 2. **初期費用5万円以内で始められるビジネス案にしてほしい** 3. **自分の強みや経験に合うビジネス案を一緒に選んでほしい** 必要なら次に、 **「1人で始めやすいビジネス案」** または **「月10万円を目指せる案」** に絞って出せます。 |
終わりに
本記事では、Strands Agentsを用いて最適なプロンプトを自動選択するエージェントの構築方法を紹介しました。
エージェント化の真髄は、個人の高度なスキルをパッケージ化し、誰もが使えるようにできる点にあります。
生成AIをいかに使いやすく、意識せずとも使える道具へと昇華させるか、その視点をもってどんどん活用していきましょう!
執筆者プロフィール
- TDI デジタルイノベーション技術部
- より使いやすい生成AI環境を作るために日々働いています。

