Appearance
智能问数
智能问数通过 smart-query 技能,让智能体在已授权的列表菜单上下文中做只读查询与统计。走 DataView 模板查询通道,继承菜单权限与行级筛选;不是靠智能引擎单独编排一条「问数流程」来交付。
原理
| 环节 | 说明 |
|---|---|
| 技能规程 | smart-query 约束智能体只能走授权列表与模板查询工具 |
| 菜单权限 | 只能问当前用户有权限、且 template_type=1 的列表菜单 |
| 查询通道 | 通过 query_template_table_data 执行,与列表页同一套筛选 |
| 安全边界 | 禁止旁路 sql_exec 直接查业务库 |
智能体先弄清「问哪个菜单、用哪些筛选 key」,再发起模板查询,最后把结果归纳成自然语言回复。
怎么用
1. 准备技能
- 进入 人工智能 → 技能管理,确认已存在并启用技能
smart-query(名称/编码以库中为准)。 - 技能的
instruction约定:先取菜单 → 取模板上下文 → 再查询;筛选 key 必须来自table_searches[].query_key,禁止猜测。
2. 挂到智能体
- 在 智能引擎 中维护一条供 AI 助手使用的智能体工作流(或复用已有助手流程)。
- 在智能体节点勾选
smart-query技能,并勾选问数所需的 MCP 工具(与技能正文一致):get_current_user_menuget_template_context_min_by_menu_idquery_template_table_data
- 保存后在 AI 助手 或业务入口挂上该流程。
3. 用户提问
用户对助手说:「客户列表里姓张的有多少」「本月新增订单明细」等。智能体按技能规程选菜单、组 filters、查数并回答。
4. 验收
在同一菜单的 DataView 里用相同条件手工筛选,核对数量与明细是否一致。
标准流程(技能约定)
get_current_user_menu— 列出可问数菜单。- 选定
menu_id(按标题匹配;多个时向用户确认)。 get_template_context_min_by_menu_id— 取template_table_id、搜索项query_key、列与左树/多 Tab 信息。query_template_table_data— 传template_table_id、filters;分页传page_number/page_size。
关键规则
- 禁止猜测
template_table_id或 filters 的 key。 - 左树筛选、多 Tab、日期范围、多选等写法以模板上下文为准。
- 策略拒绝或无菜单权限时可能返回空或 401/403。
- 增删改业务行不在问数范围,须走表单数据变更等受控能力。
常见问题
- 结果为空:无菜单权限、行级策略拒绝,或筛选 key 写错。
- 与 Text2SQL 节点混淆:Text2SQL 是流程编排里的节点类型;业务侧问数应优先走
smart-query技能 + 授权列表通道。 - 节点选不到技能:检查技能是否启用,智能体节点是否已勾选。
