ocrag/opencode-skill/SKILL.md

2.0 KiB
Raw Blame History

name description
ocrag 代码库 RAG 技能,用于向知识库添加代码或搜索已有代码。

代码库 RAG 技能

何时使用此技能

  • 用户要求"把当前文件/这个目录加入知识库"
  • 用户询问关于代码库的问题,需要基于已有代码回答
  • 用户明确提到"RAG"、"知识库"、"语义搜索"等关键词

如何使用

添加代码到知识库

当用户提供文件路径或目录时,使用 rag_add 工具:

  • 如果用户说"把这个文件加入知识库",提取路径并调用 rag_addrecursive 设为 false
  • 如果用户说"添加 src/ 目录下所有代码",调用 rag_add 并设置 recursive = true

搜索知识库

当用户询问代码相关问题(如"这段代码做什么?"、"如何配置XX")时:

  1. 先用 rag_search 工具查询query 参数为用户的自然语言问题
  2. 获得返回的代码片段后,结合片段内容回答用户
  3. 如果结果不相关,可以告知用户未找到,并建议添加更多代码

管理知识库

  • rag_list 可选传入 pattern 参数进行通配符筛选,如 "*.py""src/**"
  • rag_remove 支持通配符模式批量删除,如 "**/test_*.py" 删除所有测试文件

示例

  • 用户:"帮我记住这个文件的知识" → 调用 rag_add 传入当前文件路径
  • 用户:"认证模块是怎么实现的?" → 调用 rag_search query="认证模块实现"
  • 用户:"把 ./src 目录下所有 Python 文件加入知识库" → 调用 rag_add paths=["./src"] recursive=true
  • 用户:"知识库里有几个测试文件?" → 调用 rag_list pattern="**/test_*.py"
  • 用户:"把测试文件都删了" → 调用 rag_remove pattern="**/test_*.py"

注意事项

  • 搜索结果会显示代码片段的来源文件
  • 可以通过 top_k 参数调整返回结果数量
  • 添加文件后,搜索会立即包含新添加的内容
  • remove 和 list 支持 fnmatch 通配符:* 匹配任意字符,** 匹配路径分隔符