意图分类系统(Intent Gate)
意图分类系统(Intent Gate)
什么是意图分类
意图分类(Intent Gate)是一种在 AI Agent 执行任何操作之前,先对用户请求进行真实意图识别的设计模式。它回答的核心问题不是「用户说了什么」,而是「用户真正想让我做什么」。
为什么需要:用户的自然语言请求往往存在表层形式与真实意图的不匹配。例如:
- 「这个函数返回 null」表面是陈述,真实意图可能是请求调试帮助
- 「把按钮改成蓝色」表面是修改请求,但可能涉及更深层的设计问题
- 「有没有更好的方案」表面是提问,真实意图可能是请求架构咨询
不进行意图分类直接行动,是 Agent 系统中最常见的失败模式之一。
意图类型
实践中常见的意图类型包括:
| 意图类型 | 用户行为 | Agent 策略 |
|---|---|---|
| research(研究) | 了解代码、寻找模式、分析架构 | 只读操作,不修改代码 |
| implementation(实现) | 添加功能、修改代码、创建文件 | 读写操作,需要验证 |
| investigation(调查) | 调试问题、查找 bug、分析错误 | 诊断性操作,多步骤 |
| fix(修复) | 修复已知问题、消除警告 | 精确修改,最小变更 |
实现模式
模式一:系统提示内嵌
最常见且开销最低的方式——将意图分类指令内嵌在系统提示中,要求 Agent 在每次回复前明确声明意图分类。
## Phase 0 - Intent Gate (apply to EVERY message)
Before classifying the task, identify what the user actually wants.Map the surface form to the true intent, then announce your routing decision.优点:零额外延迟、无独立组件、与 Agent 决策融为一体 缺点:依赖模型遵循指令的能力,不同模型家族表现差异大
模式二:独立分类组件
将意图分类作为独立的第一步,在 Agent 循环之外运行。
用户请求 → [IntentGate] → 分类结果 → Agent 循环(带分类上下文)优点:可独立验证和测试、分类逻辑可与 Agent 模型解耦 缺点:增加一次额外调用和延迟、上下文传递增加 token 消耗
模式三:Hook 驱动的意图监控
通过生命周期 Hook 持续监控意图是否与当前行为一致,发现偏差时触发重新分类。
意图分类与 Category 路由的区别
这是两个不同层次的决策:
| 维度 | Intent Gate | Category 路由 |
|---|---|---|
| 决策内容 | 「做什么类型的工作」 | 「用哪个模型做」 |
| 触发时机 | 每条消息 | 每次委托/任务 |
| 输出 | research/implementation/investigation/fix | visual-engineering/ultrabrain/deep/quick 等 |
| 关系 | 意图分类 影响 Category 选择 | Category 决定模型/温度/提示词 |
协作流程:
用户请求 → IntentGate 分类意图 → Agent 根据意图选择策略 → 委托任务时指定 Category → 路由到具体模型陷阱与规避
陷阱 1:意图漂移
问题:Agent 在对话中自动携带上一轮的意图分类,即使用户已提出新的请求。
规避:在系统提示中明确约束:
Reclassify intent from CURRENT message ONLY. NEVER auto-carry intent from prior turns.
陷阱 2:过度分类
问题:意图类型过多(10+ 种),Agent 难以准确区分相邻类型。
规避:保持意图类型精简(4-6 种),用明确的行为差异区分,而非语义差异。
陷阱 3:分类错误的级联效应
问题:错误意图导致错误工具选择 → 错误操作 → 用户不满。例如将「研究」分类为「实现」后直接修改代码。
规避:
- 研究类意图严格限制只读工具
- 实现类意图强制先创建 todo 列表
- 提供意图确认机制,对高风险操作显式确认
与多模型环境的集成
在多模型编排系统中,意图分类直接影响模型选择:
- 研究/调查:可选择成本较低的模型(阅读和分析不需要最高推理能力)
- 实现/修复:需要最强的代码理解和生成能力
- 架构咨询:需要深度推理能力
意图分类为多模型路由提供了第一层决策信号,Category 系统在此基础上细化。