Cursor 记忆集成
为 Cursor 添加跨项目、跨会话的长期记忆。安装完成后,OpenViking Hook 会在会话启动和用户提交问题时注入相关上下文,在回复结束后捕获新对话;MCP 仅用于主动搜索、读取和管理记忆。
安装
前置条件:macOS 或 Linux、Node.js 18+,并建议使用最新稳定版 Cursor。安装过程中会引导配置 OpenViking 连接信息。
安装器询问连接方式时,火山引擎云服务用户请选择 火山引擎 OpenViking 云服务 并填写 API Key。只有本机已运行 OpenViking 服务时才选择 自建 / 本地。
bash
bash <(curl -fsSL https://raw.githubusercontent.com/volcengine/OpenViking/main/examples/memory-plugin-shared/install.sh) \
--harness cursorGitHub 访问受限时使用 TOS 镜像:
bash
bash <(curl -fsSL https://ovrelease.tos-cn-beijing.volces.com/memory-plugin-shared/install.sh) \
--harness cursor --dist tos安装完成后完全退出并重新启动 Cursor。
安装内容
- 生命周期 Hook:自动加载画像、按问题召回、捕获对话、提交会话并保护
viking://URI。 - OpenViking MCP Server:提供
search、recall、read、remember等工具。 - always-on Rule 和记忆 Skill:告诉 Agent 如何使用已注入的上下文和记忆工具。
验证
- 重启 Cursor 并新建 Agent 会话。
- 打开 Cursor Settings → Hooks,确认 OpenViking 生命周期 Hook 执行了
cursor-hook.mjs,URI 保护 Hook 执行了uri-guard.mjs。 - 查看
beforeSubmitPrompt输出,确认存在additional_context;这表示当前问题的召回结果已直接交给 Agent,无需先调用 MCP。 - 打开 Cursor Settings → Tools & MCPs,确认
openviking已连接。 - 告诉 Cursor 一个临时偏好,等待本轮回复完成;新建会话后询问该偏好,确认捕获和跨会话召回均生效。
工作原理
sessionStart:加载用户画像和当前项目的记忆索引。beforeSubmitPrompt:根据当前问题召回记忆并通过additional_context注入。beforeReadFile和beforeShellExecution:阻止把viking://虚拟路径当作本地文件访问,并提示改用 OpenViking MCP 工具。stop:增量捕获本轮新增的用户与助手消息。preCompact/sessionEnd:提交尚未处理的消息,触发记忆抽取。
项目身份优先使用 Cursor 提供的 workspace_roots,因此不同项目会使用不同的 workspace peer。连接信息统一读取 ~/.openviking/ovcli.conf。
升级与卸载
重复运行对应渠道的安装命令即可升级。卸载时也应使用原安装渠道:
bash
# GitHub
bash <(curl -fsSL https://raw.githubusercontent.com/volcengine/OpenViking/main/examples/memory-plugin-shared/install.sh) \
--harness cursor --uninstall --yes
# TOS
bash <(curl -fsSL https://ovrelease.tos-cn-beijing.volces.com/memory-plugin-shared/install.sh) \
--harness cursor --uninstall --yes卸载仅移除 OpenViking 管理的 Cursor Hook、MCP、Rule、Skill 和运行文件,保留其他配置。
故障排查
| 现象 | 原因与处理 |
|---|---|
| Hook 没有触发 | 完全退出 Cursor 后重新启动,并新建 Agent 会话。 |
| Hook 返回召回内容,但回答未使用 | 更新到最新稳定版 Cursor;旧版本可能不支持 beforeSubmitPrompt.additional_context。 |
| 同一事件出现多个 OpenViking Hook | Cursor 可能导入了旧 Claude Code 插件。升级或移除安装器列出的旧 OpenViking plugin id,然后重启 Cursor。 |
| MCP 未连接 | 检查 ~/.openviking/ovcli.conf 中的 URL/API Key,并重启 Cursor。 |
| 需要详细日志 | 设置 OPENVIKING_DEBUG=1 后启动 Cursor,查看 ~/.openviking/logs/cursor-hooks.log。 |
