Appearance
意图路由(Scene):AI 也讲究「看人下菜碟」
在 Agent 运行时中的位置:用户消息过安检之后,第一站分诊。
主线 → Agent 运行时 · 第 3 站
先搞清楚:意图路由是什么?(纯概念)
想象你去医院看病。你走到前台,护士问你:「你怎么了?」
- 你说「感冒了,开点药」——护士直接给你挂普通内科,不用惊动专家。
- 你说「胸口疼了好几天」——护士二话不说把你推到急诊。
意图路由(Intent Routing / Scene),就是 AI 系统里的那个分诊护士。
专业一点的讲法:
意图路由是对话系统里的一道前置判断层。用户消息进来,系统先猜你要干什么(意图识别),然后根据猜到的意图决定走哪条路(路由)。
举个例子,假如你做了一个电商客服机器人:
| 用户说的话 | 意图 | 怎么处理 |
|---|---|---|
| 「我的订单到哪了」 | 查物流 | 直接调物流接口,秒回 |
| 「这个能退货吗」 | 退货咨询 | 调退货政策 KB + 给出流程 |
| 「你们家东西比隔壁贵啊,我觉得不太值,但朋友推荐说……(500字)」 | 复杂闲聊 | 交给大模型慢慢聊 |
意图路由的核心价值就一句话:能省的地方绝对不浪费,该认真的时候绝不敷衍。
它不是大模型(LLM)的替代品,而是大模型的守门员——把简单的、重复的问题挡在外面,让大模型只处理它真正擅长的事。
那在晨悦里,它是怎么玩的?(通俗理解)
晨悦平台定位是帮你快速搭一个能用的 AI 智能体。但搭出来之后呢?你得考虑成本和体验。
晨悦里的典型场景:
你做了一个「母婴小助手·小悦」,用户每天问:
- 「今天有优惠券吗?」——每天被问 50 遍
- 「宝宝清单在哪?」——每天被问 80 遍
- 「6 个月宝宝能吃什么?」——每天被问 30 遍
如果你每次收到消息都丢给智谱 GLM-4(按 token 计费),你的账单会很刺激。
晨悦的 Scene 就是来解决这个的:把这些高频问题的标准答案提前写好,用户问到了直接回,根本不用惊动大模型。
用户问「有优惠券吗」
→ Scene 一看:哦,这是「查优惠券」意图,命中率 99%
→ 直接回复写好的话术「今天有满 100 减 20 的券哦~」
→ 对话结束,大模型摸鱼,老板省钱一句话总结晨悦里的 Scene:
把你知道用户一定会问的问题,提前准备好标准答案。问到了就别让大模型插手,又快又省钱。
Coze / Dify 也有类似的「快捷回复」「开场白」,但晨悦把 Scene 做成了和整个运行时深度集成的一级模块——这也就是为什么面试的时候讲 Scene,面试官会眼前一亮。
三层架构:从快到慢,逐级兜底
Scene 不是一刀切的「命中 or 不命中」,而是分了三个层级,越往后 AI 参与越深:
Layer1 — 本地直出(0 token,毫秒级)
匹配到预设意图 + 高置信度 → 直接返回写好的话术 → 对话结束。
响应里会带 scene_local_reply: true。
就像护士看了一眼说「感冒,去那边开药」,全程没叫医生。
Layer2 — Hint 增强(少量 token)
匹配到了意图,但没有固定文案(可能有好几种答法)→ 把「用户可能想问什么」写成 hint 塞进 Prompt,让 LLM 在给定的方向里回答。
就像护士跟医生说「这个病人可能着凉了」,医生心里有数就开得准。
晨悦里怎么配?
- 在
app/scenes/{场景}/目录下定义intents+presets.json - 用
scripts/seed_*_scene.py写入数据库(参考seed_food_scene.py) - 在 Agent 管理后台打开
scene_enabled开关
哪些 Agent 适合用 Scene?
| Agent | Scene 重视程度 | 原因 |
|---|---|---|
| 母婴小悦 | ⭐⭐⭐ 核心 | 领券、清单、设阶段……都是高频固定问题,Layer1 命中率极高,降本核心 |
| AgentPM | ⭐ 轻量 | 主靠 KB + Workflow 处理复杂需求,Scene 只做了基础兜底 |
| 其他场景 | ⭐⭐ 推荐 | 只要问答范式固定、高频问题超过 5 个,就值得用 |
5 分钟动手
- 打开 flow-admin → 场景 列表
- 找一个已开启 Scene 的 Agent(比如母婴小悦)
- 发送一条能命中 Layer1 的句子(比如「有优惠券吗」)
- 打开浏览器 Network,查看响应里是否有
scene_local_reply: true
→ 更多实操:动手实验 0
思维导图
相关文档
- Agent 运行时 — Scene 在完整链路中的位置
- Agent Skills — 预设意图和能力体系
- 场景孵化 §2 — 不同场景的 Scene 配置策略