用途
OpenViking Context Database 是一个「OpenClaw 插件操作技能」,用于在 @openviking/openclaw-plugin 安装并配置完成后,让 OpenClaw 智能体使用已有的 OpenViking 服务器提供的长期上下文能力。它描述的是当前 OpenClaw 插件的实现,而不是独立的 OpenViking Python SDK。
插件为纯远程模式(remote-only):它通过 HTTP 与一个已存在的 OpenViking 服务器通信,不会启动或管理 openviking-server。文档明确要求不得自行臆造 OpenViking REST 端点,而应使用已注册的 OpenClaw 工具和命令。
主要能力
该技能将职责划分为两层:OpenClaw 负责智能体执行、提示词与工具调用;OpenViking 负责长期上下文。具体覆盖:
- assemble:从 OpenViking 重建压缩后的会话历史,并把相关召回内容注入到最新用户消息中。
- afterTurn:只把新回合追加到 OpenViking 会话,当 pending_tokens 达到 tokenBudget * commitTokenThresholdRatio 时可能触发异步提交。
- compact:执行 commit(wait=true),等待归档/抽取完成,并回读最新归档概览。
- 工具集:记忆召回/存储/遗忘、归档搜索/展开、资源与技能导入/搜索、召回链路查询、工具结果列表/搜索/读取。
长期记忆通常在执行 /compact 或达到阈值触发提交时被抽取;刚提及的事实可能先以近期会话上下文形式存在,随后才成为长期记忆。
使用方式
配置读取状态:
openclaw openviking status --json openclaw config get plugins.entries.openviking.config openclaw config get plugins.slots.contextEngine
核心配置位于 plugins.entries.openviking.config,常见字段包括 baseUrl(默认 http://127.0.0.1:1933,也可来自 OPENVIKING_BASE_URL / OPENVIKING_URL)、apiKey(可选,也可来自 OPENVIKING_API_KEY)、peer_role(none / assistant / sender,旧值 person 视为 sender)、peer_prefix、accountId / userId、targetUri(默认 viking://~/memories)、autoCapture(默认 true)、captureMode(semantic 或 keyword,默认 semantic)、captureMaxLength(默认 24000)、autoRecall(默认 true)、recallTargetTypes(默认 user,agent,允许 resource、user、agent)、recallResources(默认 false)、recallLimit(默认 6)、recallScoreThreshold(默认 0.15)、recallMaxInjectedChars(默认 4000)、commitTokenThresholdRatio(默认 0.5,0 表示每回合提交)、commitKeepRecentCount(默认 10,compact 始终为 0)、bypassSessionPatterns、emitStandardDiagnostics(默认 false)、logFindRequests(默认 false)、traceRecall(默认 false)、traceRecallPersist(默认 false)、traceRecallDir(默认 ~/.openclaw/openviking/recall-traces)。
标准配置命令:
openclaw openviking setup --base-url <OPENVIKING_URL> --api-key <API_KEY> --json
其他变体支持 --peer-role assistant --peer-prefix、--account-id / --user-id、--recall-target-types resource、--allow-offline、--force-slot 等参数。
工具选择指南:询问过去发言/偏好/决策/已知事实用 memory_recall;要求「现在记住」用 memory_store;要求「忘记 X」用 memory_forget;摘要缺少旧聊天中的确切命令/路径/片段用 ov_archive_search,必要时接 ov_archive_expand;导入文档、PDF、本地目录、URL、Git 仓库、媒体附件用人工 /add-resource(仅当 enableAddResourceTool=true 时用 add_resource);导入/注册 Agent Skill 用 add_skill;搜索已导入资源或技能用 ov_search;读取 ov_search 或召回链路返回的精确 viking:// 命中用 ov_read;解释召回/搜索原因用 ov_recall_trace;工具结果只显示预览/引用时用 openviking_tool_result_list、openviking_tool_result_search、openviking_tool_result_read。
重要安全与操作规则:add_resource 代理可见工具默认禁用(enableAddResourceTool=false),不得在搜索、检索、URI 读取或搜索结果优化中使用;这类流程应使用 ov_search 和 ov_read。本地文件与目录应把本地路径传给插件工具,由插件通过 /api/v1/resources/temp_upload 上传,不要自行把原始本地路径发给远程服务器。API Key 不应被记录或回显。
常用 slash 命令示例:
/add-resource ./README.md --to viking://resources/openviking-readme --wait /add-skill ./skills/install-openviking-memory --wait --timeout=30 /ov-search "OpenViking install" --uri viking://resources/openviking-readme --limit=5 /ov-recall-trace --turn latest --source auto_recall --include-content
适用场景
- 需要跨会话保持长期记忆、偏好与决策的智能体。
- 需要检索历史会话归档中确切命令、路径或片段。
- 需要把文档、PDF、目录、URL、Git 仓库等作为资源导入并做语义检索。
- 需要导入并注册 Agent Skill 并在其中检索。
- 需要审计或解释某次召回/搜索为何命中。
限制与注意事项
- 插件为远程模式,不启动或管理 openviking-server。
- 不得臆造 OpenViking REST 端点。
- 长期记忆依赖 /compact 或阈值提交与服务器端抽取,未触发时新事实可能只是近期上下文。
- ov_search 返回的是 OpenViking 虚拟 URI(如 viking://resources/project-docs/api.md#chunk-3),不是本地文件路径,不能用文件系统读取工具处理。
- 召回链路记录仅在 traceRecall=true 时存在;持久化查询还需 traceRecallPersist=true。
- 插件拒绝读取/搜索来自其他会话的工具结果引用。
- memory_forget 的 query 模式若匹配到多个候选,应报告候选并让用户选择确切 URI,不应删除有歧义记忆。
- 文档未提供官方收费、价格与具体平台支持信息。