本课目标
把前九讲组装成一个能自主规划、多步执行的 Agent,并补齐生产化所需的观测与治理。
你问模型"今天天气怎么样",它回答。这是对话。
你问模型"帮我调研三家竞品的定价策略并输出报告",它自己做规划、调搜索工具、对比数据、生成报告——这是 Agent。
区别不在于模型本身,在于你给它装了工具、给了预算、搭了循环。前九讲学的是零件,本讲教你把零件装成一台能跑的机器。最后,告诉你这台机器推到生产线上还需要加什么。
核心内容
Agent 的本质:一个有目的的循环
单轮问答 + 工具调用已经能解决很多问题。但真正的 Agent 多了一步:自己拆解任务。用户不需要说"先搜 A、再搜 B、然后对比"——Agent 自己决定先做什么、做到什么程度算完。
核心循环(ReAct 简化版):
while (steps < MAX_STEPS) {
ChatResponse response = chatClient.prompt()
.system(SYSTEM + "可用工具见下,逐步完成任务,完成时输出 FINAL:")
.messages(history)
.tools(allTools)
.call().chatResponse();
if (hasToolCalls(response)) {
history.addAll(executeAndCollect(response));
steps++;
} else {
return extractFinal(response);
}
}
好消息:Spring AI 的 ChatClient 内部已经实现了这个循环(默认最多 10 跳)。多数场景下你不需要手写循环。手写循环的价值在于控制:自定义终止条件、步骤预算、中间状态观测。
多模型路由:好钢用在刀刃上
Agent 不一定要全程用最贵的模型。任务规划、多步推理——旗舰模型。工具结果摘要、用户回复润色——小模型。通过多个 ChatModel Bean 按场景注入,成本能降一个数量级。
这不是"抠门",是工程的基本素养——把资源放在对质量影响最大的环节上。
上生产前必查的六项
以下都是灵枢 OS 落地过程中真踩过的坑,排名分先后:
- 步骤预算:
MAX_STEPS硬上限。没有预算的 Agent 是一个没有刹车的高速列车——迟早把 token 额度烧光。 - 可观测:每次模型调用、每次工具执行都记 trace,串联成完整轨迹。出问题时唯一能救你的就是日志。在 Advisor 层统一实现。
- 超时与降级:单步超时 30s、整体任务超时 5min、模型故障自动切换备用。用户不会等你调完 Bug。
- 成本核算:按租户/会话统计 token 消耗。一个失控的循环一晚能烧掉几千块。
- 人工介入点:付费操作、数据变更——Agent 挂起等确认,不要让它自己拍板。
- 评估回归:留 20 条关键场景的测试集,每次改提示词或换模型后必跑。没有评估的 Agent 迭代是在蒙眼开车。
回顾十讲:你搭了什么
对话 → 提示词 → 结构化 → 工具 → 记忆 → RAG → 流式 → Advisor → 多模态 → 自主循环。
每一层都是下一层的基础。从一行 chatClient.prompt().call().content() 开始,到一台能自主规划、多步推理、有观测体系的 Agent 结束。框架帮你跑通循环,工程能力决定它能不能上生产。
AI 应用 = 10% 的 Prompt 设计 + 30% 的工程架构 + 60% 的评估与迭代。别把 90% 的时间花在那 10% 上。
动手练习
- 手写一个 ReAct 循环,完成"查三个城市的天气并给出穿衣建议"
- 给循环加上步骤预算限制(最多 5 步)和 trace 日志,观察 Agent 的决策轨迹