把聊天机器人升级成任务系统:状态机、任务队列和工具结果持久化怎么设计
聊天机器人刚起步时,很多事情都很顺。用户发一句话,模型回一段结果,页面把消息 append 上去,看起来就已经像个产品了。真正开始露出边界,通常是在需求变成这样的时候:帮我整理这批资料,明天继续;如果权限不足就先挂起等审批;调用外部系统失败就自动重试;执行到一半也要能从详情页接着看。到这一步,你会突然发现,消息列表已经不够当系统主结构了。
聊天机器人刚起步时,很多事情都很顺。用户发一句话,模型回一段结果,页面把消息 append 上去,看起来就已经像个产品了。真正开始露出边界,通常是在需求变成这样的时候:帮我整理这批资料,明天继续;如果权限不足就先挂起等审批;调用外部系统失败就自动重试;执行到一半也要能从详情页接着看。到这一步,你会突然发现,消息列表已经不够当系统主结构了。
LLM 网关安全真正要收住的,不只是 prompt 注入,而是身份、工具、数据和输出这四层边界。
补档说明:本文属于「AI 工程落地周记」系列,计划发布时间为 2025-08-13 16:10。当前先保留为草稿,后续补充真实案例、代码片段和复盘细节后再发布。
工具调用一多,很多团队的第一反应都是把主流程先串起来:
流程能跑起来之后,大家才开始补“如果某一步失败怎么办”。
但我后来越来越确定,工具链一旦变长,回退策略就不该是上线后的补丁,而应该是设计阶段的主问题。
因为工具链越长,失败就越不是“有没有失败”,而是“会在哪里以什么方式失败”。你不先定义回退规则,系统迟早会在某个半成功状态里把你拖进返工。
补档说明:本文属于「AI 工程落地周记」系列,计划发布时间为 2025-07-24 09:10。当前先保留为草稿,后续补充真实案例、代码片段和复盘细节后再发布。
多 Agent 方案之所以特别容易让人兴奋,是因为它在演示里几乎总是成立:
界面一铺开,消息一串起来,整个系统会显得非常聪明,也很有“组织感”。但真正往生产环境里放,你很快就会发现它比单 Agent 或工作流系统更难稳住。
我后来总结下来,根本原因不是“多 Agent 不行”,而是很多团队把它当成能力叠加问题,实际上它首先是一个协作成本问题。
工作流只在单系统里跑的时候,凭证问题常常被低估。很多团队一开始会觉得,不就是在环境变量里放几个 token 吗?等到真的开始跨系统:
这些 token、key、secret 就会突然从“配置细节”变成整条工作流最脆弱的一层。
我后来对这个问题印象最深的一次,是一个看起来很普通的内容发布工作流。它需要同时访问:
结果真正先出问题的,不是业务逻辑,而是凭证边界混乱:有的 token 权限过大,有的 token 被多个流程共用,有的过期了没人知道,还有的出错日志里直接把敏感信息暴露出来。
从那之后我才真正把“凭证管理”当成跨系统工作流的核心设计问题,而不是交给运维顺手处理的附属项。
补档说明:本文属于「AI 工程落地周记」系列,计划发布时间为 2025-06-13 21:30。当前先保留为草稿,后续补充真实案例、代码片段和复盘细节后再发布。
很多团队在接入大模型之后,都会很快进入一个误区:只要某个功能里有“判断”“调用工具”“多轮交互”这些词,就想把它包装成 Agent。看起来好像更先进,也更符合行业叙事。
但真落到工程里,很多小功能的问题恰恰在于它们太小了,小到根本不值得引入 Agent 这一整套复杂度。
我后来越来越明确的一条原则是:能用一次结构化调用解决的问题,不要先升级成带规划、带循环、带状态恢复的 Agent 任务。
这不是保守,而是成本意识。因为对一个小功能来说,Agent 带来的往往不是“更强能力”,而是额外的系统负担:
补档说明:本文属于「AI 工程落地周记」系列,计划发布时间为 2025-06-06 10:20。当前先保留为草稿,后续补充真实案例、代码片段和复盘细节后再发布。
如果只谈“生成一篇内容”,现在的大模型其实已经能做得像模像样了。真正把团队拖进泥里的,往往不是生成这一步,而是后面三件更现实的事:
我之所以会把这个问题单独拉出来讲,是因为我见过太多内容自动化项目,一开始都卡在“怎么生成得更好”,结果真正上线后最先出事故的,都是审核和回滚链路。
最典型的一次,是一条自动生成的内容流里,模型把一个引用来源写错了。正文本身看起来挺顺,发布动作也正常完成,但问题在于:
这时候真正难的已经不是“修正文案”,而是“怎么让整条发布链恢复一致”。
补档说明:本文属于「AI 工程落地周记」系列,计划发布时间为 2025-05-30 21:30。当前先保留为草稿,后续补充真实案例、代码片段和复盘细节后再发布。
如果只用一个真实项目来说这篇文章,我会选“内容同步流水线”。
这条流水线要做的事情其实不复杂:
这类事情非常适合用 n8n 这类工作流工具来做。因为它的核心难点不是算法,而是“把几个系统串起来”。可问题也正是在这里:很多团队一看到可视化编排很方便,就会很自然地把更多业务逻辑一起拖进去,最后把工作流画布变成半个业务系统。
所以我越来越觉得,n8n 这类工具最容易被误用的地方,不是功能不够,而是边界不清。
这次短更想记录一个很直接的收益:加上一层像样的工具调用 trace 之后,一次原本要靠猜半天的问题,几分钟就定位到了。
问题表面上是“回答质量偶尔变差”,但真正看了 trace 之后,很快就能看到:不是模型理解错了,而是某个工具返回慢了一次,后面的重试触发了 fallback,最终结果自然就偏掉了。
这次短更想记录一个很现实的判断:工作流一旦开始接触外部用户、业务数据或正式内容发布,人审节点往往不是多余,而是让系统真正能上线的关键。
很多自动化链路在 Demo 阶段看起来都很顺,因为样本干净、场景单一、风险还没真的压上来。但只要开始进入真实业务,团队很快就会发现,完全自动执行的吸引力,往往比不上“可控上线”的价值。