味儿福德詹的小站
  • 首页
  • AI
  • 归档
  • 分类
  • 标签
  • 关于

LangGraph HITL 重构复盘:从一次性澄清到可恢复编排

这周把一条很“能跑但不优雅”的链路,改成了真正可恢复的人在回路(HITL)语义。 一句话版本: 以前:clarification_needed -> final,一轮结束,下一轮靠外部再喂输入,图内语义断开。 现在:clarify 节点内 interrupt(payload) 挂起,用户补充后 Command(resume=...) 继续执行,图内闭环。 下面按工程复盘写清楚:问题是什么
2026-03-06
AI
#LangGraph #AI工作日志 #复盘 #编排 #LangChain #HITL

LangGraph 编排重构实录:拆编排不拆对外契约(STAR)

这篇复盘写给已经在做 Agent/LLM 编排、并且被“历史包袱 + 线上契约 + 多系统联动”三连击过的工程师。 一句话版结论:这次不是“把代码搬到新目录”,而是把编排从“单文件扛全场”升级为“LangGraph 节点化 + 对外契约不动”的可演进内核。过程不炫技,核心是稳。 如果要用一句带点黑色幽默的话描述这次重构: 我们终于把 orchestrator.py 从“全栈菩萨”劝退成
2026-03-05
AI
#LangGraph #AI工作日志 #重构复盘 #架构治理

Dify 知识库 Tool 集成策略:Java MCP 与 Python 双路径

背景在 iot-framework 的 AI 链路里,我们已经有一条稳定的工具调用架构: Java AI Gateway 对外暴露 /api/ai/* Python ats_iot_ai 负责编排与执行(LangGraph + SSE) Java MCP 负责 /ai/mcp/tools/list 与 /ai/mcp/tools/call 这次目标是把 Dify 知识库检索接成一个 tool,
2026-03-05
AI
#AI工作日志 #MCP #架构 #Dify #知识库

P1解析失败恢复:从误报模型不可用到可恢复澄清链路

这篇记录一次真实联调中的 P1 修复:同一个用户问题,本应触发澄清,却被错误归因为“模型不可用”。 STAR 复盘S(Situation)背景在 2026-03-05 的真实联调中,知识库工具链路已经打通,但出现了错误路由: 用户输入:帮我查知识库 实际事件:llm_request -> react_plan(parseStatus=schema_validation_failed) -&
2026-03-05
AI
#LangGraph #AI工作日志 #联调复盘 #故障恢复

直接回复未走 Chat 优化的踩坑复盘(STAR)

背景在一次编排改造后,用户输入“帮我查今天的炉次生产情况”,系统返回了: 工具参数需要补充/修正(缺少参数: fnCode)… 这类回复有两个问题: 对话体验差:像在看内部错误,不像助手对话。 信息暴露风险:把内部参数名(fnCode)直接暴露给用户。 本文只记录编排与文案层面的坑和改造,不包含联调过程。 STAR 复盘S(Situation)当时的流程是: plan 识别到缺
2026-03-05
AI
#LangGraph #AI工作日志 #复盘 #编排

ats_iot_ai 重构复盘:从旧编排到 LangGraph 节点化拆分

这篇文章复盘 ats_iot_ai 这一轮重构的关键路径,重点覆盖三部分: 重构记录(发生了什么、按什么顺序推进) 工程收益(稳定性、可维护性、协作成本) 风险与后续计划(哪些问题还在,下一步怎么收敛) 文中时间线和提交号均来自本地仓库历史;敏感信息(内部域名、token、账号、绝对路径)已全部脱敏。 一、重构背景:为什么必须从“旧编排”走向节点化旧阶段的核心问题并不是“功能不工作”,而是“功
2026-03-05
AI
#LangGraph #AI工作日志 #ats_iot_ai #AI重构 #复盘

踩坑复盘:ObjectMapper 被覆盖引发 shiftBeginAt/shiftDate 连锁异常

这次排障最核心的坑,不是某个 DTO 字段写错,而是 ObjectMapper 被覆盖后出现多实例分叉。shiftBeginAt 返回数组、shiftDate 反序列化报错,是同一个根因触发的两个表象。 关联提交(按你本地排障记录): 8ba6d3c5914c23f29cd52f5326c79af4a0e8eced 49957ccc62e80014546bf5a62685e9c73f0d8000
2026-03-04
#成本管理 #Jackson #踩坑记录 #iot-framework

一次被 Metadata Lock 隐藏的 AI 聊天故障:从 CommunicationsException 到长事务排查

这篇文章记录一次线上故障:Java 应用里一条普通查询,最终抛出来的是 CommunicationsException。表面看像网络或连接池问题,实际是被 DDL 等待放大的 metadata lock。 排查过程横跨 4 层: MySQL DDL 与 metadata lock 机制 JDBC 驱动的超时表现 连接池里的空闲连接与未结束事务 应用层对异常语义的误判 先说结论根因是: 某些旧
2026-03-03
AI
#AI工作日志 #Spring Boot #MySQL #MyBatis #Druid #故障排查 #后端工程

本地启动 iot-app 禁用 Kafka 配置实践

本地联调 iot-app 时,常见诉求是继续读取 Nacos 里的大部分配置,但不要连接 Kafka。直接把 Nacos 配置删掉通常不现实,因为同一个应用还依赖数据库、Redis、业务开关等其他远程配置。 这次采用的做法是:保留 Nacos 配置加载,只在 local 环境禁用 Kafka 自动装配和消费者注册,同时提供一个 no-op KafkaTemplate,让依赖 KafkaTempla
2026-03-03
后端
#Java #Spring Boot #Kafka #Nacos #本地开发

HBuilderX 改了 uni-app 代码后,怎么在微信开发者工具里看到更新

这篇整理一次最近联调 uni-app 小程序时连续踩到的几个坑: 改了 accountPage.vue 和 pages.json,微信开发者工具里就是看不到更新 HBuilderX 运行到微信开发者工具时,微信侧没有自动拿到最新项目 登录时报错: 1login:fail 系统错误,错误码:41002, appid missing [undefined] 本机 Java 服务联调时报错: 1
2026-03-03
#uni-app #微信小程序 #HBuilderX #微信开发者工具 #联调
1234

搜索

Hexo Fluid
总访问量 次 总访客数 人