之前关于Agent学习中,主要涉及提示链(顺序执行)、路由(动态选择)、并行(并发),这三个部分都是为了是的智能体能够应对复杂的任务,但是其输出的结果是肯定有不稳定的因素的 。所以这里接下来进一步学习反思模式(像人一样根据自身的状态进行自我纠正,自我改进,本质上是循环反馈 )故需要嵌套循环,以及依据评估结果给出终止循环的条件
反思模式一般的实现方式是:借助另外一个大模型,并给他一个提示身份(如高级建筑工程师身份),让其对另外一个直接参与内容生成的Agent输出的内容进行评估
这种方式使得各个Agent之间的职责被分离 ,用与内容生成的Agent专精于内容的产生,评估该Agent的Agent能专精于Agent的评估
其开发工具为:Langchain和Google ADK
python
实现逻辑:
循环条件:当前轮次 < 最大轮数
每次循环:
A. 生成/优化阶段
┌─ 如果 当前轮次 == 0:
│ 输入 = 任务描述
│ 提示 = "请完成这个任务"
└─ 否则:
输入 = 对话历史 + 最新反馈
提示 = "请根据反馈优化结果"
B. 调用AI生成
┌─ 发送输入给AI模型
│ 接收AI的回复
│ 当前结果 = AI回复内容
└─ 记录到历史:对话历史.append({"role": "assistant", "content": 当前结果})
C. 评估阶段
┌─ 构建评估提示:
│ "你是一个严格的评估者。"
│ "原始任务:[任务描述]"
│ "当前结果:[当前结果]"
│ "如果完美,回复'满意',否则提改进建议。"
└─ 获取评估结果 = AI回复
D. 终止判断
┌─ 如果 评估结果包含"满意":
│ 结束循环
│ 否则如果 当前轮次 == 最大轮数-1:
│ 结束循环
└─ 否则:
记录反馈到历史:对话历史.append({"role": "user", "content": 评估结果})
当前轮次 += 1
继续下一轮