![使用这些基本 REST API 最佳实践构建出色的 API](https://cdn.explinks.com/wp-content/uploads/2024/06/Frame-42-为什么身份控制是确保API接口访问安全的关键.png)
使用这些基本 REST API 最佳实践构建出色的 API
Agents 的核心概念是利用语言模型来选择一系列要执行的动作。与传统的硬编码动作链不同,Agents 使用语言模型作为推理引擎来确定要执行哪些动作以及它们的执行顺序。
Agents
The core idea of agents is to use a language model to choose a sequence of actions to take. In chains, a sequence of actions is hardcoded (in code). In agents, a language model is used as a reasoning engine to determine which actions to take and in which order.
Agents能干什么?
Agent System由多个协作的智能代理构成,这些代理能自主行动、响应环境、与其他代理或用户交互,并根据目标、规则和知识执行任务或决策。
在Lilian Weng的博客中,她阐述了以LLM为核心的AI Agents系统,其中LLM负责推理、决策和生成语言,还需结合规划、记忆和工具使用等关键组件来完善功能。
Agents的工作流程:通过结合大型语言模型(LLM)的推理能力和外部工具的执行能力,接收任务后进行思考、行动、接收反馈并重复这些步骤,直至任务完成或达到终止条件。
如果任务还没有完成,LLM Agent会重复上述步骤,直到任务完成或达到某个终止条件。
Agents的工作流程
Agent Types:在LangChain中,Agent Types定义了不同类型的代理(Agents),这些代理使用不同的策略和方法来与用户和工具进行交互,以完成各种任务。
args_schema
,Agent可以理解每个工具所需输入参数的结构和类型,从而与用户进行更结构化的对话以收集必要的信息。这有助于确保与工具的交互是准确和一致的。Agents应用场景:在需要根据不同输入动态决定工具使用次数和顺序的复杂任务中,实现灵活智能的决策和处理。
工具链:有些任务的处理流程是固定的,我们可以预先设定一个工具链来按顺序处理。
工具链
但有些任务的处理流程是动态的,需要根据输入来决定使用哪些工具以及如何使用。
Agents是一种可以实现这种动态决策的机制,它可以根据输入和当前状态来选择下一步的操作,从而实现更加灵活和智能的任务处理。
Agents应用创建:使用 LangChain 库创建一个简单的代理(agent),该代理能够处理数学运算任务。
一、创建工具函数:通过装饰器 @tool 创建了三个工具函数:multiply(乘法)、add(加法)和 exponentiate(指数运算)。这些函数接收整数作为参数,并返回运算结果。
@tool
1
2 def multiply(first_int: int, second_int: int) -> int:
3 return first_int * second_int
4
5 @tool
6 def add(first_int: int, second_int: int) -> int:
7 return first_int + second_int
8
9 @tool
10 def exponentiate(base: int, exponent: int) -> int:
11 return base ** exponent
二、创建提示模板:从 LangChain Hub 中获取一个提示模板。这个模板用于指导大型语言模型(LLM)如何生成响应。
from langchain import hubfrom langchain.agents import AgentExecutor, create openai tools agentfrom langchain openai import ChatOpenAI
# Get the prompt to use - you can modify this!prompt = hub.pull("hwchase17/openai-tools-agent"prompt.pretty_print()
三、创建代理和执行器:选择一个大型语言模型来驱动代理。使用所选的模型、工具函数和提示模板来构建 OpenAI Tools 代理。同时,创建一个代理执行器,将代理和工具函数传递给它。
model = ChatOpenAl(model="gpt-3.5-turbo-1106" temperature=0)agent = create openai tools agent(model, tools, prompt)agent executor = AgentExecutor(agent=agent, tools=tools, verbose=True)
四、调用代理:代理会根据输入和提示模板动态地调用适当的工具函数来完成运算,并返回运算结果。
agent executor.invoke(
0
"input. "Take 3 to the fifth power and multiply that by the sum of twelve and three, then square tl
5
本文章转载微信公众号@架构师带你玩转AI