ペルソナ: エージェントにロールを付与する
多くの場合、"メタ プロンプト" または "命令" と呼ばれるペルソナは、エージェントが刺激に応答する方法に影響を与えるために使用されるプロンプトです。 これにより、エージェントがタスクを計画する方法、応答を生成する方法、ユーザーと対話する方法に影響を与えることになります。 たとえば、ペルソナを使用して、エージェントに対して、何をすべきかわからない場合はヘルプを要求するように明示的に指示したり、何かを説明するときにさらに詳細に指示することができます。
セマンティック カーネルでは、ユーザー エクスペリエンス設計のペルソナによく似ているため、これらのプロンプトを "ペルソナ" と記述することがよくあります。 デザイナーや UX の研究者が、さまざまな種類のユーザーを表すペルソナを作成する方法と同じように、さまざまな種類のエージェントと担当するタスクを表すペルソナを作成できます。
これにより、より一貫性があり、信頼性が高く、予測可能なエージェントを作成できます。 これは、重要なタスクを担当するエージェントや、機密性の高い状況でユーザーと対話するエージェントを構築する場合に特に重要です。
この記事の残りの部分では、セマンティック カーネルでペルソナを作成するときのヒントとベスト プラクティスについて説明します。
ペルソナを作成するためのベスト プラクティス
効果的なペルソナを作成するには、エージェントの意図された役割、対象ユーザー、およびエージェントが実行する特定のタスクを慎重に検討する必要があります。 留意すべきベスト プラクティスを次に示します。
Step | 説明 |
---|---|
1. 明確な目標を定義する | ペルソナを作成する前に、エージェントが達成する目標を明確に定義します。 これには、エージェントが実行するタスクと、ユーザーとの対話の種類の理解が含まれます。 |
2. 特定の役割または公人を参照する | 適切に定義されたペルソナには、エージェントの動作、トーン、スタイルに関する特定の詳細を含める必要があります。 LLM が動作をより適切に模倣できるように、特定のロールまたは公人を参照してあいまいな説明を避けます。 |
3. 例とシナリオを提供する | エージェントがその役割をよりよく理解できるように、実際のペルソナを示す例とシナリオを提供します。 これには、さまざまな状況でのエージェントの対応方法を示すサンプル会話、ユーザー ストーリー、ユース ケースが含まれます。 |
4. フォールバック手順を含める | 不明な状況が発生した場合、または応答を提供できない場合にエージェントが実行する必要がある操作について説明します。 これには、ヘルプの要求、代替ソリューションの提供、単に回答がないことを確認する方法が含まれます。 |
5. 反復と絞り込み | ペルソナは静的ではありません。 ユーザーのフィードバックとパフォーマンス データに基づいて、ペルソナを継続的にテストおよび調整します。 これは、時間の経過と共にエージェントの有効性を向上させるのに役立ちます。 |
システム メッセージを使用してペルソナを設定する
セマンティック カーネル内で使用される最も一般的なシステム メッセージは、ユーザー、アシスタント、およびツール メッセージです。 これらのメッセージは、ユーザーとエージェントの間の会話をシミュレートするために使用されます。
4 番目のメッセージの種類であるシステム メッセージは、ユーザーに表示されない追加のコンテキストまたは命令をエージェントに提供するために使用できます。 これを使用して、エージェントのペルソナを設定できます。
セマンティック カーネルでは、エージェントの初期システム メッセージを提供することは、 ChatHistory
コンストラクターに追加するのと同じくらい簡単です。 次に例を示します。
ChatHistory chatHistory = new("""
You are a technical support specialist for a software company.
Your primary task is to assist users with technical issues,
such as installation problems, software bugs, and feature
inquiries. Use technical jargon appropriately, but ensure that
explanations are easy to understand. If a problem is too complex,
suggest advanced troubleshooting steps or escalate to a higher-level
support team using the escalate tool.
""")
chat_history = ChatHistory("""
You are a technical support specialist for a software company.
Your primary task is to assist users with technical issues,
such as installation problems, software bugs, and feature
inquiries. Use technical jargon appropriately, but ensure that
explanations are easy to understand. If a problem is too complex,
suggest advanced troubleshooting steps or escalate to a higher-level
support team using the escalate tool.
""")
ChatHistory chatHistory = new ChatHistory("""
You are a technical support specialist for a software company.
Your primary task is to assist users with technical issues,
such as installation problems, software bugs, and feature
inquiries. Use technical jargon appropriately, but ensure that
explanations are easy to understand. If a problem is too complex,
suggest advanced troubleshooting steps or escalate to a higher-level
support team using the escalate tool.
""");
ペルソナをより詳細に制御する必要がある場合 (たとえば、会話の進行に応じて指示を変更する場合)、 AddSystemMessage
メソッドを使用して、チャット履歴にシステム メッセージを追加できます。
chatHistory.AddSystemMessage("Remember to ask for help if you're unsure how to proceed.")
chat_history.add_system_message("Remember to ask for help if you're unsure how to proceed.")
chatHistory.addSystemMessage("Remember to ask for help if you're unsure how to proceed.");
この方法で LLM にペルソナを通知することで、エージェントがユーザーとの対話において一貫性があり、信頼性が高く、予測可能であることを確認できます。