SuperAPI AI 工具集

openviking-context-database

智能体与模型

查看项目

更新于 10-16 04:00

技能介绍

用途

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,不应删除有歧义记忆。
  • 文档未提供官方收费、价格与具体平台支持信息。