4.4 意图路由

意图路由(Intent Routing)负责分析用户意图,将请求分流到最合适的处理模块。

4.4.1 意图分类原理

意图分类有三种主要方法:

方法 原理 优点 缺点 适用场景
规则匹配 关键词/正则匹配 简单快速、完全可控 难以处理同义词 意图边界清晰
语义相似度 向量相似度计算 处理同义表达 需要嵌入模型 表达多样化
LLM 分类 大模型理解 最灵活准确 成本较高 复杂模糊场景

规则匹配示例

规则配置:

账户查询意图:
  关键词:余额、账户、存款、查询余额

转账意图:
  关键词:转账、汇款、转钱、付款

贷款意图:
  关键词:贷款、借款、利率、还款

LLM 分类提示词

你是一个金融领域的意图分类专家。请分析用户输入,识别其主要意图。

可选意图类别:
- account_inquiry: 账户查询(余额、交易记录)
- transfer: 转账汇款
- investment: 投资理财咨询
- complaint: 投诉反馈
- general: 一般性咨询

用户输入:{query}

请返回 JSON 格式:
{"intent": "意图类别", "confidence": 0.0-1.0}

4.4.2 条件分流设计

简单的路由只需要单层分类,复杂系统可能需要多层级架构:

单层路由(意图类别少、边界清晰):

用户输入 → 路由器 → 目标处理器
                ├→ 账户服务处理器
                ├→ 转账处理器
                ├→ 贷款处理器
                └→ 默认处理器

多层级路由(复杂系统):

用户输入 → 一级路由(领域分类)
              ├→ 金融服务 → 二级路由
              │              ├→ 账户服务
              │              ├→ 贷款服务
              │              └→ 投资服务
              ├→ 技术支持 → 二级路由
              │              ├→ 账号问题
              │              └→ 系统故障
              └→ 通用咨询 → 默认处理器

多层级路由的优点:

  • 每层分类任务更简单,准确率更高
  • 便于独立维护和扩展
  • 可以对不同层使用不同的分类方法

条件分支路由

除了意图,还可以根据其他条件动态选择路由:

条件类型 示例 路由决策
用户等级 VIP 用户 优先路由到高级服务
情感倾向 负面情绪 路由到投诉处理或人工
任务复杂度 复杂问题 使用高性能模型

4.4.3 Skill description 触发机制

在 Opencode 中,Skill 通过 description 字段与用户意图进行语义匹配,实现自动触发。

Skill 定义示例

---
name: financial-analysis
description: |
  财务报表分析技能。当用户提到以下内容时使用:
  - 财务分析、财报分析、年报解读
  - 财务指标、财务比率
  - 盈利能力、偿债能力、运营效率
---

# 财务分析技能

## 核心能力
- 财务报表分析(三大报表)
- 财务指标计算和解读
- 行业对比分析

## 分析框架
[具体的分析方法...]

description 撰写要点

  1. 关键词覆盖:列举各种可能的触发表达
  2. 正向说明:说明什么情况应该触发
  3. 反向说明:说明什么情况不应该触发
description: |
  财务报表分析技能。

  应该触发的情况:
  - 分析公司财报、解读年报、季报
  - 计算财务指标、财务比率

  不应该触发的情况:
  - 股票买卖建议 → 使用投资咨询技能
  - 宏观经济分析 → 使用经济分析技能

4.4.4 多级路由架构

复杂的金融智能体系统通常需要多级路由。以金融问答为例:

一级意图分类体系

意图类别 描述 示例表达
账户服务 账户相关查询和操作 查余额、开户、销户
转账汇款 资金转移操作 转账、汇款、收款
理财投资 投资理财咨询 基金推荐、收益查询
政策解读 政策影响分析 降息影响、监管变化

置信度阈值处理

置信度范围 处理策略
>= 0.8 高置信度:直接路由到目标模块
0.5 - 0.8 中置信度:确认后执行或选择性路由
< 0.5 低置信度:请求用户澄清

澄清请求示例

我不太确定您的需求,请问您是想:
1. 查询账户信息
2. 办理转账
3. 咨询理财产品
4. 其他服务

请输入数字选择或重新描述您的问题。