【Command】project-knowledge-iterate

6 阅读9分钟
description: 项目知识库迭代优化
agent: project-knowledge-manager
subtask: false

初始化项目知识库

你现在作为主代理(agent),对当前项目的知识库进行迭代优化。拆分任务分发给子代理(subAgent)执行,不要自己执行。

  • 项目目录路径:!pwd

任务流程规则

【重要提示】必须严格按照以下步骤依次进行:

Step1:加载背景知识

  1. 读取项目中的关键文档(如README.mdCONTRIBUTING.md等),补充背景知识。
  2. 确认任务指定的目录下(默认为项目根目录)是否已经存在知识库:
    • 根目标目录层级下检索:knowledgedocs等关键词(部分匹配,不要求完全匹配),检查是否存在相关目录。
    • 阅读对应目录下的文档内容,判断是否是项目知识库(文档数量多,文档内容丰富等维度进行判断)
  3. 如果找到了对应知识库目录,阅读目录下的关键文档,了解知识库现状;
  4. 这里你还需要确认知识库的入口文档是否存在,一般为overview.mdREADME.md等。要根据文档的实际内容,判断其是否是符合标准的入口文档(包含项目的整体概述、目录地图等)。
  5. 这里需要重点了解最近一次Check的时间点(一般在文档的最开头有注释),这为后续的迭代优化提供范围参考。

【重要提示】:

  • 如果最终未找到符合要求的知识库目录,则提示用户知识库不存在,需要先初始化知识库。
  • 然后直接退出当前任务,输出终止符,不再向下执行。

Step2:读取变更历史

检查当前项目是否为git项目(检查项目根目录是否存在.git目录),如果不是git项目,则忽略此步骤;

  • 检查是否存在内置git的tool工具,如果存在,尝试使用该工具执行git命令;
  • 如果不存在,则尝试使用bash等工具执行git命令;
  • 检查上一次check时间之后的提交记录及修改的文件清单(如果没有找到对应信息,则默认查找最近1个月),确认哪些文件或目录是最近新增或修改的。(提交日志了解变更原因)
  • 检查git的暂存区和工作目录,确认是否有未提交的变更。这些也列入变更历史。
  • 忽略其中的一些文件,如:
    • 编译生成的文件(如distbuild等目录)
    • 临时文件(如.DS_Store__pycache__等)
    • 配置文件(如.envconfig.json等)

【重要提示】此步骤优先调用子代理(subAgent)执行,子代理负责读取项目的git历史记录,由subAgent返回具体的变更历史。

Step3:规划知识库更新任务

根据现有变更历史现状,规划知识库的更新任务。任务规划时有以下要求:

  1. 由变更范围确认此次更新涉及到的功能模块。按模块划分单独的子任务进行更新。
  2. 由变更范围确认此次更新涉及到的产品功能变更,按照合适的维度划分产品功能更新子任务;
  3. 部分任务之间存在相互依赖关系,需要根据依赖关系进行排序。
  4. 内容更新之后需要及时更新知识库地图,保持地图展示的是最新的知识模块目录结构。

【重要提示】

Step3:执行知识库更新任务

调用project-knowledge-manager代理,让其作为subAgent执行具体的知识库更新任务,依次完成上述所有任务。提示词参考如下:

你现在作为子代理(subAgent),负责执行一个具体的知识文档构建/更新任务:

## 任务描述:
- 【描述当前让subAgent执行的具体知识库更新任务】
- 【本次任务应该构建的知识内容,范围】
- 【本次要更新的文件范围】

## 参考文档

执行任务之前,以下这些任务是你必须要阅读的:
- 【传给subAgent的参考文档,帮助其快速理解任务上下文】
- 【重点是当前已经构建出来的那些知识文档,如知识库入口文件,模块地图等】
- 例如:当前已经构建出来的知识库入口文件是`knowledge/overview.md`,模块地图文件是`knowledge/module-map.md`。

## 更新文档列表:
- 【指定当前让subAgent更新的具体文档路径】
- 【对于一个模块知识的构建任务,本身要更新的文档可能还不存在或者不确定,此时指定一个文件夹】

## (可选)参考文档 / 目录:
- 【可供参考的文档或目录,帮助subAgent理解文档结构】

## 参考搜索范围:
- 【指定当前让subAgent搜索的代码范围,如项目根目录、特定模块目录等】


## 注意事项

在执行具体的知识库搜索构建任务时,有以下注意事项:

- 更新文档前,首先必须先阅读对应文档内容,基于当前内容进行更新;
- 先理解再执行,任务开始前,先加载必要的背景知识,包括任务指定的参考文档,以及项目根目录下的README.md等文件。
- 知识的构建过程应该是多伦迭代的,先整体再局部,先粗略再详细,层层递进。
- 如果内置工具中存在“GitNexus”工具,建议优先使用该工具进行代码搜索。

Step4:内容迭代优化

前面的步骤聚焦于局部内容更新,现在需要站在全局角度,考虑整个知识库的结构和内容。对齐进行优化,确保知识库的结构和内容符合预期。

  • 如果文档数量较多,需要按照功能或者内容关系划分为多个优化任务,每个任务单独调用subAgent执行。
  • 具体来说,单次优化任务检查的文档数量不宜超过10个。
  • 这里优先按照内容相关性划分子任务,避免将内容相关性不高的文档放在一个优化任务中,或者将内容相关性高的文档放在不同的优化任务中。

使用task工具,调用project-knowledge-manager代理(此任务专属agent),让其作为subAgent执行知识库的迭代更新任务,提示词参考如下:

你现在作为子代理(subAgent),对当前的知识库内容进行**严格审核与减法优化**,以极简原则重构知识库,重点移除冗余、过时和无效内容:

## 知识库目录范围:
- 【指定当前让subAgent检查的知识库目录范围,如项目根目录下的knowledge目录】

## 要检查的文档清单

- 【指定当前让subAgent检查的具体文档清单,要包含文档详细路径,如knowledge/overview.md、knowledge/module-map.md等】

## 执行要求

- 审核必须**逐文档、逐段落、逐句子**进行,不得遗漏
- 优化后必须保持文档结构的连贯性和完整性
- 更新文档前必须先阅读对应文档的完整内容
- 确保优化后的知识库内容密度更高、更精准、更易维护

Step5:结果检查

使用task工具,调用project-knowledge-manager代理(此任务专属agent),对本次任务的执行成果进行验收,参考提示词:


你现在作为子代理(subAgent),对当前项目的知识库内容进行验收。

- 知识库目录路径:${知识库目录路径(相对于项目根目录)}
- 知识库入口文档路径:${知识库入口文档路径(相对于项目根目录)}

输出结果约束:

- 最终输出所有检查有问题的文件,并列举出每个文件的具体问题和改进建议。
- 禁止直接修改文件,只能输出检查结果。

检查以下内容:

## 目录结构检查

[ ] 检查知识库目录是否存在;
[ ] 是否存在入口文档(如overview.md)、模块地图文档(如module-map.md);
[ ] 知识库目录结构整体是否符合规范;

## 文档内容检查

[ ] 单个知识文档是否符合文档内容的Checklist;
[ ] 知识库入口文件中的知识库地图是否展示了最新的知识模块目录结构;
[ ] 知识库中是否存在模块地图,模块地图是否符合标准规范。
[ ] 每个模块是否都有对应的知识文档目录,目录下是否包含所有必要的知识文档。
[ ] 模块内部是否存在目录结构地图,目录结构地图是否符合标准规范。

## 其它检查项

[ ] AGENTS.md文件是否存在,文档中是否存在项目知识库的相关内容和使用指导。
[ ] 【其它检查点,按照当前任务的实际情况进行检查。确保任务质量得到有效保障。】

Step6:注入AGENTS.md文件

检查当前项目根目录下是否存在AGENTS.md文件,如果不存在,则创建一个空文件AGENTS.md。

在AGENTS.md文件的合适位置添加以下内容(如果文档中已存在相关内容,则忽略此步骤):

## 项目知识库

**AI必须严格遵守以下指令:**

1. **知识库定位**   - 当前项目知识库路径:${项目知识库路径(相对于项目根目录)}
   - 知识库入口文档:${知识库入口文档路径(相对于项目根目录)}

2. **知识库内容构成**:项目知识库包含当前项目的所有知识文档,包括但不限于:
   - 产品功能概述文档(overview.md)
   - 模块地图文档(module-map.md)
   - 模块知识文档(每个模块有一个目录,目录下包含该模块的所有知识文档)
   - 产品知识文档(如产品定位、功能描述等)
   - 编码规范文档(如代码风格指南、命名规范等)
   - 其他与项目相关的知识文档(如项目架构图、部署文档等)

3. **强制要求**   - 执行任何任务前,**必须**优先阅读相关的知识文档
   - 必须确保对项目的理解准确无误后,方可开始执行任务
   - 必须严格遵循知识库中定义的编码规范、架构设计等要求