跳到主要内容

会自己变好的 agent:三算法、域指标与完整 CoALA

这一章讲三件事: LangMem 的三种学习算法各管哪种学习、怎么组合; 域指标(domain metrics)的权重怎么决定 agent 长成什么样——书里有一笔「汇率」算术,值得背下来; 把投资顾问实现换成任何领域的转换框架。到这里,全书从「检索文档」走到了「agent 自己进化」。

1. 先诚实:LangMem 给积木,房子是自己搭的

原书在最后一章做了一次重要的诚实声明,值得先记住:LangMem 是真实的开源库, 但只提供两个原语(create_memory_manager 记忆提取、create_prompt_optimizer 提示词优化); 书里的 coala_agent.py、分层学习、域分离,全部是作者自建的教学框架—— 演示的是「怎么用 LangMem 的积木搭生产级学习 agent」1

三种记忆在这个架构里终于合流:情景记忆供对话上下文,语义记忆供提取出的事实, 程序性记忆应用学到的策略——三者协作才是「智能行为」的完整含义2

2. 三种学习算法:三种时间尺度的学习

程序性记忆的「学习」由三种算法执行,它们读同一段对话历史,但提取的东西完全不同3:

算法时间尺度管什么书中的例子
prompt_memory分钟级,实时单遍快速学习:从少量新对话里立刻抓明显模式「用户要具体数字,不要模糊表述」——模式出现几分钟内就被抓住
gradient后台持续批判与提案分离:专门分析失败的交互,搞清「为什么不行」防止重蹈覆辙;找到「只顾成功的学习」看不见的边界情况
metaprompt日/周级定期多阶段深度反思:把成百上千条对话放在一起挖隐性关联「早晨问波动率的用户需要更多情绪安抚」——小样本(样本即拿来分析的例子)里根本看不见

组合用法(原书给的医疗例)4:prompt_memory 实时跟着病人交互学, gradient 后台专啃失败病例,metaprompt 每周对全部历史做一次深析—— 三者互补:一个供速度,一个保稳健,一个挖「好系统与伟大系统的差距」。

多算法并存的规则管理也值得记:每条学到的规则带三样标签——来源算法、置信度、 derives 自多少条对话。冲突时按三个优先级裁决:具体的胜过泛化的(用户级规则压过全局规则)、 高置信胜过低置信新的胜过旧的。规则的置信度是活的:prompt_memory 以 70% 置信学到的规则, 被 metaprompt 在上千条对话上验证后,置信度升到 95%5

3. 域指标:你告诉它成功是什么,它就长成什么样

学习需要反馈,反馈来自域指标(domain metrics)——你用一组带权重的指标定义「成功」。 原书在这里放了一句全书最该带走的警告:「agent 会精确优化你告诉它的东西—— 不管那是不是你真正的目标」6

主走查:一笔「汇率」算术

投资顾问的默认权重:收益 50%、满意度 30%、目标达成 20%。这组权重的真实含义是 目标之间的汇率7:

一个策略:收益降 3%,满意度升 5%
收益损失:0.03 × 50 = 1.5 分
满意收益:0.05 × 30 = 1.5 分
⟹ 打平。agent 会学到:这种交换「可以做,但没赚」

图说:权重不是排名,是可兑换的分数。每个学到的策略都在这套汇率下计算过。

换一组权重,agent 的性格就变了。原书给出的对照8:

  • 保守型(收益 20 / 满意 60 / 目标 20): 学出的策略是「充分解释每一步风险」「每步确认用户理解」;
  • 目标型(20 / 20 / 60): 学出「定期对照退休目标检查进度」这类策略。

指标冲突时,程序性记忆的反应最见功力:高收益策略持续拉低满意度,agent 不会二选一, 而是学出条件策略——「只对明确表示重收益的用户使用激进策略」。 多目标优化最终落地为对不同用户的不同打法9

4. 域转换:把投资顾问变成任何东西

分层学习、指标加权、策略库——这套机制对领域完全无知。换领域靠一个四文件转换框架10:

  • 换什么: 把金融概念系统性替换成新域概念——identify_task_type() 里「调仓、税务规划」 换成「作业辅导、概念讲解」;
  • 保什么: 用户交互的结构模式与成功的度量方式原样保留——按风险偏好给投资者分组, 和按学习风格给学生分组,是同一个结构动作;
  • 怎么换: 原书直接给了可复制的 LLM 提示词——把投资顾问代码贴给 LLM, 要求保持接口不变、替换域概念,人做审查11

核心三文件(coala_agent.pyprocedural_memory.pybaseline_agent.py)零改动; 语义记忆自动开始抽取教育事实,情景记忆存的是辅导会话,程序性记忆自己发现「什么对学生有效」12。 换好之后,多个领域的专业 agent 可以共享同一套认知架构并行运行—— 医疗诊断助手、法律研究助手、烹饪教学机器人,模式全都一样13

5. 完整 CoALA:全书的落点

四记忆合流的最终形态14:

┌─ 情景记忆:上次发生了什么
用户提问 → agent ──┼─ 语义记忆:已知的事实
├─ 程序性记忆:这种情况下什么打法有效
└─ 工作记忆:刚才说到哪了

每次交互的结果 → 学习算法 → 更新策略库

图说:检索的对象从「文档」到「个性化上下文」再到「自己的行为策略」——
RAG 的三级进化在同一张图里。

原书的结语把这本书的立场收得很稳:AI 的未来「不只是更聪明的算法, 而是能持续学习与改进的系统」——而这套东西没有魔法, 「是以最先进形态构建和使用 RAG 的自然结果」15

6. 边界与局限

  • 三个算法的组合是原书的教学架构,置信度体系与冲突裁决是作者的设计,不是 LangMem 的内建行为16;
  • 域指标的所有数字(50/30/20、3% 换 5%)是演示用的设定——真实的权重要靠领域专家与数据定;
  • 学习型 agent 的评测比静态 agent 难一层:策略变了,历史评测结果就不可比了——原书没有展开这个新问题;
  • 自主进化的安全边界(A/B、灰度、回滚)有了,但「谁为 agent 学错的东西负责」是书外的题。

7. 可带走的

  1. LangMem 只给两个原语;分层学习框架是自建的——看演示学架构,别把教学代码当生产件。
  2. 三种算法三种时间尺度:prompt_memory 抓即时、gradient 啃失败、metaprompt 挖深层。
  3. 规则三标签(来源/置信度/样本量——样本量即这条规则见过多少个例子——)加三优先级(具体>泛化、高置信>低置信、新>旧),是多学习源共存的最低要求。
  4. 权重是汇率不是排名:50/30/20 下「收益降 3% 换满意度升 5%」恰好打平——agent 的每个策略都过这套算术。
  5. agent 精确优化你告诉它的目标——指标定错,学得越快偏得越远。
  6. 域转换=换概念保结构:分组投资者的方式和分组学生的方式是同一个动作。
  7. RAG 的三级进化:检索文档 → 检索个性化上下文 → 检索「自己的最佳行为策略」。

8. 原文地图

主题原书章原文位置
LangMem 只是原语的诚实声明Advanced RAG with Complete Memory Integrationtext/137-fm-advanced-rag-with-complete-memory-integration.txt:23(搜「real, open source library」)
三记忆协作Advanced RAG with Complete Memory Integrationtext/137-fm-advanced-rag-with-complete-memory-integration.txt:43(搜「episodic memory providing conversation context」)
prompt_memory 单遍学习prompt_memory: efficient single-pass learningtext/143-fm-prompt-memory-efficient-single-pass-learning.txt:1(搜「single-pass」)
gradient 批判与提案分离gradient: critique and proposal separationtext/144-fm-gradient-critique-and-proposal-separation.txt:1(搜「critique and proposal」)
metaprompt 多阶段反思metaprompt: multi-stage reflection for complex patternstext/145-fm-metaprompt-multi-stage-reflection-for-complex-pa.txt:4(搜「multi-stage reflection」)
三算法组合(医疗例)Combining algorithms for comprehensive learningtext/147-fm-combining-algorithms-for-comprehensive-learning.txt:4(搜「healthcare system」)
规则三标签与置信度升级Combining algorithms for comprehensive learningtext/147-fm-combining-algorithms-for-comprehensive-learning.txt:19(搜「confidence」) · text/147-fm-combining-algorithms-for-comprehensive-learning.txt:22(搜「70% confidence」)
冲突裁决三优先级Combining algorithms for comprehensive learningtext/147-fm-combining-algorithms-for-comprehensive-learning.txt:19(搜「specificity」)
指标定义成功、塑造 agentCombining algorithms for comprehensive learningtext/147-fm-combining-algorithms-for-comprehensive-learning.txt:40(搜「domain_metrics」)
权重 50/30/20Multi-goal balancing: realism with complexitytext/149-fm-multi-goal-balancing-realism-with-complexity.txt:4(搜「50%」)
汇率算术(3% 换 5%)Multi-goal balancing: realism with complexitytext/149-fm-multi-goal-balancing-realism-with-complexity.txt:7(搜「exchange rates」)
保守型学出的策略Multi-goal balancing: realism with complexitytext/149-fm-multi-goal-balancing-realism-with-complexity.txt:14(搜「Conservative」)
条件策略Multi-goal balancing: realism with complexitytext/149-fm-multi-goal-balancing-realism-with-complexity.txt:33(搜「conditional strategies」)
精确优化你告诉它的Multi-goal balancing: realism with complexitytext/149-fm-multi-goal-balancing-realism-with-complexity.txt:24(搜「optimize exactly」)
转换框架与结构保留Domain conversion frameworktext/150-fm-domain-conversion-framework.txt:1(搜「Domain conversion」) · text/150-fm-domain-conversion-framework.txt:73(搜「structural logic」)
LLM 辅助转换的提示词Domain conversion frameworktext/150-fm-domain-conversion-framework.txt:8(搜「educator_agent.py」)
核心文件零改动Domain conversion frameworktext/150-fm-domain-conversion-framework.txt:125(搜「remains untouched」)
分组同构(风险偏好=学习风格)Domain conversion frameworktext/150-fm-domain-conversion-framework.txt:12(搜「learning styles」)
四记忆合一Integration: four memory types working togethertext/151-fm-integration-four-memory-types-working-together.txt:4(搜「complete CoALA」)
换域即换实现Integration: four memory types working togethertext/151-fm-integration-four-memory-types-working-together.txt:7(搜「swapping the domain agent」)
领域专家不懂记忆系统也能造 agentPractical implications: enabling rapid innovationtext/152-fm-practical-implications-enabling-rapid-innovation.txt:4(搜「Domain experts」)
结语:不是魔法,是 RAG 的自然结果Procedural Memory for RAG with LangMemtext/130-fm-procedural-memory-for-rag-with-langmem.txt:125(搜「not magic」)

Footnotes

  1. 出处:「Advanced RAG with Complete Memory Integration」第 23 段(text/137-fm-advanced-rag-with-complete-memory-integration.txt:23,搜「real, open source library」)。

  2. 出处:「Advanced RAG with Complete Memory Integration」第 43 段(text/137-fm-advanced-rag-with-complete-memory-integration.txt:43,搜「episodic memory providing conversation context」)。

  3. 出处:「prompt_memory: efficient single-pass learning」第 1 段(text/143-fm-prompt-memory-efficient-single-pass-learning.txt:1,搜「single-pass」);「gradient: critique and proposal separation」第 1 段(text/144-fm-gradient-critique-and-proposal-separation.txt:1,搜「critique and proposal」);「metaprompt: multi-stage reflection for complex patterns」第 4 段(text/145-fm-metaprompt-multi-stage-reflection-for-complex-pa.txt:4,搜「multi-stage reflection」);prompt_memory 抓「具体数字」模式的例子见「Combining algorithms for comprehensive learning」第 13 段(text/147-fm-combining-algorithms-for-comprehensive-learning.txt:13,搜「specific numbers」)。

  4. 出处:「Combining algorithms for comprehensive learning」第 4 段(text/147-fm-combining-algorithms-for-comprehensive-learning.txt:4,搜「healthcare system」)。

  5. 出处:「Combining algorithms for comprehensive learning」第 19 段(text/147-fm-combining-algorithms-for-comprehensive-learning.txt:19,搜「specificity」)与第 22 段(text/147-fm-combining-algorithms-for-comprehensive-learning.txt:22,搜「70% confidence」)。

  6. 出处:「Multi-goal balancing: realism with complexity」第 24 段(text/149-fm-multi-goal-balancing-realism-with-complexity.txt:24,搜「optimize exactly」)。

  7. 出处:「Multi-goal balancing: realism with complexity」第 7 段(text/149-fm-multi-goal-balancing-realism-with-complexity.txt:7,搜「exchange rates」)。原文:0.03 × 50 = 1.5 分损失,0.05 × 30 = 1.5 分收益,打平。默认 50/30/20 权重见第 4 段(text/149-fm-multi-goal-balancing-realism-with-complexity.txt:4,搜「50%」)。

  8. 出处:「Multi-goal balancing: realism with complexity」第 14-17 段(text/149-fm-multi-goal-balancing-realism-with-complexity.txt:14,搜「Conservative」)。

  9. 出处:「Multi-goal balancing: realism with complexity」第 33 段(text/149-fm-multi-goal-balancing-realism-with-complexity.txt:33,搜「conditional strategies」)。

  10. 出处:「Domain conversion framework」第 1 段(text/150-fm-domain-conversion-framework.txt:1,搜「Domain conversion」)与第 15 段(text/150-fm-domain-conversion-framework.txt:15,搜「identify_task_type」)。

  11. 出处:「Domain conversion framework」第 73 段(text/150-fm-domain-conversion-framework.txt:73,搜「structural logic」)与第 8 段(text/150-fm-domain-conversion-framework.txt:8,搜「educator_agent.py」)。

  12. 出处:「Domain conversion framework」第 125 段(text/150-fm-domain-conversion-framework.txt:125,搜「remains untouched」)。

  13. 出处:「Domain conversion framework」第 128 段(text/150-fm-domain-conversion-framework.txt:128,搜「cooking instruction bot」)。

  14. 出处:「Integration: four memory types working together」第 4 段(text/151-fm-integration-four-memory-types-working-together.txt:4,搜「complete CoALA」)。

  15. 出处:「Procedural Memory for RAG with LangMem」第 125 段(text/130-fm-procedural-memory-for-rag-with-langmem.txt:125,搜「not magic」)。

  16. 出处:「Advanced RAG with Complete Memory Integration」第 23 段(text/137-fm-advanced-rag-with-complete-memory-integration.txt:23,搜「custom framework」)。