文章目录
- Agent是什么
- Agent中要求LLM需要具备哪些能力
- Function Call(工具调用)
- Plan(规划)
- memory
- 推理(总结)能力
- Agent的实现方式
- PlanAndExecute
- React
Agent是什么
在LLM语境下,Agent可以理解为在某种能自主理解、规划决策、执行复杂任务的智能体。
OpenAI应用研究主管翁丽莲(Lilian Weng)撰写过一篇blog: LLM Powered Autonomous Agents,将 Agents 定义为LLM + memory + planning skills + tool use,即大语言模型、记忆、任务规划、工具使用的集合。
AI应用的分级
Agent中要求LLM需要具备哪些能力
Function Call(工具调用)
定义一些Function传给LLM,由LLM判断是否需要调用以及如何调用。需要制定函数名,函数用途的描述,参数名,参数描述。
根据用户问题,LLM判断是否需要调用Function,如果需要调用,则提取参数。这是Agent调用工具的基础。
Plan(规划)
根据用户的问题,LLM对复杂问题进行分解,规划出解决问题所需要的步骤,
例如langchain中的PlanAndExecute
memory
短期记忆包括工具的返回值,已经完成的推理路径,一般就是将工具返回结果拼接到prompt中传给模型,一直进行追加;长期记忆包括可访问的外部长期存储,例如知识库
推理(总结)能力
为了回复用户的问题,Agent中LLM需要对工具调用结果进行总结,或者推理,得到答案。
Agent的实现方式
当前Agent有两种主要的实现方式,PlanAndExecute和React。
PlanAndExecute
针对用户的问题,首先规划出需要执行的所有步骤,然后依次执行。
React
每次只思考当前步骤需要执行什么动作,并根据该步骤的执行结果,再思考下一步需要执行的内容。工作流程如下:
Thought: (LLM的思考/想说的话)
Action: (想调用的函数)
Observation: (刚才调用函数的返回)