当前位置: 首页 > news >正文

从“能跑的 Agent”到“敢上生产的 Agent”

——一个生产级交易型 AI Agent 的完整架构设计与实践

在过去一年里,我刻意避免去做“看起来很炫”的 AI Demo,而是选择从一个极其具体、简单但高风险的业务场景入手:
商品查询 → 下单 → 订单确认 → 执行交易

因为这是第一个会让我认真思考:
“如果 LLM 出错,系统还能不能兜住?”的问题。

这篇文章完整介绍一个我自研的生产级交易型智能体(AI Shopping Guide)
它不是 Prompt 工程展示,也不是工具堆砌,而是一个真正考虑了状态、权限、回滚、安全与可观测性的 AI 应用系统。


一、为什么要“反直觉”地做一个这么复杂的系统?

在大量 Agent 项目中,我反复看到三种常见风险:

  1. LLM 拥有直接写业务状态的能力
  2. 系统状态与对话状态混杂在 Prompt 中
  3. 出错只能靠“再问一次”

这些在“查资料 / 写代码”类 Agent 中问题不大,但在交易型系统中是致命的。

所以这个项目从第一天起,就立了三条不可妥协的原则:

原则一句话解释
LLM 零写权限LLM 永远不能直接修改任何业务状态
状态机硬闸门关键动作必须经过 FSM 决策
纯函数执行订单编辑是确定性的、可回滚的

二、整体架构概览:职责清晰,而不是“一个 Agent 解决一切”

系统采用清晰分层 + 克制设计,而不是把所有能力堆进一个 Agent。

前端 (Next.js / React) ↓ API Routes (BFF + 安全拦截) ↓ ToolLoopAgent(执行引擎) ↓ FSM(状态与权限控制) ↓ 工具系统(查询 / 下单 / 存储) ↓ Redis / Vector / 可观测性

为什么不是“一个大 Agent”?

因为在生产环境里,Agent ≠ 系统控制器
LLM 擅长理解意图,但不适合:

  • 管理状态
  • 处理边界条件
  • 保证一致性
  • 做最终执行决策

所以我把它降级为“建议者”


三、Agent 设计:ToolLoopAgent + prepareStep 路由模式

系统并没有让 LLM 自由选择工具,而是通过ToolLoopAgent + prepareStep明确控制每一轮行为。

Agent Loop 核心思想

Step 0:必须先问 FSM —— 我现在能不能干这件事? Step 1:如果是交易路径,走强约束执行 Step 2+:才允许进入 auto 模式自由查询

这种模式解决了一个关键问题:

“Agent 是在思考,还是在执行?”

而不是让这两件事混在一起。


四、FSM:整个系统最重要的“安全闸门”

这是一个极简但强约束的三态 FSM:

状态含义
IDLE空闲 / 查询态
AWAITING_CONFIRMATION等待用户确认
EXECUTING系统自动执行

核心规则(非常重要)

  • 只有 EXECUTING 状态,系统才允许 createOrder
  • LLM 在 AWAITING_CONFIRMATION 状态下被禁止调用业务工具
  • 所有状态变更必须由代码触发,不接受 LLM 直写

FSM 不是“为了优雅”,而是为了兜底


五、订单系统:纯函数草稿编辑,而不是“让 LLM 写 JSON”

订单编辑的核心不是 Prompt,而是一个纯函数:

applyActionsToDraft(draft, actions) → newDraft | error

为什么这是整个系统的“定海神针”?

  • 每一步编辑确定性
  • 任一 action 失败整体回滚
  • 不依赖 LLM 的“猜测正确性”

LLM 只负责输出**“我想做什么”**,
而系统代码负责决定:

“你能不能这么做,以及结果是什么”


六、检索系统:不迷信向量,不排斥传统方法

在商品搜索上,我没有走“纯向量”的流行路线,而是选择:

BM25 + 向量检索 + 动态权重融合

原因很现实:

场景BM25Vector
冷启动
可解释性
语义泛化

系统会根据 query 特征自动调整权重,而不是一刀切。


七、防御深度:一个请求,要经过 6 层防护

层级防护点
L0会话 / 页面 / Tab 隔离
L1前置拦截(负数、nonsense)
L2Agent 意图分类
L3FSM 状态闸门
L4业务字段级校验
L5本轮地址隔离

这不是“过度设计”,而是对 LLM 不确定性的尊重


八、可观测性:看得见 Agent 在“想什么”

系统接入 Langfuse,但做了两个关键约束:

  • 可观测 ≠ 强依赖
  • 追踪失败不影响业务

每一次:

  • FSM 状态转移
  • 工具调用
  • 记忆读写

都有独立 Span,可以完整还原 Agent 行为路径。


九、这套架构解决了什么问题?

问题是否解决
LLM 幻觉
非法写状态
交易误执行
多轮对话错乱
可回放 / 可调试

十、总结:这是一个“工程视角”的 Agent,而不是 Prompt 展示

这个项目我最满意的地方不在于功能多少,而在于:

  • 我敢把它放到生产环境
  • 我敢让别人 review 架构
  • 我敢在面试中被深挖每一个决策

Agent 的未来,不是“更聪明的模型”,
而是“更克制的系统设计”


项目演示

📹 视频演示:
https://pan.baidu.com/s/1mMAHbi_Vz26D6gQfXHmfGQ?pwd=gqfn

http://www.jsqmd.com/news/1039475/

相关文章:

  • UniHacker终极破解指南:5分钟免费解锁Unity全版本开发权限
  • 解决selenium的EdgeOptions addArguments is not supported问题
  • Motorola MMDS1632硬件仿真系统:架构、配置与混合信号调试实战
  • 系统仿真中的代数环:成因、诊断与消除实战指南
  • Django毕设选题推荐:基于 Python 的个性化音乐操作界面的设计与实现 基于 Python 的音频播放可视化界面【附源码、mysql、文档、调试+代码讲解+全bao等】
  • Microchip嵌入式开发资源全攻略:从环境搭建到高效调试
  • 三维索引技术:从特征提取到高效检索的完整实践指南
  • AI视觉与PLC融合:工业质检自动化全链路实践
  • GMA环氧基磁珠/环氧基修饰磁性微球 Epoxidation of Silica MagBeads
  • 3分钟上手Office RibbonX Editor:打造专属Office功能区界面的完整指南
  • PPTist终极指南:免费在线PPT制作工具的8个隐藏技巧
  • 白发不用染!3个月养出黑发上岸
  • Windows在任务栏搜索(开始菜单旁边),搜不到应用怎么办?
  • AI代码分析工具实战测评:如何智能提升测试覆盖率与工程效率
  • 2026年更新:绵阳别墅电梯热门公司选择的全维度实力解析 - 品牌鉴赏官2026
  • 索尼相机系统优化终极指南:OpenMemories-Tweak完全解析
  • Rnote:重新定义数字手写笔记的5大创新体验
  • Unity笔记(十)——SpriteRenderer精灵渲染器、SpriteAtlas精灵图集、瓦片地图代码控制、动画系统
  • 2026东营防水补漏靠谱服务商盘点:屋面/厨卫/外墙/地下室渗水维修详解,适配鲁北滨海海风盐碱地严寒冻融防水甄选指南 - 宅安选房屋修缮
  • port-isolate 概念及题目
  • 2026永州防水补漏靠谱服务商盘点:屋面/厨卫/外墙/地下室渗水维修详解,适配湘南南岭山区高湿回南天梅雨防水甄选指南 - 宅安选房屋修缮
  • 2026年当前湖南市面上湘菜餐厅连锁加盟如何选?这品牌值得关注 - 品牌鉴赏官2026
  • 仿真技术如何驱动混合动力重卡一年内从零到一开发?
  • 小红书笔记详情怎么导出到Excel?我试了4种方法,最后留下了这一种
  • 计算机专业考研资源共享平台
  • 2026嘉兴GEO优化公司排名TOP8 本地正规服务商盘点 - 936品牌测评网
  • LangChain4j 新版本的核心升级点 —— @AiService 声明式接口
  • 任务栏信息革命:TrafficMonitor插件如何重塑你的Windows桌面体验?
  • 2026年中云南性价比高的蓝莓水肥一体化优质厂商推荐 - 品牌鉴赏官2026
  • “我拥有了人类的情感”:那个叫鲁健的青年,造了一台能读懂眼泪的机器人