在多个 Agent 之间切换工作,背景信息往往会在窗口切换时丢失:群聊知道讨论上下文但看不到代码,Coding Agent 能读仓库但不了解团队长期形成的 Review 规则,到了文档工具里又要重新解释背景和结论。OpenViking 的思路不是再做一个 Agent,而是在不同 Agent 背后放一个共享 Context 层。
核心机制
OpenViking 把背景信息组织成三类对象:
- Resource:代码仓库、项目文档、Review Guidelines
- Memory:个人偏好、历史判断、Code Learnings
- Skill:可复用的工作方法
这些内容统一存放在 viking:// 路径下,按目录和文件组织。
加载采用 L0/L1/L2 分层:Agent 先读 L0 摘要,再看 L1 目录概览,按需加载 L2 完整内容。任务结束后,Session Commit 从对话和执行过程中提取新经验,写回长期 Memory。Context 因此不绑定某个 Agent 或某次 Session,而是跟着研发走。
接入方式:MCP、CLI、API、SDK。文档里提到的现成集成包括:
- Coding Agent:Codex、Claude Code、TRAE(插件)
- AI 同事(办公 IM 内):OpenClaw、Hermes
- 办公场景 Agent:已上架豆包工作插件市场
工作流示例
PR Review
群聊里 @ 接入 OpenViking 的 AI 同事,要求按之前的规范 Review。AI 同事读取当前讨论,同时从 OpenViking 调取相关代码、项目规范、历史 Review Guidelines,完成 Review 和小修,检查 CI,再推动合入或发版。
侧重点:这些知识不是拼接在一条长 Prompt 里。AI 同事通过 MCP 把相关代码、规范和 Review Guidelines 写入 viking://resources/{project}/,任务过程由自动化 Hook 写入 Session。任务结束后 Session Commit 提取表达习惯、Review 偏好和判断,分别存入 viking://~/memories/preferences/ 与 viking://~/memories/experiences/。新确认的 Review 规则也写回,后续不依赖具体处理人。
深度 Coding
CLI 里打开接入 OpenViking 的 Claude Code 处理复杂任务。它直接读取代码仓库、决策记录、Review Guidelines 和历史 Code Learnings,不需要重讲团队规则。任务结束前,本次形成的实现理解、技术判断和 Code Learnings 经 Session Commit 写回。之后换 Session 或换产品,仍可从长期 Memory 继续调用。
跨工具协作
CLI 里形成的结论在 OpenViking 里有统一的 Viking URI,回到飞书后群聊 Agent 和豆包工作可检索同一份 Resource 和 Memory 继续补充讨论,文档工具也可以直接引用这些结论。如果后续讨论再经 Session Commit 保存,就形成「读取—协作—再沉淀」的闭环,不必从 CLI 复制粘贴再重述一遍。
周报沉淀
周五让豆包工作基于 OpenViking 中过去一周的沉淀生成周报,可按项目进展、关键决策、风险问题、下周计划组织。数据来源是这一周积累的 PR、任务、Code Learnings、测试结果和未完成事项。生成后在文档里继续手动调整;最终版本的周报也作为可检索资料留在 OpenViking 里。
价值判断
这套设计解决的具体问题是:不同工具各自维护一份局部 Context,用户被迫重复解释背景。像 PR Review 这种任务,场景特征是需要规范背景但不需要完整展开代码逻辑,能够从共识 Context 直接取 Guidelines 的确比临时补 Prompt 效率高。跨 Agent 复用带来的另一个收益是格式统一:经验写回后,无论下次由 Codex、Claude Code 还是群聊 Agent 读取,文件结构和查询方式都一致。
局限性也要说明。
- 写回成本:Session Commit 自动提取是有噪音的。规模越大,需要维护的 Memory 对象越多,自动提取的质量上限决定长期可用性,最终可能需要人工筛选和整理机制。
- 适合什么样的场景:个体研发的跨工具工作流、团队维护同一套项目规范和决策记录时收益明显。如果团队没有持续的上下文沉淀习惯,单靠工具侧的自动 Commit 很难产生高质量积累。
- Agent 记忆策略仍需实测:Context 覆盖、冲突偏好优先级(比如用户最新指令与旧 Memory 冲突)一类的行为,公开文档里没有太多实现细节。当前信息足以判断原理是可行的,实际项目跑一段时间才能验证体验。
相关链接
- 产品介绍:https://docs.volcengine.com/docs/84313/2374478?lang=zh
- 控制台:https://signin.volcengine.com/auth/login?redirectURI=https%3A%2F%2Fconsole.volcengine.com%2Fvikingdb%2Fopenviking%2Fregion%3Aopenviking%2Bcn-beijing%2F
- 产品页:https://www.volcengine.com/product/openviking-service
- GitHub:https://github.com/volcengine/OpenViking