OpenViking Agent Plugins 1.0:一套插件如何统一管理 10+ Agent 集成
OpenViking Agent Plugins 1.0 是 OpenViking(面向 AI Agent 的自进化上下文数据库)推出的首个跨厂商可移植插件包:一个普通目录,就让 Cursor、VS Code、Codex 系客户端等任意符合 Agent Plugins 规范的 Agent,以完全相同的方式接入 OpenViking 的长期记忆、知识检索与技能沉淀能力——告别"每个客户端各写一套集成"的碎片化时代。
🤔 为什么需要一套统一的 Agent 插件?
如果你同时使用多个 AI 编码 Agent,一定经历过这样的窘境:Claude Code 要装一套 hooks、Cursor 要配 mcp.json、Codex 又要走 marketplace……每接一个客户端,OpenViking 的记忆能力就要"重新适配"一次。
Agent Plugins 1.0 是一套与厂商无关的 AI Agent 插件打包规范(得到 Amazon、Cursor、Microsoft、OpenAI、Vercel 等支持)。它的核心思想极其朴素:
一个插件 = 一个目录 = 一份清单(
plugin.json)+ 自动发现的技能(skills/)+ 可选的 MCP 服务声明(mcp.json)。
所有符合规范的客户端都用同一套逻辑加载它。一份代码,处处运行——这正是"一套插件统一管理多种 Agent 集成"的答案。
📦 插件包三件套:目录结构一次看懂
OpenViking 的这个插件包就放在仓库的 agent-plugins/ 目录,结构清爽得令人舒适:
| 文件 | 作用 |
|---|---|
| plugin.json | 插件清单:声明名称 openviking、版本、关键词(memory、MCP、semantic-search) |
| mcp.json | 注册一个名为 openviking 的 stdio MCP 服务 |
| servers/mcp-proxy.mjs | stdio → streamable-HTTP 代理,把工具调用转发到服务端 /mcp |
| skills/openviking-memory/SKILL.md | 教模型完成"召回 + 沉淀"的记忆闭环 |
| plugin.test.mjs | node --test 规范一致性校验 |
最值得一提的是:零 npm 依赖,代理和测试全部跑在 Node.js 标准库上(Node 18+ 即可)。
为什么是 stdio 代理,而不是直接填一个 HTTP 地址?
这是个精妙的设计取舍。OpenViking 服务端本身就提供 streamable HTTP 端点,但直接在 mcp.json 里写 HTTP 地址存在两个问题:
- 服务地址因人而异——有人用 localhost,有人连远程集群,静态配置无法做到可移植;
- 规范禁止把 API Key 写进静态
headers——凭据安全无处安放。
stdio 代理 mcp-proxy.mjs 一举两得:它在运行时从与 ov CLI 完全相同的本地来源(环境变量 → ~/.openviking/ovcli.conf → ov.conf)解析 URL 和 API Key,逐请求注入鉴权头,再把 JSON-RPC 原样转发。配置改动后无需重启,运行中的代理自动感知。
🚀 三步安装:把客户端指向一个目录
前提:有一个可访问的 OpenViking 服务。还没有的话,先克隆仓库并部署(本地默认端点 http://127.0.0.1:1933):
git clone https://gitcode.com/GitHub_Trending/op/OpenViking
第一步:让你的 Agent Plugins 客户端指向 agent-plugins/ 目录(各客户端有各自的安装命令或插件目录,查阅其文档即可)。
第二步:加载时客户端会自动完成两件事——
- 按
mcp.json注册openvikingMCP 服务(以 stdio 方式启动代理进程); - 从
skills/自动发现openviking-memory技能。
第三步:配置凭据后开始会话,模型立即获得 find / search / read / remember / write 等全套 OpenViking MCP 工具。在支持 MCP 的编辑器里,配置长这样:
💡 小技巧:需要服务端组装好的上下文时,用 search 工具并传 mode="context",它会在 token 预算内返回拼好的记忆块。
🧠 openviking-memory 技能:让模型自己"想起来记"
OpenViking 的记忆空间按 viking:// URI 组织,分为偏好、事件、实体、档案等类别,每条记忆都带有检索相关性评分:
Agent Plugins 1.0 规范刻意不含 hooks(各客户端语义差异太大),因此自动召回不在范围内。作为补偿,SKILL.md 直接把记忆闭环教给模型:
- 任务开始时召回:用
find(快速排序检索)或search(深度意图分析)捞取相关经验,read精读最相关的一两条; - 工作过程中沉淀:遇到稳定偏好、环境事实、决策理由、可复用的修复方案,立刻
remember存下来; - 安全规则:召回的记忆仅作"建议",优先级永远低于当前用户指令与环境事实——"上次的成功操作,不能授权今天的破坏性动作"。
🧭 如何选择:Agent Plugins 包 vs 专属插件
OpenViking 的 Agent 集成概览 覆盖了 10+ 种运行时,选择建议如下:
| 你的场景 | 推荐方案 |
|---|---|
| 客户端支持 Agent Plugins 1.0 规范,或希望一个包覆盖多个客户端 | ✅ 本文的 agent-plugins/ 便携包 |
| 在 Claude Code / Codex / Cursor / TRAE / ZCode / OpenCode / pi 等支持 hooks 的 harness 上追求极致自动化 | 专属插件——hook 驱动的自动召回与捕获不花工具调用、不依赖模型自觉,更省 token 也更可靠 |
| 其他任意 MCP 客户端(Manus、Claude Desktop、ChatGPT…) | 直接连内置 /mcp 端点,分钟级接入 |
各集成在工具面、自动召回、会话 commit、降级容错上的完整差异,可查阅 集成能力参考 的横向对照矩阵。
⚙️ 调试与开发:两个实用开关
- 排查问题:设置
OPENVIKING_DEBUG=1,代理会以 JSON Lines 格式把日志写入~/.openviking/logs/agent-plugins.log,每一跳 JSON-RPC 都看得见; - 验证规范:
node --test agent-plugins/plugin.test.mjs会校验清单 schema、name 规则、semver、技能 frontmatter、mcp.json引用不逃逸插件根等,全部.mjs还要过node --check——这套检查正是接入 CI 的守门员,也是你自行打包插件时可复用的 lint 依据。
另外,servers/shared/ 下的共享模块由 examples/memory-plugin-shared/ 生成,修改请走共享库再同步,避免漂移。
📝 总结
OpenViking Agent Plugins 1.0 用一份清单、一个代理、一个技能,回答了"如何让一套记忆能力服务所有 Agent":
- 可移植:零依赖、零特判,任何规范客户端同一方式加载;
- 安全:凭据运行时解析,配置热更新,静态文件里不留密钥;
- 闭环:
openviking-memory技能让模型自己完成"开始先回忆、结束再沉淀"; - 可演进:规范预留了反向域名字目录与
extensions字段,客户端专属能力可平滑塞进同一个包。
记忆不再属于某个客户端,而是属于你的 Agent 生态——这正是上下文数据库该有的样子。更多细节见官方文档 Agent Plugins 1.0 插件包。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考







