本文基于开源项目进行解读与拓展
- 官方项目地址:GitHub – microsoft/ai-agents-for-beginners
- 项目许可证:MIT License
若想跑通代码建议去官网查看,个人觉得学习其思路也是获益良多,每个流程间如何衔接。
定义总体目标并分解任务
大多数实际任务都太复杂了,无法一步完成。AI 代理需要一个简洁的目标来指导其规划和行动。例如,考虑目标Agent 智能体:
虽然说起来很简单,但它仍然需要改进。目标越明确,代理人(和任何人类合作者)就越能专注于实现正确的结果,例如创建包含航班选择、酒店推荐和活动建议的综合行程。
大型或复杂的任务在拆分为较小的、面向目标的子任务时,将变得更加易于管理。对于旅行路线示例,您可以将目标分解为:
- Flight Booking 航班预订
- Hotel Booking 酒店预订
- Car Rental 租车
- Personalization 个性化
然后,每个子任务都可以由专门的代理或流程处理。一个代理可能专门搜索最佳航班优惠,另一个代理专注于酒店预订,依此类推。然后,协调代理或“下游”代理可以将这些结果编译成一个供最终用户使用的有凝聚力的路线。
这种模块化方法还允许增量增强。例如,可以为 Food Recommendations 或 Local Activity Suggestions 添加专门的代理,并随着时间的推移优化行程。
大型语言模型 (LLM) 可以生成结构化输出 (e.g. JSON),以便下游代理或服务更轻松地解析和处理。这在多代理上下文中特别有用,我们可以在收到规划输出后执行这些任务。参阅此博客文章以获取快速概述。 以下 Python 代码段演示了一个简单的规划代理,该代理将目标分解为子任务并生成结构化计划:
在此示例中,语义路由器代理 (Semantic Router Agent ) 收到用户请求(例如,“我需要为我的旅行提供酒店计划”。)
- 接收酒店计划:规划者接收用户的消息,并根据系统提示(包括可用的代理详细信息)生成结构化的旅行计划。
- 列出代理及其工具:代理注册表包含代理列表(例如,航班、酒店、汽车租赁和活动)以及他们提供的功能或工具。
- 将计划路由到相应的代理:根据子任务的数量,规划者要么将消息直接发送到专用代理(用于单任务场景),要么通过群聊管理器进行协调以进行多代理协作。
- 总结结果:最后,规划者总结生成的计划以清晰起见。以下 Python 代码示例说明了这些步骤:
下面是前面代码的输出,然后可以使用这个结构化输出路由到 并向最终用户总结旅行计划。
有些任务需要来回或重新规划,其中一个子任务的结果会影响下一个子任务。例如,如果代理在预订航班时发现意外的数据格式,则可能需要在继续预订酒店之前调整其策略。
此外,用户反馈(例如,员工决定他们更喜欢早点的航班)可能会触发部分重新计划。这种动态的迭代方法可确保最终解决方案与实际约束和不断变化的用户偏好保持一致。
例如示例代码:
发布者:Ai探索者,转载请注明出处:https://javaforall.net/239208.html原文链接:https://javaforall.net
