网页指引 Skill 需求梳理文档
版本:v2.0(经 brainstorming/grilling 拷问后修订)| 日期:2026-09-07 | 状态:七项决策已与用户逐条确认
1. 背景与目标
矿井一通三防智能管控平台(通防管控平台)内嵌了智能助手(顶栏机器人图标,聊天面板形态)。平台页面多、层级深,用户记不住入口。需要一个"网页指引"skill,让用户用自然语言即可:
- 快速直达:说"帮我打开风门监测页面"→ 返回该页可点击链接 + 功能简介;
- 全局地图:说"给我网页地图"→ 聊天内输出全部页面树状地图,按需访问;
- 换环境不换脑子:部署地址变化时说"将网址换成 XXX"→ 所有链接前缀随之更换;
- 会用页面:说"风门怎么远程开"→ 给出页面内分步操作指引。
总目标:把"找页面"从 3-5 次点击/检索降为 1 句话,把"学页面"从摸索降为一问。
2. 实机验证事实(2026-09-07,182 演示环境,lizuo 测试账号)
| 事实 |
影响 |
| 智能助手面板支持 Markdown 蓝色可点击链接 |
链接直达方案可行 ✅ |
| 点链接后:AI 面板自动关闭 + 当前窗口路由跳转 |
链接即跳转,无需额外交互 ✅ |
| 现有实现给出的"风门监测与控制"链接点击后跳到了首页模型页而非风门页 |
现有实现链接指向有误 → 本 skill 替换它 |
| 现有回答格式已是"【页面名】+功能简介+🔗立即打开",且快捷 chips 预置了"帮我打开风门监测页面" |
导航是智能助手预设场景,本次是固化+补全+纠错 |
| 智能助手每日配额 10 次 |
页面地图等一次回答要尽量全量,避免多次追问 |
| 权限外路由统一 404,无法区分"不存在/无权限" |
权限需前置过滤(动态感知) |
| 21 页详测 + 26 页路由模式验证 + 4 页 404 |
数据来源可靠,详见《通防平台页面学习记忆.md》 |
3. 已确认决策(与用户逐条对齐,共九项)
| # |
决策点 |
结论 |
| D1 |
与平台现有实现关系 |
替换:本 skill 成为智能助手网页指引能力的唯一权威源 |
| D2 |
智能体架构 |
有工具调用(function calling):skill 主形态为"数据文件+工具封装",prompt 注入为降级方案 |
| D3 |
换前缀作用域 |
全局持久化:工具写后端配置,所有用户所有会话生效,带变更历史 |
| D4 |
权限感知 |
按账号动态感知:运行时调平台菜单/权限接口,按当前用户过滤页面 |
| D5 |
网页地图形态 |
聊天内树状图(通用性优先,不做平台弹窗) |
| D6 |
能力边界 |
指路 + 操作指引("怎么操作"给页面内步骤;21 个实测页有素材) |
| D7 |
清单维护 |
人工维护 pages.yaml + 运行时动态权限过滤(不做自动同步脚本) |
| D8 |
交付位置 |
仅工作区 D:\ZCodeWorkspaces\web-nav-guide\,不装用户级目录 |
| D9 |
数据格式 |
YAML(人工维护)+ JSON(机器读取)双份,维护时改 YAML 后重新生成 JSON |
4. 功能需求
F1 模糊页面导航(单页直达)【核心】
- 触发:"打开/进入/跳转/带我去/看一下 + 页面/系统/页面名",如"帮我打开风门监测页面""打开风门操控""我要看主扇数据"。
- 匹配策略(优先级):①
name 精确 → ② aliases 精确(主扇/局扇/甲烷等口语词)→ ③ name/aliases/keywords 包含匹配 → ④ 分类名命中(转 F2 按类输出)。
- 权限前置:匹配结果先按当前用户可见菜单(D4)过滤;不可见=未找到。
- 输出:页面名 + 一句话简介 + 完整可点击链接。
- 歧义:多候选并列时列前 3(简介+链接)供选择,不猜。
- 未找到:"未找到此页面" + 最相近 3 个候选(权限过滤后)。
- 设备类页面:path 已内置默认设备实例 ID,只说设备类型即可直达。
F2 网页地图(树状全量导航)【核心】
- 触发:"网页地图/页面地图/都有哪些页面/平台功能一览/只看XX类页面"。
- 输出:分类→子类→页面三级树,每页一句话简介+链接;标注当前部署地址;支持按大类筛选。
- 全量输出(权限过滤后的全量),不省略条目——每日配额有限,一次给全。
F3 部署前缀切换【核心】
- 触发:"将网址换成 XXX / 把前缀改为 XXX / 切换部署地址"。
- 校验:
http(s)://host[:port];只有 host:port 时自动补 http:// 并告知;去尾斜杠;非法格式向用户确认。
- 持久化(D3):调
set_base_url 工具写后端配置 + 追加 history;确认后用示例链接验证展示。
- 降级:无工具环境仅会话内生效,明确告知"仅本会话有效"。
F4 权限与不可见页面(D4 动态感知)
- 页面注册表每页带
menu_key,与平台菜单/权限接口返回对齐;
- 所有输出(F1/F2/F6)先按当前用户可见 menu_key 集合过滤;
- 用户执意要未开通页面 → "该页面您当前无权访问或未开通,请联系管理员"。
F5 通用性(跨智能体架构,D2/D9)
- 主形态:数据文件(pages.yaml/pages.json + config)+ 4 个工具封装(query_page / get_page_map / set_base_url / get_visible_menus);
- 降级形态:SKILL.md 指令 + 数据可直接注入系统提示词;
- 兼容 Agentskills 目录规范(ZCode/Claude Code 直接挂载);
- 数据与逻辑分离,维护只动 YAML。
F6 页面操作指引【新增,D6】
- 触发:"XX怎么操作/怎么远程开风门/怎么一键测风/XX页面怎么用"。
- 输出:页面链接 + 分步操作步骤(来自注册表
usage 字段)。
- 素材边界:21 个实测页有完整步骤;未实测页 usage 标"待补充",回答时如实说明并给链接。
5. 非功能需求
| 编号 |
要求 |
| N1 |
页面数据集中在 pages.yaml,运维人员无需懂代码即可增删改 |
| N2 |
所有输出链接完整可点击(base_url+path 拼接,无双斜杠) |
| N3 |
全中文;简介每页 ≤60 字;操作指引分步、每步一句 |
| N4 |
换矿部署:改 base_url + 换设备实例 ID + 对齐 menu_key 即可 |
| N5 |
不采集不上传用户数据;skill 只读平台路由知识 |
6. 交付物清单
vent-web-nav/
├── SKILL.md # 技能定义:工具调用主路径 + prompt注入降级 + 意图A-F
├── config.yaml # 部署前缀(base_url + 变更历史;工具或人工写入)
├── references/
│ ├── pages.yaml # 页面注册表(84页:别名/关键词/menu_key/路径/简介/操作指引)
│ ├── pages.json # 由 pages.yaml 生成,机器读取
│ ├── build_pages.py # 校验+生成脚本
│ ├── sync_pages.py # 新功能发布后菜单差集同步
│ ├── query.py # 命令行匹配测试
│ └── simulate_output.py # 输出效果模拟
├── ADAPTATION.md # 三种架构接入指南 + 维护手册
├── GUIDE.md # 使用与维护手册
└── REQUIREMENTS.md # 本文档
7. 边界与开放问题
- 角色管理与用户管理在 docx 中共用同一 URL,暂按同址录入并注明,待管理员账号核实;
- 设备实例 ID 与矿井/模型绑定,换矿需重新录入(维护流程见 ADAPTATION.md);
- menu_key 命名约定是本 skill 假设,接入时需与平台菜单接口实际返回对齐(对齐方法见 ADAPTATION.md);
- 404 无法区分"不存在/无权限",统一按"未找到或无权限"话术;动态权限过滤上线后该场景大幅减少;
- 平台智能助手每日 10 次配额属于平台侧配置,与本 skill 无关。
8. 验收场景(交付时逐项演示)
| # |
输入 |
期望输出 |
| A1 |
帮我打开风门监测页面 |
【风门监测与控制】+简介+正确链接(指向 monitor-gate 而非首页) |
| A2 |
给我网页地图(瓦斯类) |
瓦斯类 5 页树状图+链接 |
| A3 |
将网址换成 http://10.120.3.15:8092 |
校验+持久化+示例链接确认 |
| A4 |
风门怎么远程开 |
风门页链接+分步操作(远程模式→开门按钮→操作历史) |