大模型详解:什么是智能体(Agent)

随着大模型思维链(CoT -Chain of Thought)的产生,基于大模型的智能体如雨后春笋般冒出来。基于大模型的智能体相比于以前智能体,最大变化是利用大模型可以实现智能体行为的路径规划。行为路径规划过程是利用的大模型思维链能力对用户不清晰或者复杂的指令进行步骤拆解,拆解成清晰的工具执行或者答案,并且可以根据工具执行结果或者环境的变化,重新使用大模型再进行新的路径规划,直到找到合适的路径。

现实情况中受限于大模型思维链的能力,能真正利用大模型思维链实现自动化分步骤完成复杂指令的情况还不多,更多还得借助于人工预先定义的规划路径。

随着LangChain等开源组件不断成熟,使用LangChain + LLM来实现智能体逐渐变得简单,下文主要是通过实现LangChain中的Agent来介绍几种比较常见的智能体。除了LangChain可实现智能体之外,还有其他框架也支持智能体的实现如 LammaIndex、AutoGen、SuperAGI等。

1、LLM-based Agent概念框架

LLM-based Agent概念框架由大脑、感知、行动三个部分组成。作为控制器,大脑模块承担记忆、思考和决策等基本任务;感知模块负责感知和处理来自外部环境的多模态信息;行动模块负责使用工具执行任务并影响周围环境。

前排提示,文末有大模型AGI-优快云独家资料包哦!

基于大模型智能体

Agent 是让 LLM 具备目标实现的能力,并通过自我激励循环来实现这个目标。要让LLM替代人去做事,我们可以基于PDCA模型进行 规划、执行、评估和反思。
规划能力(Plan)-> 分解任务:Agent大脑把大的任务拆解为更小的,可管理的子任务,这对有效的、可控的处理好大的复杂的任务效果很好。
执行能力(Done)-> 使用工具:Agent能学习到在模型内部知识不够时去调用外部API,比如:获取实时的信息、执行代码的能力、访问专有的信息知识库等等。
评估能力(Check)-> 确认执行结果:Agent要能在任务正常执行后判断产出物是否符合目标,在发生异常时要能对异常进行分类(危害等级),对异常进行定位(哪个子任务产生的错误),对异常进行原因分析(什么导致的异常)。这个能力是通用大模型不具备的,需要针对不同场景训练独有的小模型。
反思能力(Action)-> 基于评估结果重新规划:Agent要能在产出物符合目标时及时结束任务,是整个流程最核心的部分;同时,进行归因分析总结导致成果的主要因素,另外,Agent要能在发生异常或产出物不符合目标时给出应对措施,并重新进行规划开启再循环过程。

智能体四个部分:大模型+工具+记忆+规划

2、LangChain中的Agent实现

2.1 使用LangChain实现零样本智能体

零样本智能体是指在不给大模型任何样本提示信息的情况,由大模型去实现工具调用来得到问题的答案,下面的示例就“姚明的妻子是谁?她现在的年龄是多少?她年龄的0.76次方是多少?”对零样本智能体进行演示。

  • 安装Python包
pip install langchain
pip install openai
pip install google-search-results
pip install -U duckduckgo-search
  • 使用OpenAI大模型接口、Google搜索接口、数学接口实现零样本智能体
import os
os.environ['OPENAI_API_KEY'] = "sk-rtyPFY3rItc5RB5prqsHT3BlbkFJkRho4VJhrckgCO****"
os.environ['SERPAPI_API_KEY'] = "e14c6e3d667fa9d988bf8966034e265a227e33985aba958a27c9e62852*****"
from langchain.agents import load_tools
from langchain.agents import initialize_agent
from langchain.agents import AgentType
from langchain.llms import OpenAI
# 加载将要用来控制 Agents 的语言模型
llm = OpenAI(temperature=0)
# 加载一些要使用的工具
tools = load_tools(["serpapi", "llm-math"], llm=llm)
# 初始化 Agents
agent = initialize_agent(tools, llm, agent=AgentType.ZERO_SHOT_REACT_DESCRIPTION, verbose=True)
# 测试一下智能体
agent.run("姚明的妻子是谁?她现在的年龄是多少?她年龄的0.76次方是多少?")
  • 返回零样本智能体执行过程:
Entering new AgentExecutor chain... I need to find out who Yao Ming's wife is and her age
Action: Search
Action Input: "Yao Ming's wife"
Observation: Ye Li
Thought: I need to find out her age
Action: Search
Action Input: "Ye Li age"
Observation: 42 years
Thought: I need to calculate her age to the 0.76 power
Action: Calculator
Action Input: 42^0.76
Observation: Answer: 17.126533197047873
Thought: I now know the final answer
Final Answer: Ye Li is Yao Ming's wife and her age to the 0.76 power is 17.126533197047873.
> Finished chain.
Ye Li is Yao Ming's wife and her age to the 0.76 power is 17.126533197047873.
  • 自定义日期工具,通过零样本智能体调用自定义日期工具示例
from
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值