如何让多个 AI 代理在同一仓库中协同工作而不丢失上下文
每天与神经网络一起写代码时,你很快就会撞上同一堵墙。你启动 Claude Code 来重构一个模块,切换到 Codex 写几个函数,再开一个聊天窗口来检查架构思路。最后,每个代理都从零开始,完全忘记五分钟前我们为什么拒绝某个库。
所有上下文都丢失了。提交只包含干巴巴的 diff,而模型的思考和推理消失在一个关闭的终端里。
pacifio 团队决定系统性地解决这个问题,于是发布了 Atlas。它是一个面向 AI 代理的本地工作区和版本控制系统,将代理的记忆串联起来,并将每次提交与其产生的会话关联起来。
核心思路
作者们把这个项目称为"面向编码代理的源代码管理"。概念很简单:如果自主代理在写代码,我们需要一个工具来追踪的不仅是文件变更,还有它们背后的推理链条。
Atlas 可以在不同的标签页中并行启动多个代理。例如,Claude Code 和 Codex 通过 ACP(Agent Client Protocol)作为外部子进程运行,而 Atlas 内置的代理则在自己的 Rust 框架 Cersei 上直接运行于进程中。
最有趣的部分发生在上下文层面。在你的提示词到达模型之前,Atlas 会围绕它组装一个统一的画面:
- 注入共享代理记忆:当前计划、已做出的决策、错误,以及项目中任何其他模型创建的架构笔记。
- 通过
@在本地解析文件、文件夹、函数、git 分支、笔记,甚至研究论文。 - 附加前一个会话的结尾和事实摘要,即使上一个任务是由其他助手解决的。
- 构建本地向量嵌入并通过 HNSW 搜索相关片段,无需将数据发送到第三方服务器。
结果:Claude 能看到 Codex 得出的结论,Codex 也能知道 Claude 的哪些测试刚刚失败了。
检查点和提交关联
通常情况下,代理完成工作后,git 中会出现一个提交,但一周后没人记得是哪个提示词生成了它。
Atlas 将会话保存到本地 SQLite 数据库的 .atlas/sessions.db 位置。程序从外部监控提交,而不是强行拦截它们。你可以通过标准终端、VS Code,甚至在 Atlas 关闭的情况下提交代码。应用程序会匹配补丁,并将提交关联到写出那段代码的代理会话。
由于 patch-id 验证,链接在正常的 git rebase 或 git commit --amend 过程中不会断开。如果你执行了 squash 并且链接变得模糊,Atlas 不会尝试猜测——它会诚实地将会话标记为已分离。
一个贴心的细节:在数据触及磁盘之前,所有密钥和令牌都会从日志中清除。
工作区内部
Atlas 不仅是一个后台守护进程,而是一个功能完整的桌面工作环境。底层技术栈是 Tauri、Rust,以及基于 Bun 和 TypeScript 的 Web 界面。
日常工作的所有需要都包含在内:
- 基于 CodeMirror 的代码编辑器,状态在重启后持久保存。
- 功能完整的 Git 客户端,包含可视化提交图、分支和 diff。
- 分块终端,每个执行的命令都会存储其输出、退出状态和耗时。全屏工具如 vim 和 htop 也能正常使用。
- 位于
.atlas/knowledge/文件夹中的知识库。这些是普通的 Markdown 文件,与代码一起进行版本控制。支持反向链接、链接图和 HTML 导出。 - 通过 arXiv 和 Semantic Scholar 搜索研究论文,支持应用内阅读 PDF,并通过
@将链接发送到提示词。 - 基于 WebKit 引擎的内置浏览器,支持登录和阅读模式。
所有项目文件都保持为磁盘上的普通文件。笔记是 Markdown,画布是 JSON,会话是 JSONL。如果你关闭程序,可以从容地在你喜欢的编辑器中继续工作,不会失去对数据的访问。
如何在本地运行项目
macOS 二进制文件可在官方网站和 GitHub releases 中作为 .dmg 下载。在 Linux 和 Windows 上可以从源码构建,不过开发者指出这些平台目前测试较少。
本地构建需要安装 Bun、稳定版 Rust,以及 Claude CLI 客户端(如果你计划使用 Anthropic 的代理)。
在 Ubuntu 或 Debian 上安装依赖:
sudo apt install -y libglib2.0-dev libgtk-3-dev libwebkit2gtk-4.1-dev
在开发模式下构建和运行:
git clone https://github.com/pacifio/atlas
cd atlas
bun install
bun run dev:app
初始 Rust 编译需要几分钟,但后续的增量构建在几秒内就能完成。
谁会发现 Atlas 有用
这个项目会吸引那些积极尝试多个 AI 助手、厌倦了在终端窗口之间手动复制上下文的开发者。
基础功能没有强制云订阅:一切都可以离线工作,数据库存储在项目目录中,代码不会泄露到任何地方。如果你在寻找一种方法来组织你与代理的工作流程,并保留他们决策的历史——无论是为你的团队还是为一个月后的自己——这个仓库绝对值得一看。
相关项目