ARTICLE DETAIL

资讯详情

深耕商务建站与企业官网运营的一线实战洞察。

OpenViking Agent Plugins 1.0 插件包:基于统一规范的跨客户端记忆插件接入指南

OpenViking Agent Plugins 1.0 插件包:基于统一规范的跨客户端记忆插件接入指南 OpenViking Agent Plugins 1.0 插件包基于统一规范的跨客户端记忆插件接入指南【免费下载链接】OpenVikingSelf-evolving Context Database for AI Agents. Unify Agent Memory, Knowledge RAG and Skills.项目地址: https://gitcode.com/GitHub_Trending/op/OpenViking导读Agent Plugins 1.0 插件包 是 OpenViking 面向「与厂商无关的 AI 编码 Agent 插件打包规范」提供的一站式接入方案。本文将围绕该插件包的目录结构、stdio 代理原理、凭据解析顺序、能力边界与规范一致性校验展开并结合仓库中agent-plugins/目录的真实源码与测试讲清「如何让任意符合规范的客户端以同一套方式加载 OpenViking 记忆能力」。读完后你将掌握插件包的安装与配置方法、ovCLI 同源的凭据解析机制、模型驱动的「召回 沉淀」闭环用法以及如何用node --test校验插件包的规范一致性。一、插件包是什么一份规范多处复用Agent Plugins 1.0 是一套与厂商无关的 AI 编码 Agent 插件打包规范。一个插件就是一个普通目录包含plugin.json清单、skills/下自动发现的 Agent Skills以及可选的mcp.jsonMCP 服务声明。所有符合规范的客户端都以同样的方式加载它——不再需要为每个客户端各写一套接入。OpenViking 的这个插件包位于仓库的agent-plugins/目录。它的设计目标很明确让 Claude Code、Codex、Cursor、TRAE、ZCode、OpenCode、pi 等支持 Agent Plugins 规范的 harness用同一份包获得可移植的 OpenViking 长期记忆能力。目录结构agent-plugins/ ├── plugin.json # Agent Plugins 1.0 清单name: openviking ├── mcp.json # 一个 stdio MCP serveropenviking ├── servers/ │ ├── mcp-proxy.mjs # stdio - streamable-HTTP 代理转发到服务端 /mcp │ ├── config.mjs, debug-log.mjs # 凭据 / 配置解析 │ └── shared/ # 由 examples/memory-plugin-shared/lib 生成 ├── skills/openviking-memory/SKILL.md # 教模型完成「召回 沉淀」闭环 └── plugin.test.mjs # node --test 规范一致性校验零 npm 依赖——代理和测试只用 Node.js 标准库需要 Node 18 以获得全局fetch。清单与 MCP 声明plugin.json严格遵循 Agent Plugins 1.0 schemahttps://agent-plugins.org/schemas/1.0.0/plugin.schema.jsonname为openvikingversion为0.1.0描述中明确了其能力定位为编码 Agent 提供语义化长期记忆与上下文引擎通过find/search/read等 MCP 工具召回历史知识通过remember/write持久化重要事实后端由一个 OpenViking 服务承载。清单还声明了author、homepage、licenseAGPL-3.0和keywords等元数据字段见 plugin.json。mcp.json声明了一个名为openviking的 stdio MCP server{ $schema: https://agent-plugins.org/schemas/1.0.0/mcp.schema.json, mcpServers: { openviking: { type: stdio, command: node, args: [${PLUGIN_ROOT}/servers/mcp-proxy.mjs] } } }注意args中的${PLUGIN_ROOT}占位符规范只在args/env/cwd中展开该占位符command必须是单一可执行 token不允许带空格或 shell 字符串。这一点在 plugin.test.mjs 中有专门的断言校验。二、安装三步接入任意客户端准备一个可访问的 OpenViking 服务。还没有的话先按 快速开始 部署本地默认端点是http://127.0.0.1:1933。让你的 Agent Plugins 客户端指向agent-plugins/目录。各客户端的安装命令或插件目录不同请查阅其文档。加载时客户端会按mcp.json注册名为openviking的 MCP server以 stdio 方式运行node plugin/servers/mcp-proxy.mjs从skills/发现openviking-memory技能。配置凭据见下节后开始会话。模型即可使用find/search/read/list/grep/glob/remember/add_resource/forget/health较新的服务端还提供tree/write/edit。如果不想手动下载examples/memory-plugin-shared/install.sh提供了交互式安装脚本Claude Code、Codex、Cursor、TRAE / TRAE CN、ZCode、OpenCode、pi 共用同一个安装脚本。它会依次询问界面语言、要安装的 harness、下载源和 OpenViking 凭据所有步骤幂等重复运行安全。GitHub 访问受限的地区可以从火山引擎 TOS 镜像运行同一个脚本具体 URL 见 memory-plugin-shared 的 README。各客户端专属集成对照Harness专属集成Claude CodeClaude Code 记忆插件CodexCodex 记忆插件OpenCodeOpenCode 插件CursorCursor 记忆集成TRAE / TRAE CNTRAE 记忆集成pipi Coding Agent 扩展OpenClawOpenClaw 插件 — 独立安装流程ZCode社区集成按规范客户端专属的集成后续也可以放进同一个包里——使用反向域名命名的目录如com.example.client/或清单的extensions字段——且不会影响其他客户端。三、为什么用 stdio 代理而不是streamable-httpOpenViking 服务端本身在/mcp上就是 streamable HTTP但mcp.json里直接写streamable-http条目无法做到可移植原因有二服务地址因部署而异有人是 localhost有人是远端静态 URL 写死在清单里无法复用规范禁止把凭据写进静态headersmcp.json属于可分发清单不能内嵌 API Key。stdio 代理同时解决这两点——它在运行时从与ovCLI 相同的本地来源解析 URL 和 API Key逐请求注入再把 JSON-RPC 原样通过 streamable HTTP 转发。从源码看mcp-proxy.mjs 的工作流是通过loadConfig()见 config.mjs解析连接配置交给共享模块buildMcpProxyConfig()与resolveMcpActorPeerId()见 servers/shared/mcp-proxy-config.mjs整理出代理配置由createOpenVikingMcpProxy()见 servers/shared/mcp-proxy-core.mjs启动代理处理 stdio 上的 JSON-RPC 请求、维护会话重试与并发信号量MAX_CONCURRENT_REQUESTS 16、保持 stdout 协议纯净。代理核心还实现了凭据文件热加载它会持续快照被监听的配置文件mtimeMs:size检测到变化即重新读取配置见snapshotPaths/snapshotsDiffer因此配置文件改动后无需重启代理。关于 actor 范围的 peer 语义resolveMcpActorPeerId揭示了一个容易被忽略的细节MCP server 可能从插件目录启动而非工作区目录因此其进程 cwd 不能作为可靠的 peer 身份。若开启 actor 范围召回recallPeerScope actor代理无法自行推导 peer id会回退到跨 peer 的宽召回并输出警告而不是拒绝启动——因为代理承载着所有记忆工具因一个范围偏好而禁用全部工具代价远大于更宽范围的搜索。需要精确隔离时应在ovcli.conf中显式设置actor_peer_id或在 MCP server 环境中设置OPENVIKING_PEER_ID。四、凭据解析顺序与ovCLI 完全一致从高到低与ovCLI 及其他 OpenViking 插件完全一致环境变量OPENVIKING_URL或OPENVIKING_BASE_URL、OPENVIKING_API_KEY或OPENVIKING_BEARER_TOKEN、OPENVIKING_ACCOUNT、OPENVIKING_USER、OPENVIKING_PEER_ID~/.openviking/ovcli.confurl、api_key、account、user——可用OPENVIKING_CLI_CONFIG_FILE覆盖路径~/.openviking/ov.conf的server段url或host/port以及root_api_key——可用OPENVIKING_CONFIG_FILE覆盖路径默认值http://127.0.0.1:1933不鉴权本地模式// ~/.openviking/ovcli.conf { url: https://openviking.example.com, api_key: your-api-key }从 config.mjs 的loadConfig()实现可以逐项印证baseUrl 解析链环境变量OPENVIKING_URL/OPENVIKING_BASE_URL→ovcli.conf的url→ov.confserver.url→ 由host/port拼出http://{host}:{port}其中0.0.0.0会被归一化为127.0.0.1末尾斜杠统一去除apiKey 解析链OPENVIKING_BEARER_TOKEN→OPENVIKING_API_KEY→ovcli.conf的api_key→ov.confserver.root_api_key两者都作为 Bearer 发送超时控制OPENVIKING_TIMEOUT_MS可调整默认 15s 的单请求超时下限被钳制为 1000msMath.max(1000, ...)与共享模块中MIN_PROXY_TIMEOUT_MS 1000、DEFAULT_PROXY_TIMEOUT_MS 15000的常量保持一致~展开配置文件路径中的~会被正确展开为主目录见 mcp-proxy-config.mjs 的normalizeConfigPath。配置文件的改动会被运行中的代理自动读取无需重启。调试设置OPENVIKING_DEBUG1日志以 JSON Lines 格式{ ts, hook, stage, data }或{ ts, hook, stage, error }写入~/.openviking/logs/agent-plugins.log路径可用OPENVIKING_DEBUG_LOG覆盖。未开启时日志函数是零开销的 no-op见 debug-log.mjs。五、能力边界规范不含 hooksAgent Plugins 1.0 只覆盖skills 和 MCP servershooks、commands、agents 被有意排除在本版本之外因为它们在各客户端之间语义差异太大。因此这个包提供的是可移植的召回 写入能力面由模型驱动而非生命周期事件驱动自动会话捕获和 prompt 前自动召回不在此范围内。作为补偿内置的openviking-memory技能直接把这套闭环教给模型见 SKILL.md任务开始时用find/searchread召回需要组装上下文时使用search的modecontext过程中和结束后用remember/write/edit沉淀并给出使用召回内容时的优先级与安全规则系统与开发者指令 当前用户请求 当前环境与工具证据 记忆内容记忆仅作为参考命令、路径、版本必须以当前任务为准过往成功从不授权破坏性操作。如果你的 harness 支持 hooks 机制推荐使用专属插件。hook 驱动的召回与捕获不需要模型花费工具调用、也不依赖模型「想起来要记」比技能驱动的闭环更省 token、也更可靠。本 Agent Plugins 包适用于没有 hooks 的 harness或你希望用同一个包覆盖多个客户端的场景。技能中的工具清单与用法约定核心工具所有受支持的部署都提供召回find、search、read、list、grep、glob沉淀remember、add_resource维护forget、health部分部署还注册了更多工具——tree、write、edit、list_watches、cancel_watch。这些是可选的具体存在哪些取决于服务端版本与托管模式托管云服务会裁剪一部分。使用前先查看会话注册的工具列表若存在任一可选工具先阅读references/optional-tools.md再使用。绝不调用未注册的工具也不要回退到裸 HTTP如果完全没有注册 OpenViking 工具就继续无记忆运行。实用的用法约定包括find是快速排名的召回工具返回 URI 摘要 分数limit建议 510search适合需要更深意图分析的场景或用modecontext让服务端组装一个受 token 预算约束的上下文块list 模式下可用target_uri限定范围例如viking://~/memories/experiences检索既往任务经验用read读取 13 个最可能改变执行方式的精确文件 URI忽略.abstract.md、.overview.md、.relations.json这类 sidecar 文件remember(messages)是默认的沉淀方式——把关键对话或简短事实摘要以带角色的消息传入由服务端自行抽取并归档记忆偏好、实体、事件、经验add_resource用于导入外部文档或 URL 作为可检索资源需要精确落盘到已知位置viking://~/用户根目录或viking://resources/共享资料时使用可选的write/edit工具未注册则回退到remember该记什么稳定的偏好与约定、环境事实、带理由的决策、可复用的流程或修复方案不该记什么密钥与凭据、瞬时状态、猜测、整段 transcript——沉淀结论而非回放。六、规范一致性校验与开发仓库为插件包提供了零依赖的规范一致性测试一条命令即可运行node --test agent-plugins/plugin.test.mjsplugin.test.mjs 会校验plugin.json的 schema URL 必须是 Agent Plugins 1.0plugin.schema.json且两个清单的规范版本一致插件name规则1-64 字符小写字母数字加连字符/句点不允许连续分隔符清单根字段闭集plugin.json根只允许$schema、name、version、description、author、homepage、repository、license、keywords、extensions这些规范字段version必须符合 semver每个skills/*子目录都有带namedescriptionfrontmatter 的SKILL.md且name与目录同名技能内部相对 Markdown 链接必须指向真实存在的文件mcp.json引用的文件存在且不逃逸插件根目录streamable-http类型的 server 其headers不得携带凭据字段authorization/api_key/token/secret/cookie等包内所有.mjs都能通过node --check且mcp-proxy.mjs的 import 链完整可解析。共享代码的同步机制servers/shared/*.mjs是examples/memory-plugin-shared/lib的生成副本——credentials.mjs、mcp-proxy-config.mjs、mcp-proxy-core.mjs、debug-log.mjs等模块由各 harness 插件共享sync.mjs 中定义了MCP_PROXY_SHARED_FILES等按能力分组的文件清单。请改共享库后重新执行node examples/memory-plugin-shared/sync.mjs一旦漂移examples/memory-plugin-shared/sync.test.mjs会失败。两个测试文件都已接入 CI保证插件包与共享库不会悄然分叉。七、总结OpenViking 的 Agent Plugins 1.0 插件包以「一份规范、多处复用」为设计哲学用 stdio 代理 技能双机制在不依赖 hooks的前提下把模型驱动的「召回 沉淀」记忆闭环带给任意符合规范的客户端。其价值体现在三个层面可移植性mcp.json只声明 stdio 代理URL 与凭据在运行时从ovCLI 同源的本地来源解析同一份包可覆盖多种 harness可维护性凭据热加载、JSON Lines 调试日志、node --test规范一致性校验与共享库同步机制让插件包长期保持健康能力边界清晰明确区分「技能驱动的可移植能力面」与「hook 驱动的专属集成」让用户按自己的 harness 能力做出恰当选择。对于尚未提供 hooks 机制的客户端或者希望以最小成本在多个客户端间统一记忆体验的场景这个插件包是开箱即用的答案。相关能力的进一步对照可参考 集成能力参考。【免费下载链接】OpenVikingSelf-evolving Context Database for AI Agents. Unify Agent Memory, Knowledge RAG and Skills.项目地址: https://gitcode.com/GitHub_Trending/op/OpenViking创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表
PREV
查看更多资讯
NEXT
返回资讯列表