尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

Agent记忆体系如何破局长线协作?从记忆分类到持久化实现

Agent记忆体系如何破局长线协作?从记忆分类到持久化实现 最近一两年的Agent开发里有个现象越来越明显单轮任务已经不太能体现Agent的差距了。让两个模型分别写一段代码、改一个Bug结果相差并没有很大可一旦让Agent跟进一个持续两周的项目每天根据新情况调整方案、记住用户之前提过的约束、跨会话复用经验很多Agent就会暴露出一种相当尴尬的毛病——失忆。周一用户说“后端端口固定8080不要乱改”周三再开会话Agent又认真地问“您希望后端跑在哪个端口”用户周五反馈“错误日志不要输出到标准输出单独落文件”下周一Agent又在终端里刷出一屏日志。这类问题不是模型推理能力不足而是Agent在长线协作中的记忆体系没有做好。更准确地说是Agent能记住单轮上下文但没有能力把跨会话、跨任务、跨子Agent协作的关键信息沉淀下来。所以这个标题值得认真读一遍AML首期揭榜谁将引领下一代记忆范式革命。如果你正想入局Agent开发或者已经在用Agent框架做工具链但总觉得“多轮对话一长就乱”这篇文章值得收藏。下面我会从Agent记忆的问题本质说起再拆解记忆范式的主流分类结合AML评测的观察维度给出判断坐标系最后用一个可运行的最小持久记忆示例走通全流程。中间还会穿插多Agent主从模式、subagent调度、Agent执行超时等开发中常见的坑。1. Agent长线协作的瓶颈为什么推理够用记忆不够用先建立一个共同的场景。假设你要用Agent做一个项目助理目标不是“回答一个问题”而是“陪跑一个项目”。它需要了解项目的技术栈、团队偏好、历史决策、用户短期目标、用户纠正过的错误以及当前任务进度。这个时候Agent面对的不是一轮对话而是一条时间线。传统LLM应用怎么处理这种长线需求最简单的做法是无限拉长上下文窗口。你可能会想反正现在上下文窗口越来越大把历史对话、任务记录、用户偏好全部拼进去不就行了。这个思路在短期Demo里确实有效但放到真实项目里很快会遇到三个问题。第一个是成本问题。上下文按Token计费每次请求把全量历史塞进去调用成本会随任务进度持续上升。一个跑了三天的Agent项目可能积累出几十万Token的项目历史每次交互都要重新处理一遍。第二个是噪声问题。历史记录里不是每条信息都重要。用户随口说过的一句话和一条明确的项目约束在上下文窗口里权重相同。Agent要在一个充满闲聊和冗余信息的窗口里做关键判断精度反而可能下降。第三个是一致性问题。长上下文模型本身会对较远位置的信息产生注意力衰减而且多个好消息之间的冲突、优先级的优先级很难在上下文窗口内结构化表达。今天这条新消息应该优先于昨天那条约束但这种“记忆优先级”在纯上下文方案里很难体现。把记忆放在上下文窗口的延长线上其实是在用一个线性容器装一个结构化需求。Agent真正需要的不是“永远记得更多”而是“能快速找到当时那条决定性信息”。记忆能力在这个语境下本质上是一条独立的技术赛道。它的核心目标是让Agent用更少的Token调用、更小的上下文噪声完成跨会话一致性的保持。谁能在写入、召回、遗忘、权限这些环节做出更可靠的设计谁就有可能决定下一代Agent能在多复杂的任务里稳定工作。而这也正是类似AML这类首期评估值得被讨论的原因。它把“Agent能不能记得住、记得清、记了不乱”这件事推到了前排。2. Agent记忆的基础概念与类型划分要讨论Agent记忆需要先统一术语。Agent记忆并不是一个单一的存储组件它通常形容一套包含短期工作上下文、长期任务事实、常识性语义知识、以及行动过程经验的信息处理架构。业内比较常见的划分方式是从人类记忆机制借用过来的粗略分成四类记忆类型解决的问题典型载体Agent开发中的对应实现短期/工作记忆当前这轮任务正在处理什么LLM上下文窗口系统提示词、对话历史、当前工具返回结果情景记忆过去某个具体时间点发生过什么事件日志、会话记录任务执行记录、历史对话库、事件流水语义记忆用户是谁、业务规则、技术栈偏好结构化数据库、向量库用户画像表、知识库、RAG文档程序性记忆怎么做某类任务调用流程、Skill/Tool描述工具封装、技能库、工作流编排规则写代码的时候不少新人容易混淆这三层东西上下文、外部知识库和记忆库。有一个比较好用理解方式——上下文是Agent当前手上的草稿纸RAG知识库是Agent可以随时查询的百科词典而记忆库是Agent自己的笔记本记的是这个任务、这个用户之间的发生的事。这里需要特意指出一个容易被忽视的区别情景记忆和语义记忆是包含关系的不是并列关系的两个独立产品模块。情景记忆通常回答“这个用户在上次任务中对什么结果不满意”语义记忆回答“这个用户偏好的设计风格是什么”。语义记忆往往由情景记忆写入沉淀然后泛化规则。也就是说系统在每次任务结束后应该从事件日志中提取可复用的偏好再写入语义记忆区。再往外延伸一点Agent的记忆也可以区分单Agent自记忆和群体共享记忆。如果你搭建的是多Agent架构不同的子Agent负责不同领域它们是否共享同一套记忆存储、是否有信息的可见性隔离会严重影响到系统行为。这一块后面专门讲主从模式时再展开。3. AML首期揭榜与其猜名单不如建立记忆评测的观察维度先声明一个信息边界关于AML首期揭榜的完整项目名单、评分口径、赛制规则目前公开渠道能获取到的高信度资料并不完整。如果只是从标题层面去复述“谁上榜了”“谁排第几”很容易被不完整的二手信息带偏。更值得做的是另一件事把AML这类测评看成“Agent记忆能力从后台走向台前”的信号自己建立一套判断记忆方案好坏的观察维度。一个长线协作Agent的记忆系统至少要过五道关梳理清楚五道关之后你再去看任何榜单上的技术方案都会有自己的判断依据而不是跟着榜单排名走。第一道关是写入策略。系统能否在恰当的时间、从原始对话和任务日志中抽取值得记忆的信息写入太多SQLite表或向量库里装满噪声后面的召回环节会立刻崩溃写入太少关键约束又会漏掉。判断一个方案是否成熟先看它对“什么值得记”的建模。第二道关是召回质量。需要历史信息时系统能不能根据当前任务的主题、实体、目标找到正确的那几条记忆。这里的关键不只是关键词匹配而是语义相关性以及对当前决策目标的匹配性。第三道关是重要性分层和遗忘机制。全部记忆不分权重的系统不是记忆系统是日志文件。好的记忆库要有重要性评分、时间衰减、容量上限、主动GC机制。这让它在长期运行中既不会飞快膨胀又不会把高价值信息清掉。第四道关是跨会话、跨Agent的一致性。同一个项目用户可能用多个会话推进同一个任务主Agent可能调度多个子Agent处理。记忆能否跨会话同步做到新会话里用户不用重复描述已经确认过的背景是长线体验的关键。第五道关是隐私与权限边界。每个Agent维护的记忆里如果没有用户体系隔离一个用户的数据可能被另一个用户的Agent学到。这不是性能问题而是不可接受的安全漏洞。多租户Agent环境里尤其要考。所以回到标题中“谁将引领下一代记忆范式革命”的问题稳妥的判断是真正领先的方案靠的不会是某个新鲜名词而是以上五道关中流程的工程化完成度。命名可以各有各的花活但把写入、分层召回、遗忘、权限做扎实才是可复用的范式。4. 记忆该放在哪一层与上下文窗口、RAG、工具调用的边界讨论Agent记忆时总会有人发问既然上下文窗口这么大为什么还要单独做记忆系统我的回答是关键是区分“查询时临时读取”和“任务间持续保存”。上下文窗口是一个有状态的工作区Agent当前正在阅读和思考的内容放在这里。它更适合装载本次任务的临时信息比如用户新发来的需求、工具刚返回的结果、当前正在生成的过程中间产物。RAG是一个被动查询的外部信息源适合放那些相对静态、通用的知识比如公司文档、产品手册、技术Wiki。它解决的是“我不知道这件事去查一下”的问题。Agent记忆则是一个主动维护、随任务演化而更新的信息层记录的是这个用户、这个任务、这个项目的动态事实。比如用户的技术栈偏好、已做过的技术决策、在上一步任务中的失败经验。再抽象一层表达层级解决什么问题数据特点适合存放的内容上下文窗口当前正在思考什么临时、高动态本轮对话、工具返回最新结果RAG知识库通用规则和外部知识从哪里查静态为主团队规范、API文档、行业知识持久记忆库这个用户/项目经历过的关键事实随任务持续累积用户偏好、项目约束、历史决策、进度快照在真实场景里这三个层常常需要配合。比如Agent收到用户新需求后先检索RAG里的技术规范再从记忆库里召回这个用户在过往任务中的偏好约束然后把两者与本轮对话一起写入上下文窗口让模型做综合判断。由此可见记忆库是上下文窗口的一个上游供给者不是一个替代品。这里也有一个工程上的设计问题哪些信息应该直接写入系统提示词哪些信息应该作为可检索的候选。系统提示词适合放那些几乎每次都需要的、稳定的关键约束可检索记忆适合放那些只有在特定任务中才相关的信息。如果所有记忆都塞进System Prompt系统的成本、延迟和推理质量都会受到损耗。从我看到的项目经验来说比较合理的配置是System Prompt只负责放Agent角色、全局规则、安全边界近期任务状态可以放在上下文前半部分而长线记忆优先采用“按需检索再注入”的方式而不是全量加载。5. 多Agent主从模式下的记忆传递问题现在很多Agent项目已经从单Agent走向多Agent协同其中最常见的是主从模式也就是一个主Agent负责规划多个子Agent分别执行不同子任务。最近业内讨论中有一个观点值得关注最新的多Agent设计里主从模式本质上可以看成把subagent当作另类的Tool来调用。主Agent下发一个子任务的描述、调用参数、以及期望返回格式然后接收subagent的执行结果。这个观点对记忆设计有很大的启发。如果你把subagent视为一种更强大的Tool那么主Agent给subagent的任务参数本质上就是本轮要用的“短期上下文”。subagent执行任务后返回的结果本质上只是这轮调用的产出物而不是记忆。真正的记忆应该是主Agent从多次subagent调用中提炼出来的任务事实与经验例如“这个代码仓库的构建工具是Maven”“这个模块上一次的测试失败原因是什么”。很多多Agent项目出问题原因恰恰是每个subagent都各自维护了一套自己的短期上下文却没有任何一个节点把任务推进过程中的关键事实沉淀下来。结果就是主Agent每轮调度一个全新的执行器每个执行器都像“第一天上班的新员工”只能看到当前这轮任务描述看不到项目历史。从工程实践看主从模式里要区分两层记忆第一层是协作上下文。在当前任务执行过程中主Agent向下传递的目标、约束、输入数据以及subagent返回的结果这部分需要足够详尽保证子任务能独立闭环。第二层是跨任务经验。一次协作结束后主Agent应把subagent执行中暴露出的技术栈信息、成功模式、失败教训提炼成结构化记忆写回共享存储。后续再调度同类子任务时主Agent可以把这些记忆作为背景信息注入新的subagent。换句话说subagent之间的记忆不能靠“A告诉BB再告诉C”这种对话接力而应该有一个独立的共享存储层。这个存储层可以按任务ID、用户ID、Agent角色做数据隔离但读取入口对所有有权限的Agent开放。与subagent容易混淆的还有两个概念Skill和Harness。Skill通常指Agent可以按名字触发的能力单元强调的是“会做什么”的能力封装Harness更偏重Agent运行时的行为支撑框架负责工具调度、上下文管理、事件循环这些骨架逻辑。它们和记忆的关系可以简单概括为Skill决定了Agent有哪些行为可调用Harness决定了Agent怎么组织这些行为而记忆系统决定了Agent在跨任务执行时能否复用过去经验。三者互相配合不要混为一谈。6. 实战从零搭建一个最小可用的Agent持久记忆模块概念容易让人飘落地才是关键。下面我用一个最小可用的Agent记忆模块来演示持久化记忆的基本流程。这个模块会包含写入、召回、注入提示词、遗忘回收四部分全部基于Python标准库实现不依赖任何外部数据库服务。SQLite负责持久化存储一组简单函数负责检索和记忆维护。6.1 定义记忆数据结构在设计记忆库时数据模型决定了后续所有能力的上限。我们至少需要记录这条记忆属于哪个Agent、正文内容、记忆类型、所属任务ID、重要程度、创建时间。有了这些字段后续才可以做类型筛选和重要性排序。新建文件agent_memory/db_store.py内容如下# 文件路径agent_memory/db_store.py import sqlite3 import time from dataclasses import dataclass dataclass class MemoryItem: agent_id: str content: str memory_type: str # episodic / semantic / procedural task_id: str importance: float 1.0 created_at: float None def __post_init__(self): if self.created_at is None: self.created_at time.time() class SQLiteMemoryStore: def __init__(self, db_pathagent_memory.db): self.conn sqlite3.connect(db_path) self.conn.execute( CREATE TABLE IF NOT EXISTS memories ( id INTEGER PRIMARY KEY AUTOINCREMENT, agent_id TEXT NOT NULL, content TEXT NOT NULL, memory_type TEXT NOT NULL, task_id TEXT DEFAULT , importance REAL DEFAULT 1.0, created_at REAL NOT NULL ) ) self.conn.execute( CREATE INDEX IF NOT EXISTS idx_agent_type ON memories(agent_id, memory_type) ) self.conn.commit()这里有个小细节值得注意importance字段经常被开发新手忽略但它恰恰是记忆系统和日志系统最本质的区别之一。日志只需要按时间存下来而记忆系统必须有优先级概念后续做召回和遗忘时才不会变成“读一本没有目录的书”。6.2 实现记忆写入与召回写入动作发生在两个典型时机一是在任务执行过程中发现用户明确表达了一个偏好或约束二是在一个任务结束后Agent对任务过程做复盘提炼出有价值的经验。召回动作发生在每次新会话开始或新任务准备执行时。这里先使用关键词匹配核心是演示思路生产环境可以把关键词匹配升级为向量检索或混合检索。继续在agent_memory/db_store.py中补充方法def add(self, item: MemoryItem) - int: cur self.conn.execute( INSERT INTO memories(agent_id, content, memory_type, task_id, importance, created_at) VALUES (?, ?, ?, ?, ?, ?) , (item.agent_id, item.content, item.memory_type, item.task_id, item.importance, item.created_at), ) self.conn.commit() return cur.lastrowid def recall(self, agent_id: str, keyword: str , task_id: str , memory_type: str , limit: int 5): sql ( SELECT id, agent_id, content, memory_type, task_id, importance, created_at FROM memories WHERE agent_id ? ) params [agent_id] if keyword: sql AND content LIKE ? params.append(f%{keyword}%) if task_id: sql AND task_id ? params.append(task_id) if memory_type: sql AND memory_type ? params.append(memory_type) sql ORDER BY importance DESC, created_at DESC LIMIT ? params.append(limit) return self.conn.execute(sql, params).fetchall()这里的召回逻辑并不复杂但把两个排序字段写在一起是有含义的先按重要性评分倒序让高价值的项目约束优先出现再按时间倒序让同样重要的情况下最近的信息排在最前面。这个顺序在长线协作里比单纯按时间排序好很多。6.3 遗忘回收机制记忆系统如果没有遗忘机制运行几个月后数据库就会堆满大量低价值噪声。遗忘不一定要真删除也可以主动降权或归档但在最小实现里直接删除低重要性且较旧的记录是简洁可行的手段。继续补充一个GC函数def gc_memories(store: SQLiteMemoryStore, agent_id: str, keep_best: int 100): 保留该Agent下重要性最高的 keep_best 条记忆其余删除。 rows store.conn.execute( SELECT id, importance FROM memories WHERE agent_id ? ORDER BY importance DESC, created_at DESC , (agent_id,), ).fetchall() delete_ids [row[0] for row in rows[keep_best:]] for mem_id in delete_ids: store.conn.execute(DELETE FROM memories WHERE id ?, (mem_id,)) store.conn.commit() return len(delete_ids)上面的GC策略故意设计得非常简单实际项目中通常不会只按条数截断而是结合记忆类型分别设置上限。比如情景记忆保留最近的500条语义记忆保留200条程序性记忆可能永远保留。但这个最小示例已经足够帮助理解“记忆不是越存越多越好而是要有淘汰策略”。6.4 把记忆注入Agent的System Prompt有了存储和召回还需要把记忆接入Agent的调用流程。通常在组装System Prompt时先根据用户标识和当前查询召回记忆把召回的文本拼装成结构化的记忆块再注入System Prompt。新建文件agent_prompt_example.py# 文件路径agent_prompt_example.py SYSTEM_TEMPLATE 你是一个能管理长线任务的研发助理Agent。 下面是本次任务开始前从记忆库中召回的历史上下文。 {memory_block} 请记住 1. 如果记忆块中没有与当前请求相关的信息直接告诉用户“暂时没有找到相关记忆”不要编造历史。 2. 先简述你理解的用户目标再给出执行计划。 3. 如果当前请求与记忆中某些约束冲突先解释冲突点再征询用户确认。 def build_memory_block(memory_rows): if not memory_rows: return [memory] 空 lines [] for row in memory_rows: mem_id, agent_id, content, mem_type, task_id, importance, created_at row lines.append(f- [{mem_type}][task{task_id}][importance{importance}] {content}) return \n.join(lines) def build_system_prompt(agent_id: str, store, keyword: str , limit: int 5) - str: rows store.recall(agent_idagent_id, keywordkeyword, limitlimit) memory_block build_memory_block(rows) return SYSTEM_TEMPLATE.format(memory_blockmemory_block)在真实项目中build_system_prompt不会每次都只做关键词召回通常会先把用户当前的需求做一次向量化再从向量库中做语义检索。不过关键词召回对小项目和本地验证足够直观而且更容易复现适合先跑通整个流程。6.5 一个完整的运行Demo下面用一个模拟场景把全链路串起来。场景是用户第一次会话里透露了项目的技术栈和端口偏好Agent将这些信息写入记忆第二次会话中用户提到“环境准备”Agent从记忆中召回之前的约束。新建文件demo_run.py# 文件路径demo_run.py from agent_memory.db_store import SQLiteMemoryStore, MemoryItem store SQLiteMemoryStore(agent_memory.db) # 模拟第一次会话结束时Agent做的记忆沉淀 store.add(MemoryItem( agent_idassistant-01, content用户后端使用Java 17 Spring Boot 3本地端口固定为8080联调环境为dev, memory_typesemantic, task_idproject-onboarding, importance0.92, )) store.add(MemoryItem( agent_idassistant-01, content已完成登录模块接口联调联调结果符合用户预期, memory_typeepisodic, task_idtask-auth, importance0.56, )) # 模拟第二次会话用户 5 分钟后再次发起新任务 keyword 后端 rows store.recall(agent_idassistant-01, keywordkeyword, limit5) print(召回条数:, len(rows)) for row in rows: print(命中记忆:, row[3], |, row[2])本地运行验证的完整命令在下一节给出。代码执行后你会看到Agent之后组装System Prompt时有办法追溯到用户最早的技术栈约束。7. 运行结果与效果验证先把项目目录结构整理清楚agent_memory_demo/ ├── agent_memory/ │ └── db_store.py ├── agent_prompt_example.py ├── demo_run.py └── agent_memory.db # 首次运行后自动生成在项目根目录运行python demo_run.py预期输出类似召回条数: 1 命中记忆: semantic | 用户后端使用Java 17 Spring Boot 3本地端口固定为8080联调环境为dev如果因为SQLite数据库已经存在旧数据导致测试结果不符合预期可以先删除数据库文件后重跑rm agent_memory.db python demo_run.py要注意一点验证这个记忆模块是否有效不能只看“能写入、能查出”还要观察注入记忆前后Agent行为的差异。建议做一个对比实验同一道包含项目约束的题目分别在空记忆和装满历史记忆的System Prompt下运行比较Agent的回答是否稳定遵守用户之前的偏好。这一步能帮你判断召回逻辑、记忆块格式和System Prompt之间的配合是否顺畅。如果召回没有命中按下面顺序排查确认Agent ID是否一致确认写入时agent_id是否和查询时使用同一个值检查创建时间字段有没有因为旧数据而混乱检查关键词分词是否和记忆内容匹配。8. 常见问题与排查思路在自己搭建Agent记忆和排查开源框架问题的时候下面这些场景出现频率很高问题现象可能原因排查方式解决方案Agent反复询问用户已经给过的信息记忆没有被写入或写入的Agent ID与会话使用的Agent ID不一致检查记忆表内容确认写入时agent_id统一Agent ID生成规则保证同一用户的Agent ID固定召回结果包含大量无关记忆关键词或向量召回缺少相关性阈值打印召回内容检查阈值设置增加相似度/相关性过滤提高importance排序权重上下文窗口仍然频繁超限所有历史记录全量注入System Prompt没有启用“按需召回”查看Prompt里实际拼接的Token数改为每次只注入Top-K条记忆降低上限Agent执行过程出现类似“did not respond in time”的超时错误单次任务过重、工具调用链过长或子Agent等待时间不足查看具体超时节点和执行日志加长超时配置将大任务拆分为多个子Agent为关键步骤增加重试机制子Agent执行时看不到主Agent之前已确认过的约束主从模式只传了任务描述没有传记忆上下文检查主Agent调度时传入子Agent的字段将召回的相关记忆加入子Agent的System Prompt或任务参数多用户环境下记忆串号没有按用户维度做数据隔离查看查询条件里是否只有Agent ID没有用户ID每条记忆增加user_id/team_id字段查询时必须带权限范围记忆库增长过快缺少遗忘机制所有会话内容全部入库统计记忆表条数和平均长度配置定期GC按memory_type设置容量上限可以看到“Agent执行provider没有及时响应”这类问题和记忆没有必然关系它在Agent任务编排中同样常见。处理原则是先把大任务拆小再为工具调用和子Agent执行设置合理的超时与重试不要把所有问题都归到记忆头上。9. 记忆系统安全、权限与生产环境工程建议上面示例代码能演示持久记忆的核心链路但它离生产环境还有距离。如果你准备把Agent记忆真正接入业务系统下面几件事要养成习惯。第一记忆数据的权限隔离是刚性要求。示例里只有agent_id一个维度但真实场景必须增加user_id、team_id甚至更细的数据域维度。每次召回都要强制拼接上当前用户的权限范围不能在业务层之外留下“只要知道Agent ID就能查到全部记忆”的公开查询接口。记忆内容往往包含用户偏好、项目约束、业务内部信息泄露风险比普通对话日志更高。第二写入之前先做内容安全检查和脱敏。不要把所有对话原样写进记忆表尤其是密钥、Token、个人敏感信息等。可以在记忆写入前设置一道过滤层对检测到的敏感字段做脱敏或拒绝入库。对Agent记忆而言删不掉的数据比没有数据更危险。第三记忆Schema要预留迁移路径。你可以用SQLite演示也可能用PostgreSQL、Redis或向量数据库做生产存储。无论用什么存储都要考虑字段升级。比如一开始只有content字段后来为了支持RAG需要增加embedding_id如果没有迁移机制线上服务会非常痛苦。生产环境建议从一开始就将存储层抽象成接口不要在业务代码里散落原生SQL。第四记忆写入前做“最小必要”判断。不是每轮对话都值得写入记忆Agent应该先判断这句话是否包含新的项目约束是否有用户偏好变化是否是可复用的经验如果都不是不写。写入泛滥会直接导致召回信噪比变低这是记忆系统质量下滑最隐蔽的原因。第五建立记忆闭环的观测指标。建议监控每组会话的重复提问率、记忆召回命中率、以及用户纠正Agent的次数。如果一个Agent接入记忆系统后用户在同一个问题上的重复说明明显变少说明记忆系统是有效的如果指标没有变化大概率是写入或召回环节出了问题而不是该换一个更大的模型。10. 总结与下一步实践建议可以看出长线协作Agent的开发难点已经从“让模型更聪明地推理”转向了“让系统更可靠地记住、找到并应用过去的信息”。AML首期揭榜这类动作之所以值得关注是因为它把Agent记忆放到了一个可以横向比较的位置上迫使开发者在同一个坐标系里审视写入、召回、遗忘和权限这些环节。模型能力会继续提升但记忆系统的设计不会被模型能力自动取代。如果你想通过实践巩固今天的内容有三个小实验比较合适从易到难开展。实验一给你现有Agent增加一个任务笔记表每次任务结束后用5到10个词记录“这次任务的关键结论”下次会话开始时把结论注入Prompt观察是否减少了用户的重复说明。实验二把任务笔记升级为带类型和重要性评分的记忆库再用关键词或向量召回替代全量注入对比两种方式的成本和回答质量差异。实验三在你自己搭建的主从模式Agent中把子Agent执行完成后的经验回收给主Agent统一记忆再让同一个主Agent处理下一轮相似任务观察子Agent的编码质量或任务成功率是否变化。动手之前提醒一句不要在一开始就用数据库和向量库堆复杂架构。先用几十行代码跑通“记录、召回、注入、遗忘”的闭环再逐步替换成嵌入式数据库、向量检索或专业记忆服务过程会顺畅很多。毕竟记忆范式之争现在才刚刚开始先去积累自己的工程经验以后看评测榜单会多一重判断力。
返回列表