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

41 lines
2.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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
- 问「在哪里设置端到端加密」→ 「……在 [系统设置](dootask://link/setting_system) 的消息相关里开启。」
- 问「怎么改个人资料」→ 「打开 [个人设置](dootask://link/setting_personal) 即可修改。」
### 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 表。