一个项目聊到第三天,你希望AI接着上次的结论往下做,而不是重新问一遍背景。要做到这一点,它需要在回答时找到之前的信息,也需要把新的进展保存下来。
![]()
但接入记忆并不总是方便。有的客户端能装插件,有的只能聊天;有的脚本可以调用模型,却没有检索、读取和保存记忆的逻辑。
OpenViking网关把这些工作接了过来。它位于客户端和模型服务之间,帮助模型查找和使用OpenViking中的记忆,让兼容客户端不必各自实现一套记忆功能。
对话里的三个问题,它分别接住
网关提供三项能力,分别对应对话里的三个问题。
- 之前说过什么?自动找。你发出新消息后,网关会查找相关记忆,连同问题一起发给模型,模型回答时就能参考之前的背景。
- 信息不够怎么办?继续查。你问“上次定的发布日期是哪天”,模型可以先搜索,再打开对应原文确认。检索和读取由网关执行,客户端不需要自己支持这些工具。
- 这次聊出的内容怎么办?保存下来。开启对话保存后,OpenViking会从中整理出有用信息,供以后使用。对话太长时,网关还可以让模型生成摘要,缩短后续请求中携带的历史内容。
AI不只是被动收到一段背景,还能在需要时自己查找和使用记忆。如果开放了保存工具,它也能按你的要求记住内容。
接入主要改两项配置
在已经部署好网关的前提下,兼容客户端主要调整两项设置:
- Base URL:模型接口地址,改为网关地址,即网关所在服务的地址加 /gateway。
- API Key:访问凭证,换成在Studio中签发的网关密钥。
不需要再为这些客户端安装OpenViking插件,也不用单独编写记忆处理代码。Claude Code还需增加一项环境配置,用来区分它的后台请求。
Studio是网关的管理页面,可以设置连接哪个模型、是否保存对话,以及允许模型使用哪些工具。模型服务和运行情况也能在这里查看,不必在每个客户端里分别维护。
网关可以随OpenViking Server一起运行,也可以独立部署、连接已有的OpenViking服务,包括火山引擎托管服务。
哪些客户端可以用
网关主要面向能自定义模型接口地址、并满足接口要求的聊天应用、自己写的调用脚本和低代码平台。对已有的编程Agent,它也可以补充记忆能力。
在已完成的测试中,Claude Code、Codex CLI和OpenAI Python SDK已验证能查找和保存记忆;Cherry Studio的纯聊天模式也能使用记忆工具。其他客户端仍需按实际环境验证。
能改地址不代表所有调用方式都支持。客户端还需要把完整聊天记录带给模型;只用订阅账号登录,或由厂商服务器发起模型调用的方式,不适用这条接入路径。
数据在哪,出故障时怎么办
网关只调用OpenViking的公开接口,向量化和记忆提取都在OpenViking里做。会话和记忆的正本在OpenViking;网关本机只有两个SQLite文件,一个存上游、密钥和配置,一个存对话状态,对话闲置30天过期。
OpenViking不可用时对话照常,只是不带记忆,写回自动重试。网关停止服务时(嵌入形态下即OpenViking Server停止时),经过它的模型调用全部失败。
用户在Studio给自己签发网关密钥,账号管理员也能替本账号用户签发。每把密钥绑定一位OpenViking用户、一份上下文配置(召回预算、是否写回、开放哪些工具)和一组上游(转发到的模型服务地址和Key)。
接入后,对话会发生什么
网关自动认出同一段对话,只有用户的新消息触发召回,工具步骤和辅助请求不召回。压缩切点之前的原文不再发给模型,模型可以用OpenViking工具回会话里查原文。
自动召回是网关替模型猜它需要什么;有了OpenViking工具,模型自己决定查什么、读什么、记什么。工具由网关执行,客户端不用声明或实现任何工具,请求里一个工具都没有也能用。
一条回复里的多步操作:网关拦下模型发出的OpenViking工具调用,用该用户的OpenViking密钥执行,把结果接回再问模型,直到模型不再调用。客户端只收到一条连贯的回复。
客户端自己的工具照常用:同一条回复里可以同时调用OpenViking工具和客户端工具(例如Bash),客户端的调用原样交给客户端执行,照常经过它的权限确认。
下一轮还记得:工具往返(模型发出的工具调用和网关拿回的结果)不在客户端历史里,网关把它们存下来,下一轮原样放回,模型记得查到过什么,提示缓存也不断。
工具直接来自所连OpenViking服务的工具清单,随服务端版本增减,名字前加openviking_。写入、导入、删除和改权限这几类会改数据的工具默认不勾选,其余默认勾选。
两种部署形态,客户端用法相同
网关可以嵌入OpenViking Server,和Server共用端口;也可以用openviking-gateway独立运行,连接已有的OpenViking服务(例如火山引擎托管的OpenViking)。两种形态下,客户端地址都是服务地址加 /gateway,只改Base URL和API Key。
开始前需要已有可用的OpenViking,运行网关的本机安装OpenViking 0.5.1及以上,本地OV已配置好embedding和VLM,并准备火山方舟API Key;独立部署路径还需准备自己的OV用户API密钥。
本地共用端口的形态下,网关地址为 http://127.0.0.1:1933/gateway。开启网关时用方向键选Update gateway,不要直接确认默认的Start over,它会重新配置整套服务。重启后检查 /health 返回 ok,/gateway/v1/models 返回401,表示网关已挂载,只是还没带密钥。
独立网关连接火山托管OV时,网关地址为 http://127.0.0.1:1935/gateway,配置写入 ~/.openviking/gateway.conf,向导生成的管理密钥只显示一次。登录Studio用OV API密钥,管理密钥只用于解锁上游和上下文配置的编辑权限。
两条路径都在OpenViking网关页面完成通用配置:添加上游、配置自动记忆、签发客户端密钥。Claude Code必须选择Anthropic Messages协议,网关不做协议转换。签发得到的ovgw_…完整密钥只显示一次,一人一把,不要共用。
验证时先保存一条项目约定,再用全新会话提问,预期模型给出pnpm命令而不是npm。确认网关确实召回,可以在Claude Code输入 /status 复制Session ID,回Studio的请求日志里搜索,看记忆列是否出现+N。不要只凭模型说“我记住了”判断成功。
可以先从一个常用客户端、一条真实的项目约定开始,按步骤验证保存与召回。让下一次对话,少一次背景重述,多一步实际推进。
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.