langGraph学习
自己学习记录,
1、简单建图

1.1、创建图工作流
使用最上层封装创建工作流
def invoke(agent, user_content: str) -> str:
response = agent.invoke(
{"messages": [{"role": "user", "content": user_content}]}
)
return response["messages"][-1].content
// 装饰器升级get_weather为大模型能识别调用的函数
@tool(args_schema=WeatherQuery)
def get_weather(loc: str) -> str:
"""通过必应网页搜索查询指定城市的天气摘要。
:param loc: 城市名称,如北京、上海
:return: 从必应搜索结果页解析出的天气文字摘要(多条来源拼接)
"""
return fetch_weather_from_bing(loc)
def create_weather_agent():
model = build_model()
return create_agent(model=model, tools=[get_weather])
def main():
load_dotenv()
openclaw_env = load_openclaw_env()
if openclaw_env:
print(f"已加载 OpenClaw 环境: {openclaw_env}")
if len(sys.argv) > 1:
question = " ".join(sys.argv[1:])
else:
question = "北京现在的天气如何?"
agent = create_weather_agent()
print("=" * 60)
print("【测试 1】自我介绍")
print(invoke(agent, "你好请你介绍一下你自己"))
print("=" * 60)
print(f"【测试 2】工具调用:{question}")
print(invoke(agent, question))
1.2、分析
类比学习
| 角色 | 对应代码 |
|---|---|
| 餐厅菜单(给客人/模型看) | get_weather.name / description / args |
| 后厨做法(客人看不见) | fetch_weather_from_bing、_fetch_page… |
| 点菜(模型 decision) | tool_call: get_weather(loc=“北京”) |
| 做菜(真正干活) | invoke 时执行 fetch_weather_from_bing |
一个图:
分析一下:
1. python weather_agent.py 上海现在的天气如何
2. main() → create_weather_agent()
3. create_react_agent(model, [get_weather]) ← 预构建图在这里创建
4. invoke(agent, "上海现在的天气如何")
5. 图内部循环:
- 模型:需要查天气 → 生成 tool_call: get_weather(loc="上海")
- 工具节点:执行 get_weather → 返回必应摘要文本
- 模型:根据摘要生成中文回答
6. 打印 response["messages"][-1].content
分析:
① tools/weather.py 里 @tool 的 get_weather
→ 只看 name / description / args(给模型看的「菜单」)
② weather_agent.py 的 create_weather_agent()
→ create_agent(model, tools=[get_weather]) 把菜单挂到 Agent 图上
③ main() → invoke(agent, “你好…”)
→ 用户问题如何进图、最终回复如何取出
④ 再回到 tools/weather.py 的 fetch_weather_from_bing
→ 工具被调用时,后厨真正怎么抓必应
分析:
传给大模型的只有 get_weather 的「说明书」(name、description、args),不会传 fetch_weather_from_bing,也不会传任何 Python 源码或内部函数。
fetch_weather_from_bing 不需要 @tool,它只是普通函数,给 get_weather 在本地调用。
fetch_weather_from_bing 是在 agent.invoke(…) 运行过程中、大模型决定调用工具之后,才被调到的;建图(create_react_agent)时不会执行它。
React里的数据流动:
识别.env配置文件,更新环境变量:
1.3、python包管理
都得有__init__.py文件名,可以为空,包名就是文件夹名,
包=文件夹名和__init__.py文件
2、多工具并联、串连使用。
并联演示:有些模型,或者提示词不够,没能实现并联的demo:
演示 1.2】工具并联:北京和杭州天气
--- [0] human ---
北京和杭州现在的天气如何?
--- [1] ai ---
tool_calls: [{'name': 'get_weather', 'args': {'loc': '北京'}, 'id': 'chatcmpl-tool-17c1976680284e528f1a55e56b287f44', 'type': 'tool_call'}]
--- [2] tool (get_weather) ---
来源:必应网页搜索(https://cn.bing.com/search?q=%E5%8C%97%E4%BA%AC%20%E5%A4%A9%E6%B0%94)
说明:以下为搜索结果摘要,非官方实时 API,仅供参考。
[1] tianqi.com https://www.tianqi.com › beijing 【 北京天气 预报】 北京天气 预报一周, 北京天气 预报15天,30天 ... 1 天前 · 天气网提供北京天气预报15天,30天,今日天气,明天天气,北京未来一周的天气预报,北京天气,北京实时天气查询,北京天气预报一周,7天,10天,40天的天气情况。 旅游出行,从天气网开始!
---
[2] nmc.cn http://www.nmc.cn › publish › forecast › ABJ › beijing.html 北京 - 天气 预报 1 天前 · 北京市 北京天气预报 省份: 北京 北京 北京 城市: 北京 北京 北京 日出 北京 日落 降水量 相对湿度 体感温度 雷达图 24小时预报 7天预报 10天预报 11-30天预报 发布时间:05-27 20:00 05/27 周 …
---
[3] cma.gov.cn http://bj.cma.gov.cn › fzlm › index.html 北京 市气象局 现在天气一周预报旅游预报. 查看更多. 中央气象台发布. 景区天气气温. 区局实况云图雷达图指数预报. 怀柔 . 20.7℃4级. 20.0℃1级. 密云 . 18.6℃7级. 18.6℃2级. 发布时间: 更多. 北京市气象局.
---
[4] bjweathers.com https://www.bjweathers.com 【 北京天气 预报】 北京 实时24小时,明天,7天,10天,15天,历史 ... 1 天前 · 北京天气提供北...
--- [3] ai ---
tool_calls: [{'name': 'get_weather', 'args': {'loc': '杭州'}, 'id': 'chatcmpl-tool-bd368172a0f7c1d4', 'type': 'tool_call'}]
--- [4] tool (get_weather) ---
来源:必应网页搜索(https://cn.bing.com/search?q=%E6%9D%AD%E5%B7%9E%20%E5%A4%A9%E6%B0%94)
说明:以下为搜索结果摘要,非官方实时 API,仅供参考。
[1] weather.com.cn https://www.weather.com.cn › weather 杭州天气 预报, 杭州 7天 天气 预报, 杭州 15天 天气 预报, 杭州天气 查询 2 天之前 · 杭州天气预报,及时准确发布中央气象台天气信息,便捷查询杭州今日天气,杭州周末天气,杭州一周天气预报,杭州蓝天预报,杭州天气预 …
---
[2] nmc.cn http://www.nmc.cn › publish › forecast › AZJ › hangzhou.html 杭州 - 天气 预报 2 天之前 · 提供杭州最新天气预报,包括气温、降水、风力等详细信息,助您随时掌握天气动态。
---
[3] hzqx.cn https://hzqx.cn 杭州 气象 2 天之前 · 杭州天气预报,及时准确发布中央气象台天气信息,便捷查询杭州今日天气,杭州周末天气,杭州一周天气预报,杭州天气预报,杭州14日天气 …
---
[4] tianqi.com https://www.tianqi.com › hangzhou 杭州天气 预报15天_ 杭州天气 预报15天查询, 杭州 未来15天 ... 2 天之前 · 杭州天气网提供杭州天气预报15天,杭州天气预报15天查询,杭州未来15天天气预报,通过杭州天气预报15天查询,及时了解杭州各地区未来15 …
---
[5] qq.com https://news.qq.com › rain “ 杭州 湿度90%,亚马孙丛林85%”_腾讯新闻 2 天之前 · 最近潮湿闷热的天气,也让不少网友玩起了梗:“杭州...
--- [5] ai ---
**北京** - 根据近期搜索结果,北京的气温在 **20 ℃左右**(怀柔区约 20.7 ℃,密云区约 18.6 ℃),风力较轻,整体天气偏凉爽,天气多为晴或少云。
**杭州**
- 搜索提示杭州近期 **湿度约 90%**,天气 **潮湿闷热**,体感较闷,气温大多在 **25 ℃–28 ℃** 区间,适合穿轻薄衣物并注意防潮防暑。
> 以上信息来源于 Bing 搜索的天气摘要,仅供参考,实际情况请关注当地实时天气预报。
【最终回复】
**北京** - 根据近期搜索结果,北京的气温在 **20 ℃左右**(怀柔区约 20.7 ℃,密云区约 18.6 ℃),风力较轻,整体天气偏凉爽,天气多为晴或少云。
**杭州**
- 搜索提示杭州近期 **湿度约 90%**,天气 **潮湿闷热**,体感较闷,气温大多在 **25 ℃–28 ℃** 区间,适合穿轻薄衣物并注意防潮防暑。
> 以上信息来源于 Bing 搜索的天气摘要,仅供参考,实际情况请关注当地实时天气预报。
串连演示
python lesson03_tools_agent.py serial
已加载 OpenClaw 环境: .openclaw/.env
============================================================
【演示 1.3】工具串联:查天气并写入文件
--- [0] human ---
北京和杭州现在的天气如何?并把查询结果写入文件中
--- [1] ai ---
tool_calls: [{'name': 'get_weather', 'args': {'loc': '北京'}, 'id': 'chatcmpl-tool-a65de5e82d7d8cd3', 'type': 'tool_call'}]
--- [2] tool (get_weather) ---
来源:必应网页搜索(https://cn.bing.com/search?q=%E5%8C%97%E4%BA%AC%20%E5%A4%A9%E6%B0%94)
说明:以下为搜索结果摘要,非官方实时 API,仅供参考。
[1] tianqi.com https://www.tianqi.com › beijing 【 北京天气 预报】 北京天气 预报一周, 北京天气 预报15天,30天 ... 1 天前 · 天气网提供北京天气预报15天,30天,今日天气,明天天气,北京未来一周的天气预报,北京天气,北京实时天气查询,北京天气预报一周,7天,10天,40天的天 …
---
[2] nmc.cn http://www.nmc.cn › publish › forecast › ABJ › beijing.html 北京 - 天气 预报 1 天前 · 北京市 北京天气预报 省份: 北京 北京 北京 城市: 北京 北京 北京 日出 北京 日落 降水量 相对湿度 体感温度 雷达图 24小时预报 7天预报 10天预 …
---
[3] cma.gov.cn http://bj.cma.gov.cn › fzlm › index.html 北京 市气象局 现在天气一周预报旅游预报. 查看更多. 中央气象台发布. 景区天气气温. 区局实况云图雷达图指数预报. 怀柔 . 20.7℃4级. 20.0℃1级. 密云 . 18.6℃7级. …
---
[4] bjweathers.com https://www.bjweathers.com 【 北京天气 预报】 北京 实时24小时,明天,7天,10天,15天,历史 ... 1 天前 · 北京天气提供北京天气预报及其历史气温查询,准确提供北京实时24小时,明天,7天,10天,15天,30天,历史气温,未来一周天气预报的天气查询,并且为用 …
---
...
--- [3] ai ---
tool_calls: [{'name': 'get_weather', 'args': {'loc': '杭州'}, 'id': 'call_6137c092f09148549619484c', 'type': 'tool_call'}]
--- [4] tool (get_weather) ---
来源:必应网页搜索(https://cn.bing.com/search?q=%E6%9D%AD%E5%B7%9E%20%E5%A4%A9%E6%B0%94)
说明:以下为搜索结果摘要,非官方实时 API,仅供参考。
[1] weather.com.cn https://www.weather.com.cn › weather 杭州天气 预报, 杭州 7天 天气 预报, 杭州 15天 天气 预报, 杭州天气 查询 2 天之前 · 杭州天气预报,及时准确发布中央气象台天气信息,便捷查询杭州今日天气,杭州周末天气,杭州一周天气预报,杭州蓝天预报,杭州天气预报,杭州40日天气预报,还提供杭州的生活指数、 …
---
[2] nmc.cn http://www.nmc.cn › publish › forecast › AZJ › hangzhou.html 杭州 - 天气 预报 2 天之前 · 提供杭州最新天气预报,包括气温、降水、风力等详细信息,助您随时掌握天气动态。
---
[3] hzqx.cn https://hzqx.cn 杭州 气象 2 天之前 · 杭州天气预报,及时准确发布中央气象台天气信息,便捷查询杭州今日天气,杭州周末天气,杭州一周天气预报,杭州天气预报,杭州14日天气预报,还提供杭州的生活指数、健康指数、交通 …
---
[4] tianqi.com https://www.tianqi.com › hangzhou 杭州天气 预报15天_ 杭州天气 预报15天查询, 杭州 未来15天 ... 2 天之前 · 杭州天气网提供杭州天气预报15天,杭州天气预报15天查询,杭州未来15天天气预报,通过杭州天气预报15天查询,及时了解杭州各地区未来15天的天气状况,温度,降水量,风向等。 助您放 …
---
[5] qq.com https://news.qq.com...
--- [5] ai ---
tool_calls: [{'name': 'write_file', 'args': {'content': '北京天气摘要:\n[1] tianqi.com 提供北京天气预报一周、15天、30天等信息,实时天气查询。\n[2] nmc.cn 北京市天气预报,包含日出日落、降水量、相对湿度、体感温度等。\n[3] cma.gov.cn 北京市气象局实时天气一周预报。\n[4] bjweathers.com 提供北京实时24小时、明天、7天、10天、15天、30天等天气查询。\n[5] kantianqi.com 北京24小时天气预报,未来三天、七天、十五天等。\n\n杭州天气摘要:\n[1] weather.com.cn 杭州天气预报,提供7天、15天、40天等信息,生活指数。\n[2] nmc.cn 杭州最新天气预报,气温、降水、风力等。\n[3] hzqx.cn 杭州天气预报,生活指数、健康指数、交通等。\n[4] tianqi.com 杭州天气预报15天,未来15天天气状况。\n[5] qq.com 杭州湿度、气候相关新闻。'}, 'id': 'chatcmpl-tool-a95980bd41a754ad', 'type': 'tool_call'}]
--- [6] tool (write_file) ---
已成功写入本地文件:/output/res.txt
--- [7] ai ---
北京和杭州的天气查询结果已获取,并已成功写入文件。
以下是汇总信息:
**北京天气摘要:**
- 中国天气网(nmc.cn)等提供的气温预报涉及怀柔约20.7℃(风力4级)、密云约18.6℃(风力7级)等实况信息。
- 各大天气平台(如天气网、中国气象局等)提供包括实时天气、24小时预报、一周/15天/30天预报。
- 信息涵盖气温、降水、相对湿度、体感温度、雷达图、日出日落等。
**杭州天气摘要:**
- 中国天气网提供杭州最新天气预报,包括气温、降水、风力等详细信息。
- 各平台(weather.com.cn、hzqx.cn等)提供7天/15天甚至40天的预报及生活指数、健康指数、交通指数等。
- 杭州近期湿度较高,网友反映湿度可达90%左右,体感潮湿闷热。
**文件写入状态:** 已成功写入本地文件 `/output/res.txt`。
【最终回复】
北京和杭州的天气查询结果已获取,并已成功写入文件。
以下是汇总信息:
**北京天气摘要:**
- 中国天气网(nmc.cn)等提供的气温预报涉及怀柔约20.7℃(风力4级)、密云约18.6℃(风力7级)等实况信息。
- 各大天气平台(如天气网、中国气象局等)提供包括实时天气、24小时预报、一周/15天/30天预报。
- 信息涵盖气温、降水、相对湿度、体感温度、雷达图、日出日落等。
**杭州天气摘要:**
- 中国天气网提供杭州最新天气预报,包括气温、降水、风力等详细信息。
- 各平台(weather.com.cn、hzqx.cn等)提供7天/15天甚至40天的预报及生活指数、健康指数、交通指数等。
- 杭州近期湿度较高,网友反映湿度可达90%左右,体感潮湿闷热。
**文件写入状态:** 已成功写入本地文件 /output/res.txt`。
【已写入文件 /output/res.txt】
北京天气摘要:
[1] tianqi.com 提供北京天气预报一周、15天、30天等信息,实时天气查询。
[2] nmc.cn 北京市天气预报,包含日出日落、降水量、相对湿度、体感温度等。
[3] cma.gov.cn 北京市气象局实时天气一周预报。
[4] bjweathers.com 提供北京实时24小时、明天、7天、10天、15天、30天等天气查询。
[5] kantianqi.com 北京24小时天气预报,未来三天、七天、十五天等。
杭州天气摘要:
[1] weather.com.cn 杭州天气预报,提供7天、15天、40天等信息,生活指数。
[2] nmc.cn 杭州最新天气预报,气温、降水、风力等。
[3] hzqx.cn 杭州天气预报,生活指数、健康指数、交通等。
[4] tianqi.com 杭州天气预报15天,未来15天天气状况。
[5] qq.com 杭州湿度、气候相关新闻。
使用并联提示词,并做增强,重新强制使用并联,一次ai调用,返回的tool有两个城市
演示 1.2】工具并联:北京和杭州天气
(system/user 提示词 + 最多 3 次重试;可选 OPENROUTER_PARALLEL_MODEL)
--- [0] human ---
请查询北京和杭州现在的天气。
【必须】在同一次工具调用中并行调用两次 get_weather:
- loc="北京"
- loc="杭州"
不要分两轮分别调用。
--- [1] ai ---
tool_calls: [{'name': 'get_weather', 'args': {'loc': '北京'}, 'id': 'call_4c701f86a7d24e77ac7c89bd', 'type': 'tool_call'}, {'name': 'get_weather', 'args': {'loc': '杭州'}, 'id': 'chatcmpl-tool-82ed45d64e6f592d', 'type': 'tool_call'}]
--- [2] tool (get_weather) ---
来源:必应网页搜索(https://cn.bing.com/search?q=%E5%8C%97%E4%BA%AC%20%E5%A4%A9%E6%B0%94)
说明:以下为搜索结果摘要,非官方实时 API,仅供参考。
[1] tianqi.com https://www.tianqi.com › beijing 【 北京天气 预报】 北京天气 预报一周, 北京天气 预报15天,30天 ... 1 天前 · 天气网提供北京天气预报15天,30天,今日天气,明天天气,北京未来一周的天气预报,北京天气,北京实时天气查询,北京天气预报一 …
---
[2] nmc.cn http://www.nmc.cn › publish › forecast › ABJ › beijing.html 北京 - 天气 预报 1 天前 · 北京市 北京天气预报 省份: 北京 北京 北京 城市: 北京 北京 北京 日出 北京 日落 降水量 相对湿度 体感温度 雷达图 24小时 …
---
[3] cma.gov.cn http://bj.cma.gov.cn › fzlm › index.html 北京 市气象局 现在天气一周预报旅游预报. 查看更多. 中央气象台发布. 景区天气气温. 区局实况云图雷达图指数预报. 怀柔 . 20.7℃4级. 20.0℃1级. 密 …
---
[4] bjweathers.com https://www.bjweathers.com 【 北京天气 预报】 北京 实时24小时,明天,7天,10天,15天,历史 ... 1 天前 · 北京天气提供北京天气预报及其历史气温查询,准确提供北京实时24小时,明天,7天,10天,15天,30天,历史气温,未来一周天气预报 …
---
[5] kantianqi.com https://www.kantianqi.com › be...
--- [3] tool (get_weather) ---
来源:必应网页搜索(https://cn.bing.com/search?q=%E6%9D%AD%E5%B7%9E%20%E5%A4%A9%E6%B0%94)
说明:以下为搜索结果摘要,非官方实时 API,仅供参考。
[1] weather.com.cn https://www.weather.com.cn › weather 杭州天气 预报, 杭州 7天 天气 预报, 杭州 15天 天气 预报, 杭州天气 查询 2 天之前 · 杭州天气预报,及时准确发布中央气象台天气信息,便捷查询杭州今日天气,杭州周末天气,杭州一周天气预报,杭州蓝天预报,杭州天气预报,杭州40日天气预报,还提供杭州的生活指数、 …
---
[2] nmc.cn http://www.nmc.cn › publish › forecast › AZJ › hangzhou.html 杭州 - 天气 预报 2 天之前 · 提供杭州最新天气预报,包括气温、降水、风力等详细信息,助您随时掌握天气动态。
---
[3] hzqx.cn https://hzqx.cn 杭州 气象 2 天之前 · 杭州天气预报,及时准确发布中央气象台天气信息,便捷查询杭州今日天气,杭州周末天气,杭州一周天气预报,杭州天气预报,杭州14日天气预报,还提供杭州的生活指数、健康指数、交通 …
---
[4] tianqi.com https://www.tianqi.com › hangzhou 杭州天气 预报15天_ 杭州天气 预报15天查询, 杭州 未来15天 ... 2 天之前 · 杭州天气网提供杭州天气预报15天,杭州天气预报15天查询,杭州未来15天天气预报,通过杭州天气预报15天查询,及时了解杭州各地区未来15天的天气状况,温度,降水量,风向等。 助您放 …
---
[5] qq.com https://news.qq.com...
--- [4] ai ---
我分别为您查询了北京和杭州的当前天气。以下是从必应搜索结果页解析到的天气相关信息摘要:
**北京天气**
来自各大天气网站(如tianqi.com、nmc.cn、cma.gov.cn、bjweathers.com、kantianqi.com)的预报链接及简要内容:
- 提供北京天气预报15天、30天,包括今日、明天和未来一周的天气详情。
- 部分来源显示北京近期的温度范围和天气状况(如需查看具体温度与风级,请访问这些网站)。
**杭州天气**
同样来自weather.com.cn、nmc.cn、hzqx.cn、tianqi.com等网站的杭州天气预报:
- 提供杭州7天、15天天气预报,包含气温、降水、风力等详细信息。
- 部分文章提及杭州近期湿度较高(如湿度90%左右的描述)。
请注意,上述内容来自搜索结果摘要,可能不是实时的官方数据。若需要获取北京和杭州的精确当前天气(如准确温度、天气状况),建议您访问这些天气平台网站或下载天气App进行查看。
</assistant>
【并联检测 · 模型路径】
✓ 检测到并联:第 [1] 条 ai 消息中 共有 2 个 tool_calls
调用列表: [{'name': 'get_weather', 'args': {'loc': '北京'}}, {'name': 'get_weather', 'args': {'loc': '杭州'}}]
【最终回复】
我分别为您查询了北京和杭州的当前天气。以下是从必应搜索结果页解析到的天气相关信息摘要:
**北京天气**
来自各大天气网站(如tianqi.com、nmc.cn、cma.gov.cn、bjweathers.com、kantianqi.com)的预报链接及简要内容:
- 提供北京天气预报15天、30天,包括今日、明天和未来一周的天气详情。
- 部分来源显示北京近期的温度范围和天气状况(如需查看具体温度与风级,请访问这些网站)。
**杭州天气**
同样来自weather.com.cn、nmc.cn、hzqx.cn、tianqi.com等网站的杭州天气预报:
- 提供杭州7天、15天天气预报,包含气温、降水、风力等详细信息。
- 部分文章提及杭州近期湿度较高(如湿度90%左右的描述)。
更多推荐




所有评论(0)