AI Agents-什么是Agent智能体

liangdabiao

·

·

什么是Agent智能体?

1- 查询输入:首先,我们将我们的问题发送给LLM。

2—与ReAct系统提示处理:LLM由ReAct系统提示驱动,使其能够思考问题以及如何回答问题。我们称之为一个”思考”。我们将在接下来的部分中更多地讨论这一点。

3- 外部函数执行:然后LLM选择并执行一个外部函数,比如在这种情况下,“get_website_response_time(URL).”。

4—响应生成:在获取实时数据之后,AI根据结果制作并传递一个回应。 这种思考、决策和行动的无缝整合反映了人类解决问题的过程,展示了AI如何可以绕过传统限制。

需要理解的概念:

AI代理/Agent智能体结构

AI代理/Agent智能体结构是一种模拟智能实体行为和决策的模型,通常用于人工智能领域中模拟自主系统或代理的行为。AI代理结构通常包括以下几个组成部分:

  1. 感知器(Perceptor):负责感知环境中的信息,包括环境中的物体、位置、状态等,并将这些信息传递给智能体的决策模块。
  2. 决策模块(Decision Module):根据感知到的信息和定义的目标,制定决策和选择行动方案。决策模块通常基于一定的算法和策略进行推理和选择,以实现智能体的目标。
  3. 行为执行器(Behavior Actuator):根据决策模块选择的行动方案,执行相应的行为和动作,以影响环境或与环境进行交互。行为执行器可以是物理设备(如机器人)或虚拟系统(如计算机程序)。
  4. 反馈系统(Feedback System):用于收集环境中的反馈信息,并将其反馈给感知器,以便进行自我学习和调整。反馈系统可以是基于物理反馈(如机器人的触觉)或基于计算机模拟的反馈(如通过仿真环境收集数据)。
  5. 知识库(Knowledge Base):存储有关环境、任务、规则和策略等知识,以便在决策过程中进行推理和利用。知识库可以基于规则、统计数据或学习算法进行构建和更新。

通过这些组成部分的协作和交互,AI代理能够模拟自主行为,并在与环境的交互中不断学习和适应,实现智能体的目标。AI代理结构是人工智能领域中重要的基础模型之一,广泛应用于机器人、自动化系统、游戏NPC等领域。

理解ReAct提示

ReAct提示是AI代理的核心。我们将看到它是如何在AI代理工作流程中运行的。

以下是黄佳老师的新书<动手做Agent>介绍的ReAct:

# 导入环境变量
from dotenv import load_dotenv
load_dotenv()

# 初始化大模型
from langchain_openai import ChatOpenAI
llm = ChatOpenAI(model='gpt-4-turbo-preview',
             temperature=0.5)

# 设置工具
from langchain.agents import load_tools
tools = load_tools(["serpapi", "llm-math"], llm=llm)

# 设置提示模板
from langchain.prompts import PromptTemplate
template = ('''
    '尽你所能用中文回答以下问题。如果能力不够你可以使用以下工具:\n\n'
    '{tools}\n\n
    Use the following format:\n\n'
    'Question: the input question you must answer\n'
    'Thought: you should always think about what to do\n'
    'Action: the action to take, should be one of [{tool_names}]\n'
    'Action Input: the input to the action\n'
    'Observation: the result of the action\n'
    '... (this Thought/Action/Action Input/Observation can repeat N times)\n'
    'Thought: I now know the final answer\n'
    'Final Answer: the final answer to the original input question\n\n'
    'Begin!\n\n'
    'Question: {input}\n'
    'Thought:{agent_scratchpad}' 
    '''
)
prompt = PromptTemplate.from_template(template)

# 初始化Agent
from langchain.agents import create_react_agent
agent = create_react_agent(llm, tools, prompt)

# 构建AgentExecutor
from langchain.agents import AgentExecutor
agent_executor = AgentExecutor(agent=agent, 
                               tools=tools, 
                               handle_parsing_errors=True,
                               verbose=True)

# 执行AgentExecutor
agent_executor.invoke({"input": 
                       """目前市场上玫瑰花的一般进货价格是多少?\n
                       如果我在此基础上加价5%,应该如何定价?"""})