基于指定的 Skill,对已导入 OpenViking 的资料进行读取、整理和加工,并将结果写入目标目录。
OpenViking 云服务的 Compile 功能依赖火山方舟 Managed Agents 智能体,按照指定 Skill 读取、整理资料并生成结果。因此,使用 Compile 前需先开通 Managed Agents 服务,为编译任务提供稳定可控的智能体运行环境。可以参考以下步骤进行开通:
参考:管理 API Key
具体内容可参考:Managed Agents 控制台快速入门
通过 ov add-resource 将本地文件、目录、URL 或仓库导入 OpenViking,供后续 Compile 读取。
执行以下命令完成导入:
ov add-resource <path-or-url> [options]
Skill 定义资料的加工规则和输出形式。执行 Compile 前,需要先将所选 Skill 导入 OpenViking,并记录导入后的 Skill URI。可以使用 OpenViking 官方提供的模板,也可以上传自己的 Skill。
Skill | 用途 | 命令 |
|---|---|---|
根据资料中的事实整理每日工作报告 | ov add-skill https://github.com/volcengine/OpenViking/tree/skills/daily-report | |
综合多个信息来源,提炼提炼知识 | ov add-skill https://github.com/volcengine/OpenViking/tree/skills/knowledge-distillation | |
提取实体及其关系,构建知识图谱 | ov add-skill https://github.com/volcengine/OpenViking/tree/skills/knowledge-graph | |
根据资料中的事实依据构建并维护百科知识库 | ov add-skill https://github.com/volcengine/OpenViking/tree/skills/llm-wiki | |
根据会话日志生成周报 | ov add-skill https://github.com/volcengine/OpenViking/tree/skills/ov-session-report |
ov compile 的 --skill 参数。不要将 GitHub 地址直接填入 --skill。执行以下命令完成导入:
ov add-skill <skill-path-or-content> [options]
ov compile --from <source-uri> --to <target-uri> --skill <skill-uri>
注意:--from、--to 和 --skill 仅支持 OpenViking 内部的 viking:// URI,传入公网 URL 会报错。请先通过 ov add-resource 或 ov add-skill 导入资料和模板,再使用导入后的 URI 执行编译。
执行命令后会立即返回一个任务 ID,之后可以用 ov task status <id> 查看进度、用 ov task cancel <id> 取消。
参数 | 填写内容 |
|---|---|
| 一个或多个来源目录/文件 |
| 产物写入的目标目录 |
| 一份描述「要编译成什么样」的说明书 |
说明:source-uri、target-uri需要为viking://resources或viking://<user_id>//resources目录下的子目录。
参数 | 填写内容 |
|---|---|
| 给这次编译的补充指令,比如范围、受众、语言、侧重点。Skill 定义了「编译成什么形态」, |
把一批异构来源编译成一套 Karpathy 风格、有出处、互相链接的 LLM Wiki:每一页有明确的检索目的,开头一句话直给结论,术语统一,关系显式,证据紧贴结论,并由一个 index.md 做导航入口。
这套 Skill 会按页面的检索目的挑选最合适的页面类型:
页面类型 | 用途 |
|---|---|
entity | 有稳定身份的具名事物(人、组织、产品、项目、系统、数据集、标准、事件……) |
concept | 可复用的思想、机制、模式、协议、心智模型 |
method | 有前置条件、有序步骤、可验证结果的可复用流程 |
comparison | 在明确维度上对两个及以上对象做并排评估 |
analysis | 围绕一个问题的跨来源结论 |
summary | 单一来源的忠实数字化摘要(仅当 --instruction 明确要求时才生成) |
默认以 entity 和 concept 为主,其余类型只在满足各自的严格判定时才提升。产物是一个知识库,不是逐文档的摘要拼盘。
如果材料还没进 OpenViking,先导入。目录型来源用 ov add-resource,单文件可以用 ov write:
# 导入一个目录作为来源 ov add-resource ./my-research --to viking://resources/research # 或者写入单个文件 ov mkdir viking://resources/research ov write viking://resources/research/notes.md \ --from-file ./notes.md --mode create
确认来源已就位:
ov ls -r viking://resources/research
把 LLM Wiki 的 Skill 装进服务。默认落到你的用户私有 skills 命名空间;想让团队共用就用 -p viking://agent/skills:
ov add-skill examples/compile/ov-compile-skills/llm-wiki
查看装好的 Skill URI:
ov skills list # → viking://agent/skills/llm-wiki (或 viking://user/<你>/skills/llm-wiki)
ov compile \ --from viking://resources/research \ --to viking://resources/research-wiki \ --skill viking://agent/skills/llm-wiki \ --instruction "面向团队检索整理成 Wiki,保留每条结论的出处"
--from 可以重复或用逗号分隔,一次传多个来源。--to 目录不存在时会自动创建。-o json;命令会立即返回 task_id,用它查询或取消任务:ov task status cmp_01abc # 查看进度与最终结果 ov task cancel cmp_01abc # 协作式取消
编译完成后目标目录里就是一套 Markdown 知识库。先看导航页,再按需钻进去:
ov tree viking://resources/research-wiki ov read viking://resources/research-wiki/index.md
典型结构(页面类型对应目录):
research-wiki/ ├── index.md # 导航入口,类型 index ├── entity/ │ └── <标题>.md ├── concept/ │ └── <标题>.md ├── method/… comparison/… analysis/…
把一个或多个知识库、文档集合蒸馏成按主题组织、有出处的高层次知识:跨来源的发现、趋势、变化、驱动因素、对比、影响和不确定性。
典型用途:蒸馏一个知识库、对比多个集合,如从一叠财报里推导出「跨报告期的变化」这类高阶洞察。
产物是一棵按主题组织的浅层工件树,每个主题目录是一个持久的语义领域,每一页是一条独立有用的高层次结论:
ov add-resource ./finance-reports --to viking://resources/finance-reports ov ls -r viking://resources/finance-reports
ov add-skill examples/compile/ov-compile-skills/knowledge-distillation ov skills list # → viking://agent/skills/knowledge-distillation (或 viking://user/<user_name>/skills/knowledge-distillation)
在 --instruction 里说清分析问题、对比维度、基线和范围——这直接决定蒸馏的方向:
ov compile \ --from viking://resources/finance-reports \ --to viking://resources/finance-insights \ --skill viking://agent/skills/knowledge-distillation \ --instruction "对比近三年财报,找到营收质量、盈利能力和风险的变化及驱动因素"
--from 可以传多个来源,用于跨知识库对比:
ov compile \ --from viking://resources/finance-2024,viking://resources/finance-2025 \ --to viking://resources/finance-insights \ --skill viking://agent/skills/knowledge-distillation \ --instruction "对比两个年度知识库,找出关键指标的变化与结构性差异"
命令会立刻返回 task_id:
ov task status cmp_01abc # 查看进度与最终结果 ov task cancel cmp_01abc # 协作式取消
先看主题树,再钻进具体结论页:
ov tree viking://resources/finance-insights ov read viking://resources/finance-insights/revenue-quality/growth-shifted-from-volume-to-pricing.md
把一批来源编译成一个证据可溯、可直接可视化的知识图谱:语义分类的实体节点、语句级出处、带类型的有向关系边。产物是这样一棵工件树:
entities/ <entity-id>.md # 每个节点一个文件,frontmatter 里有 type/id/title/entity_type/description/sources relations.jsonl # 每行一条有向边
每条边是一行紧凑 JSON,可读成 <from> <relation> <to> 这样一句话:
{"from":"孙悟空","relation":"member_of","label":"属于","to":"取经队伍","evidence":["viking://resources/source.md"]}
relation 是稳定、语言无关的机器谓词(member_of、leads、located_in……),label 是对应的本地化显示名(属于、率领、位于……),entity_type 用于可视化时的节点颜色、形状和过滤。图谱可以增量刷新:已有节点和边会被保留、合并证据,新知识追加进来。
ov add-resource ./journal-to-the-west --to viking://resources/journal ov ls -r viking://resources/journal
ov add-skill examples/compile/ov-compile-skills/knowledge-graph ov skills list # → viking://agent/skills/knowledge-graph
ov compile \ --from viking://resources/journal \ --to viking://resources/journal-kg \ --skill viking://agent/skills/knowledge-graph \ --instruction "抽取人物、地点、法宝及其关系,构建可遍历的知识图谱"
命令会立刻返回 task_id,之后:
ov task status cmp_01abc # 查看进度与最终结果 ov task cancel cmp_01abc # 协作式取消
ov tree viking://resources/journal-kg ov read viking://resources/journal-kg/relations.jsonl ov read viking://resources/journal-kg/entities/孙悟空.md
把带时间戳的对话记录、Agent 会话、IM 消息、协作文档、会议纪要、任务记录等材料,编译成简洁、有出处的日报:每天一页。
日报的来源通常是已经在 OpenViking 里的会话、消息或文档。如果要从本地导入一批记录:
ov add-resource ./work-logs --to viking://resources/work-logs ov ls -r viking://resources/work-logs
ov add-skill examples/compile/ov-compile-skills/daily-report ov skills list # → viking://agent/skills/daily-report (或 viking://user/<你>/skills/daily-report)
在 --instruction 里说清楚日期、时区、报告对象和侧重点,Skill 会据此定位和取舍:
ov compile \ --from viking://resources/work-logs \ --to viking://resources/daily-report \ --skill viking://agent/skills/daily-report \ --instruction "生成 2026-08-20 的日报,聚焦我的工作产出与决策"
一次生成多天,把日期范围写进 --instruction 即可(每天仍是独立一页):
ov compile \ --from viking://resources/work-logs \ --to viking://resources/daily-report \ --skill viking://agent/skills/daily-report \ --instruction "生成 2026-08-18 至 2026-08-20 每天一份日报"
命令会立刻返回 task_id:
ov task status cmp_01abc # 查看进度与最终结果 ov task cancel cmp_01abc # 协作式取消
日报是纯 Markdown,直接读即可:
ov tree viking://resources/daily-report ov read viking://resources/daily-report/2026-08-20.md
记录命令返回的 task_id,执行:
ov task status "<TASK_ID>"
任务完成后,浏览目标目录:
ov tree "<TARGET_URI>"
ov task cancel "<TASK_ID>"