news 2026/7/5 8:20:51

使用langgraph的意义是什么

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
使用langgraph的意义是什么

前言

当笔者将本文的题目 丢给某AI时,某AI的回答是:使用LangGraph的核心意义在于,它将AI应用从线性的、不可控的"链",升级为有状态的、可精确控制的"图",让你能够构建真正能处理复杂任务的智能体(Agent)。

本文我们尝试将上述的回答 具象化。

举个栗子

如果我们需要得到两数相除的结果,可以直接让 langchain 调用大模型,得到的结果如下:

但如果我们在某些特殊场景下,就需要让结果只保留 小数点后两位。即我们需要前言中所提及的“可精确控制”。

我们直接先看基于langgraph实现这件小事 的代码示例:

from langchain_core.tools import tool from langgraph.prebuilt import create_react_agent # Define tools @tool def multiply(a: int, b: int) -> int: """Multiply two integers together.""" return a * b @tool def divide(a: int, b: int) -> float: """Divide two integers and return the result with two decimal places.""" return round(a / b, 2) tools = [multiply, divide] agent = create_react_agent(model, tools) queries = [ "What is 456 divided by 123?", "What is 123 multiplied by 456?", ] for q in queries: print(f"\nQ: {q}") result = agent.invoke({"messages": [("user", q)]}) final_msg = result["messages"][-1] print(f"A: {final_msg.content}") ####### 运行结果 ####### # Q: What is 456 divided by 123? # A: 456 divided by 123 is **3.71** (rounded to two decimal places). # Q: What is 123 multiplied by 456? # A: The result of 123 multiplied by 456 is **56,088**.

如上面的代码所示,我们可以将“只返回小数点后两位” 这个能力,写进一个“tool方法”。由让大模型自主决策后进行方法调用,以保证可精确控制

再举个栗子

对“只返回小数点后两位”这事,可能有的朋友会说:“根本不用使用langgraph这么麻烦,直接修改提示词就完事了”。如下:

result = chain.invoke({"input": "456除以123等于多少,结果保留小数点后2位。"})

有道理,我们换个例子,如:基于医学知识图谱返回医学咨询结果

一般情况下,知识图谱的实现是由图数据库承载的。所以在相关项目的实现中,很重要的一步做好“text2sql”,大概流程图如下:

在这种极度需要精确控制的场景下,使用langgraph这种开发模式就显得比较有用了。

@tool def get_medical_consultation(question: str) -> str: """Get medical consultation based on the question.""" # text2sql # query graph database # return medical consultation

实际项目中 我们还可以基于langgraph路由控制能力在“基于医学知识图谱返回医学咨询结果”节的前后,动态增加“人工审核”、“转人工”等节点。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/5 8:19:06

通信与接口协议面试二、UART

全双工异步通信,有两根线:发送与接收。1.通信过程一开始高电平,然后拉低表示开始位,接着8个数据位,然后校验位,最后拉高表示停止位,并且进入空闲状态,等待下一次的数据传输。起始位&…

作者头像 李华
网站建设 2026/7/5 8:17:08

未来已来:KubeHawk的 roadmap 与云原生监控趋势

未来已来:KubeHawk的 roadmap 与云原生监控趋势 【免费下载链接】KubeHawk KubeHawk is a CloudNative Kubernetes-Cluster tracking and observability solution based on eBPF technology. 项目地址: https://gitcode.com/openeuler/KubeHawk 前往项目官网…

作者头像 李华
网站建设 2026/7/5 8:14:10

api-guarder项目详解:从安装到使用的完整教程

api-guarder项目详解:从安装到使用的完整教程 【免费下载链接】api-guarder A tool to generate interface changes 项目地址: https://gitcode.com/openeuler/api-guarder 前往项目官网免费下载:https://ar.openeuler.org/ar/ api-guarder是一款…

作者头像 李华
网站建设 2026/7/5 8:13:55

KPL-gmssl性能测试报告:鲲鹏芯片加密速度提升300%的秘密

KPL-gmssl性能测试报告:鲲鹏芯片加密速度提升300%的秘密 【免费下载链接】KPL-gmssl KPL-gmssl is the optimized implementation of GM standard algorithm on arm64, especially for Kunpeng chips. Its one component of the KPL(Kunpeng Performance Library) L…

作者头像 李华