使用legacy fallback搜索的时候需要告知用户获得同意;运行ov之前要先看相关reference;ov优先搜索field-process-memory然后到table-metada和sql-snippets获取更多信息

This commit is contained in:
Xin Wang
2026-05-13 14:29:10 +08:00
parent 5e82cc003f
commit b0e40d04f6
3 changed files with 33 additions and 17 deletions

View File

@@ -47,9 +47,11 @@ description: 智能数据开发员工。支持数据开发和简单取数两种
| 资源路径 | 用途 | 搜索策略 |
|---------|------|---------|
| `viking://resources/field-process-memory` | 字段处理经验、常用数据源判断、业务经验 | **优先检索**:语义 find + 精确 grep |
| `viking://resources/table-metadata` | 表元信息(表结构、字段定义) | 精确 grep + 语义 find |
| `viking://resources/sql_snippets` | 成功 SQL 代码片段 | 语义 find + 精确 grep |
| `viking://resources/field-process-memory` | 字段处理经验、常用数据源判断、业务经验 | 语义 find + 精确 grep |
运行任何 OV 命令之前,先读取相关 reference默认先看 `references/ov-search-context.md` 确认命令用法;涉及 SQL 引擎语法时,再看 `references/sql/reference/{engine}-sql-syntax.md`
### OV 搜索强制执行时机
@@ -66,20 +68,26 @@ description: 智能数据开发员工。支持数据开发和简单取数两种
| 困惑场景 | 优先检索 |
|---------|---------|
| 不知道用哪张表 | `viking://resources/table-metadata` + `viking://resources/field-process-memory` |
| 表名或字段含义不确定 | `viking://resources/table-metadata` |
| 不知道用哪张表 | 先查 `viking://resources/field-process-memory`,再查 `viking://resources/table-metadata` |
| 表名或字段含义不确定 | 先查 `viking://resources/field-process-memory`,再查 `viking://resources/table-metadata` |
| 需要字段处理经验、口径经验、常用数据源判断 | `viking://resources/field-process-memory` |
| 需要 SQL 写法、历史成功案例、代码参考 | `viking://resources/sql_snippets` |
| 需要 SQL 写法、历史成功案例、代码参考 | 先查 `viking://resources/field-process-memory` 判断业务口径,再查 `viking://resources/sql_snippets` |
| SQL 语法或引擎差异不确定 | 先查 `references/sql/reference/`,再查 `viking://resources/sql_snippets` |
### OV 优先 + legacy fallback
默认使用 OV 搜索,不主动调用 legacy data-structure-fetcher。只有以下情况才读取 `references/legacy-data-structure-fetcher/SKILL.md` 并运行其脚本:
默认使用 OV 搜索,不主动调用 legacy data-structure-fetcher。只有以下情况才可以考虑 legacy fallback且**必须先告知用户原因并获得明确同意**,再读取 `references/legacy-data-structure-fetcher/SKILL.md` 并运行其脚本:
1. OV 命令失败或本地不可用;
2. OV 搜索返回的候选表不足以进入用户确认;
3. 用户明确要求使用旧数据字典匹配脚本。
告知模板:
```text
OV 检索结果不足/不可用。是否同意我使用 legacy data-structure-fetcher 脚本补充搜索数据源?
```
---
## 工作流程

View File

@@ -164,28 +164,36 @@ description: 通过分模块多轮对话引导业务人员补充需求信息,
## 模块 3OV 优先匹配数据源
**目标**:使用 OV 搜索表结构、历史成功 SQL、字段处理经验和业务语义,推荐可用数据源。`legacy-data-structure-fetcher` 只作为 fallback。
**目标**:使用 OV 搜索字段处理经验、表结构、历史成功 SQL 和业务语义,推荐可用数据源。`legacy-data-structure-fetcher` 只作为用户同意后的 fallback。
**调用方式**
1. 提取模块 1+2 的业务口径描述关键词
2. 读取 `../references/ov-search-context.md` 了解 OV 命令
3.用业务关键词语义召回候选表
2. 运行任何 OV 命令之前,先读取 `../references/ov-search-context.md` 了解 OV 命令用法
3.搜索 `field-process-memory`,用历史经验判断常用数据源、业务口径和候选方向
- `conda run -n py13 ov find "{业务口径/核心实体}" --uri "viking://resources/field-process-memory" --threshold 0.2 --node-limit 10`
- `conda run -n py13 ov grep "{核心实体|关键词}" --uri "viking://resources/field-process-memory" --node-limit 10`
4. 再用 `table-metadata` 补充确认表结构和字段:
- `conda run -n py13 ov find "{业务口径/核心实体}" --uri "viking://resources/table-metadata" --threshold 0.2 --node-limit 10`
- `conda run -n py13 ov grep "{核心实体|关键词}" --uri "viking://resources/table-metadata" --node-limit 10`
4. 对每个推荐表执行 5 类 OV 检索:
- 表结构:`conda run -n py13 ov grep "{表名}" --uri "viking://resources/table-metadata" --node-limit 10`
- 成功 SQL`conda run -n py13 ov grep "{表名}" --uri "viking://resources/sql_snippets" --node-limit 15`
5. 对每个推荐表按顺序执行 OV 深度检索:
- 常用数据源判断:`conda run -n py13 ov grep "{表名}" --uri "viking://resources/field-process-memory" --node-limit 10`
- 字段处理经验:`conda run -n py13 ov grep "{表名}.*{字段名}" --uri "viking://resources/field-process-memory" --node-limit 10`
- 业务语义:`conda run -n py13 ov find "{表名} {业务场景}" --uri "viking://resources/field-process-memory" --threshold 0.2 --node-limit 10`
5. 获取推荐的数据源列表(库、表、字段、技术负责人、字段类型),并给出常用数据源判断
6. 仅当 OV 命令失败、候选表不足、或用户明确要求旧方案时,读取 `../references/legacy-data-structure-fetcher/SKILL.md` 并使用其中脚本补充推荐
- 表结构:`conda run -n py13 ov grep "{表名}" --uri "viking://resources/table-metadata" --node-limit 10`
- 成功 SQL`conda run -n py13 ov grep "{表名}" --uri "viking://resources/sql_snippets" --node-limit 15`
6. 获取推荐的数据源列表(库、表、字段、技术负责人、字段类型),并给出常用数据源判断
7. 仅当 OV 命令失败、候选表不足、或用户明确要求旧方案时,先告知用户原因并获得明确同意;同意后再读取 `../references/legacy-data-structure-fetcher/SKILL.md` 并使用其中脚本补充推荐
**legacy fallback 同意模板**
```text
OV 检索结果不足/不可用。是否同意我使用 legacy data-structure-fetcher 脚本补充搜索数据源?
```
**输出格式**
```markdown
【模块 3】数据源匹配结果
根据您的需求描述,我使用 OV 搜索表结构历史 SQL 和字段处理经验,推荐以下数据源:
根据您的需求描述,我使用 OV 搜索字段处理经验和历史记忆,再补充搜索表结构历史 SQL推荐以下数据源
### 推荐数据源(按综合得分排序)
@@ -378,7 +386,7 @@ description: 通过分模块多轮对话引导业务人员补充需求信息,
1. **模块1+2合并引导**:基础信息和详细信息在同一轮对话中同时向用户收集,减少交互轮次
2. **分模块推进**:按 模块1+2 → 模块3 → 模块4 → 模块5 顺序执行,每模块完成后需用户确认
3. **智能校验**:检查必填项是否完整,格式是否正确
4. **数据源优先**:模块 3 先使用 OV 匹配数据源,模块 4 再基于数据源生成输出字段legacy data-structure-fetcher 只在 OV 不可用、召回不足或用户指定使用
4. **数据源优先**:模块 3 先读取 OV reference再按 `field-process-memory``table-metadata``sql_snippets` 顺序匹配数据源,模块 4 再基于数据源生成输出字段legacy data-structure-fetcher 只在 OV 不可用、召回不足或用户指定且用户明确同意后使用
5. **文档保存**:模块 5 生成文档后,必须使用 write 工具将文档保存到 `./ai_text/{需求编号}.md`
6. **灵活跳转**:允许用户随时补充或修改之前模块的信息
7. **多轮对话记忆**:记住用户之前提供的信息,避免重复询问

View File

@@ -5,7 +5,7 @@ description: 通过文本实体匹配→向量检索→大模型加权汇总三
# 数据结构获取 Skill
> Legacy fallback: 本文件只在 OV 不可用、OV 召回不足,或用户明确要求旧数据字典匹配脚本时使用。默认优先使用 `../ov-search-context.md` 中的 OV 搜索。
> Legacy fallback: 本文件只在 OV 不可用、OV 召回不足,或用户明确要求旧数据字典匹配脚本时使用。使用前必须告知用户原因并获得明确同意。默认优先使用 `../ov-search-context.md` 中的 OV 搜索。
## 技能描述
@@ -102,4 +102,4 @@ conda run -n my_opencode python ./references/legacy-data-structure-fetcher/scrip
## 被 requirement-analyzer 调用
`requirement-analyzer` 进入模块 3 且 OV 不可用、召回不足或用户指定旧方案时,按上述流程执行脚本并汇总结果。
`requirement-analyzer` 进入模块 3 且 OV 不可用、召回不足或用户指定旧方案时,先询问用户是否同意使用 legacy fallback用户同意后按上述流程执行脚本并汇总结果。