Agent架构设计
来自论文《A Survey on Large Language Model based Autonomous Agents》
GitHub - Paitesanshi/LLM-Agent-Survey
整体架构
Profile模块:确定agent的角色
Memory模块和Planning模块:让agent能够回忆过去并规划未来的行动
Action模块:将agent的决定转化为具体输出
Profile模块
确定并指出agent角色的特征,并写入提示词中。
构建agent角色特征的方式
手动构建
像MetaGPT,预先把各个角色和其职责定好
Memory模块
短期记忆
相当于对话的上下文(历史会话),一般会作为LLM的提示,充当代理的短期记忆
长期记忆
存储代理过去的行为和想法,可根据当前时间进行检索。一般存储稳定的知识。用向量数据库存储。
存储格式
-自然语言:灵活易懂,有丰富的语义信息,可以为指导代理提供详细信息。
-Embedding向量:可以提高记忆检索的效率。
-数据库/结构化列表
Planning模块
作用:将复杂的任务分解为更简单的子任务
关键点
单路径or多路径
单路径:任务被分解成好几个中间步骤,这些步骤以级联的方式连接起来,每个步骤只指向一个后续步骤。
多路径:任务被分解成树状结构,每次生成多种后续步骤,然后选择频率最高的执行计划。这种方法类似于人类思维,因为每个人在每个推理步骤中都可能有多个选择。
有反馈or无反馈
无反馈:相对简单,只适用于简单任务
有反馈:适用于复杂的大型任务
反馈方式:
-环境反馈:比如,搜索引擎的结果即可作为一个反馈。
环境反馈的信息可以是:执行的中间进度、执行错误、和自我验证的结果等等。
-人类反馈:让大模型主动征求人类对场景的反馈能力,然后代理将人类的反馈加入到提示中,从而实现更加明智的规划和推理。
-模型反馈:类似于ReAct的自我完善机制,即输出-反馈-完善不断重复,直到达到某些理想的条件
Action模块
作用:负责将代理的决策转化为具体结果。该模块位于最下游的位置,直接与环境互动。他受到以上3个模块的影响。
目标
行动的预期结果是什么?比如说和别的agent或者人类沟通
产生
1)通过记忆会议采取行动,2)按Planning中的规划行动
空间
1)外部工具:各种Tool,比如知识数据库,比如搜索引擎,比如HTTP工具,比如计算器,比如地图工具,图表工具等等
2)LLM的内部知识:对话能力,常识理解能力等等
影响
指行动的结果。
1)改变环境
2)改变内部状态
3)触发新的行动
如何让LLM获取agent相关的能力
两种方式:
1)提示词工程,将agent相关知识插入提示词中
具体实现类似于LangChain案例-根据自己的知识库,构建聊天机器人-CSDN博客
2)LLM微调
Agent效果评估
主观评价:人工注释,图灵测试(看人类能否区分代理和人类生成的结果,若不能,说明效果好)
客观评价:①任务成功率②人类相似度③效率指标(比如推理速度、对话次数等等)