快速上手 LangChain4j 智能体工作流编排:4 种模式串起一条简历筛选流水线

发布时间:2026/10/23 6:04:02

快速上手 LangChain4j 智能体工作流编排:4 种模式串起一条简历筛选流水线 快速上手 LangChain4j 智能体工作流编排4 种模式串起一条简历筛选流水线【免费下载链接】langchain4j-examples项目地址: https://gitcode.com/GitHub_Trending/la/langchain4j-examplesLangChain4j-examples 是 LangChain4j 框架的 Java 示例项目其中 agentic-tutorial 模块用一条简历筛选业务完整演示了顺序、并行、循环、条件四种智能体工作流编排模式。对没做过智能体编排的 Java 开发者来说这是比较贴近真实业务的入门路径每种模式都对应筛选流程里的一个具体痛点示例的 main 方法都很短变量命名清楚照着改就能跑起来。四种模式各管流水线的哪一段整条业务线是拿到候选人背景 → 生成并定制简历 → 多方评审打分 → 不达标就改 → 按分数决定去留。四种编排模式正好一一对应顺序一个智能体产出交给下一个负责生成 master 简历 → 按目标岗位改写并行HR、用人经理、团队成员三路评审同时跑省掉排队等待循环评审分数不达标时自动修改—再评审直到过关条件根据评审结果动态路由——进下一轮、发拒绝邮件还是补材料。数据传递依赖两个结构化领域类Cv.java 承载简历本体CvReview.java 承载评审结果只有score0 到 1和feedback两个字段却是四种模式之间流通的货币。所有中间结果都存放在 AgenticScope框架提供的执行状态容器可以理解为一次运行中的共享变量表里随时可用readState()按 key 取回这也是观察、调试一次编排运行的主要入口。 顺序模式把两个智能体接成流水线第一棒解决多步任务怎么串。CvGenerator从个人经历生成 master 简历CvTailor再按岗位描述改写两者用一行链式调用接起来UntypedAgent agent AgenticServices .sequenceBuilder() .subAgents(cvGenerator, cvTailor) // 顺序即执行顺序 .outputKey(tailoredCv) // 组合体最终输出 .build();数据交接的关键在outputKey第一个智能体的结果以 masterCv 为 key 写入共享状态第二个智能体接口里只要声明同名的入参框架就会自动取来喂给它。有个容易踩的坑如果第二个智能体也声明outputKey(masterCv)原始 master 简历会被直接覆盖。_2a_Sequential_Agent_Example.java 的注释里专门提醒了这一点命名前想清楚这个 key 该不该被复用。⚡ 并行模式三路评审同时跑结果聚合成一个总分评审如果串行等于等三次模型调用。并行模式下HrCvReviewer、ManagerCvReviewer、TeamMemberCvReviewer三个智能体用parallelBuilder()同时启动各有两个要点线程池示例用Executors.newFixedThreadPool(3)建池通过.executor(...)显式传入。注意 main 方法最后有executor.shutdown()这一步——自己建的池要自己关否则示例进程会挂住不退出不传 executor 时框架用内置缓存线程池跑完自动关闭结果聚合.output(scope - {...})里按 key 读回三份评审拼接 feedback、把三个分数求平均打包成一个新CvReview作为最终输出。完整的并发加聚合写法见 _4_Parallel_Workflow_Example.java。 循环模式分数不达标就自动改但必须带保险丝评审之后分数低怎么办不人工介入让智能体自己修改—再评审地迭代。循环体还是两个智能体CvReviewer打分ScoredCvTailor依据 feedback 修改简历控制逻辑只有两行.exitCondition(scope - { CvReview review (CvReview) scope.readState(cvReview); return review.score 0.8; }) .maxIterations(3)细节一退出条件在每个智能体调用之后都会检查不是等整圈跑完才判断所以条件函数里少做点重活有利于尽早收敛。细节二maxIterations属于必选项源码注释直接称之为防止无限循环的保险丝——大模型的打分并不稳定阈值永远达不到时你必须有明确的下限。_3a_Loop_Agent_Example.java 之外同目录的 3b 还演示了如何取出每一轮的中间状态用于监控。⚖️ 条件模式按分数路由还可以异步最后一棒是路由根据 HR 评审结果决定候选人的走向。conditionalBuilder()注册多组条件 智能体条件就是一个返回 boolean 的 lambdascore 0.8→ 交给ManagerCvReviewer做经理评审score 0.8→EmailAssistant发出拒绝邮件feedback含 missing information: →InfoRequester发邮件向候选人补材料。注意这几组条件并不互斥示例里 HR 给了 0.85 分feedback 里同时写着信息缺失于是经理评审和补材料邮件会同时发生。这正是示例给每个智能体都加.async(true)的原因——独立分支互不阻塞墙钟耗时接近最长分支而非各分支之和。最后的.output按 key 取各分支结果未写入的 key 用带默认值的重载兜底拼成最终输出。完整实现见 _5b_Conditional_Workflow_Example_Async.java。读完这四篇之后建议从 _2a 的 main 方法按编号顺序读起每个模式一个入口四篇代码加起来不到 400 行模块根目录的 README.md 列了全部示例的索引包括组合工作流、监督者调度和人工介入human-in-the-loop等进阶内容落地到自己的业务时顺序 条件组合风险最低可以先上并行评审记得管好线程池循环优化务必带上maxIterations这两处是示例里反复强调的防线。【免费下载链接】langchain4j-examples项目地址: https://gitcode.com/GitHub_Trending/la/langchain4j-examples创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
延伸阅读

更多相关文章

2026/10/23 7:09:10

嵌入式工程师如何让通宵查死机的技术价值被看见

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/23 7:09:10

纯Java Swing实现俄罗斯方块:从数据结构到碰撞检测的完整实战

先说个很多Java新手会问的问题:学完基础语法之后,到底做什么项目才算“练到手了”。我的答案一直是俄罗斯方块。它没有复杂业务流,也没有高深算法,但数据怎么设计、状态怎么管理、界面怎么刷新、碰撞怎么判定,每一步都…

2026/10/23 7:09:10

单链表选择排序详解:数据交换实现与指针调试技巧

亲手写过链表排序的人都知道,数组那套“按下标找数”的思路在单链表上经常碰壁,偏偏很多教科书讲到选择排序就直接拿数组举例,等到你自己想在链表上实现一遍,才发现连“找最小的数”这种操作都要重新设计。这篇文章就把“基于链表…

2026/10/23 7:09:10

MATLAB光纤色散仿真与链路预算:D/β2换算、SSFM和眼图Q值

简介:面向光纤通信与MATLAB仿真学习者的色散研究代码包,适合具备通信原理基础、希望用脚本复现光纤模式分布与色散补偿思路的读者。压缩包共14个文件,均为.m脚本,大小约14KB,主要包含LP模式系列函数与三维极化绘图函数…

2026/10/23 7:09:10

智能体工具系统落地指南:从工具定义到调度与错误处理

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/22 11:29:28

金融AI落地指南:从调研报告到技术选型与工程实践

简介:这份PDF报告聚焦2025年金融服务业中国AI现状与趋势,面向金融科技从业者、AI战略规划人员及关注行业数字化转型的研究者,帮助读者把握生成式AI在银行、支付、交易等场景中的落地路径与投资方向。资源包内含1个PDF文件,大小约1…

2026/10/23 0:02:26

Verilog实现FPGA密码锁:矩阵键盘与状态机设计实战

说实话,这几年接触了不少想入门FPGA的朋友,如果你问哪个项目能一口气把Verilog的核心基本功串起来,我通常会推荐电子密码锁。这个项目看着不起眼,却把矩阵键盘扫描、按键消抖、状态机设计、动态显示刷新、外设控制这些数字逻辑里的…

2026/10/23 0:02:26

数据服务监控运维实战:从指标体系到告警治理与故障排查

周末凌晨两点,手机震了。第一反应是“数据服务挂了”。打开电脑看了下,果然,某张核心报表的数据产出时间已经超过SLA两小时,下游三个业务方连着发来问询。这种场景,做过大数据运维的人都不会陌生。数据服务的监控与运维…

2026/10/23 0:02:26

FreeRTOS任务通知实战详解:内核原理、API与避坑指南

裸机编程切到RTOS之后,任务之间的通信和同步永远是躲不开的坎。前面聊过队列、信号量、互斥锁、事件组,这次把FreeRTOS任务通知(Task Notification)单独拎出来讲透。原因很简单:任务通知是FreeRTOS里最容易用错、也最容…

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
☎咨询二维码 ☎ ↑