Tool 和 Agent

1.Tool(工具)

定义与功能

 单一功能模块: Tool是完成待定任务的独立工具,每个工具专注于一项具体操作(如搜索,计算,api调用等)。

无决策能力:工具本身不决定何时被调用,仅在被触发时执行预设操作。

输入输出明确:每个工具需要定义输入参数和输出格式,例如:

  搜索工具:输入是查询字符串,输出是搜索结果。

  计算工具:输入是数学表达式,输出是计算结果。

2.Agent(智能体)

定义与功能

任务的协调者:Agent是自主决策的智能体,负责解析用户意图,规划任务步骤,调用工具并整合结果。

决策逻辑:基于LLM的推理能力(如ReAct框架),动态决定使用哪些工具及执行顺序。

上下文管理:维护任务状态,处理工具返回的中间结果,最终生成用户友好的响应。

工作流程

1.理解意图:解析用户输入的深层需求(如“比较python和java的优缺点” 需多步调研)。

2.规划步骤:决定调用工具的顺序(如先搜索python特性,再搜索java特性)

3.执行工具:调用Tool获取数据,处理可能的错误或重试。

4.综合响应:将多个工具的结果整合为自然语言回答。

Tool 和Agent

通过这种分工,LangChain实现了模块化与智能体的结合: Tool提供基础能力,Agent赋予系统自主决策的灵活性,两者协同完成从简单查询到复杂的问题求解的多样化任务。

import os

from langchain.agents import create_react_agent
from langchain.agents.chat.prompt import HUMAN_MESSAGE
from langchain_openai import ChatOpenAI
from openai import max_retries
from tavily import TavilyClient

llm = ChatOpenAI(
    model= 'deepseek-chat',
    temperature=0,
    api_key='sk-xxx',
    base_url='https://api.deepseek.com'
)
# Tavily 工具
os.environ["TAVILY_API_KEY"] = "TVLY-XXXX"

search_tool = TavilySearchResults(max_retries=3)

# res = search_tool.invoke("2025年5月2日,北京市的天气预报怎么样?")
# 
# print(res)

# 创建一个agent,整合工具

tools = [search_tool]

agent = create_react_agent(llm,tools)

resp = agent.invoke({'message':[HUMAN_MESSAGE(content='湖南的省会是哪个城市?')]})

print(resp)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值