第 15 章 · 第一个 AI 工作流:Hello Graph 从 START 跑到 END

Spring AI Alibaba:Java开发者集成大语言模型的统一框架实践 大语言模型(LLM)作为人工智能领域的核心技术,通过深度学习架构实现了对自然语言的深度理解与生成能力。其原理基于Transformer架构的海量参数训练,能够捕捉复杂的语言模式和语义关联。在技术价值层面,LLM为各类应用提供了强大的语义理解和内容生成能力,显著提升了人机交互的智能化水平。在应用场景上,LLM已广泛应用于智能客服、代码生成、内容创作和数据分析等领域。本文聚焦于Spring AI Alibaba框架,该框架通过提供统一的编程模型,解决了Java生态中集成不同厂商LLM API的标准化问题,并深度 阅读详情

版本:LangGraph4j 1.8.25(Java 17+) 目标:用 BOM + langgraph4j-core,跑通一张只有一个节点的图:START → greet → END。 本章不接模型、不落盘。

上图就是本章要跑通的全部:输入里带 name,greet 节点写回 greeting 和 logs,到 END 后取出最终状态。


15.1 依赖

项值
LangGraph4j1.8.25
Java17+(推荐 21)

版本只在 BOM 里写一次。业务依赖不要再手写 <version>,避免和 BOM 锁的版本不一致。

<dependencyManagement>
  <dependencies>
    <dependency>
      <groupId>org.bsc.langgraph4j</groupId>
      <artifactId>langgraph4j-bom</artifactId>
      <version>1.8.25</version>
      <type>pom</type>
      <scope>import</scope>
    </dependency>
  </dependencies>
</dependencyManagement>
​
<dependencies>
  <dependency>
    <groupId>org.bsc.langgraph4j</groupId>
    <artifactId>langgraph4j-core</artifactId>
  </dependency>
</dependencies>

Gradle:implementation(platform("org.bsc.langgraph4j:langgraph4j-bom:1.8.25")),再 implementation("org.bsc.langgraph4j:langgraph4j-core")。

本章只引 langgraph4j-core。


15.2 一张能跑的图

下面这段可以放进 main。读的时候对照上图:schema 声明键怎么合并,greet 只返回要改的键,边把 START 和 END 接上,compile 之后才能 invoke。

import static org.bsc.langgraph4j.StateGraph.END;
import static org.bsc.langgraph4j.StateGraph.START;
​
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.Optional;
​
import org.bsc.langgraph4j.CompiledGraph;
import org.bsc.langgraph4j.StateGraph;
import org.bsc.langgraph4j.action.AsyncNodeAction;
import org.bsc.langgraph4j.action.NodeAction;
import org.bsc.langgraph4j.state.AgentState;
import org.bsc.langgraph4j.state.Channel;
import org.bsc.langgraph4j.state.Channels;
​
public class HelloGraph {
​
    public static class HelloState extends AgentState {
        public HelloState(Map<String, Object> initData) {
            super(initData);
        }
​
        public Optional<String> greeting() {
            return value("greeting");
        }
    }
​
    public static void main(String[] args) throws Exception {
        Map<String, Channel<?>> schema = Map.of(
                "greeting", Channels.base(() -> ""),
                "logs", Channels.appenderWithDuplicate(ArrayList::new)
        );
​
        NodeAction<HelloState> greet = state -> {
            String name = state.<String>value("name").orElse("world");
            return Map.of(
                    "greeting", "Hello, " + name + "!",
                    "logs", List.of("greet-executed")
            );
        };
​
        CompiledGraph<HelloState> compiled = new StateGraph<>(schema, HelloState::new)
                .addNode("greet", AsyncNodeAction.node_async(greet))
                .addEdge(START, "greet")
                .addEdge("greet", END)
                .compile();
​
        compiled.invoke(Map.of("name", "LangGraph4j"))
                .ifPresent(s -> System.out.println(s.greeting().orElse("")));
        // → Hello, LangGraph4j!
    }
}

这段代码里有五点:

  1. 节点返回部分更新,只交出要改的键。这里是 greeting 和 logs。

  2. 返回的 Map 由 Channel 合并进状态。节点里不要改 state.data() 里已有的集合。

  3. greeting 用 Channels.base,后写覆盖前写。logs 用 appenderWithDuplicate,每次追加,允许重复。

  4. name 只出现在 invoke 的输入里,不必写进 schema。没有 Channel 的键按覆盖合入。

  5. addNode 接收的是 AsyncNodeAction。同步逻辑先写成 NodeAction,再用 AsyncNodeAction.node_async 包一层。

无参 compile() 使用默认 CompileConfig。单次运行最多走 25 步(recursionLimit)。这张图只有一个节点,碰不到这个上限。


15.3 再看一遍执行

invoke 只给最终状态。要看经过了哪个节点,用 stream:

compiled.stream(Map.of("name", "stream-user"))
        .forEachAsync(out -> System.out.println(out.node() + " → " + out.state().data()))
        .join();

导出图结构(核对边是否接上):

import org.bsc.langgraph4j.GraphRepresentation;
​
System.out.println(compiled.getGraph(
        GraphRepresentation.Type.MERMAID, "Hello Graph").content());

15.4 构造方法,以及跑不起来时看什么

StateGraph 有四种构造。本章用第一种。

构造何时用
(channels, AgentStateFactory)有 schema,更新走 Channel
(channels, StateSerializer)还要规定状态怎么序列化
(AgentStateFactory)不声明 schema,Channel 表为空。没声明的键按覆盖写入
(StateSerializer)同上,但序列化方式自己指定
现象处理
图不从入口走补 addEdge(START, "greet")
编译或运行报找不到出口补 addEdge("greet", END)
依赖版本互相打架只在 BOM 锁 1.8.25,业务依赖去掉手写版本
资料里的 MessageChannel 编译失败1.8.25 已没有这个类;列表用 Channels.appender 或 appenderWithDuplicate

compile() 得到的 CompiledGraph 可以反复 invoke。改节点或改边之后,要重新 compile。

LangGraph图工作流设计:状态驱动的AI工程化实践 AI工作流编排正从线性链式(Chain)向状态驱动的图结构(Graph)演进,其核心在于将控制流与业务逻辑解耦,通过显式节点(Node)、条件边(Edge)和强类型状态(State)构建可预测、可观测、可审计的生产级系统。LangGraph以图模型还原真实业务复杂性——支持条件分支、并行执行、循环重入与人工干预,尤其适合医保预审、金融风控、智能客服等需高确定性与合规追溯的场景。本文聚焦LangGraph中State契约设计、Node可测试性规范及Checkpointer在K8s环境下的高可用配置,提供从概念 阅读详情

相关推荐

LangChain实战入门:构建可记忆、可调用、可监控的AI工作流

LangChain并非简单的LLM调用封装,而是面向AI工程化的编排框架,其核心在于将大模型从单次响应的‘计算器’升级为具备状态管理、工具调用与流程控制能力的‘AI工作流操作系统’。它通过Memory实现上下文感知,通过Tool打通外部数据源,通过Chain串联多步逻辑,再借由Callback提供可观测性——这四大机制共同构成AI应用落地的基础设施底座。尤其在政务问答、企业知识库、智能客服等需长期交互与系统集成的场景中,LangChain显著降低RAG、Agent与对话状态管理的实现门槛。本文聚焦v0.1.

weixin_34025151的博客 359

15天构建AI智能体:从RAG、LangGraph到工具调用的实战指南

在AI应用开发领域,智能体(Agent)代表了让大模型具备自主执行复杂任务能力的关键方向。其核心原理在于通过编排框架,将大语言模型与外部工具、知识库和记忆系统连接起来,形成一个可感知、决策和行动的闭环。这一技术价值在于突破了传统单一问答的局限,使AI能够处理多步骤、需实时信息或专属知识的实际业务场景。检索增强生成(RAG)技术正是解决大模型知识局限与幻觉问题的关键组件,它通过将用户查询与向量化的专属知识库进行相似性匹配,为模型提供精准、实时的上下文信息。而LangGraph作为新兴的AI工作流编排框架,通过

weixin_34396902的博客 465

Ollama+LangGraph构建本地智能体:数据不出域的AI工作流实战

本地智能体(Local Agent)是一种在终端设备上完全离线运行、不依赖云端API、数据全程不出本地环境的AI自动化系统,其核心原理是将大模型推理、工具调用与任务编排全部收敛于单机内存空间,通过模型本地化部署与有向图工作流实现零网络外泄。该技术显著提升金融、医疗、法律等强合规场景下的数据主权保障能力,支持PDF解析、合同审查、销售报告生成等典型办公自动化任务。Ollama提供轻量级模型容器化运行能力,LangGraph则实现可审计、可条件路由、可熔断的多节点协同,二者组合构成当前最易落地的生产级本地智能体

weixin_33871366的博客 385

LangGraph 15 分钟上手指南:从零搭建环境到读懂核心源码

用几行 Python 就能搭出一个会调用工具、能记住对话状态的 AI Agent,但生产级 Agent 需要的不只是调用大模型,还有持久化、流式输出、人工介入和可恢复的执行。LangGraph 就是这个低层编排框架,它帮你构建、管理和部署这类长时间运行、有状态的智能体应用。 ## 项目速览 LangGraph 定位为"构建有状态、多参与者 LLM 应用的底层框架",核心能力包括持久执行(dur

gitblog_00685的博客 388

LangGraph生产级工作流设计:State管理与Conditional Edge避坑指南

LangGraph并非简单的函数编排工具,而是面向AI系统可靠性的状态化工作流引擎。其核心在于不可变State的版本化管理、Node间严格的输入输出契约、Conditional Edge的可观测决策逻辑,以及基于检查点的可恢复执行机制。这些设计直接决定了多轮对话、意图澄清、客服机器人等场景下的数据一致性、错误可追溯性与并发安全性。尤其在真实业务中,State字段污染、Edge条件空值崩溃、内存检查点竞态等问题高频出现。本文聚焦LangGraph四大组件在生产环境中的关键取舍与参数陷阱,结合多轮机票预订工作流

weixin_30535843的博客 447

六套生产级开源AI方案:本地大模型、Agent工作流与RAG工程实践

大模型落地正从‘能用’迈向‘稳用’,核心挑战在于推理性能、流程可控性与知识可审计性。本地大模型(如Ollama)通过量化加载与CUDA Graph优化显著降低延迟与显存开销;Agent框架(如Sim AI)以YAML声明式语法实现失败重试、超时熔断与多步骤事务回滚,将AI行为纳入传统软件工程范式;RAG系统则依赖高质量文本切分、元数据隔离与混合检索策略保障召回准确率。这些技术共同构成企业级AI应用的三大支柱——模型服务化、流程自动化、知识结构化。本文聚焦真实产线验证的六套开源方案,覆盖从模型部署、知识库构建

weixin_33670786的博客 377

AI Agent五大核心能力:从能跑到扛住的工程化标尺

AI Agent已从概念验证迈入规模化落地阶段,‘能跑起来’不再是目标,‘连续72小时无干预稳定运行’才是生产级门槛。其本质是将大模型能力转化为可测量、可优化、可审计的工程指标——工具调用稳定性、多步推理一致性、异常恢复能力、长程记忆保真度与指令遵循鲁棒性,共同构成新一代AI系统可用性的五大支柱。这些能力直指真实业务痛点:模糊发票识别、跨轮次约束继承、高噪声语音理解、多源冲突信息消解等。它们不依赖参数规模,而取决于架构设计与工程实践的深度耦合。本文基于37万次覆盖12类行业场景的实测数据,解析GPT-5.5

culuo8053的博客 881

Win11系统级Copilot:重构人机交互的AI指令通路

Windows Copilot并非传统AI插件,而是深度集成于操作系统内核的智能交互层,依托Windows Shell、Search与Microsoft Graph三大系统服务构建AI指令通路。其核心技术Work IQ实现数据、情境与技能的三层建模,使Copilot能理解业务语义、记忆用户习惯、调用企业SOP——这本质上是将自然语言转化为系统级操作的能力跃迁。该能力支撑Outlook邮件处理、Excel数据分析、Teams会议摘要等高频办公场景,适用于所有Microsoft 365职场用户。本文聚焦Win1

weixin_34405354的博客 424

FastAPI+LangGraph构建可生产AI工作流的工程实践

AI工作流已从简单脚本演进为需高可靠性、强类型校验与状态持久化的生产级系统。其核心在于将HTTP协议层与业务执行层解耦:FastAPI提供自动OpenAPI文档、原生异步支持和依赖注入能力,保障接口契约性与跨团队协作效率;LangGraph则通过StateGraph实现基于TypedDict的状态驱动编排,支持条件分支、多实例状态同步与节点级可观测性。这种组合特别适用于需处理结构化中间数据(如订单ID、意图标签)、要求人工审核节点审计、以及多轮对话状态持久化的智能客服、RAG增强问答等场景。

weixin_30542079的博客 406

Vibe Coding:面向一人团队的AI原生开发工作流

Vibe Coding 是一种以最小认知负荷、最大上下文保真度和最短反馈闭环为核心原则的现代软件开发范式,它超越传统IDE与Copilot增强模式,聚焦个体开发者在无协作约束下的高效交付。其技术原理在于将需求、代码、测试与部署封装为可追溯、可复现的任务单元,并依托上下文图谱实现语义化理解与精准操作。这种工作流显著提升独立开发者、MVP验证者及技术型产品经理的交付质量与知识沉淀效率,尤其适用于Spring Boot、微服务、SaaS后台等需要快速迭代与强业务规则约束的场景。Trae 作为专为此范式设计的工具,

weixin_33946020的博客 368

从零搭建AI智能体:基于LangChain与LangGraph的实战指南

这次我们来看一个关于 AI Agent(智能体)的实战教程。如果你对如何从零开始搭建一个能自主思考、执行任务的 AI 智能体感兴趣,特别是想了解 LangChain、LangGraph 这些核心框架如何落地,那么这篇文章就是为你准备的。 AI Agent 的核心是让大语言模型(LLM)具备“思考-行动-观察”的循环能力,而不仅仅是单次问答。本教程将手把手带你使用 LangChain 和 LangGraph 框架,结合 OpenClaw 等工具,搭建一个功能完整的智能体。重点不是空谈概念,而是提供一套可运行、

既是过河之卒,惟有奋力向前。 457

Unity Bolt 1.4.15 可视化编程插件安装与避坑指南

可视化编程是一种通过图形化界面连接节点和流程线来构建程序逻辑的开发方式,它降低了编程的入门门槛,尤其适合游戏开发、快速原型设计等场景。其核心原理是将代码指令封装为可视化的功能模块,开发者通过拖拽和连线即可完成逻辑编排,无需深入掌握传统文本编程的语法细节。这种技术为设计师、策划等非专业程序员提供了直接参与逻辑构建的能力,有效提升了团队协作效率和创意验证速度。在Unity引擎生态中,Bolt(现Unity Visual Scripting)是成熟的可视化编程解决方案,而1.4.15作为经典稳定版本,在特定项目和

weixin_34056162的博客 355

SAP-PM设备模块-PM主数据之维护策略

预防性维护的一种计划方式,需要先建立维护策略什么情况下需要创建维护策略?

TRUIXIANG的博客 2571

Apache Airflow 3 工作流编排完全指南:15 分钟搭好你的第一条自动化管道

如果你需要按固定节奏跑一批任务——凌晨同步数据、白天清洗转换、晚上生成报表——**Apache Airflow** 值得放进你的工具箱。它是 Apache 软件基金会旗下的开源平台,核心理念是"工作流即代码":你用 Python 文件描述任务与依赖,Airflow 负责按依赖顺序执行、定时调度、失败重试、并发控制,并提供图形界面实时监控每次运行。本文按"能力地图"的方式带你走一遍 Airflow

gitblog_00471的博客 451

【计算机视觉】pyrealsense2:Intel RealSense 深度相机的 Python 接口实战指南

pyrealsense2:Intel RealSense 深度相机的 Python 接口实战

weixin_43988131的博客 4350

嵌入式开发实战:LWIP中PPP协议配置全流程(含CHAP认证避坑指南)

本文是一份嵌入式开发实战指南,详细解析了如何在STM32平台上配置LWIP协议栈中的PPP协议,实现从串口到IP网络的完整连接。内容涵盖工程搭建、源码整合、关键配置、串口驱动绑定、状态管理以及CHAP认证等核心流程,并重点提供了CHAP认证失败的排查与避坑指南,帮助开发者高效打通嵌入式设备的网络连接。

plant的博客 464

Anthropic推理运行时层归零:CUDA Graph如何重构LLM服务架构

在大语言模型推理中,运行时抽象层曾承担动态批处理、KV缓存管理与硬件调度等关键职责,但其CPU中心化设计受限于PCIe带宽、破坏CUDA Graph确定性,并违背故障隔离原则。随着Anthropic将调度逻辑下沉至CUDA Graph编译器与Linux内核内存控制器,推理延迟降低39.4%,GPU显存带宽利用率跃升至94.7%,CPU占用率骤降75%。这一演进标志着LLM基础设施正从软件定义调度转向硬件原生执行,技术价值体现在确定性低延迟、线性吞吐扩展与运维极简性。典型应用场景包括高并发API网关、企业级L

hintcnuie 856

华为HCIA-Datacom实战:200人企业园区网从规划到部署全流程解析

本文详细解析了华为HCIA-Datacom认证实战中200人企业园区网的规划与部署全流程。从需求分析、组网架构设计到设备选型、VLAN划分及安全策略实施,全面覆盖园区网建设的关键环节,特别针对部门隔离、无线覆盖和基础安全防护等典型场景提供可落地的解决方案。

f0g1h2的博客 710

LangGraph入门:从单节点Hello World图理解状态与执行模型

LangGraph是一种基于有向图建模LLM工作流的编程范式,其核心在于将AI应用抽象为状态演化与节点协作的确定性过程。它通过显式定义AgentState(如TypedDict)、纯函数式节点、入口/出口路由机制,构建可调试、可复现、可扩展的运行时契约。相比链式Chain,LangGraph天然支持分支、循环、回溯与状态审计,是构建multi-agent系统和生产级AI服务的工程基石。本文以零依赖、单节点、内存内执行的Hello World图为例,深入解析状态定义规范、节点编写铁律、图编译机制及典型排障路径

weixin_34007020的博客 410

wps脚注转参考文献格式

用于写论文时直接将规范的脚注格式转为参考文献格式

Zeaf的博客 1556

IP-Guard分类管理详解

大家都知道在配置IPGUARD策略前需要做分类库进行设置和分类。 1、应用程序:可以分类,例如上班时间只能用OFFICE和WPS,记事本等办公软件,可以在分类里设置一个类 ;办公软件,在未分类里找到OFFICE,WPS等拖入心建的分类里就可以在配置策略里调用。 2、网站分类也不一样,可以按照自己方式自定义。也可以导入厂家已经收集到的网站分类。 3、邮箱分类:可以提前定义好一个或...

IP-Guard专栏 589

PocketFlow 百行 LLM 框架深度解析:从 Graph 核心抽象到并行批处理实战

PocketFlow 是一个以"100 行代码实现 LLM 框架核心"为设计理念的极简 Python 框架,其全部核心能力浓缩在一个 [pocketflow/__init__.py](https://link.gitcode.com/i/1c97d8020e6562c432a2e082b6e0b41f) 文件中。本文以官方文档与仓库源码为依据,先讲清它的核心抽象 Graph 与 Node/Flow

gitblog_00007的博客 805

linux驱动由浅入深系列:块设备驱动之一(高通eMMC分区实例)

linux驱动由浅入深系列:块设备驱动之一(高通eMMC分区实例)linux驱动由浅入深系列:块设备驱动之二(块设备驱动结构分析)块设备驱动的模型还是基本基于字符设备驱动的,可以简单理解为块设备仅仅增加了操作缓冲区,对用户请求顺序进行队列重拍等等。字符设备驱动的相关分析可以查看本博客相关的博文。 按照本博客的行文习惯,在具体分析块设备驱动代码之前,我们会从整体上了解一下研究对象的特征,以及用户空间...

Radia的专栏 1万+

LangChain.js前端实战:构建可控、安全、离线友好的AI工作流

LangChain.js 正在重新定义前端工程师的技术边界——它不再只是调用大模型的胶水层,而是浏览器中可调试、可编排、可降级的AI工作流引擎。其核心价值在于将提示词工程、RAG检索、Agent工具链等能力下沉至前端,实现低延迟响应与上下文感知;技术原理上依托模块化Runnable抽象、浏览器原生适配(IndexedDB/Service Worker/Web Worker)及安全沙箱机制;显著提升ToB SaaS类AI应用的首屏可用率、弱网鲁棒性与用户隐私控制力。本文聚焦前端落地LangChain.js的三

weixin_34389926的博客 469

YOLOv8改进:注意力系列篇 |高效的通道先验卷积注意力(CPCA) | 中科院 2023.6

高效的通道先验卷积注意力(CPCA)方法,支持注意力权重在通道和空间维度上的动态分布;

会AI的学姐 2043

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

VS Code+CMake构建嵌入式AI编程工作流

嵌入式软件开发正经历从传统IDE向AI协同范式的跃迁。其核心原理在于将硬件抽象、编译配置与AI生成能力解耦并标准化——CMake作为声明式工程契约,使AI可精准理解芯片架构、外设依赖与时钟约束;VS Code凭借开放插件生态与纯文本工程描述,成为AI‘可读、可写、可调试’的首选平台。这一技术组合显著提升AI生成代码在真实MCU(如STM32)上的编译通过率与烧录成功率,支撑UART驱动、中断服务、RTOS任务等高频嵌入式AI落地场景。本文聚焦AI-ready开发环境的工程化构建,涵盖Ubuntu系统适配、A

weixin_34268843的博客 387

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

上一篇: 第 14 章 · LangGraph4j 入门:AI Agent 什么时候该上状态图
下一篇: 第 16 章 · AI Agent 共享状态:AgentState 与 Channels
AI深栈
博客等级 码龄14年 1粉丝 22原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值