
🤖システムプロンプトとは何か?Smolagentsで自分だけのAIエージェントを構築するために知っておくべきこと
AIエージェントやチャットボットを使っていて、
「なんだか回答が的外れ。。。」と感じたり、
AIにおすすめのレストランを聞いたのに、Wikipediaみたいな説明文が返ってきた。。。
このような経験、ありませんか?
実はその原因の一つとされているのは「システムプロンプト」の設計にあります。
このNote記事では、Hugging FaceのSmolagentsフレームワークを例に、システムプロンプトとは何か、通常のプロンプトとは何が違うのか、そして自分だけのAIエージェントを作るために何ができるのかを、技術者・
非技術者の両方の視点から解説していきます。
🧩システムプロンプトとは何か?
「プロンプト」と聞くと、ChatGPTに入力する質問文や命令文のようなものを想像する人が多いかと思います。しかし「システムプロンプト」はそれとは違います。
通常のプロンプトとの違い
システムプロンプトは、いわゆる「通常のプロンプト(ユーザーが入力する質問文)」とは目的も構造もまったく異なります。
💡 目的の違い
通常のプロンプトは「AIに答えさせるための問いかけ」です。
一方、システムプロンプトは「AIそのものの性格・ルール・目的を定める設計図」です。
📄 内容の違い
通常のプロンプトは「〜を教えて」「このデータを分析して」などの単発命令。
システムプロンプトは「あなたは旅行アシスタントです。ユーザーの目的に応じてプランを立て、必要ならツールを使って答えてください」といった構造化された長文になります。
🔁 影響範囲の違い
通常のプロンプトは「その1回限りの返答」に影響を与えますが、
システムプロンプトは「会話全体の行動・思考・応答の流れ」に影響します。
👀 表示・非表示の違い
通常のプロンプトはユーザーが直接入力・確認できるのに対し、システムプロンプトはユーザーからは見えない「裏側(バックエンド)」で使われるものです。
つまり、ユーザーが何も入力しなくても、AIはこの隠れた指示に従って行動します。
このように、システムプロンプトはAIエージェントの思考・行動・出力すべてに影響する中枢的な存在です。特にSmolagentsのようなフレームワークでは、システムプロンプトを構造的にカスタマイズすることで、自分だけのAIエージェントを育てる事が可能になります。
💡なぜシステムプロンプトが重要なのか?
システムプロンプトを適切に設計することで、AIが単なる言語モデルを使って答えるマシーンから、思考し、行動し、最終的な判断を下す本格的なエージェントに進化する事が出来ます。
例えば、あるAIエージェントがユーザーの質問に答えるまでには、裏側でこんな流れが起きています:
ユーザーの質問の意図を正確に判断する
例:「これは商品検索なのか、FAQなのか、それとも雑談なのか?」
必要に応じて外部ツールやデータベースを使い、リアルタイムな情報を取得
例:「APIから天気情報を取得」「データベースから在庫状況を取得」など
回答の中に追加の参考情報やおすすめを含めて、より新設な応答に仕上げる
例:「似た商品も合わせて提案する」「関連する記事も紹介する」など
必要であれば、別のエージェントにタスクを委任する
「旅行計画は旅行エージェントに依頼」「技術的な質問はエンジニアエージェントに依頼」
このようにユーザーには見えないバックエンドの思考と行動の流れを設計するのが、システムプロンプトの役割です。
✍️Smolagentsのシステムプロンプト構成
Smolagentsでは、システムプロンプトはYAML形式で定義され、以下のようなセクションに分かれています。
system_prompt: 全体の口調やドメイン設定
planning: 初期の判断のロジックやアップデートについての戦略
managed_agents: サブエージェントへのタスクなどの委任方法
final_answer: 最終的な回答のフォーマットとガイドライン
こうした分離された構造により、「思考」「行動」「出力」の流れを明確に制御できます。
🏗️実際にどのように動くのか?(ReActループ)
Smolagentsでは、いわゆるReActループが採用されていて、AIエージェントがユーザーの質問に答えるまでには、裏側でこのような流れが行われています:
🟢 ユーザーからの質問を受け取る
まず、ユーザーが入力した内容を受け取り、どんな意図があるかを理解しようとします。🧠 質問の目的を分類する
質問が「検索」なのか、「質問」なのか、「雑談」なのかなどを判断します。📝 必要な追加情報や前の会話の文脈を考慮する
過去の会話や追加された条件をもとに、何をすべきかを再検討します。🛠️ 必要に応じて外部のツールや検索を使う
たとえば、「乗換案内API」や「Web検索ツール」を使って、最新情報を取得します。👀 得られた情報を解釈して、次のアクションを決める
情報が十分であれば、回答を作成します。不足している場合は、さらに確認の質問を行うこともあります。📨 ユーザーにわかりやすく丁寧な回答を届ける
最終的な答えをわかりやすく、自然な言葉でまとめてユーザーに返します。
🔧自分だけのエージェントを構築してみよう
SmolAgents を使えば、アイデア次第で多様なエージェントを構築できます。たとえば:
📍 地域情報を教えてくれるローカル案内エージェント
例:天気、イベント、最寄りの施設などを調べてくれる🍜 ユーザーの好みに合わせたレストラン提案ボット
例:価格帯、料理ジャンル、現在地に応じた提案📚 調べ物を手伝ってくれる学習アシスタント
例:英語の例文、歴史の解説、数学の問題を一緒に考える🎨 創作サポートしてくれるクリエイティブAI
例:ブログの構成を考えてくれる、キャラクター設定を提案する
このように、システムプロンプトの設計がキーになってきます。
「どんな質問に、どのようにして答えるか?」をしっかり定義することで、あなたの目的にあったAIエージェントをデザインする事ができます。
📚参考リンク
前回のNote記事ではAIエージェントの仕組みを完全解説しました。こちらもご覧下さい。