Tool和Agent

Tool(工具)

定义与功能

  • 单一功能模块:Tool是完成特定任务的独立工具,每个工具专注于一项具体操作(如搜索、计算、API调用等)。
  • 无决策能力:工具本身不决定何时被调用,仅在被触发时执行预设操作
  • 输入输出明确:每个工具需明确定义输入参数和输出格式,例如:
    • 搜索工具:输入是查询字符串,输出是搜索结果。
    • 计算工具:输入是数学表达式,输出是计算结果
      可以理解为java中的工具类或者工具包

Agent(智能体)

定义与功能

  • 任务协调者:Agent是自主决策的智能体,负责解析用户意图、规划任务步骤、调用工具并整合结果。
  • 决策逻辑:基于LLM的推理能力(如ReAct框架),动态决定使用哪些工具及执行顺序
  • 上下文管理:维护任务状态,处理工具返回的中间结果,最终生成用户友好的响应

工作流程

  • 理解意图:解析用户输入的深层需求(如“比较Python和Java的优缺点“需多步调研)
  • 规划步骤:决定调用工具的顺序(如先搜索Python特性,再搜索Java特性)
  • 执行工具:调用Tool获取数据,处理可能的错误或重试
  • 综合响应:将多个工具的结果整合为自然语言回答

可以理解为一个小项目

Tool与Agent

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

案例

langchain中自带的tool

在这里插入图片描述

我们以Tavily为例写一个案例。我们进入Tavily会看到要求我们进行注册、申请key才能使用这个工具。

在这里插入图片描述

点击进去后注意一个账户(可以使用QQ邮箱注册)。注册后申请一个key,复制下这个key用于后面开发使用

在这里插入图片描述

案例1:

使用 TavilySearchResults 进行搜索,将查询结果打印出来


import os

from langchain_community.tools import TavilySearchResults
"""
使用 TavilySearchResults 进行搜索,将查询结果打印出来
"""
# 设置 TAVILY  的 API key
os.environ["TAVILY_API_KEY"] = "-----"

search_tool = TavilySearchResults(max_results=3)
rest = search_tool.invoke("2025年2月16日,成都市天气怎么样?")
print(rest)

结果:


E:\learn_work_spaces\PythonProject1\.venv\Scripts\python.exe E:\learn_work_spaces\PythonProject1\tool与agent案例1.py 
[{'title': '2025年2月26日成都天气:多云,适合出行与户外活动 - 新闻- 搜狐', 'url': 'https://news.sohu.com/a/863874512_121976704', 'content': '今天是2025年2月26日,成都市的天气情况多云,温度在较为舒适的8°C左右,白天气温将升高到16°C。早晨出门时气温较低,建议在上班通勤时穿着较厚的衣物以防', 'score': 0.6058229}, {'title': '2025年2月16日天气预报 - 衢州市人民政府', 'url': 'https://www.qz.gov.cn/art/2025/2/16/art_1525280_59041005.html', 'content': '今天阴转多云,早晨局部有雾。 明天多云转阴有小雨,部分中雨。 偏西风2到3级。 今天白天最高气温17到19℃(较昨天高7℃左右),明天早晨最低气温4到6℃(较今天低', 'score': 0.38720417}, {'title': '预报- 成都 - 中国天气网', 'url': 'https://www.weather.com.cn/weather/101270101.shtml', 'content': '更多 北京 上海 成都 杭州 南京 天津 深圳 重庆 西安 广州 青岛 武汉 佘山 春城湖畔 华彬庄园 观澜湖 依必朗 旭宝 博鳌 玉龙雪山 番禺南沙 东方明珠 <<返回 全国 周边景点 全国> 四川 > 成都> 城区 10/1℃ 10/4℃ 11/5℃ 9/5℃ 5/3℃ 5/3℃ 7/3℃ 较冷 _穿衣指数_建议着厚外套加毛衣等服装。 强 _紫外线指数_涂擦SPF大于15、PA+防晒护肤品。 较易发 _感冒指数_天凉,湿度大,较易感冒。 冷 _穿衣指数_建议着棉衣加羊毛衫等冬季服装。 强 _紫外线指数_涂擦SPF大于15、PA+防晒护肤品。 较易发 _感冒指数_天凉,湿度大,较易感冒。 较冷 _穿衣指数_建议着厚外套加毛衣等服装。 较适宜 _洗车指数_无雨且风力较小,易保持清洁度。 强 _紫外线指数_涂擦SPF大于15、PA+防晒护肤品。 较易发 _感冒指数_天凉,湿度大,较易感冒。 较不宜 _运动指数_有降水,推荐您在室内进行休闲运动。 冷 _穿衣指数_建议着棉衣加羊毛衫等冬季服装。 最弱 _紫外线指数_辐射弱,涂擦SPF8-12防晒护肤品。 极易发 _感冒指数_强降温,天气寒冷,湿度大,极易感冒。 较不宜 _运动指数_有降水,推荐您在室内进行休闲运动。 冷 _穿衣指数_建议着棉衣加羊毛衫等冬季服装。 最弱 _紫外线指数_辐射弱,涂擦SPF8-12防晒护肤品。 较不宜 _运动指数_有降水,推荐您在室内进行休闲运动。 冷 _穿衣指数_建议着棉衣加羊毛衫等冬季服装。 最弱 _紫外线指数_辐射弱,涂擦SPF8-12防晒护肤品。 极易发 _感冒指数_寒冷潮湿,易发生感冒。 较不宜 _运动指数_有降水,推荐您在室内进行休闲运动。 冷 _穿衣指数_建议着棉衣加羊毛衫等冬季服装。 最弱 _紫外线指数_辐射弱,涂擦SPF8-12防晒护肤品。 河南平顶山气温低至冰点以下 植物染霜 中国天气网 2024-12-18 11:34 山东半岛今天仍有降雪 后天新一股冷空气来袭烟台威海局地或现大雪 中国天气网 2024-12-18 10:51 天寒地冻!明后天新一股冷空气来袭 河北再迎大风降温北部或飘雪 中国天气网 2024-12-18 10:14 北京今天晴冷持续北风稍大 明天云量增多山区或有降雪 中国天气网 2024-12-18 06:41 周边地区 | 周边景点 2024-12-18 11:30更新 高清图集 更多>>高清图集 桂林 晴 16/8℃ 适宜 青岛 晴转多云 2/-1℃ 一般', 'score': 0.3231563}]

进程已结束,退出代码为 0


案例2:


import os

from langchain_community.chat_models import ChatZhipuAI
from langchain_community.tools import TavilySearchResults
from langchain_core.messages import HumanMessage
from langchain_core.output_parsers import JsonOutputParser
from langgraph.prebuilt import create_react_agent

"""
使用agent封裝 TavilySearchResults工具,根據搜索的内容agent自行判断由AI回复还是调用工具进行查询,然后AI整合进行回复
如果出现  {'tools': {'messages': [ToolMessage(content='[{"title": "。。。"   那么表示调用了工具
"""
# 设置 TAVILY  的 API key
os.environ["TAVILY_API_KEY"] = "t--------7"
# 设置智普 AI 的 API key
os.environ["ZHIPUAI_API_KEY"] = "5-------XhLNRdKxlr"
# 初始化智普 AI 模型
llm = ChatZhipuAI()
# 创建单个tool
search_tool = TavilySearchResults(max_results=3)
# 创建tool数组
tools = [search_tool]
# 创建agent
agent = create_react_agent(llm,tools)
# agent流式调用
rest = agent.stream({'messages':[HumanMessage(content="2025年2月16日,成都市天气怎么样?")]})

for chunk in rest:
    print(chunk)
    print('--------------------------------')

结果:

E:\learn_work_spaces\PythonProject1\.venv\Scripts\python.exe E:\learn_work_spaces\PythonProject1\tool与agent案例2.py 
{'agent': {'messages': [AIMessage(content='', additional_kwargs={'tool_calls': [{'function': {'arguments': '{"query":"2025年2月16日成都市天气"}', 'name': 'tavily_search_results_json'}, 'id': 'call_-8891223729123853731', 'index': 0, 'type': 'function'}]}, response_metadata={'token_usage': {'completion_tokens': 26, 'prompt_tokens': 149, 'total_tokens': 175}, 'model_name': 'glm-4', 'finish_reason': 'tool_calls'}, id='run-53fe42f3-a52e-4934-8314-f1914c8d0204-0', tool_calls=[{'name': 'tavily_search_results_json', 'args': {'query': '2025年2月16日成都市天气'}, 'id': 'call_-8891223729123853731', 'type': 'tool_call'}])]}}
--------------------------------
{'tools': {'messages': [ToolMessage(content='[{"title": "2025年2月16日天气预报 - 衢州市人民政府", "url": "https://www.qz.gov.cn/art/2025/2/16/art_1525280_59041005.html", "content": "今天阴转多云,早晨局部有雾。明天多云转阴有小雨,部分中雨。偏西风2到3级。今天白天最高气温17到19℃(较昨天高7℃左右),明天早晨最低气温4到6℃(较今天", "score": 0.37236878}, {"title": "预报- 成都 - 中国天气网", "url": "https://www.weather.com.cn/weather/101270101.shtml", "content": "更多 北京 上海 成都 杭州 南京 天津 深圳 重庆 西安 广州 青岛 武汉 佘山 春城湖畔 华彬庄园 观澜湖 依必朗 旭宝 博鳌 玉龙雪山 番禺南沙 东方明珠 <<返回 全国 周边景点 全国> 四川 > 成都> 城区 10/1℃ 10/4℃ 11/5℃ 9/5℃ 5/3℃ 5/3℃ 7/3℃ 较冷 _穿衣指数_建议着厚外套加毛衣等服装。 强 _紫外线指数_涂擦SPF大于15、PA+防晒护肤品。 较易发 _感冒指数_天凉,湿度大,较易感冒。 冷 _穿衣指数_建议着棉衣加羊毛衫等冬季服装。 强 _紫外线指数_涂擦SPF大于15、PA+防晒护肤品。 较易发 _感冒指数_天凉,湿度大,较易感冒。 较冷 _穿衣指数_建议着厚外套加毛衣等服装。 较适宜 _洗车指数_无雨且风力较小,易保持清洁度。 强 _紫外线指数_涂擦SPF大于15、PA+防晒护肤品。 较易发 _感冒指数_天凉,湿度大,较易感冒。 较不宜 _运动指数_有降水,推荐您在室内进行休闲运动。 冷 _穿衣指数_建议着棉衣加羊毛衫等冬季服装。 最弱 _紫外线指数_辐射弱,涂擦SPF8-12防晒护肤品。 极易发 _感冒指数_强降温,天气寒冷,湿度大,极易感冒。 较不宜 _运动指数_有降水,推荐您在室内进行休闲运动。 冷 _穿衣指数_建议着棉衣加羊毛衫等冬季服装。 最弱 _紫外线指数_辐射弱,涂擦SPF8-12防晒护肤品。 较不宜 _运动指数_有降水,推荐您在室内进行休闲运动。 冷 _穿衣指数_建议着棉衣加羊毛衫等冬季服装。 最弱 _紫外线指数_辐射弱,涂擦SPF8-12防晒护肤品。 极易发 _感冒指数_寒冷潮湿,易发生感冒。 较不宜 _运动指数_有降水,推荐您在室内进行休闲运动。 冷 _穿衣指数_建议着棉衣加羊毛衫等冬季服装。 最弱 _紫外线指数_辐射弱,涂擦SPF8-12防晒护肤品。 河南平顶山气温低至冰点以下 植物染霜 中国天气网 2024-12-18 11:34 山东半岛今天仍有降雪 后天新一股冷空气来袭烟台威海局地或现大雪 中国天气网 2024-12-18 10:51 天寒地冻!明后天新一股冷空气来袭 河北再迎大风降温北部或飘雪 中国天气网 2024-12-18 10:14 北京今天晴冷持续北风稍大 明天云量增多山区或有降雪 中国天气网 2024-12-18 06:41 周边地区 | 周边景点 2024-12-18 11:30更新 高清图集 更多>>高清图集 桂林 晴 16/8℃ 适宜 青岛 晴转多云 2/-1℃ 一般", "score": 0.32293206}, {"title": "天气预报: 中国气象局", "url": "https://weather.cma.cn/", "content": "排名 城市 省份 最高温度1 西沙 海南 22.5℃2 元谋 云南 20℃3 三亚 海南 19.2℃4 保亭 海南 19.1℃5 景洪 云南 18.5℃6 乐东 海南 17.8℃7 五指山 海南 17.5℃8 陵水 海南 17.4℃9 文昌 海南 17.1℃10 昌江 海南 17℃ 排名 城市 省份 最低温度1 漠河 黑龙江 -35.1℃2 巴音布鲁克 新疆 -34.4℃3 阿尔山 内蒙古 -34.2℃4 康保 河北 -34.2℃5 根河 内蒙古 -33.2℃6 呼中 黑龙江 -33.1℃7 那仁宝力格 内蒙古 -33℃8 图里河 内蒙古 -33℃9 正镶白旗 内蒙古 -32℃10 新巴尔虎左旗 内蒙古 -31.9℃ 排名 城市 省份 温差1 仲巴 西藏 24.3℃2 塔中 新疆 22.3℃3 林周 西藏 22.1℃4 吉隆 西藏 21.8℃5 新龙 四川 21.8℃6 尼勒克 新疆 21.7℃7 塔什库尔干 新疆 21.4℃8 隆子 西藏 21.3℃9 尼木 西藏 21.2℃10 朗县 西藏 21℃ 天气预报 更多", "score": 0.20784147}]', name='tavily_search_results_json', id='0fa10c54-a5d8-41a0-9913-0010127a398c', tool_call_id='call_-8891223729123853731', artifact={'query': '2025年2月16日成都市天气', 'follow_up_questions': None, 'answer': None, 'images': [], 'results': [{'url': 'https://www.qz.gov.cn/art/2025/2/16/art_1525280_59041005.html', 'title': '2025年2月16日天气预报 - 衢州市人民政府', 'content': '今天阴转多云,早晨局部有雾。明天多云转阴有小雨,部分中雨。偏西风2到3级。今天白天最高气温17到19℃(较昨天高7℃左右),明天早晨最低气温4到6℃(较今天', 'score': 0.37236878, 'raw_content': None}, {'url': 'https://www.weather.com.cn/weather/101270101.shtml', 'title': '预报- 成都 - 中国天气网', 'content': '更多 北京 上海 成都 杭州 南京 天津 深圳 重庆 西安 广州 青岛 武汉 佘山 春城湖畔 华彬庄园 观澜湖 依必朗 旭宝 博鳌 玉龙雪山 番禺南沙 东方明珠 <<返回 全国 周边景点 全国> 四川 > 成都> 城区 10/1℃ 10/4℃ 11/5℃ 9/5℃ 5/3℃ 5/3℃ 7/3℃ 较冷 _穿衣指数_建议着厚外套加毛衣等服装。 强 _紫外线指数_涂擦SPF大于15、PA+防晒护肤品。 较易发 _感冒指数_天凉,湿度大,较易感冒。 冷 _穿衣指数_建议着棉衣加羊毛衫等冬季服装。 强 _紫外线指数_涂擦SPF大于15、PA+防晒护肤品。 较易发 _感冒指数_天凉,湿度大,较易感冒。 较冷 _穿衣指数_建议着厚外套加毛衣等服装。 较适宜 _洗车指数_无雨且风力较小,易保持清洁度。 强 _紫外线指数_涂擦SPF大于15、PA+防晒护肤品。 较易发 _感冒指数_天凉,湿度大,较易感冒。 较不宜 _运动指数_有降水,推荐您在室内进行休闲运动。 冷 _穿衣指数_建议着棉衣加羊毛衫等冬季服装。 最弱 _紫外线指数_辐射弱,涂擦SPF8-12防晒护肤品。 极易发 _感冒指数_强降温,天气寒冷,湿度大,极易感冒。 较不宜 _运动指数_有降水,推荐您在室内进行休闲运动。 冷 _穿衣指数_建议着棉衣加羊毛衫等冬季服装。 最弱 _紫外线指数_辐射弱,涂擦SPF8-12防晒护肤品。 较不宜 _运动指数_有降水,推荐您在室内进行休闲运动。 冷 _穿衣指数_建议着棉衣加羊毛衫等冬季服装。 最弱 _紫外线指数_辐射弱,涂擦SPF8-12防晒护肤品。 极易发 _感冒指数_寒冷潮湿,易发生感冒。 较不宜 _运动指数_有降水,推荐您在室内进行休闲运动。 冷 _穿衣指数_建议着棉衣加羊毛衫等冬季服装。 最弱 _紫外线指数_辐射弱,涂擦SPF8-12防晒护肤品。 河南平顶山气温低至冰点以下 植物染霜 中国天气网 2024-12-18 11:34 山东半岛今天仍有降雪 后天新一股冷空气来袭烟台威海局地或现大雪 中国天气网 2024-12-18 10:51 天寒地冻!明后天新一股冷空气来袭 河北再迎大风降温北部或飘雪 中国天气网 2024-12-18 10:14 北京今天晴冷持续北风稍大 明天云量增多山区或有降雪 中国天气网 2024-12-18 06:41 周边地区 | 周边景点 2024-12-18 11:30更新 高清图集 更多>>高清图集 桂林 晴 16/8℃ 适宜 青岛 晴转多云 2/-1℃ 一般', 'score': 0.32293206, 'raw_content': None}, {'url': 'https://weather.cma.cn/', 'title': '天气预报: 中国气象局', 'content': '排名 城市 省份 最高温度1 西沙 海南 22.5℃2 元谋 云南 20℃3 三亚 海南 19.2℃4 保亭 海南 19.1℃5 景洪 云南 18.5℃6 乐东 海南 17.8℃7 五指山 海南 17.5℃8 陵水 海南 17.4℃9 文昌 海南 17.1℃10 昌江 海南 17℃ 排名 城市 省份 最低温度1 漠河 黑龙江 -35.1℃2 巴音布鲁克 新疆 -34.4℃3 阿尔山 内蒙古 -34.2℃4 康保 河北 -34.2℃5 根河 内蒙古 -33.2℃6 呼中 黑龙江 -33.1℃7 那仁宝力格 内蒙古 -33℃8 图里河 内蒙古 -33℃9 正镶白旗 内蒙古 -32℃10 新巴尔虎左旗 内蒙古 -31.9℃ 排名 城市 省份 温差1 仲巴 西藏 24.3℃2 塔中 新疆 22.3℃3 林周 西藏 22.1℃4 吉隆 西藏 21.8℃5 新龙 四川 21.8℃6 尼勒克 新疆 21.7℃7 塔什库尔干 新疆 21.4℃8 隆子 西藏 21.3℃9 尼木 西藏 21.2℃10 朗县 西藏 21℃ 天气预报 更多', 'score': 0.20784147, 'raw_content': None}], 'response_time': 1.68})]}}
--------------------------------
{'agent': {'messages': [AIMessage(content='很抱歉,我无法提供2025年2月16日成都市的天气情况,因为目前无法获取未来的天气预报信息。如果您需要其他帮助,请告诉我。', additional_kwargs={}, response_metadata={'token_usage': {'completion_tokens': 36, 'prompt_tokens': 1420, 'total_tokens': 1456}, 'model_name': 'glm-4', 'finish_reason': 'stop'}, id='run-475c0f13-4c06-4826-ad58-1c3280531b70-0')]}}
--------------------------------

进程已结束,退出代码为 0

### 大型模型工具代理在AI开发中的角色 大型模型工具代理(Large Model Tool Agent)是指利用大规模预训练模型作为基础架构来执行特定任务或提供服务的软件实体。这些代理能够自动化处理复杂的工作流程,通过调用外部APIs、解析文档以及与其他应用程序交互等方式完成指定操作。 #### 自动化重复性工作 Beam平台就是一个很好的例子[^1],它专注于创建用于自动化的AI代理,可以显著减少人工干预的需求并提高效率。这类系统通常具备强大的自然语言理解生成能力,使得它们能够在多个领域内有效运作,比如客户服务支持、数据录入等场景下代替人类员工承担起单调乏味的任务。 #### 支持序列建模以实现可扩展学习 对于视觉识别这样的高维度感知任务而言,采用顺序建模方法可以帮助构建更高效的大规模视觉模型(LVM)[^2]。这不仅促进了参数量级的增长,同时也增强了模型泛化性能,在面对新样本时仍能保持良好表现。因此,当涉及到图像分类、目标检测等领域应用时,基于此类技术打造出来的工具代理无疑会拥有更强的数据处理能力更高的准确性。 #### 与现有系统的集成 为了使大型模型工具代理更好地融入企业内部环境之中,必须考虑如何将其无缝对接到既有基础设施之上。这就意味着要制定标准化的应用程序接口(API),并通过严格的测试验证过程确保两者之间不会发生冲突或者干扰正常业务运转的情况出现[^3]。只有这样,才能逐步推进智能化改造计划的成功实施,并最终达到全面部署的理想状态。 ```python import requests def call_external_api(url, params=None): response = requests.get(url, params=params) if response.status_code == 200: return response.json() else: raise Exception(f"Failed to fetch data from {url}") ``` 此代码片段展示了如何编写函数去调用外部API,这是构建大型模型工具代理过程中非常重要的一步。通过这种方式获取所需信息后,再结合预先训练好的深度神经网络来进行决策分析等工作就变得更加容易实现了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值