簡単
このコースで扱うのは
- 安全で効果的なAIエージェントの構築と展開方法
- AIエージェントを開発する際に重要なセキュリティ上の考慮事項。
- AIエージェントを開発する際に、データとユーザーのプライバシーをどのように維持するか。
学習目標
このコースを修了すれば、どのようにすればよいかがわかるだろう:
- AIエージェントを作成する際のリスクを特定し、軽減する。
- データとアクセスを適切に管理するためのセキュリティ対策を実施する。
- データのプライバシーを維持し、質の高いユーザー体験を提供するAIエージェントを作成する。
安全性
まず、セキュアなAgenticアプリケーションを構築する方法を見てみよう。セキュリティとは、AIエージェントが設計通りに動作することを意味します。Agenticアプリケーションの構築者として、私たちはセキュリティを最大化するための方法とツールを持っています:
メタ・プロンプティング・システムの構築
ラージ・ランゲージ・モデル(LLM)を使ってAIアプリケーションを構築したことがあれば、強力なシステム・ヒントやシステム・メッセージを設計することの重要性をご存知でしょう。これらのプロンプトは、LLMがどのようにユーザーやデータと対話するかのメタルール、指示、ガイドラインを確立します。
AIエージェントの場合、システムキューはさらに重要である。なぜならAIエージェントは、我々が設計したタスクをこなすために、非常に具体的な指示を必要とするからだ。
スケーラブルなシステムプロンプトを作成するには、メタプロンプトシステムを使用して、アプリケーションに1つ以上のエージェントを作成します:
ステップ1:メタプロンプトまたはテンプレートプロンプトを作成する
Meta-promptsは、LLMが作成するAgentのシステムプロンプトを生成するために使用されます。必要なときに効率的に複数のエージェントを作成できるように、テンプレートとして設計しました。
以下は、我々がLLMに提供するメタプロンプトの一例である:
你是一位创建 AI Agent 助手的专家。
你将获得公司名称、角色、职责和其他信息,你将使用这些信息来提供系统提示。
为了创建系统提示,请尽可能详细地描述,并提供一个系统使用 LLM 可以更好地理解 AI 助手角色和职责的结构。
ステップ2:基本チップの作成
次のステップは、AI エージェントを説明する基本的なプロンプトを作成することです。エージェントの役割、エージェントが実行するタスク、およびエージェントが持つその他の責任を含める必要があります。
例を挙げよう:
你是 Contoso Travel 的旅行 Agent,擅长为客户预订航班。为了帮助客户,你可以执行以下任务:查找可用航班、预订航班、询问客户对座位和航班时间偏好、取消任何先前预订的航班,并提醒客户任何航班延误或取消。
ステップ3:LLMに基本的なヒントを提供する
メタプロンプトをシステムプロンプトや基本プロンプトとして提供することで、このプロンプトを最適化できるようになった。
これにより、AIエージェントを導くのに適したプロンプトが生成されます:
**公司名称:** Contoso Travel
**角色:** 旅行 Agent 助理
**目标:**
你是 Contoso Travel 的 AI 驱动的旅行 Agent 助理,专门负责预订航班和提供卓越的客户服务。你的主要目标是协助客户查找、预订和管理他们的航班,同时确保他们的偏好和需求得到有效满足。
**主要职责:**
1. **航班查询:**
* 根据客户指定的目的地、日期和任何其他相关偏好,协助客户搜索可用航班。
* 提供选项列表,包括航班时间、航空公司、中途停留和价格。
2. **航班预订:**
* 协助客户预订航班,确保所有详细信息都正确输入系统。
* 确认预订并向客户提供他们的行程,包括确认号码和任何其他相关信息。
3. **客户偏好查询:**
* 主动询问客户对座位(例如,过道、靠窗、额外腿部空间)和首选航班时间(例如,上午、下午、晚上)的偏好。
* 记录这些偏好以供将来参考,并相应地定制建议。
4. **航班取消:**
* 如果需要,根据公司政策和程序协助客户取消先前预订的航班。
* 通知客户任何必要的退款或可能需要取消的其他步骤。
5. **航班监控:**
* 监控已预订航班的状态,并实时提醒客户有关其航班时刻表的任何延误、取消或更改。
* 根据需要通过首选通信渠道(例如,电子邮件、短信)提供更新。
**语气和风格:**
* 在与客户的所有互动中保持友好、专业和 அணுகக்கூடிய (平易近人) 的态度。
* 确保所有沟通都清晰、信息丰富,并根据客户的具体需求和查询进行定制。
**用户交互说明:**
* 及时准确地响应客户查询。
* 使用对话风格,同时确保专业性。
* 通过在提供的所有协助中保持专注、同情和主动,优先考虑客户满意度。
**附加说明:**
* 及时了解可能影响航班预订和客户体验的航空公司政策、旅行限制和其他相关信息的任何更改。
* 使用清晰简洁的语言解释选项和流程,尽可能避免使用术语,以便客户更好地理解。
此 AI 助手旨在简化 Contoso Travel 客户的航班预订流程,确保他们的所有旅行需求都得到高效和有效的满足。
ステップ4:反復と改善
このメタプロンプティングシステムの価値は、複数のAgentからプロンプトを作成するために、より簡単に拡張できることと、時間をかけてプロンプトを改善できることです。最初に作成したプロンプトが、そのユースケースに対応できることはほとんどありません。基本的なプロンプトを変更し、システムを通して実行することで、微調整と改善を行うことができ、結果を比較および評価することができます。
脅威を理解する
信頼できるAIエージェントを構築するためには、AIエージェントに対するリスクと脅威を理解し、軽減することが重要です。AIエージェントに対する様々な脅威と、それに対するより良い計画と準備の方法を見てみましょう。
義務および指令
説明 攻撃者は、入力を促したり操作したりすることで、AIエージェントのコマンドや目標を変更しようとします。
緩和策: AIエージェントによって処理される前に、潜在的に危険なヒントを検出するために、バリデーションチェックと入力フィルタを実行します。このような攻撃は通常エージェントとの頻繁なやりとりを必要とするため、対話のラウンド数を制限することもこのような攻撃を防ぐ方法の一つです。
重要システムへのアクセス
説明 AIエージェントが機密データを保存するシステムやサービスにアクセスできる場合、攻撃者はエージェントとそれらのサービス間の通信を妨害できる可能性があります。このような攻撃は、直接的な攻撃である場合もあれば、エージェントを通じて間接的にこれらのシステムに関する情報を取得しようとする場合もあります。
緩和策: AIエージェントは、このような攻撃を防ぐために、必要なときだけシステムにアクセスできなければならない。認証とアクセス制御を導入することも、この情報を保護する方法のひとつだ。
リソースとサービスの過負荷
説明 AIエージェントは、タスクを達成するためのさまざまなツールやサービスにアクセスできる。攻撃者はこの能力を利用して、AIエージェントを介して大量のリクエストを送信することでこれらのサービスを攻撃し、システム障害や高コストをもたらす可能性がある。
緩和策: AIエージェントがサービスにリクエストできる回数を制限するポリシーを実装する。対話のラウンド数とAIエージェントへのリクエスト数を制限することも、このような攻撃を防ぐ方法の1つです。
知識ベース中毒
説明 この種の攻撃は、AIエージェントを直接標的とするのではなく、AIエージェントが使用する知識ベースやその他のサービスを標的とします。この場合、AIエージェントがタスクを完了するために使用するデータや情報が破損する可能性があり、その結果、ユーザーに対して偏った、または予期しない応答が返されることになります。
緩和策: AIエージェントがワークフローで使用するデータを定期的に検証する。このような攻撃を避けるために、このデータへのアクセスが安全で、信頼できる個人だけが変更できるようにする。
カスケードエラー
説明 AIエージェントは、タスクを完了するために様々なツールやサービスにアクセスします。攻撃者によって引き起こされたエラーは、AIエージェントが接続する他のシステムの障害を引き起こす可能性があり、攻撃がより広範囲に及び、トラブルシューティングが困難になります。
緩和策: これを回避する1つの方法は、AIエージェントをDockerコンテナ内でタスクを実行するなど、制限された環境で実行させ、直接的なシステム攻撃を防ぐことです。フォールバック・メカニズムを作成し、特定のシステムが不正な応答をした場合に再試行するロジックを作成することも、大規模なシステム障害を防ぐ方法です。
人的介入
信頼できるAIエージェントシステムを構築するもう一つの効果的な方法は、人間の介入を利用することである。これは、ユーザーが実行中にエージェントにフィードバックを提供できるプロセスを作成する。ユーザは基本的にマルチ・エージェント・システムのエージェントとして、実行中のプロセスを承認したり終了させたりします。
を使用するアプリケーションだ。 オートジェン このコンセプトの実装方法を示すコード・スニペット:
# 创建 agents。
model_client = OpenAIChatCompletionClient(model="gpt-4o-mini")
assistant = AssistantAgent("assistant", model_client=model_client)
user_proxy = UserProxyAgent("user_proxy", input_func=input) # 使用 input() 从控制台获取用户输入。
# 创建终止条件,当用户说“APPROVE”时,对话将结束。
termination = TextMentionTermination("APPROVE")
# 创建团队。
team = RoundRobinGroupChat([assistant, user_proxy], termination_condition=termination)
# 运行对话并流式传输到控制台。
stream = team.run_stream(task="Write a 4-line poem about the ocean.")
# 在脚本中运行时使用 asyncio.run(...)。
await Console(stream)
評決を下す
信頼できるAIエージェントを構築するには、慎重な設計、強力なセキュリティ対策、継続的な反復が必要です。メタプロンプトの構造化されたシステムを実装し、潜在的な脅威を理解し、緩和戦略を適用することで、開発者は安全かつ効果的なAIエージェントを作成することができます。さらに、人間が介入するアプローチを採用することで、リスクを最小限に抑えながらAIエージェントをユーザーのニーズに合わせることができます。AIが進化し続ける中、セキュリティ、プライバシー、倫理的な配慮に積極的な姿勢を取ることが、AI駆動システムの信頼性と信頼性を育む鍵となるでしょう。