Skip to content

Spring AI Agent 知识卡片(简历版)

这份卡片按你当前简历的项目强度整理。

目标不是大模型理论全覆盖,而是:

  • 能撑住 苍穹外卖 AI 智能客服 Agent 的项目深挖
  • 能讲清楚 Spring AI Advisor、Tool Calling、Memory、RAG 怎么协作
  • 能讲清楚工具白名单、签名检测、最大轮次、确认挂起、恢复执行
  • 能把 Agent 讲成一个可控的后端执行系统,而不是简单调模型

1. Agent 是什么

  • Agent 不是单纯聊天机器人
  • Agent = Model + Harness
  • Model 负责理解和生成
  • Harness 负责执行控制
  • 常见能力:
  • 规划
  • 记忆
  • 工具调用
  • RAG 检索
  • 状态管理
  • 安全兜底
  • 记一句:
  • Agent 不是让模型自由发挥,而是给模型搭一个可控执行系统

2. Spring AI 在项目里的作用

  • Spring AI 是 Java 生态里接入 AI 能力的框架
  • 它提供统一抽象
  • 比如 ChatModel、Advisor、Tool Calling、ChatMemory
  • 好处:
  • 让 AI 能力更容易接进 Spring Boot 项目
  • 让模型调用、上下文注入、工具调用更工程化
  • 你的项目口径:
  • 我不是写脚本调大模型,而是把 AI 能力接进后端业务链路

3. ChatModel

  • ChatModel 是模型调用抽象
  • 负责和底层大模型交互
  • 屏蔽不同模型服务的差异
  • 面试不用只讲 API
  • 要讲它在链路里的位置:
  • Advisor 先处理上下文
  • Tool Calling 可能参与执行
  • 最后由 ChatModel 完成模型生成

4. Advisor 链

  • Advisor 类似模型调用前后的拦截链
  • 可以在模型调用前后增强处理
  • 常见职责:
  • 注入用户上下文
  • 注入会话记忆
  • 注入 RAG 检索结果
  • 做工具过滤
  • 做安全校验
  • 做日志和观测
  • 项目口径:
  • Advisor 链把一次模型调用变成一个可治理的业务流程

5. Advisor 执行顺序

  • 顺序很重要
  • 常见链路:
  • 用户问题进来
  • 意图识别
  • 用户上下文注入
  • 会话记忆注入
  • RAG 检索注入
  • 工具白名单过滤
  • 安全校验
  • 模型调用
  • 结果校验
  • 记一句:
  • Advisor 链不是堆功能,而是在控制模型能看到什么、能调用什么、能输出什么

6. Prompt 和 Context 区别

  • Prompt 是指令层
  • Context 是供给层
  • Prompt 规定模型怎么答
  • Context 提供模型用什么资料答
  • Prompt 包括:
  • 角色
  • 目标
  • 约束
  • 输出格式
  • Context 包括:
  • 用户信息
  • 会话历史
  • 记忆
  • RAG 证据
  • 工具结果
  • 记一句:
  • Prompt 管规则,Context 管材料

7. Harness

  • Harness 是执行控制系统
  • 它不等于提示词增强
  • 它负责:
  • 工具选择
  • 步骤编排
  • 状态持久化
  • 权限校验
  • 结果回查
  • 失败恢复
  • 人工确认
  • 项目里高风险操作不能只靠模型一句话决定
  • 必须由 Harness 做控制

8. Agent Loop

  • Agent Loop 常见结构:
  • Decide
  • Act
  • Observe
  • Decide:判断下一步做什么
  • Act:调用工具或检索
  • Observe:读取执行结果
  • 风险:
  • 工具循环调用
  • 重复执行
  • 越权调用
  • 幻觉参数
  • 所以要加:
  • 最大轮次
  • 工具白名单
  • 参数校验
  • 签名检测
  • fallback

9. Tool Calling 是什么

  • Tool Calling 是模型调用外部能力的机制
  • 模型不直接改数据库
  • 模型只生成工具调用意图和参数
  • 后端工具执行器负责真正执行
  • 工具调用链路:
  • 识别意图
  • 选择工具
  • 生成参数
  • 参数校验
  • 执行业务方法
  • 返回观察结果
  • 模型基于结果继续回答

10. Tool Calling 和普通接口调用区别

  • 普通接口调用是程序确定调用哪个接口
  • Tool Calling 是模型参与选择工具和生成参数
  • 所以风险更高
  • 必须加控制:
  • 工具白名单
  • 参数校验
  • 权限校验
  • 状态机校验
  • 幂等控制
  • 结果回查
  • 审计日志

11. 工具白名单

  • 工具白名单控制模型能调用哪些工具
  • 不同意图开放不同工具
  • 比如购物车意图只开放购物车相关工具
  • 订单查询意图只开放订单查询工具
  • 高风险操作单独控制
  • 好处:
  • 降低误调用
  • 降低越权调用
  • 降低工具搜索空间
  • 提升模型调用稳定性

12. 工具签名检测

  • 工具签名 = toolName + normalizedArgs
  • 作用是发现重复调用
  • 如果同一个工具带同一批参数反复调用
  • 可能说明模型陷入循环
  • 处理方式:
  • 阻断
  • 返回已有结果
  • fallback
  • 转人工
  • 项目口径:
  • 签名检测是为了防止模型重复执行同一个动作

13. 最大轮次限制

  • Agent Loop 不能无限跑
  • 最大轮次限制用于防止死循环
  • 超过阈值后:
  • 停止继续调用工具
  • 返回降级提示
  • 或转人工
  • 面试口径:
  • 生产系统不能让模型无限试错,要有预算和熔断

14. 记忆系统

  • 记忆不是简单保存聊天记录
  • 记忆是结构化的用户事实
  • 比如:
  • 口味偏好
  • 饮食限制
  • 常用地址
  • 历史偏好
  • 常见流程:
  • 对话结束后异步提取
  • LLM 生成结构化事实
  • 置信度过滤
  • 持久化
  • 下次按意图注入

15. 记忆注入粒度

  • 不是所有记忆都要每次注入
  • 注入太多会污染上下文
  • 常见策略:
  • 全量注入
  • 摘要注入
  • 不注入
  • 按意图选择粒度
  • 记一句:
  • 记忆系统的难点不是存,而是什么时候取、取多少、能不能信

16. 记忆和 RAG 区别

  • 记忆是用户个性化事实
  • RAG 是公共知识库证据
  • 记忆回答:
  • 用户喜欢什么
  • 用户常用什么
  • 用户有什么限制
  • RAG 回答:
  • 规则是什么
  • 政策怎么写
  • 文档依据是什么
  • 项目里两者要分区注入
  • 防止用户偏好污染业务规则

17. 多步任务编排

  • 多步任务用于处理复合请求
  • 比如:
  • 先查订单
  • 再判断状态
  • 再确认风险
  • 最后执行取消或退款
  • 不能让模型一次性直接执行到底
  • 要拆成步骤
  • 每一步有输入、输出、状态
  • 高风险步骤要暂停确认

18. 执行状态持久化

  • 多步任务需要保存执行状态
  • 否则确认后无法恢复
  • 常见状态:
  • 当前步骤
  • 下一步索引
  • 等待确认的步骤
  • 每步输出
  • 超时时间
  • 你的项目口径:
  • 用 Redis 保存任务执行状态,支持确认挂起和恢复执行

19. 确认挂起和恢复执行

  • 高风险动作不能直接执行
  • 比如取消订单、退款
  • 流程:
  • Agent 先生成计划
  • 执行到高风险步骤时挂起
  • 返回影响范围
  • 用户确认
  • 后端根据保存的状态恢复执行
  • 用户拒绝或超时则终止
  • 记一句:
  • 确认不是问一句,而是状态机暂停和恢复

20. 安全治理

  • 安全治理不是一句“加权限”
  • 要落到链路:
  • 工具白名单
  • 参数校验
  • 权限校验
  • 订单状态机校验
  • 幂等控制
  • 结果回查
  • 审计日志
  • 人工确认
  • fallback
  • 熔断
  • 生产口径:
  • 模型只能建议和发起调用,最终约束在后端业务规则里

21. 幂等和结果回查

  • 模型可能重复调用工具
  • 网络也可能重试
  • 所以高风险动作要幂等
  • 常见手段:
  • 唯一约束
  • 幂等 key
  • 状态机判断
  • 条件更新
  • 执行后回查数据库真实状态
  • 记一句:
  • 不要只相信模型返回成功,要看数据库最终状态

22. HTTP + WebSocket 双通道限流

  • AI 客服既有 HTTP 接口
  • 也可能有 WebSocket 对话通道
  • 两个入口都要限流
  • HTTP 限流:
  • 适合用 AOP 拦截接口方法
  • 进入业务逻辑前先判断频率
  • 超限直接返回统一错误响应
  • WebSocket 限流:
  • 适合在消息入口判断
  • 每条用户消息都要计数
  • 超限返回提示或关闭连接
  • 为什么用 Redisson:
  • 项目可能多实例部署
  • 单机内存计数只能限制一个节点
  • Redis 可以做分布式共享计数
  • 滑动窗口比固定窗口更平滑
  • key 设计:
  • HTTP:rate:http:{userId}:{uri}
  • WebSocket:rate:ws:{userId}:{sessionId}
  • 也可以按 IP、租户、接口场景扩展
  • 面试口径:
  • HTTP 限流拦接口,WebSocket 限流拦消息,Redisson 滑动窗口保证多实例下计数一致

23. RAG、Tool、Memory 怎么协作

  • RAG 负责查公共知识
  • Tool Calling 负责执行业务动作
  • Memory 负责用户个性化事实
  • Advisor 链负责把它们组织起来
  • Harness 负责控制执行边界
  • 项目口径:
  • 知识型问题走 RAG
  • 操作型问题走 Tool
  • 个性化问题结合 Memory
  • 高风险动作走确认和状态机

24. 常见面试追问

  • 为什么不直接让模型调所有工具?
  • 因为工具越多,误调用风险越高
  • 为什么需要最大轮次?
  • 因为 Agent Loop 可能死循环
  • 为什么状态要持久化?
  • 因为确认挂起后要恢复执行
  • 为什么记忆要置信度过滤?
  • 因为低质量记忆会污染后续回答
  • 为什么高风险操作要人工确认?
  • 因为模型不能替用户做不可逆决策

25. 项目高分口径

  • 我的项目不是简单接入大模型聊天
  • 而是把 AI 客服做成一个后端可控执行系统
  • Spring AI Advisor 链负责上下文、记忆、RAG、工具过滤和安全校验
  • Tool Calling 负责把模型意图转成受控业务操作
  • 多步任务编排负责复杂请求的拆解和顺序执行
  • Redis 负责保存任务执行状态
  • 高风险步骤支持确认挂起和恢复
  • 工具白名单、签名检测、最大轮次限制负责降低误调用和循环调用风险
  • HTTP + WebSocket 双通道限流负责控制模型入口流量
  • 最终由权限、状态机、幂等和数据库结果回查兜底

26. 面试一句话总结

  • Spring AI 提供模型、Advisor、工具、记忆这些抽象
  • Agent 的核心不是会聊天,而是能被后端稳定控制
  • Advisor 链控制模型看到什么,Tool Calling 控制模型能做什么
  • Memory 管个性化事实,RAG 管公共知识证据
  • HTTP 和 WebSocket 都要限流,避免模型入口被高频请求打穿
  • 高风险动作必须经过确认、状态机、幂等和结果回查

相关链接:[[AI Agent 核心概念]] | [[Spring AI Advisor 链]] | [[Spring AI Tool Calling]] | [[AI Agent 记忆系统]] | [[Spring AI 与 RAG 集成]] | [[Spring AI 安全治理]] | [[苍穹外卖AI客服]]