description: 初始化项目知识库
agent: project-knowledge-manager
subtask: false
初始化项目知识库
你现在作为主代理(agent),在当前项目目录下初始化项目知识库。拆分任务分发给子代理(subAgent)执行,不要自己执行。
- 项目目录路径:!
pwd - 知识库默认目录:
knowledge
任务流程规则
【重要提示】必须严格按照以下步骤依次进行:
Step1:加载背景知识
- 读取项目中的关键文档(如
README.md、CONTRIBUTING.md等),补充背景知识。 - 确认任务指定的目录下(默认为项目根目录)是否已经存在知识库:
- 根目标目录层级下检索:
knowledge、docs等关键词(部分匹配,不要求完全匹配),检查是否存在相关目录。 - 阅读对应目录下的文档内容,判断是否是项目知识库(文档数量多,文档内容丰富等维度进行判断)
- 根目标目录层级下检索:
- 如果找到了对应知识库目录,阅读目录下的所有文档,了解知识库现状;
Step2:规划知识库更新任务
根据现有知识库现状,规划知识库的更新任务:
- 如果当前知识库不存在,则根据项目代码结构和知识分类,创建一个新的知识库目录结构。
- 如果当前知识库已经存在,则结合现有目录结构和内容,制定查漏补缺方案;
git记录查找:如果当前知识库已经存在,则可以根据项目的git历史记录,查找哪些文件或目录是最近新增或修改的。
- 检查当前项目是否为git项目(检查项目根目录是否存在.git目录),如果不是git项目,则忽略此步骤;
- 检查是否存在内置git的tool工具,如果存在,尝试使用该工具执行git命令;
- 如果不存在,则尝试使用bash等工具执行git命令;
- 检查最近1个月的提交记录及修改的文件清单,确认哪些文件或目录是最近新增或修改的。
- 参考指令:
git log --oneline --name-only --since="1 months ago"。
任务的制定要参考以下内容和顺序:
- 知识库入口文件:这是必须要首先构建的,保存整个项目的概述,以及知识库目录的导航地图。
- 模块地图文档:这个也是要在入口文件构建完成后,紧接着需要构建的,介绍项目的所有功能模块。
- 模块知识文档:每个功能模块都有一个对应的目录,目录下包含该模块的所有知识文档。
- 产品知识文档:产品的定位,功能描述等。
注意事项:
- 知识库的构建是有偏序关系的,有些文档的构建依赖于其他文档的构建。需要正确的安排任务顺序。
- 当所有必要知识文档都构建完成后,最后一个任务是更新知识库入口文档中的知识库地图,保证知识库地图展示的是最新的知识模块目录结构。
Step3:执行知识库更新任务
调用project-knowledge-manager代理,让其作为subAgent执行具体的知识库更新任务,依次完成上述所有任务。提示词参考如下:
你现在作为子代理(subAgent),负责执行一个具体的知识文档构建任务:
## 任务描述:
- 【描述当前让subAgent执行的具体知识库更新任务】
- 【本次任务应该构建的知识内容,范围】
## 参考文档
执行任务之前,以下这些任务是你必须要阅读的:
- 【传给subAgent的参考文档,帮助其快速理解任务上下文】
- 【重点是当前已经构建出来的那些知识文档,如知识库入口文件,模块地图等】
- 例如:当前已经构建出来的知识库入口文件是`knowledge/overview.md`,模块地图文件是`knowledge/module-map.md`。
## 更新文档列表:
- 【指定当前让subAgent更新的具体文档路径】
- 【对于一个模块知识的构建任务,本身要更新的文档可能还不存在或者不确定,此时指定一个文件夹】
## (可选)参考文档 / 目录:
- 【可供参考的文档或目录,帮助subAgent理解文档结构】
## 参考搜索范围:
- 【指定当前让subAgent搜索的代码范围,如项目根目录、特定模块目录等】
## 注意事项
在执行具体的知识库搜索构建任务时,有以下注意事项:
- 更新文档前,首先必须先阅读对应文档内容,基于当前内容进行更新;
- 先理解再执行,任务开始前,先加载必要的背景知识,包括任务指定的参考文档,以及项目根目录下的README.md等文件。
- 知识的构建过程应该是多伦迭代的,先整体再局部,先粗略再详细,层层递进。
- 如果内置工具中存在“GitNexus”工具,建议优先使用该工具进行代码搜索。
Step4:内容迭代优化
经过前面的步骤,已经完成了知识库的初始化或更新任务。但生成的内容可能存在冗余、过时或不严谨问题,需要进行严格的减法式迭代优化,确保知识库内容精简、准确、高效。
使用task工具,调用project-knowledge-manager代理(此任务专属agent),让其作为subAgent执行知识库的迭代更新任务,提示词参考如下:
你现在作为子代理(subAgent),对当前的知识库内容进行**严格审核与减法优化**,以极简原则重构知识库,重点移除冗余、过时和无效内容:
## 知识库目录范围:
- 【指定当前让subAgent检查的知识库目录范围,如项目根目录下的knowledge目录】
【重要】请严格遵守流程规则3的要求,执行当前任务。
## 执行要求
- 审核必须**逐文档、逐段落、逐句子**进行,不得遗漏
- 优化后必须保持文档结构的连贯性和完整性
- 更新文档前必须先阅读对应文档的完整内容
- 确保优化后的知识库内容密度更高、更精准、更易维护
Step5:结果检查
使用task工具,调用project-knowledge-manager代理(此任务专属agent),对本次任务的执行成果进行验收,参考提示词:
你现在作为子代理(subAgent),对当前项目的知识库内容进行验收。
- 知识库目录路径:${知识库目录路径(相对于项目根目录)}
- 知识库入口文档路径:${知识库入口文档路径(相对于项目根目录)}
输出结果约束:
- 最终输出所有检查有问题的文件,并列举出每个文件的具体问题和改进建议。
- 禁止直接修改文件,只能输出检查结果。
检查以下内容:
## 目录结构检查
[ ] 检查知识库目录是否存在;
[ ] 是否存在入口文档(如overview.md)、模块地图文档(如module-map.md);
[ ] 知识库目录结构整体是否符合规范;
## 文档内容检查
[ ] 单个知识文档是否符合文档内容的Checklist;
[ ] 知识库入口文件中的知识库地图是否展示了最新的知识模块目录结构;
[ ] 知识库中是否存在模块地图,模块地图是否符合标准规范。
[ ] 每个模块是否都有对应的知识文档目录,目录下是否包含所有必要的知识文档。
[ ] 模块内部是否存在目录结构地图,目录结构地图是否符合标准规范。
如果检查结果不通过,需要根据检查结果,回到第2步重新规划任务,确保知识库的更新任务能够顺利完成。
Step6:注入AGENTS.md文件
检查当前项目根目录下是否存在AGENTS.md文件,如果不存在,则创建一个空文件AGENTS.md。
在AGENTS.md文件的合适位置添加以下内容(如果文档中已存在相关内容,则忽略此步骤):
## 项目知识库
- 当前项目知识库位置为:${项目知识库路径(相对于项目根目录)}
- 入口文档为:${知识库入口文档路径(相对于项目根目录)}
- 项目知识库中包含了当前项目的所有知识文档,包括但不限于:
- 产品功能概述文档(overview.md)
- 模块地图文档(module-map.md)
- 模块知识文档(每个模块有一个目录,目录下包含该模块的所有知识文档)
- 产品知识文档(如产品定位、功能描述等)
- 编码规范文档(如代码风格指南、命名规范等)
- 其他与项目相关的知识文档(如项目架构图、部署文档等)
- 在执行任务前,请根据当前任务需要,优先阅读相关的知识文档,确保对项目的理解是准确的。