当前位置: 首页 > article >正文

一个Openclaw多Agent自动化协作情况下,记忆丢失问题解析

核心概述一个Openclaw多Agent如果想实现各Agent自动化沟通最简单的办法是设置一个主Agent由主Agent使用sessions_spawn派发任务给其他Agent。经过一段时间测试发现这种模式经常出现记忆不同步的问题经过分析发现这个问题的根本原因是sessions_spawn的机制导致的。本文核心思想Workspace 是持久存储的「硬盘」Session 是临时使用的「内存」Memory 是需主动写入的「数据库」。三者的关系是Session 加载时从 Workspace 读取 Memory处理完毕后由 Agent 决定是否写回。因此Memory 不会自动同步需要通过sessions_send同步或手动写入隔离任务来保证一致性。一句话概括多 Agent 协作时记忆同步是最大痛点——目前想到的解决办法要么让主Agent用sessions_send派送任务 要么使用sessions_spawn派送但主Agent收到结果后立刻手动记录结果并同步给其他Agent。目录一、导言二、核心概念三、三者关系详解四、实战操作指南五、问题排查与解决方案六、配置参考七、总结一、导言本文档通过对 OpenClaw 系统中Workspace工作空间、Session会话、Memory记忆三个核心概念的关系与使用规范来说明同一个openclaw下配置多Agent自动化协作容易丢失的问题。前置知识本文假设你已了解 OpenClaw 的基本架构包括 Main Agent、Subagent 等概念。核心知识点sessions_spawn存在一个隔离保护机制该机制的主要目的是为了保护其他Agent当前正在进行的会话以及任务不被主Agnet发送来的新任务影响。我采用的多Agent协作模式由主Agent通过sessions_spawn派发任务。调用时需指定runtime: subagent这会为目的Agent创建隔离的子会话并执行任务该动作避免干扰目的Agent的主会话main session但却是让记忆丢失的元凶。这个子会话中的subAgent完成任务后只把结果返回给主 Agent不会自动写入任何 Memory 文件。目的Agent虽然干了活但是由于其subAgent的子会话没有留下任何记录导致其根本不知道这个任务的细节以及结果长此以往多 Agent 间的记忆会逐渐割裂形成「信息孤岛」。sessions_spawn 信息格式sessions_spawn( agentId:quality,//agent ID runtime:subagent,//运行时类型 task:请审核新文件...,//任务内容 timeoutSeconds:120//超时时间 )二、核心概念2.1 Workspace · 工作空间定义每个 Agent 独立的文件系统存放配置文件、参考文档和知识库。属性说明位置~/.openclaw/workspace-agentName/作用持久存储配置文件、知识库、记忆文件生命周期永久存在目录结构~/.openclaw/├── workspace/# Main Agent├── workspace-architect/# 架构师├── workspace-writer/# 写手└── workspace-Quality/# 质检员Workspace 内部文件文件用途AGENTS.mdAgent 配置SOUL.mdAgent 角色定义USER.md用户信息MEMORY.md长期记忆TOOLS.md工具配置HEARTBEAT.md心跳任务memory/YYYY-MM-DD.md每日记忆2.2 Session · 会话定义每一次对话的独立上下文存储对话历史。属性说明位置~/.openclaw/agents/agentId/sessions/格式JSONL 文件生命周期默认 30 天后清理Session Key 格式类型格式场景主会话agent:agentId:main直接对话私聊agent:agentId:direct:peerId按用户隔离群聊agent:agentId:channel:group:id按群隔离子任务agent:agentId:subagent:uuid派发任务2.3 Memory · 记忆定义持久化的文本记忆供 Agent 加载参考。类型文件位置用途长期记忆MEMORY.md重要决策、偏好、持久知识每日记忆memory/YYYY-MM-DD.md当天工作记录加载规则每次 Session 启动时1.加载 SOUL.md → Agent 角色定义2.加载 USER.md → 用户信息3.加载当日昨日日记 → memory/YYYY-MM-DD.md4.加载 MEMORY.md → 仅限主会话三、三者关系详解3.1 关系图┌─────────────────────────────────────────────────────────┐ │ Workspace (硬盘) │ │ ┌─────────────────────────────────────────────────┐ │ │ │ AGENTS.mdSOUL.mdUSER.mdMEMORY.md│ │ │ │ memory/ │ │ │ │ └──2026-03-20.md│ │ │ └─────────────────────────────────────────────────┘ │ └─────────────────────────────────────────────────────────┘ ↑ │ 加载 ↓ ┌─────────────────────────────────────────────────────────┐ │ Session (内存) │ │ ┌─────────────────────────────────────────────────┐ │ │ │ agent:main:20260320│ │ │ │ - 对话历史 │ │ │ │ - 上下文 │ │ │ └─────────────────────────────────────────────────┘ │ └─────────────────────────────────────────────────────────┘3.2 类比理解概念类比说明Workspace硬盘持久存储存放所有文件Session内存临时使用对话结束后清理Memory数据库长期积累可查询3.3 数据流用户发送消息 ↓ 加载 Session 上下文 ↓ 加载 Workspace 中的Memory↓ Agent 处理 ↓ 决定是否写入Memory↓ 返回响应四、实战操作指南4.1 Subagent 任务处理核心原则Subagent 完成任务后不会自动写入 Memory。sessions_spawn vs sessions_send工具Session Key隔离性记忆同步sessions_spawnagent:xxx:subagent:uuid✅ 隔离❌ 不自动同步sessions_sendagent:xxx:main❌ 共用✅ 自动同步使用场景场景推荐工具临时任务需要隔离sessions_spawn重要任务需要同步sessions_send4.2 手动同步记忆流程当使用sessions_spawn派发任务并收到结果后必须手动记录收到 subagent 结果 ↓1. 写入自己的 memory/YYYY-MM-DD.md↓2. 同步到对方的 memory/YYYY-MM-DD.md↓ 完成示例代码// 收到 Quality 审核结果后constresult awaitsessions_spawn({ task:审核第26章});// 手动记录awaitwrite(memory/2026-03-20.md, ### 第26章审核结果- 状态通过 - 问题已修复 );// 同步到 Quality 的记忆awaitsessions_send({ sessionKey:agent:Quality:main, message:已记录审核结果到记忆});4.3 写入决策指南内容写入位置时机临时工作记录memory/YYYY-MM-DD.md收到结果后重要决策MEMORY.md确认后用户偏好MEMORY.md首次得知时任务状态更新memory/YYYY-MM-DD.md每次变化五、问题排查与解决方案5.1 常见问题问题1记忆不同步现象用户直接 Quality 审核 → Quality 写入了 MEMORY.mdMain 派发任务给 Quality → 结果返回 Main但 Main 没记录原因两种方式访问不同的 Sessionsubagent Session 不会自动同步解决方案优先使用sessions_send处理重要任务收到 subagent 结果后立即手动写入问题2Session 无法复用现象每次对话都像全新会话上下文丢失可能原因用户发送了/new或/resetSession 已过期默认 30 天解决方案检查是否有重置命令检查 Session 维护配置5.2 诊断流程发现记忆不一致↓ 检查是否使用了 subagent ↓ ├─ 是 → 确认是否有手动写入 └─ 否 → 检查 Session 加载配置确认问题后 → 应用解决方案六、配置参考6.1 Session 配置{session:{dmScope:main,// 私聊复用主会话reset:{mode:daily,atHour:4// 每天 4 点重置},maintenance:{mode:enforce,pruneAfter:30d,// 30 天后清理maxEntries:500}}}6.2 Memory 配置{agents:{defaults:{memorySearch:{enabled:true,provider:openai,model:text-embedding-3-small}}}}七、总结核心要点概念关键点Workspace每个 Agent 独立的文件夹永久存储Session对话上下文30 天后清理Memory需主动写入不自动同步Subagent临时任务结果需手动记录sessions_spawn隔离执行不影响主会话sessions_send同步执行共用主会话最佳实践重要任务→ 使用sessions_send临时任务→ 使用sessions_spawn 手动记录定期检查→ 核对各 Agent 记忆是否一致经验总结重要任务用 sessions_send临时任务用 sessions_spawn收到结果后立即写入 memory。

相关文章:

一个Openclaw多Agent自动化协作情况下,记忆丢失问题解析

核心概述:一个Openclaw多Agent,如果想实现各Agent自动化沟通,最简单的办法是设置一个主Agent,由主Agent使用 sessions_spawn 派发任务给其他Agent。经过一段时间测试,发现这种模式经常出现记忆不同步的问题&#xff0c…...

OpenClaw故障排查大全:GLM-4.7-Flash接口超时解决方案

OpenClaw故障排查大全:GLM-4.7-Flash接口超时解决方案 1. 问题背景与现象描述 上周在尝试用OpenClaw对接本地部署的GLM-4.7-Flash模型时,遇到了令人头疼的接口超时问题。具体表现为:当处理超过2000字的长文本时,系统频繁返回502…...

最新微信在线AI客服系统源码独家支持多媒体+人工客服转接

温馨提示:文末有资源获取方式近日,一款基于PHP原生开发的微信AI智能在线客服系统解决方案正式亮相,深度集成企业微信生态,为企业提供724小时智能值守服务。该系统突破传统文本客服的单一模式,独家支持多媒体交互与人工…...

Sikuli脚本中的控制语句

SikuliX 的脚本语言其实是 Jython(Python语法),所以 判断、循环、函数、异常处理等控制结构 全部使用 Python 语法。一、判断语句(if)语法说明示例if条件判断if exists("ok.png"):elif否则如果elif exists(&…...

daily_stock_analysis镜像企业集成:通过API对接内部OA系统实现报告自动推送

daily_stock_analysis镜像企业集成:通过API对接内部OA系统实现报告自动推送 想象一下这个场景:每天早上9点,公司高管和投资部门的同事打开企业OA系统,一份结构清晰、重点突出的股票分析报告已经静静地躺在他们的待办事项或内部公…...

【黑马点评学习笔记 | 实战篇 】| 8-好友关注

Bug如山勤为径,代码似海苦作舟。友友们好,这里是苦瓜大王。今天学习的是黑马点评项目实战篇——好友关注部分的学习,今天也是相对轻松的章节!今天我们将完成好友关注功能。笔记如下,后续会一直更新黑马点评学习过程中的…...

户籍制度捆绑资源下留守儿童问题对人口结构的长效影响

一、劳务输出省份留守儿童问题现状分析 1.1 户籍壁垒下公共资源配置失衡现状 户籍制度与城市公共服务的捆绑,构成了流动人口子女随迁的刚性约束机制,是留守儿童问题产生的结构性根源。尽管2010-2020年间我国流动人口增加了1.54亿人,城镇化进…...

【高精度气象】2026别再只问“天气准不准”:真正拉开收益差距的,是把预报接进交易、调度和运维

很多新能源企业到了 2026 年,仍然习惯把问题问成一句话:明天的天气到底准不准?这个问题当然重要,但已经不够了。因为今天的行业竞争,早就不是“谁把风速、辐照度报得更像天气软件”,而是谁能把气象预报真正…...

1%的预测精度提升,在现货市场值多少钱?基于100MW电站的年度收益敏感性分析

当电力现货市场进入“分钟级博弈”,功率预测已不是技术问题,而是算账问题。2026年,对于新能源电站而言,一个根本性的变化正在发生。过去,功率预测是“合规成本”——做得好不被罚,做不好被罚钱。今天&#…...

2026功率预测生死局:MKAN多尺度网络如何将光伏预测误差斩落马下?

当考核规则趋严,传统AI模型集体失灵,一种名为MKAN的新型网络正在改写游戏规则。2026年的春天,对于新能源电站的运营者而言,注定不太平。今年以来,多个省份陆续更新了新能源并网运行管理细则,日内预测偏差考…...

零碳园区管理系统投资效益分析与评估模型的未来发展趋势

在“双碳”目标深度推进的背景下,零碳园区已从政策试点升级为产业绿色转型的核心载体,零碳园区管理系统作为园区碳排管控、能源优化的核心技术支撑,其投资价值与评估体系的完善程度,直接决定园区零碳转型的效率与质量。当前&#…...

养老设计行业黑马崛起:揭秘深圳医博传人如何用3个月霸榜搜索引擎的“危险操作“

当传统养老院还在用"夕阳红"做卖点时 这家公司已经让90后开始抢订床位 您是否好奇:为什么同样的养老设计方案,有的公司门可罗雀,而深圳医博传人设计院的咨询电话却被"打爆"?这背后藏着一个大多数同行都不敢尝…...

中国1:100万地貌类型空间分布数据|14类精细划分|全国覆盖|SHP矢量|含海拔+起伏度属性

🔍 数据简介 本数据集源自 《中华人民共和国地貌图集(1:100万)》(科学出版社,2009年),由中国科学院地理科学与资源研究所牵头全国科研与制图单位共同编制,是全球首套海陆一体化百万分…...

人脸识别OOD模型快速入门:10分钟部署指南

人脸识别OOD模型快速入门:10分钟部署指南 1. 引言 人脸识别技术在日常生活中的应用越来越广泛,从手机解锁到门禁系统,再到身份验证,几乎无处不在。但你是否遇到过这样的情况:系统在面对模糊照片、遮挡人脸或者极端光…...

长芯微LD9680完全P2P替代AD9680,是 14 位 1000MSPSA/D 转换器采用 QFN64 封装

产品描述LD9680 是14 位 1000MSPSA/D 转换器采用 QFN64 封装,功能框图如图 1 所示。该器 件内置片内缓冲器和采样保持电路,专门针对低功耗、小尺寸和易用性而设计。该器件设计 用于高达 2GHz 的宽带模拟信号采样。该器件针对宽输入带宽、高采样速率、出色…...

计算机毕业设计springboot高校智慧图书管理系统 基于SpringBoot的高校智能图书服务平台设计与实现 SpringBoot框架下高校数字化图书馆管理系统开发

计算机毕业设计springboot高校智慧图书管理系统6y8026n8 (配套有源码 程序 mysql数据库 论文) 本套源码可以在文本联xi,先看具体系统功能演示视频领取,可分享源码参考。随着信息技术的快速发展和高校数字化转型的深入推进,传统图书…...

小游戏上线后,收益到底如何?

大家好,我是晋十七。我开发的竖版塔防小游戏《奥术守卫者》已经上线一段时间了,并且也开通了流量主。很多小伙伴都很好奇个人做小游戏到底能不能赚钱?今天我就跟大家聊聊这个事情。收益展示先上截图吧,我的这款游戏大概是2月中旬上…...

2026毕业论文提速,文鉴智检工具深度分析

毕业季倒计时!2026届毕业生最头疼的问题,莫过于毕业论文的“格式内耗”和“内容打磨”——明明内容达标,却被页眉页脚、参考文献格式反复打回;逐字逐句校对错别字、语法错误,耗时又易漏;好不容易改完格式&a…...

DS2协议库:面向汽车ECU诊断的K-Line通信实现

1. DS2协议库技术解析:面向汽车ECU诊断的K-Line通信实现1.1 协议背景与工程定位DS2(Diagnostic Services 2)并非ISO标准协议,而是宝马(BMW)MS系列发动机控制单元(ECU)在K-Line物理层…...

计算机毕业设计springboot项目管理系统 基于SpringBoot的企业级协同任务管控平台 SpringBoot驱动的智能工作流与资源调度系统

计算机毕业设计springboot项目管理系统wxsy6muz (配套有源码 程序 mysql数据库 论文) 本套源码可以在文本联xi,先看具体系统功能演示视频领取,可分享源码参考。在数字化转型浪潮席卷全球的当下,企业对于高效协同与精细化管控的需求…...

2026年不踩雷!论文写作全流程降重首选 —— 千笔·专业降AIGC智能体

在AI技术迅猛发展的今天,越来越多的学生和研究者开始借助AI工具辅助论文写作,以提升效率与质量。然而,随着学术审查标准的不断升级,AI生成内容的痕迹愈发明显,查重系统对AIGC的识别也日益精准。许多学生因此陷入“AI率…...

24.两两交换链表中的节点(LeetCode)

题目分析: 为链表建立一个虚拟头节点,然后对接下来的两个节点进行位置交换。设置一个指针变量 cur让其指向虚拟头节点 循环遍历的终止条件为cur->next!NULL 并且cur->next->next!NULL 每次循环时,先定义一个指针变量 temp保存 cu…...

真心不骗你!全学科适配降AI率网站,千笔·降AI率助手 VS 万方智搜AI

在AI技术迅速发展的今天,越来越多的学生和研究者开始借助AI工具辅助论文写作,以提高效率、优化内容。然而,随着学术审核标准的不断提升,AI生成内容的痕迹越来越容易被检测出来,论文中的“AI率超标”问题也日益突出。面…...

对比一圈后!巅峰之作的降AI率软件 —— 千笔·专业降AIGC智能体

在AI技术快速发展的今天,越来越多的学生和研究者开始依赖AI工具辅助论文写作,以提升效率和质量。然而,随着学术审查标准的不断提高,AI生成内容的痕迹越来越容易被检测出来,导致论文AI率超标、重复率过高等问题频发。面…...

如何连接一个隐藏的wifi?

前言某些情况下,我们并不希望自己的wifi被其他人扫描到,选择将wifi网络隐藏起来,本文将从应用开发角度说明,APP应该如何连接这些被隐藏起来的wifi开发实例话不多说,直接上代码private void init() {mWifiManager (Wif…...

世嘉MD完全档案中文版PDF

核心内容分区MD 本体(1988–1996):硬件迭代(MD1/MD2/MD3)、手柄、卡带;全游戏封面 截图 基础信息Mega-CD(1991–1996)、Super 32X(1994–1995)扩展外设与专…...

ESP32学习笔记之UART

第一部分:UART 核心概念 1. 什么是 UART? UART 中文常叫“通用异步收发器”,“异步”意思是通信双方不共享时钟,所以要提前约定好通信参数。 UART 本质上就是按约定好的速度,把 0 和 1 一位一位串行发出去 关键特点&…...

垃圾网站穷疯了,什么都要钱

垃圾。。。。。...

攻防世界 crypto题GFSJ0527-【easy_RSA】

1.工具:thonny2.解题:打开附件,看到如下在一次RSA密钥对生成中,假设p473398607161,q4511491,e17 求解出d*RSA加密算法:①算法原理:RSA是一种非对称加密算法;②CTF中的常见…...

sslyze使用教程

SSLyze 是 Kali Linux 中一款专业的 TLS/SSL 安全扫描工具,主要用于检测目标服务器的 TLS/SSL 配置安全性,包括协议版本支持、加密套件强度、证书有效性、常见漏洞(如 Heartbleed、ROBOT)等,广泛应用于渗透测试、服务器…...