多智能体设计

(点击上方图片观看本课视频)

AI智能体中的元认知

引言

欢迎来到关于AI智能体元认知的课程!本章节面向初学者,旨在介绍AI智能体如何对自身的思考过程进行反思和调整。完成本课后,您将掌握元认知的核心概念,并能运用实际示例设计具备元认知能力的AI智能体。

学习目标

完成本课后,您将能够:

  1. 理解智能体定义中推理循环的意义。
  2. 运用规划与评估技术辅助智能体自我纠正。
  3. 创建能够操作代码完成任务的智能体。

什么是元认知?

元认知指的是对自身思考过程的高级认知活动。对于AI智能体来说,意味着能够基于自我意识和过往经验评估并调整自身行为。元认知让AI系统能监控、调节并适应自身行为,类似于人类在面对问题时的自我反思。这种自我意识有助于AI做出更优决策,识别错误,并随着时间提升表现。

在智能体系统中,元认知有助于解决以下挑战:

  • 透明性:确保AI能解释其推理和决策过程。
  • 推理能力:增强信息综合与合理决策的能力。
  • 适应性:使AI能适应新环境和变化条件。
  • 感知能力:提升对环境数据的识别和解读准确性。

元认知示例

AI智能体会明确推理自身的过程,例如:“我优先选择了便宜的航班,但可能错过了直飞航班,需重新检查。”

它会记录为何选择某条路线,识别错误原因并调整决策策略,如过度依赖用户历史偏好,或根据用户反馈调整景点推荐策略。

元认知在AI智能体中的重要性

元认知的重要性

元认知使智能体能够:

  • 自我反思:评估自身表现,发现改进空间。
  • 适应环境:根据经验和环境变化调整策略。
  • 错误纠正:自动检测并修正错误,提升准确性。
  • 资源管理:通过规划和评估优化时间和计算资源使用。

AI智能体的组成部分

在深入元认知前,需了解AI智能体的基本组成:

  • 角色(Persona):定义智能体的个性和交互方式。
  • 工具(Tools):智能体可执行的功能和能力。
  • 技能(Skills):智能体拥有的知识和专长。

这些组成协同构成“专业单元”,完成特定任务。

旅行智能体中的元认知示例

假设设计一个AI旅行智能体,帮助用户规划巴黎之旅。元认知使其基于自我意识和历史经验评估并调整行为:

当前任务:协助用户规划巴黎旅行。

步骤

  1. 收集用户偏好(日期、预算、兴趣等)。
  2. 检索航班、住宿、景点和餐厅信息。
  3. 生成个性化行程推荐。
  4. 根据用户反馈调整推荐。

所需资源:航班和酒店数据库、巴黎景点信息、历史用户反馈。

经验与自我反思

  • 分析用户反馈,调整未来建议。
  • 避免推荐用户不喜欢的拥挤景点。
  • 纠正过去的错误,如避免推荐已满房的酒店。

开发示例代码

class Travel_Agent:
    def __init__(self):
        self.user_preferences = {}
        self.experience_data = []

    def gather_preferences(self, preferences):
        self.user_preferences = preferences

    def retrieve_information(self):
        flights = search_flights(self.user_preferences)
        hotels = search_hotels(self.user_preferences)
        attractions = search_attractions(self.user_preferences)
        return flights, hotels, attractions

    def generate_recommendations(self):
        flights, hotels, attractions = self.retrieve_information()
        itinerary = create_itinerary(flights, hotels, attractions)
        return itinerary

    def adjust_based_on_feedback(self, feedback):
        self.experience_data.append(feedback)
        self.user_preferences = adjust_preferences(self.user_preferences, feedback)

# 使用示例
travel_agent = Travel_Agent()
preferences = {
    "destination": "Paris",
    "dates": "2025-04-01 to 2025-04-10",
    "budget": "moderate",
    "interests": ["museums", "cuisine"]
}
travel_agent.gather_preferences(preferences)
itinerary = travel_agent.generate_recommendations()
print("建议行程:", itinerary)
feedback = {"liked": ["Louvre Museum"], "disliked": ["Eiffel Tower (too crowded)"]}
travel_agent.adjust_based_on_feedback(feedback)

元认知使旅行智能体能更精准地满足用户需求,提升用户体验。


2. 智能体中的规划

规划是AI智能体行为的关键,涉及明确目标、分解任务步骤、识别资源和障碍。

规划要素

  • 当前任务
  • 完成任务的步骤
  • 所需资源
  • 经验借鉴

旅行智能体规划示例

  1. 收集用户偏好
  2. 检索航班、住宿、景点信息
  3. 生成个性化行程
  4. 向用户展示行程
  5. 收集反馈
  6. 根据反馈调整行程
  7. 最终确认
  8. 预订并确认
  9. 提供持续支持

代码示例同上,体现规划与反馈调整过程。

3. 纠正型RAG系统

RAG简介

RAG(检索增强生成)结合检索系统和生成模型,先检索相关信息,再辅助生成更准确的回答。

纠正型RAG方法

利用RAG技术纠正错误,提升智能体准确性,包含:

  • 提示技术:引导检索相关信息
  • 工具:评估检索信息相关性并生成准确响应
  • 评估:持续监控性能并调整

旅行智能体中的纠正型RAG

基于用户反馈调整检索条件,重新生成推荐,持续优化结果。

代码示例

class Travel_Agent:
    def __init__(self):
        self.user_preferences = {}
        self.experience_data = []

    def gather_preferences(self, preferences):
        self.user_preferences = preferences

    def retrieve_information(self):
        flights = search_flights(self.user_preferences)
        hotels = search_hotels(self.user_preferences)
        attractions = search_attractions(self.user_preferences)
        return flights, hotels, attractions

    def generate_recommendations(self):
        flights, hotels, attractions = self.retrieve_information()
        itinerary = create_itinerary(flights, hotels, attractions)
        return itinerary

    def adjust_based_on_feedback(self, feedback):
        self.experience_data.append(feedback)
        self.user_preferences = adjust_preferences(self.user_preferences, feedback)
        new_itinerary = self.generate_recommendations()
        return new_itinerary

# 使用示例
travel_agent = Travel_Agent()
preferences = {
    "destination": "Paris",
    "dates": "2025-04-01 to 2025-04-10",
    "budget": "moderate",
    "interests": ["museums", "cuisine"]
}
travel_agent.gather_preferences(preferences)
itinerary = travel_agent.generate_recommendations()
print("建议行程:", itinerary)
feedback = {"liked": ["Louvre Museum"], "disliked": ["Eiffel Tower (too crowded)"]}
new_itinerary = travel_agent.adjust_based_on_feedback(feedback)
print("更新行程:", new_itinerary)

预加载上下文

提前加载相关背景信息,提升响应效率。

目标引导的规划启动

以明确目标启动规划,迭代优化方案,确保每步更接近目标。

利用大语言模型进行重排序和评分

通过LLM评估检索结果相关性和质量,优化推荐排序。

4. 代码生成作为工具

代码生成智能体利用生成模型编写并执行代码,解决复杂问题,自动化任务。

应用示例

  • 自动生成代码片段
  • 使用SQL查询数据库
  • 解决特定问题

旅行智能体代码生成示例

收集用户偏好,生成代码检索数据,执行代码获取实时信息,生成行程,依据反馈调整。

代码示例

class Travel_Agent:
    def __init__(self):
        self.user_preferences = {}

    def gather_preferences(self, preferences):
        self.user_preferences = preferences

def generate_code_to_fetch_data(preferences):
    code = f"""
    def search_flights():
        import requests
        response = requests.get('https://api.example.com/flights', params={preferences})
        return response.json()
    """
    return code

def execute_code(code):
    exec(code)
    result = locals()
    return result

travel_agent = Travel_Agent()
preferences = {
    "destination": "Paris",
    "dates": "2025-04-01 to 2025-04-10",
    "budget": "moderate",
    "interests": ["museums", "cuisine"]
}
travel_agent.gather_preferences(preferences)
flight_code = generate_code_to_fetch_data(preferences)
flights = execute_code(flight_code)
print("航班选项:", flights)

环境感知与推理

结合数据表结构调整查询,提升查询准确性。

使用SQL作为RAG技术

动态生成SQL查询,检索数据库信息,辅助生成个性化推荐。

元认知示例:酒店推荐智能体

智能体基于价格和质量推荐酒店,反思选择并根据用户反馈调整策略,从“最便宜”切换到“最高质量”,提升决策效果。

代码示例

class HotelRecommendationAgent:
    def __init__(self):
        self.previous_choices = []
        self.corrected_choices = []
        self.recommendation_strategies = ['cheapest', 'highest_quality']

    def recommend_hotel(self, hotels, strategy):
        if strategy == 'cheapest':
            recommended = min(hotels, key=lambda x: x['price'])
        elif strategy == 'highest_quality':
            recommended = max(hotels, key=lambda x: x['quality'])
        else:
            recommended = None
        self.previous_choices.append((strategy, recommended))
        return recommended

    def reflect_on_choice(self):
        if not self.previous_choices:
            return "No choices made yet."
        last_strategy, last_choice = self.previous_choices[-1]
        user_feedback = self.get_user_feedback(last_choice)
        if user_feedback == "bad":
            new_strategy = 'highest_quality' if last_strategy == 'cheapest' else 'cheapest'
            self.corrected_choices.append((new_strategy, last_choice))
            return f"Reflecting on choice. Adjusting strategy to {new_strategy}."
        else:
            return "The choice was good. No need to adjust."

    def get_user_feedback(self, hotel):
        if hotel['price'] < 100 or hotel['quality'] < 7:
            return "bad"
        return "good"

hotels = [
    {'name': 'Budget Inn', 'price': 80, 'quality': 6},
    {'name': 'Comfort Suites', 'price': 120, 'quality': 8},
    {'name': 'Luxury Stay', 'price': 200, 'quality': 9}
]

agent = HotelRecommendationAgent()
recommended = agent.recommend_hotel(hotels, 'cheapest')
print(f"推荐酒店(最便宜): {recommended['name']}")
reflection = agent.reflect_on_choice()
print(reflection)
adjusted = agent.recommend_hotel(hotels, 'highest_quality')
print(f"调整后推荐(最高质量): {adjusted['name']}")

结语

元认知是提升AI智能体能力的强大工具。通过引入元认知,您可以设计出更智能、适应性强且高效的智能体。欢迎继续探索元认知在AI智能体中的精彩应用。

交流与学习

如有更多关于元认知设计模式的问题,欢迎加入Microsoft Foundry Discord与其他学习者交流,参加答疑时段。


上一课:多智能体设计模式

下一课:AI智能体生产环境