2.0 KiB
2.0 KiB
| name | description |
|---|---|
| ocrag | 代码库 RAG 技能,用于向知识库添加代码或搜索已有代码。 |
代码库 RAG 技能
何时使用此技能
- 用户要求"把当前文件/这个目录加入知识库"
- 用户询问关于代码库的问题,需要基于已有代码回答
- 用户明确提到"RAG"、"知识库"、"语义搜索"等关键词
如何使用
添加代码到知识库
当用户提供文件路径或目录时,使用 rag_add 工具:
- 如果用户说"把这个文件加入知识库",提取路径并调用
rag_add,recursive 设为 false - 如果用户说"添加 src/ 目录下所有代码",调用
rag_add并设置 recursive = true
搜索知识库
当用户询问代码相关问题(如"这段代码做什么?"、"如何配置XX?")时:
- 先用
rag_search工具查询,query 参数为用户的自然语言问题 - 获得返回的代码片段后,结合片段内容回答用户
- 如果结果不相关,可以告知用户未找到,并建议添加更多代码
管理知识库
rag_list可选传入 pattern 参数进行通配符筛选,如"*.py"或"src/**"rag_remove支持通配符模式批量删除,如"**/test_*.py"删除所有测试文件
示例
- 用户:"帮我记住这个文件的知识" → 调用
rag_add传入当前文件路径 - 用户:"认证模块是怎么实现的?" → 调用
rag_searchquery="认证模块实现" - 用户:"把 ./src 目录下所有 Python 文件加入知识库" → 调用
rag_addpaths=["./src"] recursive=true - 用户:"知识库里有几个测试文件?" → 调用
rag_listpattern="**/test_*.py" - 用户:"把测试文件都删了" → 调用
rag_removepattern="**/test_*.py"
注意事项
- 搜索结果会显示代码片段的来源文件
- 可以通过 top_k 参数调整返回结果数量
- 添加文件后,搜索会立即包含新添加的内容
- remove 和 list 支持 fnmatch 通配符:
*匹配任意字符,**匹配路径分隔符