byted-viking-cli

v2026.09.24

官方Viking CLI 命令行助手:本CLI覆盖火山引擎/BytePlus VikingDB(向量库)/Knowledge(知识库)/Memory(记忆库)的数据集管理和数据的读写及检索, 可用于扩展Agent的知识检索边界 提升Agent的记忆能力; 当用户对知识库/向量库提问时,使用本Skill; 当用户要操作向量库/知识库 或 从向量库/知识库检索信息时使用本Skill; 当用户要记忆检索和记忆存储时,使用本Skill。

GitHub
Install command
npx skhub add bytedance/byted-viking-cli
Markdown
SKILL.md

目标

把用户的需求转换为可直接执行的viking-cli命令并执行,如果覆盖不了则提示用户。 viking-cli 在用户安装后位于系统 PATH 中,直接执行 viking-cli。

触发与决策

  • 按用户目标选择产品:
    • 向量库管理、索引管理、向量数据增删改查、id/关键词检索走 vikingdb;
    • 知识库管理、文档管理、知识库检索、知识服务问答走 knowledge;
    • 记忆库管理、会话记忆写入、用户记忆检索走 memory。
  • 如果用户没有明确产品 但提到“知识库(Knowledge)/记忆库(Memory)/向量库(VikingDB)”,先根据目标选择最接近的命令分支。

安装 CLI

用户可用一条命令完成安装(免下载脚本):

curl -fsSL https://viking-skills.tos-cn-beijing.volces.com/viking-cli/install.sh | bash

如需安装到系统目录(可能需要权限):

curl -fsSL https://viking-skills.tos-cn-beijing.volces.com/viking-cli/install.sh | sudo bash -s -- --prefix /usr/local

安装完成后验证:

viking-cli version

工作原则

  • 涉及复杂 JSON、中文、嵌套数组时,优先推荐文件输入方式;如果当前命令不支持文件输入,再给命令行 JSON 示例。
  • 如果用户没有指定collection,则可省略 --collection 的参数,默认使用配置文件中的 collection 。
  • 如果用户需求超出当前 CLI 能力边界,要明确说“当前 CLI 未实现该子命令”。

命令树

  • viking-cli version
  • viking-cli auth
  • viking-cli vikingdb
    • setup
    • collection {create|get|list|update|delete}
    • index {create|get|list|update|delete|enable|disable}
    • upsert
    • fetch
    • delete
    • search-by-id
    • search-by-keywords
  • viking-cli memory
    • setup
    • collection {create|get|list|update|delete}
    • add-session
    • search
  • viking-cli knowledge
    • open
    • setup
    • collection {create|get|list|delete}
    • add-doc
    • add-file
    • add-dir
    • get-doc
    • list-docs
    • update-doc
    • delete-doc
    • search-collection
    • search-knowledge
    • list-services
    • service-chat

全局配置

CLI 通过 viking-cli auth 交互式写入 ~/.viking/config,后续命令默认从配置文件读取 AK / SK / Region / Project, 如无特殊情况,命令行无需指定--region和--project参数。 用户执行过对应产品的 setup,创建的collection name会写入配置文件,后续很多数据面命令可以不再显式传 --collection。

交互式配置(推荐)

viking-cli auth

执行后,根据提示依次输入:

  • AccessKey (AK)
  • SecretKey (SK)
  • Cloud (volcengine、byteplus 或 bytecloud,默认 volcengine;)
  • Region (如 cn-beijing)
  • Project (如 default)

全局 Flags(命令行参数)

当前实际支持的全局 flags:

  • --cloud:云环境,volcengine、byteplus 或 bytecloud
  • --region:Region(用于推导默认 endpoint)
  • --project:默认 project
  • --format:输出格式,json 或 text
  • --timeout:请求超时,例如 120s

JSON 输入策略

部分 control plane 命令支持:

  • --input-json '<JSON_OBJECT>'
  • --input-file /path/to/payload.json

这类命令会先用结构化 flags 组装 payload,再 merge --input-json/--input-file 的内容。

建议:

  • 结构简单时,用显式 flags
  • JSON 结构复杂时,用 --input-file
  • memory add-session 复杂内容优先推荐 --messages-file;metadata 可选,传文件用 --metadata-file

输出约定

默认输出为格式化 JSON;若用户需要纯文本,使用 --format text。

版本与鉴权配置

viking-cli version
viking-cli auth

VikingDB / Setup

通过本地数据样本自动推断 schema,并一键创建 collection、index,并 upsert 数据 【推荐】。

vikingdb setup 支持默认命名(允许不传 --collection / --index):

  • 默认 collection:viking_cli_{userid}
  • 默认 index:viking_cli_{userid}_index(即 <collection>_index)
viking-cli --region <region> vikingdb setup   --collection <collection_name>   --index <index_name>   --file data.csv   --id-field item_id

viking-cli --region <region> vikingdb setup   --collection <collection_name>   --index <index_name>   --file data.csv   --fields '[{"FieldName":"avatar","FieldType":"image"},{"FieldName":"content","FieldType":"text"}]'

viking-cli --region <region> vikingdb setup   --collection <collection_name>   --index <index_name>   --file data.jsonl   --vectorize-field content

VikingDB / Collection

创建:

viking-cli --region <region> vikingdb collection create   --name <collection_name>   --desc '<description>'   --fields-json '<json_array>'   --fulltext-json '<json_object>'   --tags-json '<json_value>'   --vectorize-json '<json_object>'

完整 payload:

viking-cli --region <region> vikingdb collection create --input-file /path/to/create_collection.json

查询:

viking-cli --region <region> vikingdb collection get --name <collection_name>

列表:

viking-cli --region <region> vikingdb collection list  --page-number 1   --page-size 10   --filter-json '<json_value>'

更新:

viking-cli --region <region> vikingdb collection update --name <collection_name>   --desc '<description>'   --fields-json '<json_value>'

删除:

viking-cli --region <region> vikingdb collection delete --name <collection_name>

VikingDB / Index

创建:

viking-cli --region <region> vikingdb index create  --name <index_name>   --collection <collection_name>   --desc '<description>'   --cpu-quota 2   --shard-count 1   --shard-policy '<policy>'   --vector-index-json '<json_object>'   --scalar-index-json '<json_value>'

查询:

viking-cli --region <region> vikingdb index get --name <index_name>   --collection <collection_name>

列表:

viking-cli --region <region> vikingdb index list --page-number 1 --page-size 10

更新:

viking-cli --region <region> vikingdb index update --name <index_name>   --collection <collection_name>   --desc '<description>'   --cpu-quota 4   --scalar-index-json '<json_value>'

启用 / 禁用:

viking-cli --region <region> vikingdb index enable --name <index_name> --collection <collection_name>
viking-cli --region <region> vikingdb index disable --name <index_name> --collection <collection_name>

删除:

viking-cli --region <region> vikingdb index delete --name <index_name> --collection <collection_name>

VikingDB / Data

导入 / 更新数据:

viking-cli --region <region> vikingdb upsert   --collection <collection_name>   --file data.csv   --id-field id   --batch-size 200

viking-cli --region <region> vikingdb upsert   --collection <collection_name>   --file data.jsonl   --batch-size 200

获取数据:

viking-cli --region <region> vikingdb fetch --collection <collection_name> --ids-json '["id1","id2"]'

删除数据:

viking-cli --region <region> vikingdb delete --collection <collection_name> --ids-json '["id1","id2"]'
viking-cli --region <region> vikingdb delete --collection <collection_name> --del-all

相似搜索:

viking-cli --region <region> vikingdb search-by-id   --collection <collection_name>   --index <index_name>   --id '<document_id>'   --limit 10

Query或关键词搜索:

viking-cli --region <region> vikingdb search-by-keywords   --collection <collection_name>   --index <index_name>   --query '<search_text>'   --limit 10

Memory / Setup 与 Collection

一键创建个人记忆库,默认命名为 viking_cli_{userid}:

viking-cli --region <region> memory setup

viking-cli --region <region> memory setup --name <collection_name>

创建:

viking-cli --region <region> memory collection create --name <collection_name>  --desc '<description>'   --cpu-quota 2

列表:

viking-cli --region <region> memory collection list

查询 / 更新:

viking-cli --region <region> memory collection get --name <collection_name>
viking-cli --region <region> memory collection update --name <collection_name> --desc '<description>' --cpu-quota 4

删除:

viking-cli --region <region> memory collection delete --name <collection_name>

Memory / Session 与搜索

记录会话内容:

viking-cli --region <region> memory add-session   --collection <collection_name>   --session-id '<session_id>'   --messages-file ./messages.json   [--metadata-file ./metadata.json]

messages.json 示例:

[
  {"role": "user", "content": "我喜欢打篮球"},
  {"role": "assistant", "content": "好的,记下了"}
]

metadata.json 结构(可选,未传时 CLI 会自动生成):

{
  "default_user_id": "user_id",
  "default_user_name": "user_name",
  "default_assistant_id": "assistant_id",
  "default_assistant_name": "assistant_name"
}

filter-json 结构(可选,未传时 CLI 会自动生成):

{
  "memory_type": ["sys_event_v1", "sys_profile_v1"],
  "user_id": "user_id",
  "assistant_id": "assistant_id"
}

记忆搜索:

viking-cli --region <region> memory search --collection <collection_name> --query '打篮球' --filter-json '<json_object>' --limit 10

Knowledge / Setup 与 Collection

开通知识库服务(支持 volcengine / byteplus,幂等:已开通则直接返回当前状态,未开通时执行开通):

viking-cli --region <region> knowledge open

一键创建个人知识库,默认命名为 viking_cli_{userid}。在 volcengine / byteplus 下,setup 会先检查知识库服务是否已开通,未开通时自动开通,再创建 collection:

viking-cli --region <region> knowledge setup

viking-cli --region <region> knowledge setup --name <collection_name>

创建:

viking-cli --region <region> knowledge collection create   --name <collection_name>   --desc '<description>'   --version 4   --data-type unstructured_data

列表 / 查询:

viking-cli --region <region> knowledge collection list
viking-cli --region <region> knowledge collection get --name <collection_name>

删除:

viking-cli --region <region> knowledge collection delete --name <collection_name>

Knowledge / 文档与搜索

新增文档(直接传 URI):

viking-cli --region <region> knowledge add-doc   --collection <collection_name>   --uri <uri>   --doc-id <doc_id>   --doc-name '<doc_name>'   --doc-type '<doc_type>'   --desc '<description>'   --tag-list-json '<json_value>'

上传本地文件:

viking-cli --region <region> knowledge add-file   --collection <collection_name>   --file /path/to/local_file.pdf

上传目录:

viking-cli --region <region> knowledge add-dir   --collection <collection_name>   --dir /path/to/local_directory

获取 / 列表 / 更新 / 删除文档:

viking-cli --region <region> knowledge get-doc --collection <collection_name> --doc-id <doc_id>
viking-cli --region <region> knowledge list-docs --collection <collection_name> --offset 0 --limit 10
viking-cli --region <region> knowledge update-doc --collection <collection_name> --doc-id <doc_id> --doc-name '<new_name>'
viking-cli --region <region> knowledge delete-doc --collection <collection_name> --doc-id <doc_id>

知识内容检索(在一个已创建知识库内做语义检索):

viking-cli --region <region> knowledge search-knowledge   --collection <collection_name>   --query '<text_query>'   --limit 10
viking-cli --region <region> knowledge search-knowledge   --collection <collection_name>   --query '<text_query>'   --doc-filter '{"op":"must","field":"doc_id","conds":["tos_doc_id_123","tos_doc_id_456"]}'

寻找匹配的知识库(按知识库描述进行关键词模糊匹配,默认返回 3 条):

viking-cli --region <region> knowledge search-collection   --query '<keyword>'
viking-cli --region <region> knowledge search-collection   --query '<keyword>'   --limit 5

Knowledge / 知识服务的检索与问答

对知识服务进行检索或问答。支持非流式和流式输出。鉴权使用 APIKey:优先 --api-key,否则从 ~/.viking/config 读取;首次调用成功后会写入配置文件,后续可直接复用。service-rid 同理:优先 --service-rid,否则从配置文件读取。

viking-cli --region <region> knowledge service-chat --api-key <api_key> --service-rid <service_rid> --content '列举 2025 Q1 财报里的三项亮点'

viking-cli --region <region> knowledge service-chat --service-rid <service_rid> --messages-file ./messages.json

viking-cli --region <region> --format text knowledge service-chat --service-rid <service_rid> --content '列举 2025 Q1 财报里的三项亮点' --stream true

viking-cli --format text knowledge service-chat --content "列举 2025 Q1 财报里的三项亮点" --stream true

viking-cli --region <region> knowledge service-chat --service-rid <service_rid> --content '列举 2025 Q1 财报里的三项亮点' --doc-filter '{"op":"must","field":"doc_id","conds":["tos_doc_id_123","tos_doc_id_456"]}'

messages.json 示例:

[
  {"role": "user", "content": "列举 2025 Q1 财报里的三项亮点"}
]

常见问题定位

  • unknown command:用户输入了当前 CLI 未实现的子命令;引导其回到本 skill 的命令树。
  • missing --name / missing --query 等:这些都是实现里的硬校验;修复方式是补齐对应 flag。
  • missing --collection:先确认是否已执行过对应产品的 setup。如果执行过,CLI 会自动从配置文件读取默认 collection;如果没执行过,则需要显式补 --collection 或 提示用户执行setup命令。
  • JSON 解析报错:优先检查 shell 引号;复杂 JSON 优先改成 --input-file、--messages-file、--metadata-file 等文件输入。
  • client not initialized 或请求初始化失败:通常是还没执行 viking-cli auth,或者配置文件里缺少 region / AK / SK。
  • region 相关请求错误:优先显式补 --region <region>,然后用 collection list 之类的轻量命令验证配置是否生效。
Discovery
Tags

No tags published for this skill.

Version
Latest version metadata

Version

v2026.09.24

Published

Sep 24, 2026

Category

Uncategorized

License

Apache-2.0

Source path

skills/byted-viking-cli

Default branch

main

Latest commit

db8aaa9

Tree SHA

f2e4656