让 AI 记住你的偏好、历史对话和项目上下文,不用每次重新解释。
最近字节跳动旗下火山引擎开源了一个叫 OpenViking 的项目,GitHub Star 已经突破 12K。它的定位很明确:AI Agent 的上下文数据库。
说白了就是解决一个痛点——每次跟 AI 聊天,它都像金鱼一样只有 7 秒记忆。
什么是 OpenViking?
OpenViking 的核心理念是用文件系统范式来管理 AI 的记忆。
你可以像操作本地文件一样操作 AI 的记忆:
mkdir /memory/user → 创建用户记忆目录
touch /resources/docs/api.md → 添加知识文档
grep -r "API" /memory/ → 检索相关内容
它有三个核心能力:
分层加载:L0 即时记忆(20 条消息)→ L1 会话记忆 → L2 长期记忆。按需加载,省 token。
可视化检索:保留完整的检索决策链,你知道 AI 为什么召回这些内容、为什么裁掉那些内容。
自动提取长期记忆:越用越聪明,会话结束后自动沉淀记忆。
安装配置全流程
环境准备
- Python 3.10+
- 火山引擎账号(新用户有免费额度)
第一步:安装 SDK
pip install openviking-sdk
实测安装顺利,清华镜像源下载速度不错。
第二步:获取 API Key
登录火山引擎控制台,进入 API Key 管理页面,创建新的 API Key。
第三步:创建配置文件
在 ~/.openviking/ov.conf 创建配置文件:
{
"storage": {
"workspace": "D:/openviking_workspace"
},
"embedding": {
"dense": {
"backend": "volcengine",
"api_key": "YOUR_API_KEY_HERE",
"model": "doubao-embedding-vision-251215",
"api_base": "https://ark.cn-beijing.volces.com/api/coding/v3",
"dimension": 1024
}
},
"vlm": {
"backend": "volcengine",
"api_key": "YOUR_API_KEY_HERE",
"model": "doubao-seed-2-0-pro-260215",
"api_base": "https://ark.cn-beijing.volces.com/api/coding/v3"
}
}
第四步:激活模型
在 模型管理页面 激活两个模型:
doubao-seed-2-0-pro-260215(VLM 视觉语言模型)doubao-embedding-vision-251215(Embedding 模型)
踩坑记录
坑 1:Windows SSL 证书崩溃
Windows 上 Python 的 ssl 模块加载 Windows 证书存储时会报 ASN1: NOT_ENOUGH_DATA 错误。
解决方案:用 Node.js 的 https 模块代替 Python urllib 调用微信 API,或者用 curl subprocess 绕过。
坑 2:pip 强制要求 virtualenv
火山引擎的 pip 配置了 require-virtualenv=true,导致直接 pip install 失败。
解决方案:设置 PIP_REQUIRE_VIRTUALENV=false 环境变量。
坑 3:CodingPlan 订阅
实测中发现,API Key 验证通过后,调用 Embedding 和 VLM 功能时报 InvalidSubscription 错误——你的火山引擎账户需要订阅 Coding Plan 才能使用 OpenViking 的高级功能。
免费用户可以使用基础的文件系统操作(添加资源、查看目录),但语义检索、摘要生成等高级功能需要付费订阅。
解决方案:访问 开通管理页面 订阅合适的套餐。
基本使用示例
import openviking as ov
# 初始化客户端
client = ov.OpenViking(path="./data")
client.initialize()
# 添加资源(URL、文件、目录都行)
add_result = client.add_resource(
path="https://example.com/document.pdf"
)
root_uri = add_result['root_uri']
# 查看目录结构
ls_result = client.ls(root_uri)
# 语义搜索
results = client.find("关键词", target_uri=root_uri)
# 断开连接
client.disconnect()
与其他方案的对比
| 特性 | OpenViking | 传统 RAG | OpenClaw 内置记忆 |
|---|---|---|---|
| 存储方式 | 向量库 + 文件系统 | 向量库 | 本地 Markdown |
| 检索方式 | 向量语义 + 目录递归 | 向量检索 | 关键词 + Hook |
| 复杂度 | 高(需独立部署) | 中高 | 低(开箱即用) |
| 可视化检索 | ✅ | ❌ | ❌ |
| 多 Agent 共享 | ✅ | ✅ | ❌ |
总结
OpenViking 是一个有潜力的项目,架构设计合理,分层加载 + 可视化检索的思路值得借鉴。
适合谁用:
- 做 AI Agent 开发,需要深度定制记忆系统
- 需要多 Agent 共享记忆的场景
- 对检索透明度有要求的团队
不适合谁:
- 只想简单用上记忆功能 → 用 OpenClaw 内置记忆就够了
- 没有 CodingPlan 订阅 → 高级功能无法使用
如果你在做 AI Agent 相关的产品或项目,OpenViking 值得试试。它可能不是最终答案,但让 AI 拥有记忆,是 AI 的一个明确的前进方向。
数据来源:火山引擎官方文档、OpenViking GitHub、实测记录
