Multimodal Agent with Long-Term Memory: M3-Agent 简介

M3-Agent: 具备长期记忆的多模态智能体
在这里插入图片描述

Seeing, Listening, Remembering, and Reasoning: A Multimodal Agent with Long-Term Memory

We introduce M3-Agent, a novel multimodal agent framework equipped with long-term memory. Like humans, M3-Agent can process real-time visual and auditory inputs to build and update its long-term memory. Beyond episodic memory, it also develops semantic memory, enabling it to accumulate world knowledge over time. Its memory is organized in an entity-centric, multimodal format, allowing deeper and more consistent understanding of the environment. Given an instruction, M3-Agent autonomously performs multi-turn, iterative reasoning and retrieves relevant information from memory to accomplish the task.
本文介绍了一种具有(equipped with)长时记忆功能的新型(novel)多模式agent框架M3-Agent。像人类一样,M3-Agent可以处理实时的视觉(visual)和听觉(auditory)输入,以建立和更新其长期记忆。除了情景记忆(episodic memory),它还发展语义记忆(semantic memory),使其能够随着时间的推移积累世界知识。它的记忆以实体为中心(entity-centric)、多模式(multimodal format)的形式组织,允许对环境进行更深入、更一致的理解。在给定指令的情况下(given an instruction),M3-Agent可以自主地(autonomously)进行多轮迭代推理(multi-turn, iterative reasoning),并从记忆中检索相关信息来完成(accomplish)任务。

To evaluate memory effectiveness and memory-based reasoning in multimodal agents, we develop M3-Bench, a new long-video question answering benchmark. M3-Bench comprises 100 newly recorded real-world videos captured from a robot’s perspective (M3-Bench-robot) and 920 web-sourced videos across diverse scenarios (M3-Bench-web). We annotate question-answer pairs designed to test key capabilities essential for agent applications, such as human understanding, general knowledge extraction, and cross- modal reasoning.
为了评估多模态智能体的记忆有效性(effectiveness)和基于记忆的推理,我们开发了一个新的长视频问答基准(question answering benchmark)——M3-Bench。M3-Bench包括(comprise)100个新录制的真实世界视频,从机器人的角度(perspective)(M3-Bench-robot)和920个网络来源的视频跨越不同的场景(diverse scenarios,M3-Bench-web)。我们注释了问答对,旨在(designed to)测试智能体应用程序(essential for agent applications)的关键能力,如人类理解、一般知识提取(extraction)和跨模态推理(cross- modal reasoning)。

Experimental results show that M3-Agent, trained via reinforcement learning, outperforms the strongest baseline, a prompting agent using Gemini-1.5-pro and GPT-4o, achieving 8.2%, 7.7%, and 5.3% higher accuracy on M3-Bench-robot, M3-Bench-web and VideoMME-long, respectively. Our work advances the multimodal agents toward more human-like long-term memory and provides insights into their practical design.
实验结果表明,通过强化(reinforcement)学习训练的M3-Agent优于(outperforms)最强基线,即使用Gemini-1.5-pro和gpt - 40的提示代理,在M3-Bench-robot、M3-Bench-web和VideoMME-long上的准确率分别提高了8.2%、7.7%和5.3%。我们的工作推动了多模式代理向更像人类的长期记忆方向发展,并为它们的实际设计提供了见解。

在这里插入图片描述
示例
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
https://www.youtube.com/watch?v=XUx31cBanfo

附录

“lanyard” 是一个名词,指挂绳、系索,通常是用于悬挂小物品(如证件、钥匙、工牌等)的轻便绳索或带子
在日常通勤、办公、活动等场景中广泛使用
ˈlænjɑːd ˈlænjəd ˈlænjərd

ALPS: Attention Localization and Pruning Strategy for Efficient Alignment of Large Language Models
大型语言模型高效对齐的注意力定位与剪枝策略

localization ˌləʊkəlaɪˈzeɪʃn ˌloʊkələˈzeɪʃn 定位;局限;地方化

prune pruːn pruːn 修剪,修整;删除,削减

auditory ˈɔːdətri ˈɔːdətɔːri 听觉的,听力的;<古>听众;<古>礼堂

visual ˈvɪʒuəl ˈvɪʒuəl 视觉的,视力的;栩栩如生的;视觉资料(指说明性的图片、影片等)

episodic / ˌepɪˈsɒdɪk / / ˌepɪˈsɑːdɪk / (读作ip saodik)
由一系列独立部分(或事件)组成的;偶然发生的;(电视、小说等)连载的;暂时的

autonomous ɔːˈtɒnəməs ɔːˈtɑːnəməs
自治的,有自治权的;自主的,有自主权的;自动的

scenarios
/ səˈnɑːriəʊz / / səˈnærioʊz /

annotate / ˈænəteɪt / / ˈænəteɪt / 注释;给……作注释或评注

PowerShell 7 环境已加载 (版本: 7.5.2) PowerShell 7 环境已加载 (版本: 7.5.2) PS C:\Users\Administrator\Desktop> # 在 PowerShell 中执行以下命令修复所有快捷方式 PS C:\Users\Administrator\Desktop> cd E:\AI_Workspace PS E:\AI_Workspace> Get-ChildItem -Recurse -Filter *.lnk | ForEach-Object { >> $target = $_.FullName.Replace(".lnk", "") >> $shortcut = $_.FullName >> $WshShell = New-Object -ComObject WScript.Shell >> $Shortcut = $WshShell.CreateShortcut($shortcut) >> $Shortcut.TargetPath = $target >> $Shortcut.Save() >> Write-Host "修复快捷方式: $shortcut => $target" >> } 修复快捷方式: System.__ComObject => E:\AI_Workspace\01_模型存储\下载缓存 修复快捷方式: System.__ComObject => E:\AI_Workspace\01_模型存储\主模型 修复快捷方式: System.__ComObject => E:\AI_Workspace\02_核心代码\安全备份 修复快捷方式: System.__ComObject => E:\AI_Workspace\02_核心代码\Agent系统 OperationStopped: Line | 7 | $Shortcut.Save() | ~~~~~~~~~~~~~~~~ | 无法保存快捷方式“E:\AI_Workspace\03_前端交互\配置文件.lnk”。 修复快捷方式: System.__ComObject => E:\AI_Workspace\03_前端交互\配置文件 OperationStopped: Line | 7 | $Shortcut.Save() | ~~~~~~~~~~~~~~~~ | 无法保存快捷方式“E:\AI_Workspace\03_前端交互\前端代码.lnk”。 修复快捷方式: System.__ComObject => E:\AI_Workspace\03_前端交互\前端代码 OperationStopped: Line | 7 | $Shortcut.Save() | ~~~~~~~~~~~~~~~~ | 无法保存快捷方式“E:\AI_Workspace\03_前端交互\Python脚本.lnk”。 修复快捷方式: System.__ComObject => E:\AI_Workspace\03_前端交互\Python脚本 修复快捷方式: System.__ComObject => E:\AI_Workspace\04_环境工具\临时补丁 修复快捷方式: System.__ComObject => E:\AI_Workspace\04_环境工具\Python环境 修复快捷方式: System.__ComObject => E:\AI_Workspace\05_数据记忆\记忆核心 修复快捷方式: System.__ComObject => E:\AI_Workspace\06_历史备份\初始源码 PS E:\AI_Workspace> Copy-Item E:\AI_System\main.py E:\AI_System\main_backup.py PS E:\AI_Workspace> cd E:\AI_Workspace PS E:\AI_Workspace> .\fix_shortcuts.ps1 # 将上面的PowerShell代码保存为此文件 .\fix_shortcuts.ps1: The term &#39;.\fix_shortcuts.ps1&#39; is not recognized as a name of a cmdlet, function, script file, or executable program. Check the spelling of the name, or if a path was included, verify that the path is correct and try again. PS E:\AI_Workspace> cd E:\AI_System PS E:\AI_System> python main.py 2025-08-30 21:55:08,608 - [INFO] - Main - 日志系统初始化完成 (级别: INFO) 2025-08-30 21:55:08,608 - [INFO] - Main - 日志文件位置: E:AI_Workspace\logs\system_20250830_215508.log 2025-08-30 21:55:08,608 - [INFO] - Main - ================================================== 2025-08-30 21:55:08,608 - [INFO] - Main - 🌟 启动AI系统 - 弹性星型架构 2025-08-30 21:55:08,608 - [INFO] - Main - 🚀 工作空间: E:AI_Workspace 2025-08-30 21:55:08,608 - [INFO] - Main - 📂 项目目录: E:\AI_System 2025-08-30 21:55:08,608 - [INFO] - Main - 🐍 Python版本: 3.10.10 (tags/v3.10.10:aad5f6a, Feb 7 2023, 17:20:36) [MSC v.1929 64 bit (AMD64)] 2025-08-30 21:55:08,608 - [INFO] - Main - 🖥️ 操作系统: win32 2025-08-30 21:55:08,610 - [INFO] - Main - ================================================== 2025-08-30 21:55:08 - ModelManager - INFO - 🚀 初始化模型管理器... 2025-08-30 21:55:08,610 - [INFO] - ModelManager - 🚀 初始化模型管理器... 2025-08-30 21:55:08,616 - [INFO] - PathUtils - 🔗 解析快捷方式: E:\AI_Workspace\01_模型存储\主模型.lnk -> E:\AI_Workspace\01_模型存储\主模型.lnk 2025-08-30 21:55:08 - ModelManager - INFO - 🔗 解析快捷方式成功: E:\AI_Workspace\01_模型存储\主模型.lnk -> E:\AI_Workspace\01_模型存储\主模型.lnk 2025-08-30 21:55:08,619 - [INFO] - ModelManager - 🔗 解析快捷方式成功: E:\AI_Workspace\01_模型存储\主模型.lnk -> E:\AI_Workspace\01_模型存储\主模型.lnk 2025-08-30 21:55:08 - ModelManager - INFO - ✅ 模型根目录设置为: E:\AI_Workspace\01_模型存储\主模型.lnk 2025-08-30 21:55:08,628 - [INFO] - ModelManager - ✅ 模型根目录设置为: E:\AI_Workspace\01_模型存储\主模型.lnk 2025-08-30 21:55:08 - ModelManager - INFO - 📋 成功加载模型注册表: E:\AI_System\model_registry.json 2025-08-30 21:55:08,634 - [INFO] - ModelManager - 📋 成功加载模型注册表: E:\AI_System\model_registry.json 2025-08-30 21:55:08 - ModelManager - INFO - ✅ 模型注册表已保存 2025-08-30 21:55:08,634 - [INFO] - ModelManager - ✅ 模型注册表已保存 2025-08-30 21:55:08 - ModelManager - INFO - ✅ 模型管理器初始化完成 (GPU: 启用) 2025-08-30 21:55:08,634 - [INFO] - ModelManager - ✅ 模型管理器初始化完成 (GPU: 启用) 2025-08-30 21:55:08 - ModelManager - INFO - 已注册模型: [&#39;TEXT_BASE&#39;, &#39;TEXT_CHAT&#39;, &#39;IMAGE_MODEL&#39;, &#39;MULTIMODAL&#39;, &#39;YI_VL&#39;] 2025-08-30 21:55:08,634 - [INFO] - ModelManager - 已注册模型: [&#39;TEXT_BASE&#39;, &#39;TEXT_CHAT&#39;, &#39;IMAGE_MODEL&#39;, &#39;MULTIMODAL&#39;, &#39;YI_VL&#39;] 2025-08-30 21:55:08,634 - [INFO] - Main - ✅ 模型管理器初始化完成 2025-08-30 21:55:08 - ModelManager - INFO - ✅ 模型注册成功: TEXT_BASE (text) 2025-08-30 21:55:08,634 - [INFO] - ModelManager - ✅ 模型注册成功: TEXT_BASE (text) 2025-08-30 21:55:08 - ModelManager - INFO - ✅ 模型注册表已保存 2025-08-30 21:55:08,634 - [INFO] - ModelManager - ✅ 模型注册表已保存 2025-08-30 21:55:08,634 - [INFO] - Main - ✅ 注册成功: TEXT_BASE 2025-08-30 21:55:08 - ModelManager - INFO - ✅ 模型注册成功: TEXT_CHAT (text) 2025-08-30 21:55:08,634 - [INFO] - ModelManager - ✅ 模型注册成功: TEXT_CHAT (text) 2025-08-30 21:55:08 - ModelManager - INFO - ✅ 模型注册表已保存 2025-08-30 21:55:08,638 - [INFO] - ModelManager - ✅ 模型注册表已保存 2025-08-30 21:55:08,638 - [INFO] - Main - ✅ 注册成功: TEXT_CHAT 2025-08-30 21:55:08 - ModelManager - INFO - ✅ 模型注册成功: MULTIMODAL (multimodal) 2025-08-30 21:55:08,638 - [INFO] - ModelManager - ✅ 模型注册成功: MULTIMODAL (multimodal) 2025-08-30 21:55:08 - ModelManager - INFO - ✅ 模型注册表已保存 2025-08-30 21:55:08,638 - [INFO] - ModelManager - ✅ 模型注册表已保存 2025-08-30 21:55:08,638 - [INFO] - Main - ✅ 注册成功: MULTIMODAL 2025-08-30 21:55:10 - ModelManager - INFO - ✅ 模型注册成功: IMAGE_MODEL (image) 2025-08-30 21:55:10,863 - [INFO] - ModelManager - ✅ 模型注册成功: IMAGE_MODEL (image) 2025-08-30 21:55:10 - ModelManager - INFO - ✅ 模型注册表已保存 2025-08-30 21:55:10,864 - [INFO] - ModelManager - ✅ 模型注册表已保存 2025-08-30 21:55:10,865 - [INFO] - Main - ✅ 注册成功: IMAGE_MODEL 2025-08-30 21:55:13 - ModelManager - INFO - ✅ 模型注册成功: YI_VL (multimodal) 2025-08-30 21:55:13,072 - [INFO] - ModelManager - ✅ 模型注册成功: YI_VL (multimodal) 2025-08-30 21:55:13 - ModelManager - INFO - ✅ 模型注册表已保存 2025-08-30 21:55:13,073 - [INFO] - ModelManager - ✅ 模型注册表已保存 2025-08-30 21:55:13,073 - [INFO] - Main - ✅ 注册成功: YI_VL 2025-08-30 21:55:13,073 - [INFO] - Main - ✅ 已注册模型: [&#39;TEXT_BASE&#39;, &#39;TEXT_CHAT&#39;, &#39;MULTIMODAL&#39;, &#39;IMAGE_MODEL&#39;, &#39;YI_VL&#39;] 2025-08-30 21:55:13,073 - Module.EnvironmentInterface - INFO - ✅ 初始化认知模块: EnvironmentInterface 2025-08-30 21:55:13,073 - [INFO] - Module.EnvironmentInterface - ✅ 初始化认知模块: EnvironmentInterface 2025-08-30 21:55:13,075 - [INFO] - ShortcutUtils - 解析快捷方式: E:\AI_Workspace\01_模型存储/主模型.lnk -> E:\AI_Workspace\01_模型存储\主模型.lnk 2025-08-30 21:55:13,075 - [INFO] - EnvironmentInterface - 映射工作区路径: MODELS_DIR -> E:\AI_Workspace\01_模型存储\主模型.lnk 2025-08-30 21:55:13,077 - [INFO] - ShortcutUtils - 解析快捷方式: E:\AI_Workspace\01_模型存储/下载缓存.lnk -> E:\AI_Workspace\01_模型存储\下载缓存.lnk 2025-08-30 21:55:13,077 - [INFO] - EnvironmentInterface - 映射工作区路径: MODEL_DOWNLOADS -> E:\AI_Workspace\01_模型存储\下载缓存.lnk 2025-08-30 21:55:13,078 - [INFO] - ShortcutUtils - 解析快捷方式: E:\AI_Workspace\02_核心代码/Agent系统.lnk -> E:\AI_Workspace\02_核心代码\Agent系统.lnk 2025-08-30 21:55:13,078 - [INFO] - EnvironmentInterface - 映射工作区路径: AGENT_SYSTEM -> E:\AI_Workspace\02_核心代码\Agent系统.lnk 2025-08-30 21:55:13,079 - [INFO] - ShortcutUtils - 解析快捷方式: E:\AI_Workspace\02_核心代码/安全备份.lnk -> E:\AI_Workspace\02_核心代码\安全备份.lnk 2025-08-30 21:55:13,081 - [INFO] - EnvironmentInterface - 映射工作区路径: BACKUP_CODE -> E:\AI_Workspace\02_核心代码\安全备份.lnk 2025-08-30 21:55:13,084 - [INFO] - ShortcutUtils - 解析快捷方式: E:\AI_Workspace\03_前端交互/Python脚本.lnk -> E:\AI_System\agent\web_scripts 2025-08-30 21:55:13,086 - [WARNING] - EnvironmentInterface - 无法解析工作区路径: PYTHON_SCRIPTS (E:\AI_Workspace\03_前端交互/Python脚本.lnk) 2025-08-30 21:55:13,087 - [INFO] - ShortcutUtils - 解析快捷方式: E:\AI_Workspace\03_前端交互/前端代码.lnk -> E:\AI_System\agent\web_ui 2025-08-30 21:55:13,087 - [WARNING] - EnvironmentInterface - 无法解析工作区路径: WEB_UI (E:\AI_Workspace\03_前端交互/前端代码.lnk) 2025-08-30 21:55:13,088 - [INFO] - ShortcutUtils - 解析快捷方式: E:\AI_Workspace\03_前端交互/配置文件.lnk -> E:\AI_System\agent\config 2025-08-30 21:55:13,089 - [WARNING] - EnvironmentInterface - 无法解析工作区路径: CONFIG_FILES (E:\AI_Workspace\03_前端交互/配置文件.lnk) 2025-08-30 21:55:13,090 - [INFO] - ShortcutUtils - 解析快捷方式: E:\AI_Workspace\04_环境工具/Python环境.lnk -> E:\AI_Workspace\04_环境工具\Python环境.lnk 2025-08-30 21:55:13,090 - [INFO] - EnvironmentInterface - 映射工作区路径: PYTHON_ENV -> E:\AI_Workspace\04_环境工具\Python环境.lnk 2025-08-30 21:55:13,091 - [INFO] - ShortcutUtils - 解析快捷方式: E:\AI_Workspace\04_环境工具/临时补丁.lnk -> E:\AI_Workspace\04_环境工具\临时补丁.lnk 2025-08-30 21:55:13,092 - [INFO] - EnvironmentInterface - 映射工作区路径: TEMP_PATCHES -> E:\AI_Workspace\04_环境工具\临时补丁.lnk 2025-08-30 21:55:13,093 - [INFO] - ShortcutUtils - 解析快捷方式: E:\AI_Workspace\05_数据记忆/记忆核心.lnk -> E:\AI_Workspace\05_数据记忆\记忆核心.lnk 2025-08-30 21:55:13,093 - [INFO] - EnvironmentInterface - 映射工作区路径: MEMORY_CORE -> E:\AI_Workspace\05_数据记忆\记忆核心.lnk 2025-08-30 21:55:13,094 - [INFO] - ShortcutUtils - 解析快捷方式: E:\AI_Workspace\06_历史备份/初始源码.lnk -> E:\AI_Workspace\06_历史备份\初始源码 2025-08-30 21:55:13,095 - [INFO] - EnvironmentInterface - 映射工作区路径: INITIAL_CODE -> E:\AI_Workspace\06_历史备份\初始源码 2025-08-30 21:55:13,095 - [INFO] - Orchestrator - ✅ 环境接口初始化成功 2025-08-30 21:55:13,095 - Module.DiagnosticSystem - INFO - ✅ 初始化认知模块: DiagnosticSystem 2025-08-30 21:55:13,095 - [INFO] - Module.DiagnosticSystem - ✅ 初始化认知模块: DiagnosticSystem 2025-08-30 21:55:13,095 - [INFO] - DiagnosticSystem - 🔗 初始化诊断系统: DiagnosticSystem 2025-08-30 21:55:13,095 - [INFO] - Orchestrator - ✅ 诊断系统初始化成功 2025-08-30 21:55:13,096 - [INFO] - Orchestrator - ✅ 星型协调器初始化完成 2025-08-30 21:55:13,096 - [INFO] - Main - ✅ 星型协调器初始化完成 2025-08-30 21:55:13,096 - Module.环境接口 - INFO - ✅ 初始化认知模块: 环境接口 2025-08-30 21:55:13,096 - [INFO] - Module.环境接口 - ✅ 初始化认知模块: 环境接口 2025-08-30 21:55:13,098 - [INFO] - ShortcutUtils - 解析快捷方式: E:\AI_Workspace\01_模型存储/主模型.lnk -> E:\AI_Workspace\01_模型存储\主模型.lnk 2025-08-30 21:55:13,098 - [INFO] - EnvironmentInterface - 映射工作区路径: MODELS_DIR -> E:\AI_Workspace\01_模型存储\主模型.lnk 2025-08-30 21:55:13,100 - [INFO] - ShortcutUtils - 解析快捷方式: E:\AI_Workspace\01_模型存储/下载缓存.lnk -> E:\AI_Workspace\01_模型存储\下载缓存.lnk 2025-08-30 21:55:13,100 - [INFO] - EnvironmentInterface - 映射工作区路径: MODEL_DOWNLOADS -> E:\AI_Workspace\01_模型存储\下载缓存.lnk 2025-08-30 21:55:13,101 - [INFO] - ShortcutUtils - 解析快捷方式: E:\AI_Workspace\02_核心代码/Agent系统.lnk -> E:\AI_Workspace\02_核心代码\Agent系统.lnk 2025-08-30 21:55:13,102 - [INFO] - EnvironmentInterface - 映射工作区路径: AGENT_SYSTEM -> E:\AI_Workspace\02_核心代码\Agent系统.lnk 2025-08-30 21:55:13,103 - [INFO] - ShortcutUtils - 解析快捷方式: E:\AI_Workspace\02_核心代码/安全备份.lnk -> E:\AI_Workspace\02_核心代码\安全备份.lnk 2025-08-30 21:55:13,103 - [INFO] - EnvironmentInterface - 映射工作区路径: BACKUP_CODE -> E:\AI_Workspace\02_核心代码\安全备份.lnk 2025-08-30 21:55:13,104 - [INFO] - ShortcutUtils - 解析快捷方式: E:\AI_Workspace\03_前端交互/Python脚本.lnk -> E:\AI_System\agent\web_scripts 2025-08-30 21:55:13,105 - [WARNING] - EnvironmentInterface - 无法解析工作区路径: PYTHON_SCRIPTS (E:\AI_Workspace\03_前端交互/Python脚本.lnk) 2025-08-30 21:55:13,106 - [INFO] - ShortcutUtils - 解析快捷方式: E:\AI_Workspace\03_前端交互/前端代码.lnk -> E:\AI_System\agent\web_ui 2025-08-30 21:55:13,106 - [WARNING] - EnvironmentInterface - 无法解析工作区路径: WEB_UI (E:\AI_Workspace\03_前端交互/前端代码.lnk) 2025-08-30 21:55:13,107 - [INFO] - ShortcutUtils - 解析快捷方式: E:\AI_Workspace\03_前端交互/配置文件.lnk -> E:\AI_System\agent\config 2025-08-30 21:55:13,107 - [WARNING] - EnvironmentInterface - 无法解析工作区路径: CONFIG_FILES (E:\AI_Workspace\03_前端交互/配置文件.lnk) 2025-08-30 21:55:13,109 - [INFO] - ShortcutUtils - 解析快捷方式: E:\AI_Workspace\04_环境工具/Python环境.lnk -> E:\AI_Workspace\04_环境工具\Python环境.lnk 2025-08-30 21:55:13,109 - [INFO] - EnvironmentInterface - 映射工作区路径: PYTHON_ENV -> E:\AI_Workspace\04_环境工具\Python环境.lnk 2025-08-30 21:55:13,110 - [INFO] - ShortcutUtils - 解析快捷方式: E:\AI_Workspace\04_环境工具/临时补丁.lnk -> E:\AI_Workspace\04_环境工具\临时补丁.lnk 2025-08-30 21:55:13,110 - [INFO] - EnvironmentInterface - 映射工作区路径: TEMP_PATCHES -> E:\AI_Workspace\04_环境工具\临时补丁.lnk 2025-08-30 21:55:13,112 - [INFO] - ShortcutUtils - 解析快捷方式: E:\AI_Workspace\05_数据记忆/记忆核心.lnk -> E:\AI_Workspace\05_数据记忆\记忆核心.lnk 2025-08-30 21:55:13,113 - [INFO] - EnvironmentInterface - 映射工作区路径: MEMORY_CORE -> E:\AI_Workspace\05_数据记忆\记忆核心.lnk 2025-08-30 21:55:13,114 - [INFO] - ShortcutUtils - 解析快捷方式: E:\AI_Workspace\06_历史备份/初始源码.lnk -> E:\AI_Workspace\06_历史备份\初始源码 2025-08-30 21:55:13,114 - [INFO] - EnvironmentInterface - 映射工作区路径: INITIAL_CODE -> E:\AI_Workspace\06_历史备份\初始源码 2025-08-30 21:55:13,114 - Module.诊断系统 - INFO - ✅ 初始化认知模块: 诊断系统 2025-08-30 21:55:13,114 - [INFO] - Module.诊断系统 - ✅ 初始化认知模块: 诊断系统 2025-08-30 21:55:13,115 - [INFO] - DiagnosticSystem - 🔗 初始化诊断系统: 诊断系统 2025-08-30 21:55:13,115 - [ERROR] - Main - ❌ 卫星模块初始化失败: &#39;CognitiveOrchestrator&#39; object has no attribute &#39;add_module&#39; Traceback (most recent call last): File "E:\AI_System\main.py", line 242, in main orchestrator.add_module("environment", environment_interface) AttributeError: &#39;CognitiveOrchestrator&#39; object has no attribute &#39;add_module&#39; PS E:\AI_System>
08-31
<think> 我们遇到了两个问题: 1. 在修复快捷方式时,部分快捷方式修复失败(保存时出错),导致这些快捷方式仍然无效。 2. 在修改main.py后,我们遇到了新的错误:`AttributeError: &#39;CognitiveOrchestrator&#39; object has no attribute &#39;add_module&#39;`,说明我们之前的修复方法(使用`add_module`)也不正确。 ### 问题分析 1. **快捷方式修复失败**:从错误信息看,是因为快捷方式的目标路径设置不正确。我们的脚本试图将快捷方式的目标路径设置为去除".lnk"后缀的文件路径(即原快捷方式文件的路径去掉后缀),这显然是不对的。我们原本是想读取原始快捷方式的目标路径,但方法错误。 2. **`CognitiveOrchestrator`方法不存在**:这表明我们之前对API变更的猜测是错误的。可能这个类根本没有`register_module`或`add_module`方法,或者方法名不同。我们需要查看源代码来确定正确的方法。 ### 解决方案 #### 1. 修复快捷方式问题 我们需要修改PowerShell脚本,使其正确读取原始快捷方式的目标路径(如果有),然后重新创建快捷方式。但注意:原始快捷方式已经损坏,所以我们需要根据文件夹名称推断正确的目标路径。 但是,从您的目录结构看,快捷方式应该指向特定的目录。我们可以建立一个映射关系,根据快捷方式所在的文件夹和名称来设置正确的目标路径。 例如: - 在`01_模型存储`文件夹中: - `主模型.lnk` 应该指向 `E:\AI_Models` - `下载缓存.lnk` 应该指向 `E:\AI_Model_Downloads` 由于手动修复每个快捷方式很麻烦,我们可以编写一个映射表来修复。 **修复脚本(fix_shortcuts.ps1)**: ```powershell # 定义快捷方式名称与目标路径的映射 $shortcutMap = @{ "01_模型存储\主模型.lnk" = "E:\AI_Models" "01_模型存储\下载缓存.lnk" = "E:\AI_Model_Downloads" "02_核心代码\Agent系统.lnk" = "E:\AI_System\agent" "02_核心代码\安全备份.lnk" = "E:\AI_Agent_Safe" "03_前端交互\Python脚本.lnk" = "E:\AI_System\agent\web_scripts" "03_前端交互\前端代码.lnk" = "E:\AI_System\agent\web_ui" "03_前端交互\配置文件.lnk" = "E:\AI_System\agent\config" "04_环境工具\Python环境.lnk" = "E:\Python310" "04_环境工具\临时补丁.lnk" = "E:\ai_temp" "05_数据记忆\记忆核心.lnk" = "E:\AI记忆核心" "06_历史备份\初始源码.lnk" = "E:\AI_System\backup" } $workspacePath = "E:\AI_Workspace" foreach ($entry in $shortcutMap.GetEnumerator()) { $shortcutName = $entry.Name $targetPath = $entry.Value $shortcutFullPath = Join-Path -Path $workspacePath -ChildPath $shortcutName # 创建目录(如果不存在) $dir = Split-Path -Path $shortcutFullPath -Parent if (-not (Test-Path $dir)) { New-Item -ItemType Directory -Path $dir -Force | Out-Null } $WshShell = New-Object -ComObject WScript.Shell $Shortcut = $WshShell.CreateShortcut($shortcutFullPath) $Shortcut.TargetPath = $targetPath $Shortcut.Save() Write-Host "修复快捷方式: $shortcutFullPath => $targetPath" } ``` 将上述代码保存到 `E:\AI_Workspace\fix_shortcuts.ps1`,然后在PowerShell中执行: ```powershell cd E:\AI_Workspace .\fix_shortcuts.ps1 ``` #### 2. 修复main.py中的方法调用错误 我们需要查看`CognitiveOrchestrator`类的源代码,确定正确的方法。但是,如果无法查看,我们可以尝试以下方法: 既然错误是`CognitiveOrchestrator`没有`add_module`方法,那么我们可以尝试使用`register_module`方法(之前我们怀疑被移除,但可能实际上没有被移除,或者我们修复时没有恢复到原始状态)。 实际上,我们之前修改main.py时,将`register_module`改成了`add_module`,但错误信息显示没有`add_module`,所以我们可能应该恢复为`register_module`,并确保`CognitiveOrchestrator`类有这个方法的定义。 但是,原始错误是`AttributeError: &#39;CognitiveOrchestrator&#39; object has no attribute &#39;register_module&#39;`,所以我们需要另一种方法。 **替代方案:动态调用** 我们可以尝试使用`getattr`来检查方法是否存在,如果都不存在,则跳过并记录错误。 修改`main.py`: ```python # 在main.py中找到以下代码(原来的238行和修改后的242行): # 原始代码:orchestrator.register_module("environment", environment_interface) # 我们修改为以下: # 尝试使用register_module,如果不存在,再尝试add_module,否则报错 if hasattr(orchestrator, &#39;register_module&#39;): orchestrator.register_module("environment", environment_interface) elif hasattr(orchestrator, &#39;add_module&#39;): orchestrator.add_module("environment", environment_interface) else: logging.error("CognitiveOrchestrator has no method to register modules!") # 或者使用其他方法,比如直接设置属性(如果有的话) # 根据源代码,如果都不行,可能需要查看CognitiveOrchestrator的实现 ``` 但是,这仍然可能失败。最可靠的方法是查看`CognitiveOrchestrator`类的定义。假设我们无法查看,那么我们可以尝试在当前环境中打印出`orchestrator`对象的所有方法: ```python # 在调用register_module之前添加: logging.info("Orchestrator methods: " + str(dir(orchestrator))) ``` 然后查看日志,确定正确的方法名。 ### 完整步骤 1. 运行新的PowerShell脚本来修复所有快捷方式。 2. 修改`main.py`,使用动态调用方法,并添加日志输出对象的方法。 3. 重新运行`main.py`,查看日志,确定正确的方法名,然后修改为正确的方法。 ### 修改后的main.py代码片段 ```python # 在main.py中,找到原来的注册模块的地方(大约238行),修改为: # 动态注册模块 if hasattr(orchestrator, &#39;register_module&#39;): orchestrator.register_module("environment", environment_interface) logging.info("✅ 使用 register_module 方法注册环境接口") elif hasattr(orchestrator, &#39;add_module&#39;): orchestrator.add_module("environment", environment_interface) logging.info("✅ 使用 add_module 方法注册环境接口") else: # 如果都没有,尝试使用可能的方法名,比如&#39;set_module&#39;,或者记录错误 logging.error("❌ 无法注册环境接口:CognitiveOrchestrator没有注册方法") # 为了不阻塞,我们尝试直接赋值(如果类支持) try: orchestrator.environment = environment_interface logging.info("✅ 直接设置environment属性") except Exception as e: logging.error(f"❌ 设置属性失败: {e}") # 同样的方法用于诊断系统 ``` 注意:我们需要对每个模块的注册都进行这样的修改(环境接口和诊断系统等)。 ### 预期结果 - 快捷方式被正确修复,系统能正确解析路径。 - 模块注册通过动态检查方法名,避免AttributeError。 §§相关问题§§: 1. 如何在PowerShell中批量创建或修复快捷方式? 2. 在Python中如何动态调用对象的方法? 3. 如何在不重启应用的情况下热修复运行中的代码错误? 4. 如何设计API以避免因方法名变更导致的兼容性问题? </think> 根据最新的日志,虽然快捷方式修复部分成功,但核心问题依然存在:`CognitiveOrchestrator` 类既没有 `register_module` 也没有 `add_module` 方法。我们需要更深入的修复方案。 ### 终极解决方案 #### 1. 修复 `CognitiveOrchestrator` 类(核心修复) 找到 `CognitiveOrchestrator` 类的定义文件(通常是 `orchestrator.py` 或 `cognitive.py`),添加缺失的方法: ```python:orchestrator.py class CognitiveOrchestrator: def __init__(self): self.modules = {} # 添加模块字典 # 添加以下方法 def register_module(self, name, module): """兼容旧版本的注册方法""" self.modules[name] = module def add_module(self, name, module): """新版本的注册方法""" self.modules[name] = module # 确保有这个方法用于获取模块 def get_module(self, name): return self.modules.get(name) ``` #### 2. 修复快捷方式处理逻辑 创建专用的快捷方式修复脚本: ```powershell:fix_shortcuts.ps1 $workspace = "E:\AI_Workspace" # 修复映射表 $fixMap = @{ "01_模型存储\主模型.lnk" = "E:\AI_Models" "01_模型存储\下载缓存.lnk" = "E:\AI_Model_Downloads" "02_核心代码\Agent系统.lnk" = "E:\AI_System\agent" "02_核心代码\安全备份.lnk" = "E:\AI_Agent_Safe" "03_前端交互\Python脚本.lnk" = "E:\AI_System\agent\web_scripts" "03_前端交互\前端代码.lnk" = "E:\AI_System\agent\web_ui" "03_前端交互\配置文件.lnk" = "E:\AI_System\agent\config" "04_环境工具\Python环境.lnk" = "E:\Python310" "04_环境工具\临时补丁.lnk" = "E:\ai_temp" "05_数据记忆\记忆核心.lnk" = "E:\AI记忆核心" "06_历史备份\初始源码.lnk" = "E:\AI_System\backup" } foreach ($entry in $fixMap.GetEnumerator()) { $shortcutPath = Join-Path $workspace $entry.Name $targetPath = $entry.Value # 删除损坏的快捷方式 if (Test-Path $shortcutPath) { Remove-Item $shortcutPath -Force } # 创建新的快捷方式 $WshShell = New-Object -ComObject WScript.Shell $Shortcut = $WshShell.CreateShortcut($shortcutPath) $Shortcut.TargetPath = $targetPath $Shortcut.Save() Write-Host "✅ 重建快捷方式: $($entry.Name) -> $targetPath" } ``` #### 3. 修改 `main.py` 的模块注册逻辑 ```python:main.py # 在 main.py 中找到模块注册部分(约238行),替换为: # 安全注册模块的通用方法 def safe_register_module(orchestrator, name, module): if hasattr(orchestrator, &#39;register_module&#39;): orchestrator.register_module(name, module) elif hasattr(orchestrator, &#39;add_module&#39;): orchestrator.add_module(name, module) else: # 使用反射直接操作模块字典 if not hasattr(orchestrator, &#39;modules&#39;): orchestrator.modules = {} orchestrator.modules[name] = module logging.warning(f"⚠️ 使用后备方法注册模块: {name}") # 在原始注册位置调用: safe_register_module(orchestrator, "environment", environment_interface) safe_register_module(orchestrator, "diagnostics", diagnostic_system) ``` ### 完整修复步骤 1. 备份关键文件: ```powershell Copy-Item E:\AI_System\orchestrator.py E:\AI_System\orchestrator_backup.py Copy-Item E:\AI_System\main.py E:\AI_System\main_backup.py ``` 2. 应用上述代码修改 3. 运行快捷方式修复脚本: ```powershell cd E:\AI_Workspace .\fix_shortcuts.ps1 # 首次运行需解除限制:Set-ExecutionPolicy RemoteSigned -Scope Process ``` 4. 启动系统: ```powershell cd E:\AI_System python main.py ``` ### 根本问题分析 1. **API设计缺陷**:`CognitiveOrchestrator` 类缺少核心的模块注册接口 2. **快捷方式管理混乱**:原始快捷方式创建逻辑有缺陷 3. **错误处理不足**:系统没有对无效注册方法做后备处理 ### 预期修复效果 - ✅ 解决 `AttributeError` 核心错误 - ✅ 完全重建所有快捷方式 - ✅ 添加安全的模块注册方法 - ✅ 系统正常初始化并运行
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值