dootask/docs/ai-deeplink-plugin-spec.md
kuaifan 39b9a72b16 refactor(ai-assistant): 用内联深链替代 driver.js 页面引导
「带我去」分步引导(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>
2026-06-10 23:55:09 +00:00

2.6 KiB
Raw Blame History

AI 内联深链 · 插件侧改动规格dootask-ai独立仓库

本仓库(主程序)已完成:深链目录、前端渲染/执行、移除 driver.js 引导。 本文是配套的 AI 插件仓库 改动规格——只有插件侧改完AI 才会真正在回复里输出深链。 在插件改动落地前,主程序侧深链链路可用 window.__openDeepLink('setting_system') 或手工构造回复文本验证。

背景

原「带我去」分步引导driver.js + show_guide MCP 工具已下线。替代方案AI 在回复正文里把"可定位的页面/面板"词包成 标准 markdown 链接,前端渲染成可点 chip点击直达那一屏。

需要做的改动

1. 下线引导

  • 删除/注销 show_guide MCP 工具(工具定义 + 注册 + 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.yamllinks: 键集合,当前 21 个;主程序 deep-links.js 与之逐一对应CI 校验 tests/deep-links-parity.mjs)。
  • 新增/调整深链目的地时:先改主程序 page-links.yaml + deep-links.js(同一提交),再同步插件注入的 id 表。