🚀 快速安装
复制以下命令并运行,立即安装此 Skill:
npx skills add https://skills.sh/volcengine/openviking/openviking
💡 提示:需要 Node.js 和 NPM
OpenViking 代码仓库搜索 (OpenViking Code Repository Search)
重要提示:所有 ov 命令都是终端(shell)命令——通过 bash 工具运行。直接执行——无需预检查,无需测试命令。在错误发生时处理错误。
OpenViking 如何组织数据 (How OpenViking Organizes Data)
OpenViking 将内容存储在 viking:// 命名空间下的虚拟文件系统中。每个 URI 映射到一个文件或目录,例如 viking://resources/fastapi/routing.py。每个目录都有 AI 生成的摘要(abstract / overview)。关键原则:缩小 URI 范围以提高检索效率。 与其搜索所有仓库,不如锁定到特定的仓库或子目录——这可以显著减少噪音并加快结果速度。
搜索命令 (Search Commands)
根据你要查找的内容选择合适的命令:
| 命令 (Command) | 使用场景 (Use when) | 示例 (Example) |
|---|---|---|
ov search |
语义搜索 — 用于基于概念/意图的查询 (Semantic search — use for concept/intent based queries) | “dependency injection”, “how auth works” |
ov grep |
你知道确切的关键字或符号 (You know the exact keyword or symbol) | 函数名、类名、错误字符串 (function name, class name, error string) |
ov glob |
你想按模式枚举文件 (You want to enumerate files by pattern) | 所有 *.py 文件,所有测试文件 (all *.py files, all test files) |
# 语义搜索 (Semantic search)
ov search "dependency injection" --uri viking://resources/fastapi --limit 10
ov search "how tokens are refreshed" --uri viking://resources/fastapi/fastapi/security
ov search "JWT authentication" --limit 10 # 跨所有仓库 (across all repos)
ov search "error handling" --limit 5 --threshold 0.7 # 过滤低相关结果 (filter low-relevance results)
# 关键字搜索 — 精确匹配或正则表达式 (Keyword search — exact match or regex)
ov grep "verify_token" --uri viking://resources/fastapi
ov grep "class.*Session" --uri viking://resources/requests/requests
# 文件枚举 — 按名称模式(始终指定 --uri 以限定搜索范围)(File enumeration — by name pattern - always specify --uri to scope the search)
ov glob "**/*.py" --uri viking://resources/fastapi
ov glob "**/test_*.py" --uri viking://resources/fastapi/tests
ov glob "**/*.py" --uri viking://resources/ # 跨所有仓库 (across all repos)
缩小范围 (Narrowing scope): 一旦你确定了相关的目录,将其作为 --uri 传递,将后续搜索限制在该子树内——这比搜索整个仓库更快、更精确。
查询构建 (Query formulation): 编写具体的、上下文相关的查询,而不是单个关键字。
ov search "API" # 太模糊 (too vague)
ov search "REST API authentication with JWT tokens" # 更好 (better)
ov search "JWT token refresh flow" --uri viking://resources/backend # 最佳 (best)
读取内容 (Read Content)
# 目录:AI 生成的摘要 (Directories: AI-generated summaries)
ov abstract viking://resources/fastapi/fastapi/dependencies/ # 单行摘要 (one-line summary)
ov overview viking://resources/fastapi/fastapi/dependencies/ # 详细分解 (detailed breakdown)
# 文件:原始内容 (Files: raw content)
ov read viking://resources/fastapi/fastapi/dependencies/utils.py
ov read viking://resources/fastapi/fastapi/dependencies/utils.py --offset 100 --limit 50
abstract / overview 仅适用于目录。 read 仅适用于文件。
浏览 (Browse)
ov ls viking://resources/ # 列出所有已索引的仓库 (list all indexed repos)
ov ls viking://resources/fastapi # 列出仓库顶层内容 (list repo top-level contents)
ov ls viking://resources/fastapi --simple # 仅路径,无元数据 (paths only, no metadata)
ov ls viking://resources/fastapi --recursive # 递归列出所有文件 (list all files recursively)
ov tree viking://resources/fastapi # 完整目录树(默认:3 层深度)(full directory tree - default: 3 levels deep)
ov tree viking://resources/fastapi -L 2 # 限制深度为 2 层 (limit depth to 2 levels)
ov tree viking://resources/fastapi -l 200 # 将摘要列截断为 200 个字符 (truncate abstract column to 200 chars)
ov tree viking://resources/fastapi -L 2 -l 200 # 组合:2 层深度,200 字符摘要 (combined: 2 levels deep, 200-char summaries)
-L 控制树展开的深度。 -l 控制每个目录的 AI 生成摘要的长度。使用 ov tree -L 2 -l 200 作为深入了解仓库结构前的良好起点。
添加仓库 (Add a Repository)
ov add-resource https://github.com/owner/repo --to viking://resources/repo --timeout 300
--timeout 是必需的(秒)。小型仓库使用 300(5 分钟),大型仓库增加时间。
提交后,运行 ov observer queue 一次并向用户报告状态。索引在后台运行——不要轮询或等待。
| 仓库大小 (Repo Size) | 文件数 (Files) | 预估时间 (Est. Time) |
|---|---|---|
| 小型 (Small) | < 100 | 2–5 分钟 (min) |
| 中型 (Medium) | 100–500 | 5–20 分钟 (min) |
| 大型 (Large) | 500+ | 20–60+ 分钟 (min) |
移除仓库 (Remove a Repository)
ov rm viking://resources/fastapi --recursive
这将永久删除仓库及其所有索引内容。在运行前与用户确认。
错误处理 (Error Handling)
command not found: ov → 告知用户:pip install openviking --upgrade。停止。
url is required / CLI_CONFIG 错误 (error) → 自动创建配置并重试:
mkdir -p ~/.openviking && echo '{"url": "http://localhost:1933"}' > ~/.openviking/ovcli.conf
CONNECTION_ERROR / 连接失败 (failed to connect):
~/.openviking/ov.conf存在 (exists) → 自动启动服务器,等待就绪,重试:openviking-server > /tmp/openviking.log 2>&1 & for i in $(seq 1 10); do ov health 2>/dev/null && break; sleep 3; done- 不存在 (Does not exist) → 告知用户先配置
~/.openviking/ov.conf。停止。
更多帮助 (More Help)
对于其他问题或命令详情,请运行:
ov help
ov <command> --help # 例如 ov search --help (e.g. ov search --help)
📄 原始文档
完整文档(英文):
https://skills.sh/volcengine/openviking/openviking
💡 提示:点击上方链接查看 skills.sh 原始英文文档,方便对照翻译。

评论(0)