课程章节介绍
我们来看看最后一个例子,这个例子很巧妙地展示了怎么让你的代理严格地按照一个定义好的流程来走,特别是在那种多回合的对话里,一步一步引导用户完成整个对话。
想象一下,你的代理要做的事情是有先后顺序的,必须先完成第一步,才能进入第二步,不能跳步,也不能乱序。那怎么保证代理能这样守规矩呢?这就用到了我们今天要讲的“步骤变量”。
在这个模式里,我们会设定一个变量,专门用来记录当前的步骤状态,比如第一步、第二步、第三步……我们就叫它步骤变量。然后,代理里的一个路由器——就是负责分发任务的组件——会不断地检查这个步骤变量的值,根据当前的步骤值来决定把对话交给哪个子代理去处理。
到了子代理里面,大语言模型会去评估用户刚才的回答,判断这一步是不是已经完成了。一旦完成,子代理就会更新那个步骤变量的值,把它改成下一步。比如说,完成第一步后,把步骤变量从“第一步”改成“第二步”;完成第二步后,再改成“第三步”,就是这样循环下去。
这种做法的好处非常明显,特别适合那些必须按严格顺序执行的任务。你想,有些业务流程是一环扣一环的,只有在前一环节彻底完成、信息收集齐全之后,才能安全地进入下一环节。用步骤变量来驱动,就能完美地实现这种控制。
而且这个方法处理长时间、多回合的对话也很得力。因为变量状态一直跟着对话走,代理不会忘记自己走到了哪一步,即使对话中间用户岔开话题,回来的时候代理依然知道该干什么。它只会在当前任务真正完成的那一刻,才会把控制权传递给下一个子代理,绝不会提前转场,导致流程错乱。
所以你看,这个模式非常清晰:路由器根据步骤变量的值来选择子代理,子代理内由LLM评估并设置下一步的值,这样我们就构建了一个严格按照定义顺序推进、能够处理复杂对话流程的可靠代理。简单、稳定,而且非常容易理解和维护。