绑定手机号
获取验证码
确认绑定
提问
0/255
提问
订阅开课提醒需关注服务号
回答成功
知道了
扫码关注智猩猩服务号登录
请使用微信扫描二维码
扫描二维码分享给微信好友
您已订阅成功,有新课程,我们将第一时间提醒您。
知道了
发送提问成功
回答可在
“我的——我的提问”中查看
知道了
失败
欢迎来智东西
关注我们
智东西
车东西
芯东西
智猩猩
0
0
21.7k Star!字节火山开源AI智能体记忆神器OpenViking,文件系统范式重构上下文管理
2026-04-09 11:59:00

智猩猩AI整理

编辑:没方

让AI智能体帮你完成一个复杂任务,它需要去查资料、记用户偏好、调用工具、积累经验。

但是大部分智能体记忆散落在代码里,资源塞在向量数据库,技能东一个西一个。任务一长,上下文就爆炸,Token费用像坐火箭,检索效果还一塌糊涂。更气人的是,根本看不清它思考时到底用了哪些信息,智能体也学不会真正成长。

为此,今天给大家介绍字节火山引擎推出的开源项目OpenViking。它抛弃了传统 RAG 的碎片化向量存储模型,创新性地采用“文件系统范式”重构了上下文管理逻辑,实现记忆、资源、技能的统一管理,还支持分层上下文加载、目录递归检索、可视化检索轨迹和自动会话管理,让开发者彻底告别上下文管理的繁琐操作。目前,该项目在github上已收获21.7k Stars。

  • 项目链接:

    https://github.com/volcengine/OpenViking

01 项目介绍

OpenViking 的核心设计理念,是将 AI Agent 需要的所有上下文(记忆、资源、技能)映射为虚拟文件系统,通过viking://协议赋予每个信息唯一 URI,让开发者像用ls、find命令管理本地文件一样,构建智能体的大脑。通过五大核心能力,OpenViking 从根本上解决了 Agent 上下文管理的痛点。

(1)文件系统管理范式

OpenViking 摒弃了传统 RAG 的碎片化向量存储,将 Agent 的所有上下文整合为分层的虚拟文件系统,分为三大核心目录:

  • resources/:存放项目文档、代码仓库、网页等外部资源;

  • user/:记录用户偏好、使用习惯等用户记忆;

  • agent/:存储智能体的技能、指令、任务记忆等核心能力。

(2)分层上下文加载

    把海量上下文一次性塞入模型 prompt,不仅成本高,还容易超出模型窗口。OpenViking 将所有信息自动处理为L0/L1/L2 三级结构,按需加载。

    • L0(摘要层):高度浓缩摘要,用于快速检索和相关性判断。

    • L1(概览层):包含核心信息和使用场景,用于智能体在规划阶段的决策。

    • L2(详情层):原始完整数据,仅在智能体需要深度阅读时加载。

    三级结构让 Agent 只调用当前需要的信息,既节省了 Token 成本,又避免了无效信息的干扰。

    (3)目录递归检索

    单一的向量检索很难应对复杂的查询意图,OpenViking中引入一种目录递归检索策略,分为 5 步:

    ①意图分析:拆解用户查询,生成多个检索条件;

    ②初始定位:通过向量检索找到高匹配度的核心目录;

    ③精细探索:在核心目录内二次检索,并将高分结果更新到候选集;

    ④递归深入:若有子目录,逐层重复精细检索;

    ⑤结果聚合:返回最相关的完整上下文。

    这种"先锁定高分目录,再精细化内容探索"的策略,不仅能找到语义匹配的信息片段,还能理解信息所在的全局上下文,让检索准确率大幅提升。

    (4)可视化检索轨迹

    OpenViking 会完整记录每次检索的目录浏览和文件定位轨迹,开发者能清晰看到智能体是如何找到信息。

    当检索出现问题时,开发者可以通过轨迹快速定位根因,比如是初始目录定位错误,还是子目录探索不充分,从而针对性优化检索逻辑,彻底解决传统 RAG 调试难的问题。

    (5)自动会话管理

    OpenViking 内置记忆自迭代循环,在每次会话结束后,能自动分析任务执行结果和用户反馈,将核心信息更新到对应的记忆目录。

    • 更新用户记忆:比如用户的写作风格、编码习惯,让智能体的响应更贴合用户需求;

    • 积累智能体经验:从任务执行中提取工具使用技巧、操作流程等,辅助后续任务的高效决策。

    这使得智能体能够通过与世界的交互"越用越聪明",实现自我进化。

    02 使用方法

    环境要求:Python版本(3.10+)、Go 版本(1.22 或更高,从源码构建 AGFS 组件需要)、C++ 编译器(GCC 9+ 或 Clang 11+,构建核心扩展需要,必须支持 C++17)。

    (1)安装

    #Python 包
    pip install openviking --upgrade --force-reinstall

    #Rust CLI(可选)
    curl -fsSL https://raw.githubusercontent.com/volcengine/OpenViking/main/crates/ov_cli/install.sh | bash

    #或从源码构建:
    cargo install --git https://github.com/volcengine/OpenViking ov_cli

    (2)模型准备

    OpenViking 需要VLM 模型(用于图像和内容理解)和Embedding 模型(用于向量化和语义检索)。对于 embedding 模型,目前支持 volcengine(豆包)、openai、azure、jina 等提供商。对于 VLM 模型,支持 volcengine、openai、azure 和 litellm 提供商。litellm 提供商支持各种模型,包括 Anthropic (Claude)、DeepSeek、Gemini、Moonshot、Zhipu、DashScope、MiniMax、vLLM、Ollama 等。

    (3)环境配置

    • 服务器配置模板

    创建配置文件 ~/.openviking/ov.conf

    {
      "storage": {
        "workspace""/home/your-name/openviking_workspace"
      },
      "log": {
        "level""INFO",
        "output""stdout"                 // 日志输出:"stdout" 或 "file"
      },
      "embedding": {
        "dense": {
          "api_base" : "<api-endpoint>",   // API 端点地址
          "api_key"  : "<your-api-key>",   // 模型服务 API Key
          "provider" : "<provider-type>",  // 提供商类型:"volcengine""openai""azure" 等
          "api_version""2025-01-01-preview"// (仅 azure)API 版本,可选,默认 "2025-01-01-preview"
          "dimension"1024,               // 向量维度
          "model"    : "<model-name>"      // Embedding 模型名称或 Azure 部署名(如 doubao-embedding-vision-250615 或 text-embedding-3-large)
        },
        "max_concurrent"10               // 最大并发 embedding 请求(默认:10
      },
      "vlm": {
        "api_base" : "<api-endpoint>",     // API 端点地址
        "api_key"  : "<your-api-key>",     // 模型服务 API Key
        "provider" : "<provider-type>",    // 提供商类型 (volcengine, openai, azure, litellm 等)
        "api_version""2025-01-01-preview"// (仅 azure)API 版本,可选,默认 "2025-01-01-preview"
        "model"    : "<model-name>",       // VLM 模型名称或 Azure 部署名(如 doubao-seed-2-0-pro-260215 或 gpt-4-vision-preview)
        "max_concurrent"100              // 语义处理的最大并发 LLM 调用(默认:100
      }
    }

    创建配置文件后,设置环境变量指向它(Linux/macOS):

    export OPENVIKING_CONFIG_FILE=~/.openviking/ov.conf # 默认值

    在 Windows 上,使用以下任一方式:

    PowerShell:

    $env:OPENVIKING_CONFIG_FILE = "$HOME/.openviking/ov.conf"

    命令提示符 (cmd.exe):

    set "OPENVIKING_CONFIG_FILE=%USERPROFILE%\.openviking\ov.conf"
    • CLI/客户端配置示例

    示例:用于访问本地服务器的 ovcli.conf

    {
      "url": "http://localhost:1933",
      "timeout": 60.0,
      "output": "table"
    }

    创建配置文件后,设置环境变量指向它(Linux/macOS):

    export OPENVIKING_CLI_CONFIG_FILE=~/.openviking/ovcli.conf # 默认值

    在 Windows 上,使用以下任一方式:

    PowerShell:

    $env:OPENVIKING_CLI_CONFIG_FILE = "$HOME/.openviking/ovcli.conf"

    命令提示符 (cmd.exe):

    set "OPENVIKING_CLI_CONFIG_FILE=%USERPROFILE%\.openviking\ovcli.conf"

    (4)运行 OpenViking

    #启动服务器
    openviking-server

    #或者可以在后台运行
    nohup openviking-server > /data/log/openviking.log 2>&1 &

    运行 CLI

    ov status
    ov add-resource https://github.com/volcengine/OpenViking # --wait
    ov ls viking://resources/
    ov tree viking://resources/volcengine -L 2
    # 如果没有使用 --wait,等待一段时间以进行语义处理
    ov find "what is openviking"
    ov grep "openviking" --uri viking://resources/volcengine/OpenViking/docs/zh

    (5)启动VikingBot

    VikingBot 是构建在 OpenViking 之上的 AI 智能体框架。

    # 选项 1:从 PyPI 安装 VikingBot(推荐大多数用户使用)
    pip install "openviking[bot]"

    # 选项 2:从源码安装 VikingBot(用于开发)
    uv pip install -e ".[bot]"

    # 启动 OpenViking 服务器(同时启动 Bot)
    openviking-server --with-bot

    # 在另一个终端启动交互式聊天
    ov chat

    03 总结

    当大模型从单轮对话走向长期任务执行与自主协作时,上下文管理已不再是 AI Agent 开发的附属功能,而是决定智能体能力上限的核心基础设施。OpenViking 的出现,不仅有效解决了当前 Agent 开发的上下文碎片化、检索低效等痛点,更以“文件系统范式”为 AI Agent 的记忆管理建立了全新标准。

    OpenViking 内置的记忆自迭代机制,为智能体实现“越用越聪明”的持续进化打下了坚实基础。当前的 AI Agent 大多仍停留在“指令执行”阶段,而未来的智能体,需要在交互中不断积累经验、提炼知识、优化自身能力。OpenViking 通过每次会话结束后自动压缩上下文、提取长期记忆,并异步更新到对应目录,让 Agent 在真实使用中逐步成长。这种“成长型记忆”模式,正是下一代可靠、持久化 Agent 的关键特征,也将为通用人工智能(AGI)的落地提供重要基础设施支撑。