🚀 快速安装

复制以下命令并运行,立即安装此 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 原始英文文档,方便对照翻译。

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。