这是 OpenViking 系列的第 1 篇。如果你刚开始接触 AI Agent,可能会有一个很自然的疑问:大模型已经很强了,为什么还需要一个专门的“上下文数据库”?如果你已经写过 Agent,另一个问题可能更熟悉:为什么模型明明很聪明,却总是在长任务里忘记前面说过什么、找不到项目规则、重复检索资料,甚至把已经做过的决策又推翻一遍?这篇文章先不急着读源码。我们先把问题讲清楚:Agent 需要的不是更多零散文本,而是一套能长期管理、按需加载、可观察、可迭代的上下文系统。这篇解决什么问题我们先看一个很常见的场景。你让一个代码 Agent 帮你改造项目:第一轮,你告诉它项目不能破坏已有 API,要保持兼容。第二轮,你补充说测试必须覆盖异常路径。第三轮,它读取了 README、配置文件、几个核心模块。第四轮,它开始写代码,过程中调用了搜索、编辑、测试工具。第五轮,你让它继续优化性能,它却忘了之前的兼容性约束,甚至重新问你项目入口在哪里。这不是模型“笨”。更准确地说,是 Agent 的上下文管理跟不上任务复杂度。对于一次简单问答,模型只需要当前 prompt。对于一个长程任务,Agent 需要持续使用很多信息:用户偏好:你希望代码注释怎么写,测试怎么跑,回答风格是什么。项目资源:README、设计文档、源码、配置、Issue、API 文档。历史