news 2026/9/17 2:19:12

为什么Atlas能做到“一份记忆,三个代理“?揭秘共享Agent内存的底层机制

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
为什么Atlas能做到“一份记忆,三个代理“?揭秘共享Agent内存的底层机制

为什么Atlas能做到"一份记忆,三个代理"?揭秘共享Agent内存的底层机制

【免费下载链接】atlasSource control for agents. Use multiple coding agents, track their changes and query them in one place项目地址: https://gitcode.com/GitHub_Trending/atlas115/atlas

Atlas 是一款面向多编码代理(Coding Agent)的共享 Agent 内存管理工具:它让 Claude Code、Codex 和 Atlas 三个代理共用同一份项目记忆——任何代理做出的决策、踩过的坑、沉淀的架构事实,其他代理都能立刻"想起来"。这篇文章带你快速看懂它背后的共享内存机制:一个只追加的事件日志、一个本地 RAG 向量引擎,以及一套把项目记忆升级为"全局记忆"的保守晋升规则。

一份日志:所有代理往同一条"记忆总线"上写

在 Atlas 里,每个代理都是一个独立的 ACP 子进程,各自拥有隔离的上下文窗口——Claude 写下的计划,Codex 原本根本看不见。Atlas 的做法是在项目里放一条共享内存总线

  • 写入:后台会把每个代理的实时输出分类成带类型的事件(决策、文件变更、失败教训、架构说明……),只追加写入<项目>/.atlas/shared-memory/events.jsonl,绝不记录原始对话,也不会重复记录;
  • 读取:日志会被折叠成一个有界、无矛盾的"当前事实"视图(同主题的旧决策会被新决策自动取代),供其他代理直接消费。

关键设计在捕获层:只提取代理自己的结构化信号(计划更新、完成态的文件编辑工具调用),再对完成的消息做一次保守的关键词扫描(如 "decided to"、"anti-pattern"),并且所有内容在落盘前都会先做密钥脱敏。这样日志既干净又安全,详见 memory_delta.rs 和 shared_memory.rs。

一个引擎:本地向量索引 + 图记忆,三代理共用检索

日志解决"写",那"查"呢?Atlas 用一个独立的低层 Rust 引擎 atlas-memory 承担全部检索:

  1. 本地嵌入:设备上的 MiniLM 模型把项目文件、聊天记录、决策笔记嵌入成向量,持久化到 usearch HNSW 索引(<项目>/.atlas/memory/下);
  2. 图记忆:结构化的事实(关系、主题标签)存在 Cersei 图记忆里,作为辅助召回源;
  3. 融合检索:查询时先做向量余弦检索(相似度低于 0.30 直接丢弃),再与图召回结果按 RRF 加权融合去重。图命中的权重被刻意压得很低(10:1 以下),保证永远无法压过一条强向量命中

最巧妙的是"接缝"设计:三个代理都通过同一个冻结的MemorySearchFn(cwd, query, limit)回调检索——Atlas 代理主动调用search_memory工具,Claude/Codex 则把命中结果直接推入提示词。未来换引擎,代理侧一行都不用改。索引全程在后台线程执行(文件监听 2 秒防抖、聊天结束后增量更新),永不阻塞对话热路径,见 memory_indexer.rs 与 retrieve.rs。

一条晋升规则:从"项目记忆"到"全局记忆"

跨项目怎么共享?Atlas 在~/.atlas/memory/下维护一份全局记忆,晋升规则完全确定且保守

  • 只认UserPreference(用户偏好)和Constraint(约束)两类记忆;
  • 置信度必须≥ 0.8
  • 同一内容必须在≥ 2 个不同项目中出现过。

三条全满足才会晋升到全局图,并写进人类可读的MEMORY.md(始终少于 200 行)。检索时,只有当本项目记忆"稀薄"(少于 3 条命中)才会掺入全局记忆,且权重最低——项目本地经验永远优先。这条规则实现见 global.rs。

记忆如何流转:一次完整生命周期

时机发生什么
代理切换后首次发送把项目记忆包(事实 + 近期会话摘要)注入新代理的提示词,新会话直接继承上下文
会话进行中结构化信号持续追加到共享事件日志
一轮对话结束后台增量更新向量索引,可选地把长会话蒸馏成持久记忆
项目重新打开一次性幂等导入旧版共享日志到图记忆,旧文件保留以便回滚

导入逻辑简单可靠:成功一次后写标记文件,之后打开项目直接跳过,绝不重复导入,见 shared_import.rs。

小结

Atlas 的"一份记忆、三个代理"并不靠魔法,而是三块拼图:一条只追加、带类型、先脱敏的共享事件日志负责写;一个本地 HNSW + 图记忆融合的 RAG 引擎负责读,并用冻结接口让三个代理无差别接入;一条高门槛、可回滚的晋升规则让真正有价值的偏好跨项目流动。对新手来说,无需任何配置——打开项目,这套共享 Agent 内存就已经在工作了。

【免费下载链接】atlasSource control for agents. Use multiple coding agents, track their changes and query them in one place项目地址: https://gitcode.com/GitHub_Trending/atlas115/atlas

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/17 2:18:48

Windows虚拟内存配置指南:从原理到实操,避免OOM崩溃

1. 先说清楚&#xff1a;虚拟内存和 OOM 到底是怎么回事内存不够导致程序崩溃&#xff0c;这个场景几乎所有 Windows 用户都遇到过。游戏正打团突然闪退回桌面&#xff0c;浏览器开着几十个标签页然后系统提示"内存不足"&#xff0c;用 Docker 跑个 MySQL 容器结果容…

作者头像 李华
网站建设 2026/9/17 2:18:39

捷联惯导初始对准与航向角解算:MATLAB实现指南

简介&#xff1a;这份MATLAB程序包面向捷联惯导系统研究者与导航专业学生&#xff0c;解决惯导初始对准与解算编程实现问题&#xff0c;覆盖粗对准、精对准和纯惯导解算完整流程。对准部分基于前10分钟静止数据&#xff0c;用前2分钟完成解析粗对准&#xff0c;用后8分钟进行五…

作者头像 李华
网站建设 2026/9/17 2:17:51

基于Qt与OpenXLSX的库存管理系统设计与实现

简介&#xff1a;基于Qt与OpenXLSX实现的库存管理系统源码&#xff0c;适合计算机相关专业学生、Qt初学者&#xff0c;以及需要快速构建桌面数据管理工具的开发者。系统通过ODBC连接MySQL数据库&#xff0c;图形化界面支持商品信息的增删改查&#xff0c;并实现入库、出库时的库…

作者头像 李华
网站建设 2026/9/17 2:17:38

Dify离线部署插件全指南:从下载到导入的完整流程

做私有化部署的同行应该都有这种感觉&#xff1a;Dify本身装起来不难&#xff0c;真正闹心的是插件。上个月我帮客户做一套完全隔离内网环境下的Dify交付&#xff0c;平台装好、大模型也对接完了&#xff0c;结果到了插件这一步卡了整整两天——插件市场连不上网&#xff0c;页…

作者头像 李华