课程章节介绍
好,咱们来看这一页内容,讲的是怎么让Agent更聪明地追问用户,把该问的问题都问到,而且顺序不乱,还能根据用户刚才的回答灵活调整下一个问题。
你可以想象这样一个场景:你让Agent去处理一个比较复杂的任务,比如帮用户申请贷款。它必须问完一长串必需的信息,比如收入多少、工作几年、有没有负债……而且下一个问题常常要取决于上一个答案。比如用户说“我是自由职业者”,那下一个问题就不能再问“公司名称”,而要改问“主要收入来源是什么”。有时,Agent在一个子任务里可能要跟用户来回好几轮,才能把某个信息问清楚。
传统做法可能会把追问逻辑写死在同一个对话流程里,但这样很难维护。我们这里介绍一种更灵活的模式:,用步骤变量来控制路由,让主代理(Router)知道接下来该把用户分派给哪个子代理,。
具体怎么做呢?你可以在对话过程中设置一个变量,比如叫`nextStep`,它会告诉主代理:下一步应该激活哪个子代理。比如“问收入”子代理处理完后,它根据用户的回答,去修改这个`nextStep`变量,变成“问负债情况”或者“上传证明文件”等。然后主代理一看到这个变量,就自动把用户路由到对应的子代理。
这样一来,整个追问的顺序就不是硬编码的,而是由子代理在处理过程中动态决定的。子代理不但负责问问题,还要负责评估用户给的答案是否足够,如果答案模糊,它可以在自己的子代理里继续追问澄清,直到答案能用为止,最后它再把`nextStep`指向下一个该去的地方。
什么时候特别适合用这种模式呢?就是当你的Agent必须提出,一长串必需的问题,,而且问题的顺序有很强的,依赖关系,,或者,单一的澄清过程可能就需要好几轮交互,的时候。用步骤变量做路由控制,就能让整个对话既结构化又灵活,不会乱套。
好,这一页的核心就是这个意思。你可以把它理解成:用一个小本本(步骤变量)随时记下“该轮到谁干活了”,每个子代理干完活,在本本上写清楚接班人的名字,主调度员一看本本就马上把活儿分过去。