1
0
Files
Skill/openspec/specs/kb-knowledge-query/spec.md

39 lines
2.3 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.
## ADDED Requirements
### Requirement: 渐进式查询策略
系统 SHALL 采用渐进式查询策略回答用户问题,以节省 token 消耗:
1. 首先读取 project.md 获取整体概述和文件索引
2. 根据用户问题和文件索引判断需要查阅哪些 parsed 文件
3. 按需读取相关 parsed 文件的全部或部分内容
4. 基于获取的信息回答问题
#### Scenario: 问题可通过摘要回答
- **WHEN** 用户提问"这个项目主要做什么?",且 project.md 的概述中已包含足够信息
- **THEN** 系统仅基于 project.md 内容回答,不加载 parsed 文件
#### Scenario: 问题需要查阅具体文件
- **WHEN** 用户提问"系统的权限控制是怎么设计的?",且 project.md 文件索引中 `需求文档` 的摘要提到了权限相关内容
- **THEN** 系统读取 `parsed/需求文档.md` 获取详细信息后回答
### Requirement: 来源标注
系统在回答中引用具体信息时 SHALL 标注文件来源,格式为:「根据《文件名》(parsed/文件名.md)...」。来源标注 MUST 指向 parsed 目录下的具体文件。
#### Scenario: 回答中包含来源标注
- **WHEN** 系统从 `parsed/技术方案.md` 中获取信息来回答问题
- **THEN** 回答中 SHALL 包含类似「根据《技术方案》(parsed/技术方案.md),系统采用微服务架构...」的来源标注
#### Scenario: 回答综合多个文件
- **WHEN** 回答需要综合 `parsed/需求文档.md``parsed/技术方案.md` 的信息
- **THEN** 回答中 SHALL 分别标注各信息点的来源文件
### Requirement: 会话问答模式
系统 SHALL 在 ask 模式下保持会话上下文,用户可以连续提问而无需每次重新加载知识库。会话的退出由用户自然决定(开启新话题或新会话),系统不主动终止会话。
#### Scenario: 多轮追问
- **WHEN** 用户先问"系统用了什么技术栈?",接着追问"数据库选型的理由是什么?"
- **THEN** 系统在第二次回答时保持之前的上下文,可复用已加载的 parsed 文件内容
#### Scenario: 知识库中无相关信息
- **WHEN** 用户提出的问题在 project.md 和所有 parsed 文件中均无相关信息
- **THEN** 系统 SHALL 明确告知用户当前知识库中未找到相关信息,而非编造答案