使用legacy fallback搜索的时候需要告知用户获得同意;运行ov之前要先看相关reference;ov优先搜索field-process-memory然后到table-metada和sql-snippets获取更多信息
This commit is contained in:
@@ -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 脚本补充搜索数据源?
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 工作流程
|
||||
|
||||
@@ -164,28 +164,36 @@ description: 通过分模块多轮对话引导业务人员补充需求信息,
|
||||
|
||||
## 模块 3:OV 优先匹配数据源
|
||||
|
||||
**目标**:使用 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. **多轮对话记忆**:记住用户之前提供的信息,避免重复询问
|
||||
|
||||
@@ -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;用户同意后,才按上述流程执行脚本并汇总结果。
|
||||
|
||||
Reference in New Issue
Block a user