
(点击上方图片观看本课视频)
AI智能体中的元认知
引言
欢迎来到关于AI智能体元认知的课程!本章节面向初学者,旨在介绍AI智能体如何对自身的思考过程进行反思和调整。完成本课后,您将掌握元认知的核心概念,并能运用实际示例设计具备元认知能力的AI智能体。
学习目标
完成本课后,您将能够:
- 理解智能体定义中推理循环的意义。
- 运用规划与评估技术辅助智能体自我纠正。
- 创建能够操作代码完成任务的智能体。
什么是元认知?
元认知指的是对自身思考过程的高级认知活动。对于AI智能体来说,意味着能够基于自我意识和过往经验评估并调整自身行为。元认知让AI系统能监控、调节并适应自身行为,类似于人类在面对问题时的自我反思。这种自我意识有助于AI做出更优决策,识别错误,并随着时间提升表现。
在智能体系统中,元认知有助于解决以下挑战:
- 透明性:确保AI能解释其推理和决策过程。
- 推理能力:增强信息综合与合理决策的能力。
- 适应性:使AI能适应新环境和变化条件。
- 感知能力:提升对环境数据的识别和解读准确性。
元认知示例
AI智能体会明确推理自身的过程,例如:“我优先选择了便宜的航班,但可能错过了直飞航班,需重新检查。”
它会记录为何选择某条路线,识别错误原因并调整决策策略,如过度依赖用户历史偏好,或根据用户反馈调整景点推荐策略。
元认知在AI智能体中的重要性

元认知使智能体能够:
- 自我反思:评估自身表现,发现改进空间。
- 适应环境:根据经验和环境变化调整策略。
- 错误纠正:自动检测并修正错误,提升准确性。
- 资源管理:通过规划和评估优化时间和计算资源使用。
AI智能体的组成部分
在深入元认知前,需了解AI智能体的基本组成:
- 角色(Persona):定义智能体的个性和交互方式。
- 工具(Tools):智能体可执行的功能和能力。
- 技能(Skills):智能体拥有的知识和专长。
这些组成协同构成“专业单元”,完成特定任务。
旅行智能体中的元认知示例
假设设计一个AI旅行智能体,帮助用户规划巴黎之旅。元认知使其基于自我意识和历史经验评估并调整行为:
当前任务:协助用户规划巴黎旅行。
步骤:
- 收集用户偏好(日期、预算、兴趣等)。
- 检索航班、住宿、景点和餐厅信息。
- 生成个性化行程推荐。
- 根据用户反馈调整推荐。
所需资源:航班和酒店数据库、巴黎景点信息、历史用户反馈。
经验与自我反思:
- 分析用户反馈,调整未来建议。
- 避免推荐用户不喜欢的拥挤景点。
- 纠正过去的错误,如避免推荐已满房的酒店。
开发示例代码:
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智能体行为的关键,涉及明确目标、分解任务步骤、识别资源和障碍。
规划要素:
- 当前任务
- 完成任务的步骤
- 所需资源
- 经验借鉴
旅行智能体规划示例:
- 收集用户偏好
- 检索航班、住宿、景点信息
- 生成个性化行程
- 向用户展示行程
- 收集反馈
- 根据反馈调整行程
- 最终确认
- 预订并确认
- 提供持续支持
代码示例同上,体现规划与反馈调整过程。
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与其他学习者交流,参加答疑时段。


