mirror of
https://github.com/kuaifan/dootask.git
synced 2026-07-02 04:15:05 +00:00
「带我去」分步引导(driver.js + 四级元素定位 + show_guide)定位不稳、 二级菜单不可达、点高亮按钮触发跳转即被杀,体验差。改为 AI 回复正文里把 可定位的页面/面板渲染成可点深链 chip,点击直达那一屏。 - 新增深链目录:_meta/page-links.yaml(语义,供 AI 选择)+ deep-links.js (可执行映射,21 个无需运行时 id 的导航目的地),两端 id 一致性由 tests/deep-links-parity.mjs 校验 - markdown.js 加 processDeepLinks:[文字](dootask://link/<id>) 合法 id → chip,非法 id → 纯文字(绝不渲染死链);复用现有 dootask:// 点击拦截链路 - DialogMarkdown 加 link 分支调 openDeepLink;system.vue 支持 query.tab 初始化,系统设置二级 Tab 可深链直达 - 彻底移除 driver.js 引导:删 guide-renderer.js/guide.css、show_guide 前端通道、aiGuideStarted 监听、driver.js 依赖 - 同步 ai-kb:改写 guide/start-guide 两 chunk、tool-binding 去 show_guide - 插件侧 prompt 改动规格见 docs/ai-deeplink-plugin-spec.md(独立仓库实施) Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2.6 KiB
2.6 KiB
AI 内联深链 · 插件侧改动规格(dootask-ai,独立仓库)
本仓库(主程序)已完成:深链目录、前端渲染/执行、移除 driver.js 引导。 本文是配套的 AI 插件仓库 改动规格——只有插件侧改完,AI 才会真正在回复里输出深链。 在插件改动落地前,主程序侧深链链路可用
window.__openDeepLink('setting_system')或手工构造回复文本验证。
背景
原「带我去」分步引导(driver.js + show_guide MCP 工具)已下线。替代方案:AI 在回复正文里把"可定位的页面/面板"词包成 标准 markdown 链接,前端渲染成可点 chip,点击直达那一屏。
需要做的改动
1. 下线引导
- 删除/注销
show_guideMCP 工具(工具定义 + 注册 + system prompt 里对它的说明)。 - 删除 system prompt 里关于
```ai-guide围栏脚本(steps/target/pre_action)的全部指导。
2. 启用深链
-
把主程序
resources/ai-kb/_meta/page-links.yaml的目录(id / title / aliases / description)注入 system prompt。建议在 ingest ai-kb_meta时一并读取,渲染成一张"可用深链 id 表"。 -
在 prompt 中约定输出语法与硬约束:
当回答涉及"某功能/设置在哪、怎么去某页面"时,把页面/面板名写成 markdown 链接: [显示文字](dootask://link/<id>) 规则: - <id> 只能取下表中的值(闭集,禁止臆造;不确定就不要加链接,写普通文字) - 一个目的地在一段话里最多链一次,不要给同一名词重复加链接 - 只链"页面/面板"这类导航目的地;不要给动作词(点击/保存/开启)加链接 - 深链只把用户送到那一屏,页面内具体控件仍用文字说明 -
典型例子(供 few-shot):
3. 性质
- 与原「带我去」一样属建议性:AI 是否生成深链取决于是否遵循 prompt。
- 前端已对非法 id 做兜底(渲染时退化为纯文字,绝不出现死链),故 prompt 约束 + 前端校验双保险。
与主程序的契约
- id 闭集 =
page-links.yaml的links:键集合,当前 21 个;主程序deep-links.js与之逐一对应(CI 校验tests/deep-links-parity.mjs)。 - 新增/调整深链目的地时:先改主程序
page-links.yaml+deep-links.js(同一提交),再同步插件注入的 id 表。