智能体开发:大模型的任务规划

大语言模型在复杂问题任务规划上的推理能力展现出了惊人的表现。它能够根据问题的具体内容和难易程度,智能地生成合理的任务分解方案。借助这些方案,我们可以系统地规划出解决问题的具体步骤,从而调用适当的工具逐个解决子问题。并且在解决问题的过程中,它还能够根据实际情况灵活调整既定方案,最后汇总所有子问题的答案,得出最终结论。这种问题分解与规划能力,正是目标导向型问题解决策略的核心精髓所在。

任务规划的方法有很多,不同的方法适用于不同的问题和场景。在此,我们着重介绍两种主流规划方法:自顶向下规划和探索性规划。

1.自顶向下规划

自顶向下规划是一种从全局到局部、从整体到细节的规划方法。在这种方法中,我们首先从整体目标出发,将大问题分解成若干个子问题(或子任务),然后对每个子问题进行进一步的分解和求解,直到所有子任务都解决为止。

这种规划方法的优点是结构清晰,便于管理和控制。通过逐步分解,我们可以更好地理解问题的各个部分,以及它们之间的关系。同时,这种方法也便于分配资源和时间,因为我们可以根据每个子问题的复杂度和重要性来安排工作。

然而,自顶向下规划也有其局限性。它要求我们在规划阶段就对问题有深入的理解和全面的把握,这对于复杂和未知的问题来说可能是困难的。此外,如果某个子任务无法按计划完成,可能会对整个项目的进度造成影响。

下面由少至多提示为例,介绍如何使用自顶向下规划的方法。在此,我们将为这一思维模式引入工具,其工作流程可分为3个关键阶段,如下图所示。

在这里插入图片描述

图:自顶向下规划工作原理

第一阶段:制定计划

在这个阶段,明确要求大语言模型制定一个解决问题计划,将复杂的任务分解为更小、更易于管理的子任务。提示如下:

# 任务描述
把一个复杂的问题尽可能拆解为多个简单子问题,然后针对每一个子问题进行求解,从而得到最终求解,这是人们解决复杂问题的有效方法,请针对下面的用户提问模仿人类进行拆解。

# 工具描述
- @天气:该工具可以帮助你查看天气预报
- @定位:该工具可以获取用户当前所在的城市
- @导航:该工具可以规划地点A到地点B的驾驶路线
- @计算器:该工具是一个计算器,可以进行简单四则运算
- @时钟:这是一个时钟,可以告诉你今天日期和当前的时间
- @搜索:这是一个搜索引擎,当其他工具都无法使用时,可尝试使用此工具从互联网获取一些有用的信息

# 使用限定
1. 你只能使用工具列表提供的工具来帮助你回答,当用户输入不在工具列表范围内时,请给用户友好地提醒。
2. 当工具需要参数时,你需要从问题中解析出参数,参数之间用空格隔开,没有参数则返回空。

# 工作示例
用户提问:今天天气怎么样,可晒衣服吗?
拆解步骤:
我无法直接得出答案,但是可以模仿人类的思考,拆解为以下几个步骤分别求解:
步骤1,我需要了解用户当前是在哪个城市,以便于我查询该城市的天气,该问题可以使用 @定位工具获取用户当前所在城市名称
步骤2,如何根据城市名称获取天气预报,该问题可以使用 @天气工具获取城市名称对应的天气预报
步骤3,根据天气预报的结果做判断,如果是晴天就可以晒衣服,如果下雨就不能。
[...]
综上,如果上述步骤都能解决,都能给出答案,我就可以汇总之后给出最终答案。

# 用户提问
当前位置到襄阳怎么走,到目的地后根据天气情况帮我推荐有哪些好玩的地方?

# 拆解步骤
->

输出结果:

步骤 1:使用@定位工具获取用户当前位置。
步骤 2:使用@导航工具规划从用户当前位置到襄阳的驾驶路线。
步骤 3:使用@天气工具获取襄阳的天气情况。
步骤 4:根据襄阳的天气情况,推荐好玩的地方。

第二阶段:执行计划

这个阶段按照计划,顺序调用工具执行每个子任务。分别得到如下结果。

步骤 1:使用@定位工具获取用户当前位置。
答案:北京

步骤 2:使用@导航工具规划从用户当前位置到襄阳的驾驶路线。
答案:起点为北京,终点为襄阳,走京开高速→G45大广高速→S83兰南高速,距离1059.36千米,耗时10小时37分钟。

步骤 3:使用@天气工具获取襄阳的天气情况。
答案:天气晴朗,18℃

步骤 4:根据襄阳的天气情况,推荐适合的好玩的地方。
答案:襄阳市的旅游景点有:1. 襄阳古城墙... · 2. 古隆中景区... · 3. 钟鼓楼...

第三阶段:抽取结果

# 用户提问
当前位置到襄阳怎么走,到目的地后根据天气情况帮我推荐有哪些好玩的地方?

# 解决步骤及答案
<上文执行计划的结果>

# 最终答案
因此,最终的答案是:

输出结果:

你当前位于北京,驾驶路线为京开高速→G45 大广高速→S83 兰南高速,到达襄阳后,襄阳天气晴朗,适合外出游玩,你可以前往襄阳古城墙、古隆中景区、钟鼓楼等景点游玩。

自顶向下规划是一种“上帝”视角的规划,这种规划局限性在于依赖于大语言模型对问题的一次性理解和拆解能力。

2. 探索性规划

相较于自顶向下的规划方式,探索性规划展现了一种更为灵活且动态的策略。在这种策略下,大语言模型并不需要在初始阶段就构思出一个完整的解决方案。相反,它会根据当前的具体环境和上下文,逐步确定接下来的子目标与子任务。在执行每一项子任务后,模型会仔细观察相关工具的反馈,并基于这些反馈来决定是否需要对原计划进行调整或继续执行,直到模型通过自身评估认为达到了预期满意的程度为止。

这种规划策略的优势在于其能够实时地评估执行结果与预期目标的匹配程度,对自身的行为进行审视与反思,从失误中学习和汲取经验,以便为接下来的行动提供改进建议,从而有效提升最终成果的质量。

这种常用的方法涵盖了自问自答提示和推理-行动提示等思维链。关于这两种方法,在《AI原生应用开发:提示工程原理与实战》一书的8.3.4和8.4.2章节已经做出了详尽的探讨。特别是在8.4.2章节中,我们深入展示了推理-行动提示与工具结合后的出色成效。本节我们将以自问自答提示作为智能体的规划器为例来讲解,其工作流程可分为两个阶段,如下图所示。
在这里插入图片描述

图:自问自答规划工作原理

第一阶段:规划执行阶段

在这个阶段,通过自问自答的方式对子问题进行拆解,并调用工具进行解答,不断观察结果,直到大语言模型判断无需进一步拆分为新的子问题为止,提示如下:

# 任务描述
你的任务是以工作示例为参考,在解决问题的过程中,根据实际需求判断“用户提问”是否需要拆解为更具体的子问题。拆解时请逐步进行,每次仅拆解一个问题,并在拆解出子问题后立即停止进一步输出。在此过程中,你可使用以下工具来辅助分析,工具的参数格式请参考如下说明。

@工具名称(参数1,参数2,...):工具功能描述

# 工具描述
@定位():获取用户当前的定位城市
@天气(城市名称):查看天气预报
@导航(起点,终点):规划地点A到地点B的驾驶路线
@计算器(数字1,运算符,数字2):进行简单的四则运算
@时钟():获取当前的日期和时间
@搜索(搜索关键词):当以上工具都无法使用时,尝试使用这个搜索引擎工具

# 工作示例
用户提问:珠穆朗玛峰的高度乘以2是多少?
-
是否需要拆解子问题:是
子问题:@搜索工具(珠穆朗玛峰的高度是多少)
答案:珠穆朗玛峰的高度是8848米
-
是否需要拆解子问题:是
子问题:@计算器(8848*2) 计算珠穆朗玛峰的高度是8848米乘以2
答案:17696米
-
是否需要拆解子问题:否

# 用户提问
当前位置到襄阳怎么走,到目的地后根据天气情况帮我推荐有哪些好玩的地方?

# 解决过程
下一步拆解->

输出结果:

是否需要拆解子问题:是
子问题:@定位() 获取用户当前的定位城市

然后,我们将前面拆解出的子问题和答案,按照原提示的格式,继续填写如下:

# 任务描述
# 工具描述
# 工作示例
# 用户提问
...(略,前面部分不变)

# 解决过程
//拆解子问题的全部过程
是否需要拆解子问题:是
子问题:@定位() 获取用户当前的定位城市
答案:当前在北京市

下一步拆解->

输出结果:

是否需要拆解子问题:是
子问题:@导航(北京, 襄阳) 规划北京到襄阳的驾驶路线

重复上述过程,经过了5轮的交互。当大语言模型观察结果评估不需要进一步拆解时,停止规划,进入答案抽取阶段。

# 任务描述
# 工具描述
# 工作示例
# 用户提问
...(略,前面部分不变)

# 解决过程
是否需要拆解子问题:是
子问题:@定位() 获取用户当前的定位城市
答案:当前在北京市

是否需要拆解子问题:是
子问题:@天气(襄阳) 查询襄阳的天气情况
答案:天气晴朗,18℃

是否需要拆解子问题:是
子问题:@导航(北京, 襄阳) 规划北京到襄阳的驾驶路线
答案:起点为北京,终点为襄阳,走京开高速→G45大广高速→S83兰南高速,距离1059.36千米,耗时10小时37分钟。

是否需要拆解子问题:是
子问题:@搜索(襄阳有哪些好玩的地方)搜索襄阳好玩的地方。
答案:襄阳市的旅游景点有:1. 襄阳古城墙... · 2. 古隆中景区... · 3. 钟鼓楼...

下一步拆解->

输出结果:

是否需要拆解子问题:否

第二阶段:答案抽取阶段

这个阶段综合前面的所有过程信息,给出最终答案。

# 用户提问
当前位置到襄阳怎么走,到目的地后根据天气情况帮我推荐有哪些好玩的地方?

# 解决过程
<第一个阶段中的子问题以及答案>

# 最终答案
基于以上,最终的答案是->

输出结果:

您可以从北京出发,走京开高速→G45大广高速→S83兰南高速,行驶约10小时37分钟即可到达襄阳,距离为1059.36千米。到达襄阳后,根据天气情况,今天襄阳天气晴朗,气温18℃,非常适合户外活动。襄阳市内有许多旅游景点,如襄阳古城墙、古隆中景区和钟鼓楼等,您可以根据兴趣选择游玩地点。祝您旅途愉快!

3.深入阅读

任务规划作为智能体的核心组成部分,不仅体现了智能体解决问题的能力,更是衡量其智能化水平的关键指标。

新出版的《AI原生应用开发:提示工程原理与实战》(京东图书:https://item.jd.com/14373635.html)一书,详细介绍了打造一个智能体其他相关技术如下图,快去看看吧。
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

alphaAIstack

借AI之力,探索无限可能。

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值