1
0
Files
Skill/openspec/changes/archive/2026-02-19-add-lyxy-kb/specs/kb-knowledge-query/spec.md

2.3 KiB
Raw Blame History

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/需求文档.mdparsed/技术方案.md 的信息
  • THEN 回答中 SHALL 分别标注各信息点的来源文件

Requirement: 会话问答模式

系统 SHALL 在 ask 模式下保持会话上下文,用户可以连续提问而无需每次重新加载知识库。会话的退出由用户自然决定(开启新话题或新会话),系统不主动终止会话。

Scenario: 多轮追问

  • WHEN 用户先问"系统用了什么技术栈?",接着追问"数据库选型的理由是什么?"
  • THEN 系统在第二次回答时保持之前的上下文,可复用已加载的 parsed 文件内容

Scenario: 知识库中无相关信息

  • WHEN 用户提出的问题在 project.md 和所有 parsed 文件中均无相关信息
  • THEN 系统 SHALL 明确告知用户当前知识库中未找到相关信息,而非编造答案