【大模型LLMs】LangGraph实战:引入网络搜索tool和Memory机制的对话Agent案例
大模型Agent代码实操,基于LangGraph框架
LangGraph官方文档:https://github.langchain.ac.cn/langgraph/concepts/why-langgraph/
代码追踪:https://github.com/YJY131248/LLMsStudySpace/tree/master/AgentStudy
1.LangGraph & ReAct框架
LangGraph开发框架:适用于各种 Multi-AI Agent 任务,并且具有极高的灵活性
- 基于 LangChain 开发,其核心思想是 “有向循环图”
- 高度灵活,可定制性强,几乎能够满足所有多智能体协作应用的需求
- 能够与开源的 LLMs(大语言模型)以及各种 API 无缝协作
经典论文:推荐阅读ReAct
论文:React: Synergizing reasoning and acting in language models
来源:ICLR 2023
作者单位:Princeton University; Google Research
核心贡献:提出ReAct框架,Reason + Action,允许LLM和外部交互,将模型的推理和工具使用相结合
过往的做法,一般是LLM + CoT / LLM + Tools,ReAct通过指令提示LLM生成推理轨迹和行动,执行动态推理,并引入外部环境(例如百科)进行交互,将相关信息纳入推理中,允许推理过程使用内部知识和外部信息
实际实验过程,通过编写few-shot,包含think->action->obversation的过程,即提示工程的方式让LLM学习ReAct的框架
2. 环境依赖
pip install -U langgraph
pip install -U langchain-deepseek
pip install -U langchain-tavily
3. 对话机器人DEMO
基于DeepSeek API 和 Langgraph实现问答对话Agent案例,包含langgraph对话机器人设置、tool、memory的内容
准备环节:
- 准备deepseek的api
- 准备tavily的api(网络搜索工具)
关键环节:
- 定义llm和tool:llm采用deepseek官方给出的调用方法;工具使用TavilySearch网络搜索工具;bind_tools用于绑定llm和工具
# 初始化 DeepSeek 大模型客户端
llm = ChatDeepSeek(model="deepseek-chat", # 指定 DeepSeek 的模型名称api_key="your_deepseek_api_key" # 替换为您自己的 DeepSeek API 密钥
)
# 初始化 Tavily 搜索工具
tool = TavilySearch(max_results=2)
tools = [tool]
llm_with_tools = llm.bind_tools(tools)def chatbot(state: State):# 调用 DeepSeek 大模型生成回复return {"messages": [llm_with_tools.invoke(state["messages"])]}
- 定义graph的node和edge & 编译graph:其中基于预定义的ToolNode、add_conditional_edges、tools_condition控制工具调用,当未调用tool时,会直接指向END
# 添加节点到状态图
graph_builder.add_node("chatbot", chatbot)
tool_node = ToolNode(tools=[tool])
graph_builder.add_node("tools", tool_node)
graph_builder.add_edge(START, "chatbot")
# 添加条件边
graph_builder.add_conditional_edges("chatbot",tools_condition
)
graph_builder.add_edge("tools", "chatbot")
- 设置memory和对话函数,config用于配置当前线程,langgraph通过线程号thread_id判断是否为同一个会话session
# 使用内存保存器保存状态
memory = InMemorySaver()# 编译状态图
graph = graph_builder.compile(checkpointer=memory)def stream_graph_updates(user_input: str):# 构造对话历史,包含系统提示词和用户输入messages = [{"role": "system", "content": "你是一个有创意的助手,擅长根据用户问题提供有趣且相关的内容。输出内容长度不超过100个字。"},{"role": "user", "content": user_input},]config = {"configurable": {"thread_id": "1"}}# 流式输出模型生成的回复for event in graph.stream({"messages": messages}, config):for value in event.values():print("Assistant:", value["messages"][-1].content)
完整代码如下:
import osfrom typing import Annotated
from typing_extensions import TypedDictfrom langchain_deepseek import ChatDeepSeek
from langchain_tavily import TavilySearch
from langchain_core.tools import tool
from langgraph.graph import StateGraph, START, END
from langgraph.graph.message import add_messages
from langgraph.checkpoint.memory import InMemorySaver
from langgraph.prebuilt import ToolNode, tools_conditionos.environ["TAVILY_API_KEY"] = "your_tavily_api_key" # 替换为您自己的 Tavily API 密钥# 初始化状态图
class State(TypedDict):messages: Annotated[list, add_messages]graph_builder = StateGraph(State)# 初始化 DeepSeek 大模型客户端
llm = ChatDeepSeek(model="deepseek-chat", # 指定 DeepSeek 的模型名称api_key="your_deepseek_api_key" # 替换为您自己的 DeepSeek API 密钥
)# 初始化 Tavily 搜索工具
tool = TavilySearch(max_results=2)
tools = [tool]
llm_with_tools = llm.bind_tools(tools)def chatbot(state: State):# 调用 DeepSeek 大模型生成回复return {"messages": [llm_with_tools.invoke(state["messages"])]}# 添加节点到状态图
graph_builder.add_node("chatbot", chatbot)
tool_node = ToolNode(tools=[tool])
graph_builder.add_node("tools", tool_node)
graph_builder.add_edge(START, "chatbot")
# 添加条件边
graph_builder.add_conditional_edges("chatbot",tools_condition
)
graph_builder.add_edge("tools", "chatbot")# 使用内存保存器保存状态
memory = InMemorySaver()# 编译状态图
graph = graph_builder.compile(checkpointer=memory)def stream_graph_updates(user_input: str):# 构造对话历史,包含系统提示词和用户输入messages = [{"role": "system", "content": "你是一个有创意的助手,擅长根据用户问题提供有趣且相关的内容。输出内容长度不超过100个字。"},{"role": "user", "content": user_input},]config = {"configurable": {"thread_id": "1"}}# 流式输出模型生成的回复for event in graph.stream({"messages": messages}, config):for value in event.values():print("Assistant:", value["messages"][-1].content)while True:try:# 获取用户输入user_input = input("User: ")if user_input.lower() in ["quit", "exit", "q"]:print("Goodbye!")break# 调用流式更新函数stream_graph_updates(user_input)except Exception as e:# 捕获异常并打印错误信息print(f"An error occurred: {e}")break
使用示例:
User: 请帮我查询最新的和智慧养老国际应用相关的文章
Assistant: 我来帮您搜索最新的智慧养老国际应用相关文章。
Assistant: {"query": "智慧养老 国际应用 最新研究 文章", "follow_up_questions": null, "answer": null, "images": [], "results": [{"url": "https://jirm.whu.edu.cn/jwk3/xxzyglxb/CN/10.13365/j.jirm.2019.01.010", "title": "智慧养老领域的研究现状与热点分析", "content": "Wang Jian Zhang Yue Zhu Qinghua\n \n\n `Received:`2018-10-08\n\n `Online:`2019-01-26\n\n `Published:`2019-01-26\n\n## PDF\n\n6000\n\n## 可视化\n\n0\n\n#### 摘要/Abstract\n\n摘要:\n\n本文以中国知网、Web of Science作为数据来源,从论文数量、作者关系、机构来源和研究热点等维度,结合文献计量经典定律,对国内外智慧养老领域研究现状进行科学计量、可视化分析和综述研究,并分别在概念、技术和产品三个不同层面对国内外智慧养老研究热点和发展趋势进行探讨。研究表明,国内智慧养老领域主要关注于养老模式、养老体系、养老产业及养老产品等重要内容的研究与实践,而国外智慧养老领域则更多侧重养老实践中的传感技术与设备,特别是技术在老年人病理和生活中的应用与功能性研究等。\n\n中图分类号:\n\n C913.6\n\n#### 引用本文\n\n王坚 张玥 朱庆华. 智慧养老领域的研究现状与热点分析[J]. 信息资源管理学报, 2019, 9(1): 10-20,29.", "score": 0.7213709, "raw_content": null}, {"url": "https://sirpa.fudan.edu.cn/_upload/article/files/bb/fd/a40f09ce435f87c4e9ec8407a028/3025fc04-ac16-4e5b-8541-2eae06e1d6eb.pdf", "title": "技术赋能智慧养老服务的实践逻辑和优化路径", "content": "郑世宝. 物联网与智慧养老[J]. 电视技术,2014,38(22): 24-27. 朱海龙. 智慧养老:中国老年照护模式的革新与思考[J]. 湖南师范大学社会科学学报,2016,45(03): 68-73.\n张锐昕,张昊. 智慧养老助推养老服务体系优化:思路与 进路[J]. 行政论坛,2020,27(06): 139-145.\n左美云. 智慧养老的内涵、模式与机遇[J]. 中国公共安 全,2014(10): 48-50.\n吴旭红,何瑞,吴朵. 双向赋能:数字化转型背景下“银 发鸿沟”的破解之道——基于南京市J区“智慧养老”实践 案例的研究[J]. 电子政务,2022(05): 19-30.\n高钢. 物联网和Web3.0:技术革命与社会变革的交叠演 进[J]. 国际新闻界,2010(02): 68-73.\n朱礼华,杨晴. 智慧养老服务的供给、需求及媒介分 析——基于“服务链”理论[J]. 中国老年学杂志,2021, 41(18): 4118-4124. [...] 43 电子政务 E-GOVERNMENT 2023年第2期(总第242期) 专题研究:数字化变革 技术赋能智慧养老服务的实践逻辑和优化路径 ——以上海市为例 摘 要:智慧养老是数字时代“银龄危机”的有效解决方式和重要服务革新。学界已关注到智慧养老的理念,并对其内涵、意 义和价值进行了较多探讨,但缺乏对智慧养老前沿实践的深度案例研究。以上海市智慧养老实践为例,基于定性分析 发现其实践逻辑表现为由“数据驱动”与“平台决策”,整合“养老需求”,匹配“应用场景”,基于“多元主体” 协同资源供给,进而推动养老服务的精准化、智能化、个性化。然而,智慧养老服务仍面临着来自技术效能与服务协 同的多重挑战和考验,仍需进一步提高智慧产品的适老性、便利性与准确性,在养老数据共享方面力求兼顾安全与高 效,并发挥好各级各部门优势,实现有序试点、统一建设,不断在养老数字化、智慧化和精准化上做得更好,助力老 年人跨越“银发鸿沟”。 关键词:智慧养老;数据驱动;数字适老;银发鸿沟;多元主体 DOI:10.16582/j.cnki.dzzw.2023.02.004 周凌一 周宁 祝辰浪 复旦大学国际关系与公共事务学院 [...] 刘奕,李晓娜. 数字时代我国社区智慧养老模式比较与优 化路径研究[J]. 电子政务,2022(05): 112-124. 廖喜生,李扬萩,李彦章. 基于产业链整合理论的智慧养 老产业优化路径研究[J]. 中国软科学,2019(04): 50-56.\n易艳阳. 社区老年服务数字生态中的风险及治理[J]. 电子 政务,2022(04): 73-81. 作者简介: 周凌一,复旦大学国际关系与公共事务学院青年副研究员。 周宁,复旦大学国际关系与公共事务学院硕士研究生。 祝辰浪,复旦大学国际关系与公共事务学院本科生。 周凌一 周宁 祝辰浪·技术赋能智慧养老服务的实践逻辑和优化路径——以上海市为例", "score": 0.6922474, "raw_content": null}], "response_time": 2.43, "request_id": "2d5bb247-6ec1-462a-b2e8-42d6356f754a"}
Assistant: 让我再搜索一些更具体和最新的国际智慧养老应用案例:
Assistant: {"query": "smart elderly care international applications IoT AI technology 2024", "follow_up_questions": null, "answer": null, "images": [], "results": [{"url": "https://www.towardshealthcare.com/insights/healthcare-companion-robots-market-sizing", "title": "Healthcare Companion Robots Market Expanding in Global Care", "content": "By product, the AI-enabled mobile robots segment is expected to grow at the fastest CAGR in the market during the forecast period.\n By application, the elderly care & assisted living segment led the market with the largest revenue share of approximately 40% in 2024.\n By application, the chronic disease management segment is expected to grow at the fastest CAGR in the market during the forecast period. [...] In January 2024, Intuition Robotics unveiled ElliQ 3, an upgraded AI companion for seniors integrating generative AI to enhance daily interactions. Supported by $25 million in funding, the improvements include advanced hardware and software, expanding ElliQ’s accessibility. The updates aim to boost autonomy, improve well-being, and reduce isolation among older adults, marking a significant step forward in human-AI companionship for senior care. [...] The elderly care & assisted living segment dominated the healthcare companion robots market in 2024 due to the growing emphasis on preventive care and elderly detection of health issues among aging populations. Companion robots equipped with advanced sensors and AI-driven analytics provide real-time health tracking, medication adherence reminders, and fall detection, reducing hospitalization risks. This proactive approach to elderly care attracted significant investment from healthcare", "score": 0.683948, "raw_content": null}, {"url": "https://www.cavliwireless.com/blog/nerdiest-of-things/iot-in-healthcare", "title": "Revolutionizing Patient Care with IoT Medical Devices - Cavli Wireless", "content": "> According to Mordor Intelligence, the IoT in healthcare market is expected to grow from USD 147.44 billion in 2024 to USD 348.03 billion by 2029, with a CAGR of 18.74%. This growth highlights the increasing demand for IoT medical devices and connected healthcare solutions.\n> IoT In Healthcare market size\n\n## From Digital Diagnostics to Smart IoT Medical Devices: The Importance of IoT in Healthcare [...] ### Closing Notes:\n\nLooking forward, the potential of IoT in the healthcare industry is boundless. Future developments include more sophisticated wearable technologies, deeper integration of AI to analyze health data, and the expansion of IoT applications into even more areas of healthcare. These advancements will continue to drive improvements in healthcare delivery, making care more personalized, accessible, and efficient. [...] - Remote Monitoring for Chronic Conditions and Elderly Care\nIoT-based remote monitoring systems are widely adopted to track patients’ vital signs and health metrics continuously. These systems utilize IoT wearables and sensors to provide real-time insights into patients’ conditions, ensuring prompt interventions when necessary. This approach has proven effective in reducing hospital readmissions, improving patient outcomes, and allowing patients to live independently longer.", "score": 0.6580885, "raw_content": null}], "response_time": 1.89, "request_id": "4d693cef-2451-44cb-8edf-2df09e01d781"}
Assistant: 让我再搜索一些具体的国际智慧养老应用案例:
Assistant: {"query": "\"智慧养老\" \"国际应用\" \"新兴技术\" 2024 年", "follow_up_questions": null, "answer": null, "images": [], "results": [{"url": "https://cn.investing.com/analysis/article-200494992", "title": "智慧养老新时代来临,养老机器人驶入快车道", "content": "第三方广告。非Investing.com产品或者推荐。点击此处查看声明或者移除广告。\n\n政策方面,国家高度重视银发经济的发展,2021 年《智慧健康养老产业发展行动计划(2021-2025 年)》明确外骨骼机器人等机器人在智慧养老产业中的重要地位。2024 年国务院发布了《关于发展银发经济增进老年人福祉的意见》,明确提出推广应用智能护理机器人、家庭服务机器人等产品。2025 年 2 月,中国牵头制定的 IEC 63310 国际标准——《互联家庭环境下使用的主动辅助生活机器人性能准则》正式发布,为养老机器人产品设计、测试和认证提供基准,同时这也标志着中国在智能养老领域的技术领先地位和国际话语权的提升。\n\n2025 年 6 月,工信部与民政部联合发布《关于开展智能养老服务机器人结对攻关与场景应用试点工作的通知》,要求居家养老服务机器人产品完成不少于 200 户家庭应用验证,部署不少于 200 台套。并在 9 月正式发布该应用试点项目的名单,浙江大学、复旦大学、傅利叶智能、优必选、新松机器人等机构的 32 个项目入围。这次试点工作也标志着养老服务领域将作为国内机器人的重要落地场景。 [...] 国际上通常用老年人口作为衡量人口老龄化的标准,老年人口比重越高,人口老龄化程度越高。一般把 60 岁及以上人口占总人口比重达 10%,或 65 岁及以上占总人口的比重达 7% 作为一个国家或地区进入老龄化社会的标准;中度老龄化是指 60 岁及以上人口比重超 20% 或 65 岁及以上人口比重超 14%。截至 2024 年年底,中国 60 岁及以上人口已达 3.1 亿,占总人口的 22.0%;65 岁及以上人口已达 2.2 亿,占总人口的 15.6%,这表明中国已进入中度老龄化社会。并且预计,到 2030 年 60 岁及以上人口将突破 3.8 亿,占总人口的 27.8%,人口老龄化进程加速。\n\n图表 1:2020-2030E 中国老龄化人口数量(万人)及占全国人口比重情况\n\n数据来源:国家统计局,2024 国家老龄事业发展公报,《中国人口老龄化的过去、现在和未来(乔晓春)》\n\n第三方广告。非Investing.com产品或者推荐。点击此处查看声明或者移除广告。 [...] 与此同时,中国老年(60 岁及以上)失能人口规模较大,据 2024 年的《中国老年失能人口规模和经济成本》报告显示,中国三级、二级、一级失能人口规模分别为 4,654 万、3,808 万、2,138 万。将各项经济成本(包括增加的医疗支出、损失的劳动收入等)汇总,三级失能人口的年度总经济负担达到 1.35 万亿元。增进人口健康、提供适老化设施、发展养老护理产业等有望降低失能人口规模和降低经济负担。\n\n然而,与中国的老龄化程度加重、失能人口规模大相反的是,中国养老护理人员严重短缺。中国老龄科学研究中心与新疆兵团养老行业协会联合发布的《养老服务人才状况调查报告》显示,中国养老服务人才从业不满一年的占比为 20.5%,而 5 年及以上的仅为 27.7%,较长期的从业者占比较低,这在一定程度上表明行业缺乏经验丰富的长期从业者,同时人才流失程度高。据调查,目前护理员、康复治疗师是养老服务机构最为紧缺的人才类别,分别占比为 85.6%、41.7%。\n\n第三方广告。非Investing.com产品或者推荐。点击此处查看声明或者移除广告。", "score": 0.65412235, "raw_content": null}, {"url": "https://www.lowuyou.com/hangyezixun/", "title": "智慧养老综合服务平台_老无忧官网", "content": "2024-06-17\n\n随着全球人口老龄化的加速,传统的养老模式已经难以满足现代社会的需求。面对这一挑战,养老行业正经历一场前所未有的大变革,旨在通过技术创新和服务理念的更新,为老年人提供更加安全、便捷、舒适的生活环境。在技术层面,智能化成为推动养老行业发展的关键力量。从智能穿戴设备到健康监测系统,再到服务机器人和智能语音交互平台,这些创新技术正在重塑养老服务的面貌。例如,智能床铺可以监测睡眠质量并预警健康问题;自...\n\n[养老资讯](\n\n#### 推动智慧养老的必要性与策略\n\n2024-06-15\n\n随着全球人口老龄化问题的日益严峻,传统的养老模式已难以满足现代社会的需求。智慧养老作为一种利用现代信息技术优化养老资源配置、提高养老服务质量和效率的新型养老模式,其发展势在必行。推动智慧养老不仅能够改善老年人的生活质量,还能促进经济社会的可持续发展。智慧养老能够显著提升老年人的生活品质。通过智能设备和系统,老年人可以更加便捷地获取健康监测、紧急救援、生活照料等服务,有效提高了生活的便利性和安...\n\n[养老资讯](\n\n#### 养老服务行业:前景广阔的朝阳产业 [...] 在这个快节奏的时代,手机成了我们生活中不可或缺的一部分。除了工作、娱乐和社交,老无忧APP是我最近常用的一款应用。这款老友互助平台不仅提供了丰富的资讯,还能通过社交功能结识许多志同道合的朋友。某个平常的晚上,我正浏览老无忧APP上的各种帖子和活动信息。忽然,一个熟悉的名字映入眼帘——“王小颖”。这个名字瞬间勾起了我初中的记忆,那时的我暗恋着班上的文艺女生,王小颖。怀着一丝好奇和激动,我点开了...\n\n[无忧交友](\n\n#### 智慧养老,乐享晚年 — 探索新时代的养老模式\n\n2024-06-18\n\n随着科技的飞速发展和人口老龄化趋势的加剧,传统的养老模式已经无法满足现代社会的需求。人们期待在晚年能够享受到更加智能、便捷、舒适的生活。智慧养老,作为一种融合现代科技与养老服务的新型模式,正逐渐成为时代的选择,为老年人的晚年生活增添了更多的色彩。智慧养老的核心在于运用物联网、大数据、人工智能等先进技术,为老年人提供全方位、个性化的服务。这些服务不仅包括基本的生活照料,还涵盖了健康管理、情感交...\n\n[养老资讯](\n\n#### 养老行业的大变革:迎接智能与人文关怀的新时代 [...] 在当今社会,随着科技的飞速发展,人们的生活发生了翻天覆地的变化。然而,在享受科技带来的便利的同时,我们也不得不面对一些新的挑战和问题。其中,老年人交友难的问题尤为突出。在这个信息爆炸的时代,老年人由于年龄、身体和认知能力的限制,往往难以适应快节奏的社交方式。因此,他们需要科技的帮助来拓宽交友渠道,丰富社交生活。本文将探讨如何利用科技手段帮助老年人更好地交友。首先,互联网社交平台为老年人提供了...\n\n[养老资讯](\n\n#### 迎接未来:2024年养老新趋势展望\n\n2024-06-05\n\n随着全球人口结构的变化和科技的不断进步,养老服务业正在经历前所未有的变革。2024年,我们预见到几个关键的养老新趋势将重塑我们对老年生活的认知和支持方式。以下是对这一年养老新趋势的深入分析与建议:1. 智慧养老的普及随着物联网、大数据、人工智能等技术的成熟,智慧养老将成为常态。家庭和养老机构将更加普遍地采用智能设备和系统来监测老年人的健康状况,提高生活质量,并减轻护理人员的负担。例如,穿戴式...\n\n[养老资讯](\n\n#### 养老服务的新篇章:探索与挑战\n\n2024-06-04", "score": 0.64128816, "raw_content": null}], "response_time": 3.57, "request_id": "ce960209-1726-4492-923b-564b457cf083"}
Assistant: 基于搜索结果,我为您整理了一些最新的智慧养老国际应用相关文章和趋势:## 智慧养老国际应用最新动态**国际技术应用亮点:**
- **AI陪伴机器人**:Intuition Robotics推出ElliQ 3,集成生成式AI增强老年人日常互动
- **物联网医疗设备**:预计2029年市场规模达3480亿美元,远程监测慢性病和老年护理
- **国际标准制定**:中国牵头制定IEC 63310互联家庭主动辅助生活机器人国际标准**新兴技术趋势:**
- 智能穿戴设备实时健康监测
- 服务机器人和智能语音交互平台
- 智能床铺监测睡眠质量和健康预警**市场前景:**
- 养老机器人市场快速增长,老年护理占40%份额
- 政策支持力度加大,多国推进智慧养老试点项目这些文章显示智慧养老正从概念走向实践,国际间技术交流与合作日益密切。
User: q
Goodbye!