Skip to content

智能问数 ​

智能问数通过 smart-query 技能,让智能体在已授权的列表菜单上下文中做只读查询与统计。走 DataView 模板查询通道,继承菜单权限与行级筛选;不是靠智能引擎单独编排一条「问数流程」来交付。

原理 ​

环节说明
技能规程smart-query 约束智能体只能走授权列表与模板查询工具
菜单权限只能问当前用户有权限、且 template_type=1 的列表菜单
查询通道通过 query_template_table_data 执行,与列表页同一套筛选
安全边界禁止旁路 sql_exec 直接查业务库

智能体先弄清「问哪个菜单、用哪些筛选 key」,再发起模板查询,最后把结果归纳成自然语言回复。

怎么用 ​

1. 准备技能 ​

  1. 进入 人工智能 → 技能管理,确认已存在并启用技能 smart-query(名称/编码以库中为准)。
  2. 技能的 instruction 约定:先取菜单 → 取模板上下文 → 再查询;筛选 key 必须来自 table_searches[].query_key,禁止猜测。

2. 挂到智能体 ​

  1. 在 智能引擎 中维护一条供 AI 助手使用的智能体工作流(或复用已有助手流程)。
  2. 在智能体节点勾选 smart-query 技能,并勾选问数所需的 MCP 工具(与技能正文一致):
    • get_current_user_menu
    • get_template_context_min_by_menu_id
    • query_template_table_data
  3. 保存后在 AI 助手 或业务入口挂上该流程。

3. 用户提问 ​

用户对助手说:「客户列表里姓张的有多少」「本月新增订单明细」等。智能体按技能规程选菜单、组 filters、查数并回答。

4. 验收 ​

在同一菜单的 DataView 里用相同条件手工筛选,核对数量与明细是否一致。

标准流程(技能约定) ​

  1. get_current_user_menu — 列出可问数菜单。
  2. 选定 menu_id(按标题匹配;多个时向用户确认)。
  3. get_template_context_min_by_menu_id — 取 template_table_id、搜索项 query_key、列与左树/多 Tab 信息。
  4. 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 技能 + 授权列表通道。
  • 节点选不到技能:检查技能是否启用,智能体节点是否已勾选。

相关文档 ​

白泽 ProCode 开发者文档