课程章节介绍
好,咱们来看看这两个工具函数,一个是 `utils.transferTo`,另一个是 `utils.setVariables`。它们都是让代理更智能地流转对话和动态设置变量的关键。
先说 `utils.transferTo`。你可以把它想象成打个电话转接到别的部门。这个函数就是告诉主代理:“把当前对话转给另一个专门的子代理来处理”。注意几个特点:
- 转接是单向的,也就是你从主代理转给子代理,等子代理把事情办完,对话就结束了,不会再自动回到主代理这里。
- 如果你真的需要再回到主代理,那你得自己在子代理里再设一个返回的转接,而且返回之后,流程是从子代理的开头重新开始,并不会接着刚才断开的地方继续。
- 什么时候转接?这是由大模型在推理过程中决定的。它会根据你的自然语言指令来判断。
- 在写推理指令时,如果希望某个条件下确定地转过去,你可以直接用“过渡到”子代理名称,注意不用加 `@utils.` 前缀。
再说 `utils.setVariables`。这个工具是用来让代理在对话过程中动态地设置或更新变量的值。
- 我们告诉代理:“嘿,你需要根据用户说的话,推断出一个值,然后把它存起来”。
- 具体怎么做呢?我们会给大模型一个提示(token),让它知道“哦,这个地方需要一个值”,然后通过描述告诉它如何去确定这个值。比如:“把用户的订单号提取出来存在订单号变量里”。
- 这样代理就能一边聊天一边记住关键信息,以便后续使用。
所以记住两个点:
- `transferTo` 是单向转接,需要返回的话要手动设返回路径,而且不保留断点。
- `setVariables` 是让代理动态理解并赋值变量。
有什么不清楚的可以随时问我。