Py学习  »  Git

GitHub 3.2万 Star,又一款国产的顶级 Agent 记忆系统火了!

极客之家 • 4 天前 • 29 次点击  

 

用 Codex 久了,有个问题一直绕不过去,对话轮数一多,上下文撑满,前面的内容就开始丢。上周交代过的代码规范,这周全忘了。想给它挂个知识库,接一套传统 RAG 进去,检索结果对不对全凭运气,错了也不知道是从哪翻出来的。

上周在群友的推荐下,安装了一个开源的 OpenViking,效果嘎嘎好,这里给大家分享一下。

OpenViking 是什么

OpenViking 是火山引擎开源的上下文数据库,专门给 AI Agent 用,今年 1 月开源,现在 GitHub 上 3.2 万 Star。

简单说,它把 Agent 的长期记忆、项目资料、技能全部收进一个虚拟文件系统,挂在 viking:// 协议下面,每个内容都有目录路径和自己的 URI。主协议是 AGPLv3,代码全开放,官方的说法是开源版没有功能阉割。

几个实用的功能

所有上下文,收进一个文件系统

记忆、资源、技能,在 OpenViking 里都是文件和目录,挂在 viking:// 下面。

装完之后总得找点东西喂给它,我是在网页版里操作的,右侧有个终端面板,输入 /add-resource 会弹出添加资源的窗口,我先把项目仓库地址填进去试了试:

提交之后,先等它处理完成,需要一点时间,可以在任务中心查看进度。

显示处理完成后,左边目录树刷新,resources 下面就多出了这个仓库的内容,一层一层点开都能看到。

Agent 查内容用的也是 ls、tree、find、grep 这些它本来就熟的操作,每一步走的哪个路径都能看到。我自己打开目录树也能看到它存了些什么,哪条记错了直接改,不用对着向量数据库猜。

内容分三层,按需加载

写进去的东西会被自动处理成三层:L0 是一句话摘要,一百个 token 上下,用来快速判断相关性;L1 是概览,讲这份内容的结构和重点;L2 是完整原文,真需要的时候才去读。

每个目录也带着自己的摘要和概览,实际存下来之后,目录里会多出两个文件:

viking://resources/volcengine/OpenViking/
├── .abstract      # L0 摘要
├── .overview      # L1 概览
└── docs/
    ├── .abstract
    ├── .overview
    └── ...

我自己跑长任务的时候能感觉到差别,上下文不会动不动就撑满。官方跑的数据里,接入之后输入 token 降了 34% 到 91%。

检索过程可以看到轨迹

传统向量检索的问题是没有办法排查,结果错了你没地方查。

OpenViking 检索的时候先定位到得分最高的目录,再一层一层往下看。我每次搜东西,就在终端面板里输入 /find 加上要找的内容,结果会带着浏览过的路径一起出来:

结果不对的时候,照着轨迹往回看,能找到是从哪一步开始偏的。

聊完天,它会自己整理记忆

会话结束之后,OpenViking 会从对话里提取值得留的内容。你的偏好和习惯,Agent 攒下的经验,会整理成长期记忆写回 memories 目录。

我这边用了几天之后,memories/preferences/ 下面已经多了几个文件,记的是我在对话里提过的习惯,打开能直接看,写错了也能手动改。

官方在 LoCoMo 长对话记忆测试里跑过,接入之后几个主流 Agent 的记忆准确率从 24% 到 57% 提到 80% 以上,查询延迟降了六成上下。

主流 Agent 基本都能接

Claude Code、Codex、Cursor、TRAE、OpenCode、Hermes、OpenClaw,支持 MCP 的客户端,还有 LangChain 和 LangGraph,都有现成的接入方式。

接入的 Claude Code,DeepSeek等,配置完再开对话,它干活前会自己去 OpenViking 里查相关上下文,会话结束自动提交记忆,中间不需要我手动整理。

另外有两个配套的东西顺带提一下,不想装环境的话,官方放了一个在线体验版 Studio,浏览器打开就能试,界面跟本地拉起来的这个是一样的。OpenViking Helper 是桌面端工具,macOS 和 Windows 都有,可以在图形界面里配置本地 Agent 接入,翻看会话轨迹。

VikingBot:官方做的完整 Agent

想直接看装上记忆之后的效果,可以试试 VikingBot,官方基于 OpenViking 搭的 Agent 框架。pip 装完加个参数就能跑,Docker 镜像里也自带了。

快速上手

要求 Python 3.10 以上,先装包:

pip install openviking --upgrade

装完跑 init,这是个交互式向导,一步步问你要用哪家模型,最后生成配置文件。供应商选择不少,火山引擎、Kimi、智谱 GLM 都支持,不想用云服务可以接本地 Ollama,向导会检测硬件环境,推荐合适的模型。

openviking-server init
openviking-server doctor
openviking-server

init 之后我习惯先跑一下 doctor。它做自检,配置文件、Python 版本、供应商连通性、磁盘空间都过一遍,有问题当场报出来,确认没问题再启动服务。

服务起来以后,浏览器打开 127.0.0.1:1933  就是网页版控制台,我后面的使用基本都在这个页面上。

想调整配置就改 ov.conf,官方文档里每个供应商都有配置示例。打算正式用的话,可以跑成独立的 HTTP 服务,也有 Docker 镜像,部署文档写得比较全。

比较适合的使用场景

我自己用下来,有这么几个场景比较合适:

  • • 给编程 Agent 加长期记忆: Codex、Cursor 这类工具原生的记忆能力有限,接进去之后,你的编码偏好、项目里踩过的坑,换个新会话它还能记得。
  • • 挂项目知识库: 文档、仓库、网页都能加进去,目录结构保留着,检索结果带着前后文,排查问题比平铺的向量库方便。
  • • 做长期运行的个人助理: 记忆自动沉淀这个能力配合 VikingBot,搭一个能记住你习惯的助手是可行的。
  • • 多 Agent 协作: 记忆和资源共享在同一套文件系统里,Studio 里有 Agent Hub,能把几个 Agent 的上下文管在一起。

最后聊聊

上下文管理是 Agent 实际用起来最脏最累的活,之前大家都是自己糊一套对付,现在有人把它当成数据库认认真真做,还开源了,这本身是好事。

用文件系统的方式来做,我觉得想法是真的好,Agent 本来就会操作文件,人也看得懂文件,调试的门槛低了不少。眼睛能看到,能看懂的可视化页面,同时 Agent 也好操作,算是兼顾了。

有一个需要注意的点,开源版默认是本地单机存储,数据可靠性要自己上心,重要的东西记得做好备份。

我自己会先这么用下去,光是能打开目录看到它记了什么、记错了能直接改这一点,就省了我不少排查的功夫。

开源地址

https://github.com/volcengine/OpenViking

 

 

这个公众号长期分享实用开源项目。如果你不想逐篇翻阅历史文章,可以直接关注微信公众号“极客之家”,通过后台留言与我们互动交流。

图片

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/200161