第 6 章 记忆管理和上下文工程

提示🎧 本章配套播客
重要学习目标
  1. 理解 智能体记忆系统的认知科学基础,区分工作记忆、短期记忆、长期记忆、情景记忆的特点与功能
  2. 理解 上下文工程范式的核心思想,掌握从「存储导向」到「检索导向」的范式转变
  3. 应用 U 型注意力曲线原理优化信息放置策略,最大化关键信息的召回率
  4. 应用 三层信息架构(L1/L2/L3)和四策略框架进行上下文优化
  5. 分析 不同压缩策略的代价与收益,选择适合任务特征的压缩方法
  6. 创造 设计具有分层记忆架构的智能体系统,实现短期、中期、长期记忆的协同管理
  7. 评价 在给定场景中评估记忆管理策略的成本效益,平衡信息保留与上下文空间

记忆管理和上下文工程核心概念总览

想象这样一个场景:你是某私人银行的智能理财顾问,正在服务一位 VIP 客户。客户三个月前曾表达过对 ESG 投资的兴趣,上周讨论了孩子的教育金规划,今天又提到想了解海外资产配置。如果你记不住这些对话历史,每次都要客户从头解释需求,服务体验会大打折扣。

这就是本章要解决的问题:如何让智能体具备高效的记忆能力?

记忆管理看似只是「存储数据」,但深入思考后你会发现:关键不是存多少,而是在正确的时间找到正确的信息。这就是「上下文工程」的核心思想——它不追求无限大的上下文窗口,而是追求高信号密度的信息检索。

本章将从认知科学出发,建立智能体记忆的四层架构:工作记忆(上下文窗口)、短期记忆(会话历史)、长期记忆(外部存储)、情景记忆(决策轨迹)。然后深入探讨上下文工程的核心技术:U 型注意力曲线、缓存优化、压缩策略、分区策略。最后通过一个真实的「自我进化 AI 副本」案例,展示所有概念如何在实践中协同工作。

6.1 记忆管理概述

想象一位资深理财顾问与客户的对话。客户张先生走进办公室,顾问立刻说:您上次提到计划三年内买房,最近房价有所松动,要不要聊聊购房首付的配置?这位顾问之所以能提供如此贴心的服务,关键在于他记住了客户的核心需求。

智能体也面临同样的挑战。没有记忆的智能体,每次对话都是从零开始——它不记得你上周问过什么,也不知道你偏好稳健还是激进的投资风格。这样的智能体只能充当一次性的问答工具,无法成为真正的知识伙伴。

本节我们将从认知科学出发,理解人类记忆的工作原理,建立智能体记忆系统的整体框架,并引入上下文工程这一新范式。

6.1.1 为什么智能体需要记忆

在金融服务场景中,记忆能力直接决定了智能体的服务质量。

场景一:无记忆的客服困境

第一天: - 客户:我想了解债券基金和股票基金的区别。 - 智能体:[详细解释两类基金的风险收益特征]

第二天: - 客户:那个收益稳定的基金叫什么来着? - 智能体:请问您指的是哪种基金? - 客户(不耐烦):就昨天聊的那个啊! - 智能体:对不起,我没有昨天的对话记录…

第三天: - 客户:我考虑清楚了,就买那个稳健的。 - 智能体:您好,请问需要购买什么产品? - 客户:[关闭对话]

这种「健忘」的体验令人沮丧。客户不得不重复说明自己的需求,交流效率大打折扣。

场景二:有记忆的智能顾问

同样的客户第二天继续咨询:

智能体主动提示:您昨天询问了债券基金,它的特点是收益相对稳定、波动较小。您的风险偏好是保守型,建议关注中短期纯债基金。需要我推荐几只具体产品吗?

这才是真正有价值的金融服务。记忆让智能体从「工具」进化为「伙伴」。

重要核心概念

记忆能力的商业价值体现在三个维度:

  • 客户留存率:记住偏好的智能体能提供个性化服务,客户黏性更强
  • 服务连续性:跨会话保持知识积累,避免重复沟通
  • 决策一致性:基于历史经验做出稳定判断,而非每次从零开始

6.1.2 记忆的认知科学基础

要设计智能体的记忆系统,我们先看看人类大脑是如何管理记忆的。认知神经科学研究揭示,人类记忆系统存在多个层次,各层次分工明确、协同工作。

感觉记忆

这是信息进入大脑的第一站。当你看一眼股票报价屏,所有数字都会短暂停留在视觉系统中——但仅仅持续几百毫秒。绝大多数信息在这个阶段就被遗忘,只有你注意到的内容才会进入下一层。

短期记忆

你刚听到的电话号码、刚看到的验证码,都存储在短期记忆中。它的容量有限,心理学经典研究表明,人类短期记忆大约只能容纳 7±2 个信息单元。更重要的是,这些信息很快就会消失——如果不加复述,几十秒后你就忘了刚才的验证码。

工作记忆

这是大脑的「在线处理器」。当你心算 23×17 时,你需要同时记住 23、17、中间结果 21(7×3)、161(7×23)等数字,并按照乘法规则进行运算。这个过程就发生在工作记忆中。

注记知识卡片

工作记忆与短期记忆的本质区别:短期记忆只负责「存储」,而工作记忆不仅存储,还能「处理」——它可以主动调用长期记忆中的知识,进行逻辑分析和推理。

心理学家 Baddeley 提出的工作记忆模型包含三个子系统:语音环路(处理语言信息)、视空间画板(处理图像信息)、中央执行系统(协调整合)。这个模型对智能体设计有重要启发。

长期记忆

你的母语词汇、骑自行车的技能、童年的重要经历——这些都存储在长期记忆中。它的容量几乎无限,保存时间可达数十年。但长期记忆的写入需要时间和重复,检索也可能失败(想想那些话到嘴边却想不起来的时刻)。

6.1.3 智能体记忆的四层架构

借鉴人类记忆系统的分层设计,智能体的记忆架构也可以分为四个层次。

人类记忆 智能体对应 持续时间 容量 典型内容
工作记忆 上下文窗口 任务期间 200K tokens 当前任务描述、系统提示、相关文档摘要、工具输出
短期记忆 会话历史 会话期间 会话级 完整问答对、中间推理过程、临时变量
长期记忆 外部存储 持久 无限 用户画像、知识库、项目配置、历史报告
情景记忆 决策日志 选择性持久 按需 决策轨迹、市场情境标签、经验教训、反思记录

工作记忆:智能体的「心理白板」

智能体处理任务时,需要把相关信息加载到上下文窗口中。这就像你在白板上写下要点,一边看一边思考。上下文窗口的大小决定了智能体能同时「看到」多少信息——Claude Sonnet 4 的上下文窗口是 200K tokens,相当于一本中等篇幅的书。

但白板面积有限。当信息太多时,你必须擦掉一些内容,为新信息腾出空间。智能体也是如此——上下文管理是记忆系统的核心技能。

短期记忆:会话历史

从对话开始到结束,所有的问答记录都保存在短期记忆中。它保证了对话的连贯性:当客户说「就选这个」时,智能体知道「这个」指的是刚才讨论的那只基金。

长期记忆:跨会话持久化

会话结束后,重要信息需要保存到外部存储(文件、数据库)。下次客户再来咨询时,智能体可以检索这些记忆,接续之前的服务。

情景记忆:决策轨迹

这是一种特殊的长期记忆,存储的不是「知识」,而是「经历」。比如,智能体记录了「2024 年 8 月 15 日,客户想在科技股大涨时追高买入,我建议分批建仓,客户采纳后平均成本降低 2.5%」。当类似情况再次出现时,智能体可以借鉴这段经验。

6.1.4 上下文工程:从存储到检索的范式转变

传统的记忆管理思维是「如何存储更多」——追求更大的上下文窗口、更多的存储空间。但这种思路存在根本性缺陷。

重要核心概念:上下文工程范式

传统思维:如何存储更多信息?

新范式:如何在正确的时间检索正确的信息?

核心洞见:记忆的价值在于检索,而非存储。

为什么更大的窗口不能解决问题

直觉上,我们以为更大的上下文窗口意味着更好的记忆。但研究表明并非如此:

  • 注意力稀释:窗口越大,每个位置分到的注意力越少
  • 训练分布偏移:模型训练时短序列占主导,长序列经验不足
  • 成本不成比例增长:双倍 tokens 带来的可能是超过双倍的成本和延迟

U 型注意力曲线:模型对上下文开头和结尾的关注度更高

研究发现,Transformer 模型的注意力分布呈 U 型曲线:开头和结尾的信息召回率最高,中间区域下降 10-40%。这意味着关键信息应放在系统提示(开头)和当前任务描述(结尾),而非中间位置。

RULER 基准测试发现:声称支持 32K+ tokens 上下文的模型中,只有 50% 能在 32K 时保持满意性能。

约束优化框架

上下文工程是一个优化问题:

  • 目标函数:最大化输出质量
  • 约束条件:令牌预算、延迟要求、成本限制、注意力容量
  • 决策变量:什么信息进入上下文、放在什么位置、以什么形式
提示经济学映射

上下文窗口是具有机会成本的经济资源。把所有可能有用的信息塞入上下文,就像把所有资产都变成现金持有——流动性最大化,但收益最低。

令牌分配类似于投资组合配置:在有限资源下追求最优收益。每个 token 都有成本(金钱和注意力),需要精心配置。

上下文工程的核心任务

找到最小的高信号 token 集合,最大化期望输出质量。这个定义包含两层含义:

  1. 最小化:不是越多越好,而是恰到好处
  2. 高信号:相关性和信息密度比数量更重要

这个范式转变对记忆系统设计有深远影响。在后续章节中,我们将学习如何通过压缩、缓存、分层加载等技术,实现高效的上下文管理。

6.5 情景记忆:决策轨迹与自我进化

交易执行智能体在复盘会议上被问到:2024 年 8 月 15 日那笔科技股交易是怎么决策的?如果它只记得最终结果(买入 1000 股,收益 12%),这个问题无法回答。但如果它记住了完整的决策过程——市场信号、分析逻辑、备选方案、最终选择——它就能像一位经验丰富的交易员一样复盘。

这就是情景记忆(Episodic Memory)的独特价值。它不同于「知道什么」的事实性知识,而是关于「经历了什么」的亲身体验。对于智能体而言,情景记忆是实现经验学习和类比推理的关键。

6.5.1 情景记忆的独特价值

情景记忆与长期记忆有本质区别。长期记忆存储的是「通货膨胀会侵蚀购买力」这样的知识;情景记忆存储的是「2024 年 8 月 15 日,我因为担心市场过热而建议客户分批买入科技股,结果平均成本降低 2.5%」这样的经历。

重要核心概念:情景记忆的三要素
  1. 情境绑定:时间、地点、参与者、市场环境
  2. 叙事完整性:起因、经过、结果形成完整故事
  3. 反思标注:事后的经验教训和模式总结

情景记忆可以进一步区分为两类:

实体记忆:追踪实体的身份一致性。

  • 「Apple = AAPL = 那家做 iPhone 的公司」
  • 「张先生 = 客户 C001 = 风险偏好 R2 的退休教师」

实体记忆确保智能体在不同语境下识别同一对象。当用户说「那家科技巨头」时,智能体能关联到之前讨论过的苹果公司。

事件记忆:记录时序序列和因果链条。

  • 「分析苹果财报 → 识别增长放缓信号 → 推荐谨慎持有 → 客户减仓 20%」
  • 「美联储加息 → 科技股承压 → 调低估值目标」

事件记忆是决策复盘和经验迁移的基础。

6.5.2 决策轨迹记录

决策日志是情景记忆的核心载体。它建立「决策-结果」的映射关系,支持事后复盘与反思学习。

一条典型的投资决策情景记忆结构如下:

# 情景记忆示例
episode_id: EP_2024_08_15_001
timestamp: 2024-08-15T14:30:00+08:00
participants: [客户张先生, 投资顾问智能体]
market_context:
  regime: 牛市末期
  signals: [科技股当日涨8%, 成交量放大150%, 市场情绪亢奋]

narrative:
  trigger: 客户要求以市价买入某科技股
  analysis:
    - 识别风险:股价短期涨幅过大,追高风险高
    - 历史参照:类似情况下次日回调概率 65%
    - 备选方案:[市价买入, 分批建仓, 等待回调]
  decision: 建议客户等待回调,分三批建仓

outcome:
  result: 客户采纳建议
  metrics:
    - 次日股价回调 3%
    - 分三批建仓完成
    - 平均成本比市价买入降低 2.5%

reflection:
  pattern: 短期急涨 + 情绪亢奋 → 高概率回调
  strategy_validated: 分批建仓在追涨场景有效
  applicable_conditions: 适用于非趋势性的短期急涨
  lessons: 情绪指标是追高场景的关键预警信号

这种结构化的记录方式,让智能体能够:

  • 回顾决策的完整逻辑链条
  • 验证策略的实际效果
  • 提炼可复用的经验模式
提示设计技巧

决策日志应该记录「为什么」而不仅仅是「做了什么」。记录「在市场过热信号下建议减仓科技股」比单纯记录「减仓科技股 10%」更有学习价值。

市场情境标签是情景记忆的重要组成部分。通过标记当时的市场状态(牛市、熊市、盘整、危机),智能体可以在未来回答「相似情境下什么策略有效」这类问题。

情境标签 典型特征 历史案例
牛市 指数持续上涨,情绪乐观 2019-2021 科技股行情
熊市 指数持续下跌,恐慌情绪 2022 年加息周期
盘整 窄幅震荡,方向不明 2024 Q2 市场
危机 急跌、流动性紧张 2020 年 3 月新冠冲击

6.5.3 元认知模式与认知演化

情景记忆的更高级应用是支持智能体的「元认知」能力——不仅记住做了什么,还要理解自己是如何思考问题的。

从「知道什么」到「如何思考」

人类学习新领域时,获得的不只是知识累积,更是认知方式的转变。学习 Angrist 的计量经济学方法后,你看问题的方式会改变:

学习前 学习后
看到相关性就下结论 先问「因果识别策略是什么?」
相信模型预测 追问「理想实验是什么样的?」
追求一般性证明 承认 LATE 的局部性

这些不是具体知识,而是可迁移的认知工具。智能体也应该记录和积累这类元认知模式。

认知演化的三个层次

层次 1:记住事实和数据

层次 2:记住推理模式和判断框架

层次 3:记住「什么时候用什么思考方式」
注记知识卡片:元认知

元认知(Metacognition)是「关于认知的认知」——对自己思维过程的觉察和调控。一个具有元认知能力的智能体,不仅能分析问题,还能反思自己的分析方法是否恰当。

在记忆架构设计中,可以将元认知模式作为独立层级存在:

Layer 0: 基础模型能力

Layer 1: 核心身份(价值观、决策风格)

Layer 1.5: 元认知模式 [关键层]
         - 问题处理框架
         - 评估想法的通用流程
         - 变化频率:每学习一个新领域后

Layer 2: 领域知识

Layer 3: 会话上下文

Layer 1.5 存储的是「如何思考」的模式,而非「知道什么」的知识。这些模式一旦习得,可以迁移应用到新的领域。

金融场景的元认知模式示例

## 元认知模式:估值分析框架

### 触发条件
当需要评估一家公司是否被高估或低估时

### 思考步骤
1. 首先确定估值基准(行业平均、历史均值、可比公司)
2. 选择合适的估值指标(PE、PB、PS、EV/EBITDA)
3. 分析估值差异的原因(增长预期、风险溢价、流动性)
4. 判断估值差异是否合理

### 常见陷阱
- 忽略行业差异,直接横向比较
- 使用单一指标下结论
- 混淆市值与企业价值

### 来源
2024 年分析 50 家科技公司后总结

6.5.4 经验迁移与类比推理

情景记忆的一个重要应用是支持类比推理。当智能体面对新的市场情境时,可以检索历史上的相似情况,借鉴过往经验。

注记知识卡片:历史类比法

在投资领域,有一句名言:「历史不会重演,但会押韵。」2022-2023 年的美联储加息周期与 1994-1995 年有诸多相似之处,了解历史能帮助我们更好地应对当下。

市场情景回顾

当前市场出现「美联储暂停加息 + 经济软着陆信号 + 科技股低估值」的组合时,智能体可以检索 1995-1996 年的类似情况,分析当时市场的后续走势。

客户行为模式

首次经历熊市的投资者往往高估自己的风险承受能力。智能体记录客户在市场下跌时的真实反应(频繁查看账户、焦虑情绪、考虑赎回),用于校正风险画像。

跨智能体经验迁移

在多智能体系统中,情景记忆支持追踪「哪个智能体做了什么决策」。研究智能体的分析经验可以迁移给执行智能体,避免重复劳动。


6.6 Agentic RAG:智能检索增强

金融分析师需要回答这个问题:「苹果公司 2024 年相比 2023 年盈利能力是否改善?」

如果只是机械地搜索一次,可能只找到 2024 年的数据。但经验丰富的分析师会这样做:先检索 2024 年财报,提取净利润率;再检索 2023 年财报,提取同一指标;然后计算变化;如果发现数据异常,还会交叉验证。

这种主动规划、动态调整、自我验证的检索方式,就是 Agentic RAG 的核心理念。

6.6.1 从被动检索到主动决策

传统的检索增强生成(RAG)就像一个听话但不会变通的图书管理员——你问什么,他就去找什么,找到什么给你什么,不会思考这些资料是否真的有用。

重要核心概念:Agentic RAG

Agentic RAG 是赋予检索增强生成系统智能体能力的技术范式。它让 RAG 系统从被动的「检索-生成」流程,进化为主动规划、动态调整、自我反思的智能检索助手。核心转变是:检索是「决策」而非「步骤」

传统 RAG 与 Agentic RAG 的对比:

特性 传统 RAG Agentic RAG
检索流程 固定(检索一次 → 生成) 动态(可多轮检索、调整策略)
信息需求判断 无(总是检索) 有(判断是否需要检索)
检索质量评估 评估相关性,必要时重新检索
多源协调 单一检索源 可调用多种工具(向量库、SQL、API)
答案验证 自我反思,交叉验证

6.6.2 四大核心能力

Agentic RAG 具备四大核心能力,它们相互配合,形成完整的智能检索闭环。

1. 规划(Planning)

面对复杂问题,智能体会先分解任务,规划检索路径。

用户问题:对比苹果和三星 2024 年盈利能力

规划结果:
  步骤 1:检索苹果 2024 年财报,提取净利润和营收
  步骤 2:检索三星 2024 年财报,提取净利润和营收
  步骤 3:计算两家公司的净利润率
  步骤 4:对比分析,得出结论

2. 检索驱动推理(Retrieval-driven Reasoning)

智能体基于检索结果动态调整推理路径,而不是机械执行预设流程。

执行步骤 1:检索到苹果营收 3890 亿美元
发现问题:只有营收,没有成本数据,无法计算净利润
动态调整:补充检索「苹果 2024 年净利润」或「苹果 2024 年利润表」
继续执行:获取净利润 967 亿美元,计算净利润率 24.9%

3. 工具使用(Tool Use)

智能体根据任务特点选择合适的工具,而不是只依赖单一检索方式。

信息类型 推荐工具 示例
财报数据 向量检索 检索年报 PDF 中的财务数据
结构化数据 SQL 查询 查询数据库中的股价、估值指标
实时信息 API 调用 获取最新股价、汇率
最新动态 网络搜索 搜索公司新闻、政策变化

4. 自我反思(Self-Reflection)

智能体会评估检索和生成的质量,发现问题及时纠正。

生成答案:「苹果 2024 年营收增长 15%」
自我反思:这个增速异常高,需要验证
重新检索:查找官方财报原文
发现错误:实际增速是 2.1%,之前检索到的是分析师预测
纠正答案:「苹果 2024 年营收实际增长 2.1%」

6.6.3 关键设计模式

Agentic RAG 有四种关键设计模式,适用于不同场景。

Self-RAG:反射标记系统

Self-RAG 的核心是在生成过程中插入反射标记,指导每一步决策。

反射标记 含义 选项
[Retrieve] 需要检索吗? yes / no / continue
[IsRelevant] 文档相关吗? relevant / irrelevant
[IsSupported] 文档支持答案吗? fully / partially / no support

这种机制让智能体能够:

  • 避免不必要的检索(当模型已有足够知识时,标记 [Retrieve: no])
  • 过滤不相关的文档(标记 [IsRelevant: irrelevant] 后跳过)
  • 验证答案的可靠性(只采用 [IsSupported: fully] 的内容)

金融场景示例

用户询问:「苹果 2024 Q3 净利润是多少?」

智能体内部决策:
[Retrieve: yes] 需要检索财报数据
  ↓ 检索到文档
[IsRelevant: relevant] 文档是 2024 Q3 财报,相关
  ↓ 提取信息
[IsSupported: fully] 文档明确列出净利润 $22.9B
  ↓ 生成答案
「苹果 2024 Q3 净利润为 229 亿美元」

CRAG:检索质量分级

CRAG(Corrective RAG)根据检索质量动态调整策略。

检索结果质量评估:
├── Correct(高相关)→ 直接使用
├── Ambiguous(部分相关)→ 补充检索 + 信息融合
└── Incorrect(不相关)→ 丢弃,尝试外部搜索

Multi-Hop RAG:多文档跳跃

很多复杂问题无法通过一次检索解决,需要在多个文档之间「跳跃」,建立逻辑链条。

问题:比亚迪 2024 年 Q3 毛利率比 Q2 提高了还是降低了?

第 1 跳:检索 2024 Q3 财报 → 毛利率 21.9%
第 2 跳:检索 2024 Q2 财报 → 毛利率 20.7%
第 3 跳:对比分析 → Q3 比 Q2 提高 1.2 个百分点
第 4 跳(可选):检索原因 → 规模效应、成本优化

Adaptive RAG:策略分级

根据问题复杂度自动选择策略。

问题类型 检索策略 示例
简单事实 单次检索或直接回答 「苹果的股票代码是什么?」
对比分析 Multi-Hop 「A 公司和 B 公司谁盈利能力更强?」
因果推理 Self-RAG + 验证 「股价下跌的原因是什么?」
提示适用场景建议
  • Multi-Hop RAG:适合跨期对比、跨公司对比、因果分析
  • Self-RAG:适合需要高准确性的场景(金融分析、合规审查)
  • Adaptive RAG:适合问题复杂度差异大的综合问答系统

6.6.4 GraphRAG vs Vector RAG

向量检索是 RAG 的基础方式,但它有一个根本局限:丢失关系结构

Vector RAG 的局限

向量数据库可以回答「苹果 Q3 营收是多少?」——因为这是独立事实检索。但它很难回答「苹果的哪些供应商也报告了营收增长?」——因为供应商关系没有编码在向量空间中。

特性 Vector RAG GraphRAG
准确率 ~60-70% ~75-85%
关系结构 丢失 保留
幻觉率 较高 降低约 30%
适用查询 独立事实检索 关系推理、因果分析

GraphRAG 的优势

GraphRAG 通过提取实体和关系,构建知识图谱,支持关系推理。

知识图谱片段:
[苹果公司] --供应商--> [台积电]
[苹果公司] --供应商--> [富士康]
[台积电] --竞争对手--> [三星电子]

可回答的问题:
- 苹果的供应商有哪些?
- 苹果和三星有共同供应商吗?
- 供应商中谁的营收增长最快?

实证数据(来源:Deep Memory Retrieval Benchmark, 2024)

深度记忆检索(DMR)基准测试显示:

系统 准确率 关键特点
Zep(时序知识图谱) 94.8% 最佳准确率,保留时间有效性
MemGPT 93.4% 综合表现良好
GraphRAG 75-85% 关系结构保留,20-35% 准确率提升
Vector RAG 60-70% 丢失关系结构
递归摘要 35.3% 严重信息损失
警告注意

递归摘要(看似「渐进式总结」的默认方法)仅有 35.3% 的准确率。这意味着简单的对话压缩可能丢失大量关键信息。选择压缩策略时要谨慎。

选择建议

场景 推荐方案
独立事实查询 Vector RAG
关系推理、因果分析 GraphRAG
时间敏感查询(「当时知道什么」) 时序知识图谱
成本敏感场景 Vector RAG + 元数据过滤

6.6.5 记忆整合

长期运行的智能体需要定期整合记忆,保持系统健康。记忆整合(Memory Consolidation)是维护记忆质量的关键机制。

触发条件

记忆整合应在以下情况触发:

  • 记忆数量超过阈值(如 10,000 条)
  • 检索返回过多过时结果
  • 定期调度(如每周一次)

整合流程

记忆整合流程:

1. 识别重复
   - 语义相似度 > 0.95 的记忆合并
   - 保留最新版本

2. 合并相关
   - 同一实体的多条记忆整合
   - 保留时间线完整性

3. 更新有效性
   - 检查时间戳,标记过时信息
   - 更新 valid_until 字段

4. 归档过时
   - 超过保留期的记忆移至归档
   - 保留审计痕迹

金融场景示例

# 整合前
- 记忆 1:「张先生风险偏好为激进型」(2023-01)
- 记忆 2:「张先生风险偏好为稳健型」(2024-06)
- 记忆 3:「张先生经历熊市后变得谨慎」(2024-06)

# 整合后
- 张先生风险偏好:
    - 2023-01 至 2024-05: 激进型
    - 2024-06 至今: 稳健型
    - 变化原因: 熊市经历

6.7 Claude Code 记忆管理实践

使用 Claude Code 开发金融分析项目时,一个常见的痛点是:每次开启新会话都要从零开始建立上下文。你不得不重复告诉 Claude 项目是什么、偏好是什么、数据规范是什么。

Claude Code 的记忆系统正是为解决这个问题而设计。它让智能体能够记住项目规范、个人偏好和工作习惯,从「健忘者」变成「知识伙伴」。

6.7.1 CLAUDE.md 文件体系

CLAUDE.md 是 Claude Code 的「长期记忆中枢」。它采用分层设计,让你既能定义全局偏好,又能针对特定项目设置规范。

CLAUDE.md 三层文件体系:用户级 → 项目级 → 子目录级

三种记忆位置

记忆类型 文件位置 作用范围 典型用途
用户记忆 ~/.claude/CLAUDE.md 所有项目 个人偏好、通用规范
项目记忆 ./CLAUDE.md 当前项目(团队共享) 项目架构、编码规范
子模块记忆 ./subdir/CLAUDE.md 子目录 模块特定约定

加载机制

Claude Code 启动时会递归查找 CLAUDE.md 文件:

  1. 从当前工作目录开始
  2. 向上逐级查找直到用户主目录
  3. 层层叠加,形成完整上下文
重要核心概念

CLAUDE.md 本质上是系统提示(System Prompt)——它定义了智能体在这个项目中应该如何行事。因此,CLAUDE.md 永远不会被压缩。即使执行 /compact,CLAUDE.md 的内容也会完整保留。

导入功能

使用 @path/to/file 语法可以导入其他文件的内容:

# CLAUDE.md

## 项目概述
这是一个金融数据分析平台。

## 配置导入
@config/coding_standards.md
@config/data_sources.md
@config/compliance_rules.md

导入功能支持相对路径和绝对路径,最大递归深度为 5 层。

6.7.2 会话状态管理命令

Claude Code 提供几个核心命令管理会话状态。理解它们的语义有助于选择正确的策略。

命令语义映射

命令 对应策略 语义 适用场景
/clear 分区 会话级分区,完全清空历史 开始全新任务
/compact 压缩 保留核心信息,释放空间 继续当前任务,上下文过长
/compact 指令 选择性压缩 按指令保留特定信息 需要精确控制保留内容
/memory 编辑 打开并编辑 CLAUDE.md 更新项目规范
--resume 恢复 恢复之前的会话 跨天继续工作
--continue 继续 继续最近的会话 昨天的工作今天继续

/clear 命令

/clear

完全清空当前对话历史。这是「会话级分区」——相当于开启一个全新的工作空间。

适用于: - 开始完全不相关的新任务 - 切换到不同项目 - 对话上下文已混乱,需要重新开始

警告注意

/clear 对当前会话是破坏性的,但 CLAUDE.md 文件内容会保留。如果想返回旧会话,应使用 --resume 命令。

/compact 命令

/compact

将当前对话压缩为更短的摘要,保留重要事实和决策。

更强大的用法是带指令压缩:

/compact 仅保留决策和待办事项
/compact 保留所有关于估值模型的讨论
/compact 保留客户的风险偏好和投资目标

这让你能精确控制保留什么信息,而不是完全依赖自动判断。

提示教学提示

/compact 想象成会议纪要。一场两小时的会议,纪要可能只有两页。纪要保留了关键决策和行动项,但省略了具体讨论过程。

6.7.3 三层信息架构实践

高效的记忆管理需要区分不同类型信息的加载策略。三层信息架构(L1/L2/L3)是一种经过验证的模式。

三层信息架构:L1 元数据 → L2 指令 → L3 数据的渐进式加载

架构设计

层级 何时加载 内容类型 Token 成本
L1 始终 SKILL.md 元数据、核心约束 ~50 tokens
L2 按需 MODULE.md 指令、API 规范 ~60-80 tokens
L3 即时 .jsonl/.yaml 具体数据 可变

L1 层(元数据):始终加载

# L1: 项目元数据(始终加载)
项目: 金融分析系统
技术: Python 3.10+, yfinance
约束: 输出 JSON 格式
核心规范: @config/core_rules.md

这些是智能体必须知道的基本信息,无论执行什么任务都需要。

L2 层(指令):按需加载

# L2: 按需加载(在 CLAUDE.md 中引用,任务相关时加载)
@config/api_specs.md          # API 开发任务时加载
@config/data_processing.md    # 数据处理任务时加载
@config/reporting_format.md   # 报告生成任务时加载

这些是特定任务需要的详细指令,不需要时不加载。

触发机制:「任务相关时加载」的判断逻辑包括: - 关键词匹配:用户请求中包含「API」「接口」时加载 api_specs.md - 模块调用:执行数据处理函数时加载 data_processing.md - 显式引用:用户直接要求「按照报告格式」时加载 reporting_format.md

L3 层(数据):即时加载

# L3: 即时加载(在任务中明确引用时才加载)
@data/client_profiles.jsonl   # 分析特定客户时加载
@data/market_events.yaml      # 分析市场事件时加载

这些是具体的数据文件,只在明确需要时加载。

Token 效率

采用三层架构后: - 优化后:~650 tokens/任务 - 未优化:~5000 tokens/任务 - 节省:约 87%

计算示例

假设一个典型金融分析任务:

层级 内容 优化前 优化后
L1 元数据 项目名称、技术栈 50 50
L2 指令 全部指令一次性加载 800 80(按需)
L3 数据 全部数据一次性加载 4000 500(即时)
冗余信息 未清理的历史 150 20
合计 5000 650

节省率 = (5000 - 650) / 5000 = 87%

注记知识卡片:渐进式加载

三层架构的核心思想是「渐进式加载」——先加载最少必要信息,需要更多细节时再按需获取。这与金融领域的「按需配置」原则一致:不要一次性配置所有资产,而是根据需求逐步建仓。

6.7.4 上下文管理最佳实践

主动压缩策略

不要等到系统自动触发压缩才处理。建议采用主动压缩策略:

利用率 状态 建议操作
70% 预警 开始考虑压缩
80% 触发 执行 /compact
90% 紧急 立即 /compact/clear

实践建议:每 30-50 轮对话后主动执行 /compact,主动管理上下文是高效使用智能体的关键技能。

CLAUDE.md 管理规范

规范 原因
保持在 200 行以内 过长会占用过多上下文窗口
使用 @import 分离配置 保持主文件简洁,便于维护
核心信息写进去,详细信息通过路径引用 CLAUDE.md 是「门户」而非「仓库」
定期更新,删除过时内容 过时信息可能误导智能体

观察遮蔽在实践中的应用

研究发现,工具输出占据了典型工作流中 83.9% 的 tokens。这是优化的最大杠杆点。

Claude Code 的 /compact 命令实际上实现了「观察遮蔽」策略:

观察遮蔽策略:

固定遮蔽:「前 X 行已省略」
  - 研究发现:固定遮蔽可匹配 LLM 摘要的效果
  - 优势:零 token 开销(vs 摘要的 5-7% 开销)

适用场景:
  - 长日志输出
  - 重复格式的数据
  - 已处理完成的中间结果
注意故障排除

问题:Claude 似乎没有读取 CLAUDE.md 的内容

可能原因和解决方法: 1. 文件位置错误——确保在项目根目录或当前工作目录 2. 文件名拼写错误——必须是 CLAUDE.md(大写) 3. 导入路径错误——检查 @path/to/file 路径是否正确 4. 文件过大——控制在 200 行以内,过长会影响加载

问题:会话恢复失败

可能原因和解决方法: 1. 会话已过期——Claude Code 会话有保留期限 2. 会话 ID 错误——使用 claude --resume 交互式选择 3. 权限问题——检查会话存储目录权限

6.7.5 实践示例:金融分析项目配置

以下是一个金融分析项目的完整记忆架构示例。

项目目录结构

finance-analysis/
├── CLAUDE.md                    # 项目级记忆(L1)
├── config/
│   ├── data_sources.md          # 数据源配置(L2)
│   ├── coding_standards.md      # 代码规范(L2)
│   └── compliance_rules.md      # 合规要求(L2)
├── data/
│   ├── client_profiles.jsonl    # 客户画像数据(L3)
│   └── market_events.yaml       # 市场事件记录(L3)
├── WORKING_PLAN.md              # 工作计划(动态更新)
└── REMEMBER.md                  # 经验教训(持续积累)

CLAUDE.md 示例

# 金融分析系统

## 项目概述
为理财顾问提供客户画像分析和投资建议工具。

## 技术栈
- Python 3.11 + Pandas + NumPy
- 数据源:Wind API、同花顺接口
- 存储:SQLite(开发)/ PostgreSQL(生产)

## 核心约束
- 所有金额单位:人民币元
- 日期格式:YYYY-MM-DD
- 收益率保留 2 位小数

## 按需配置
@config/data_sources.md
@config/coding_standards.md
@config/compliance_rules.md

## 工作状态
@WORKING_PLAN.md

## 经验教训
@REMEMBER.md

REMEMBER.md 示例

## 常见错误

- 股票代码查询时,上交所用 .SS 后缀,深交所用 .SZ 后缀
- 日期范围查询时,注意中国节假日导致的数据缺失
- 处理财报数据前,先检查会计准则变更

## 最佳实践

- 每次 API 调用后检查返回状态码
- 大量数据处理使用分页,避免内存溢出
- 敏感数据(客户身份证号)必须脱敏处理

## 技术决策记录

### 2026-01-25:风险评估模型选型
- 决策:采用问卷 + 行为分析双轨制
- 原因:单一问卷无法反映真实风险承受能力
- 参考:客户在 2024 年熊市中的实际行为数据

通过这套机制,Claude Code 真正成为了「记得住」的智能助手——不仅记得当前对话,还记得整个项目的背景、规范和历史经验。


本节小结

章节 核心概念 实践要点
6.5 情景记忆 记录决策轨迹,支持元认知演化
6.6 Agentic RAG 四大能力 + 四种模式,GraphRAG 提升关系推理
6.7 Claude Code 实践 三层信息架构,主动压缩策略

6.8 最佳实践:上下文工程四策略

上下文窗口是具有机会成本的经济资源。与其被动应对窗口耗尽,不如建立主动防御体系。本节介绍四种递进策略,从预防到应急,构建完整的上下文管理方案。

6.8.1 四策略框架概述

上下文工程四策略框架:缓存优化 → 观察遮蔽 → 压缩策略 → 分区策略

四种策略形成层层防御:

策略 1: 缓存优化(预防)
    ↓ 最大化缓存命中,10 倍成本差异
    ↓ 设计缓存友好的提示结构

策略 2: 观察遮蔽(早期干预)
    ↓ 工具输出 = 83.9% tokens,最大杠杆
    ↓ 固定遮蔽可匹配 LLM 摘要效果

策略 3: 压缩策略(主动管理)
    ↓ 70-80% 利用率时触发
    ↓ 结构化摘要保留信号,丢弃噪音

策略 4: 分区策略(架构解决方案)
    ↓ 子智能体隔离上下文
    ↓ 文件交接策略,避免信息传递损耗

选择策略的决策框架:

上下文状态 首选策略 理由
利用率 < 50% 缓存优化 预防胜于治疗
工具输出占比 > 50% 观察遮蔽 瞄准最大消耗源
利用率 70-80% 压缩策略 主动释放空间
任务可拆分 分区策略 从架构层面解决
重要核心概念

不要等到上下文耗尽才行动。研究表明,在 70-80% 利用率时主动优化,比等到质量下降信号再处理,效果好得多。

6.8.2 缓存优化:10 倍成本差异

API 服务商对缓存命中的输入 token 提供大幅折扣。以 Claude Sonnet 4 为例:

Token 类型 成本
未缓存输入 $3.00/MTok
缓存输入 $0.30/MTok
差异 10 倍

这意味着设计「缓存友好」的提示结构能带来显著成本节省。

缓存友好的内容排序原则

[稳定内容优先]          ← 可缓存(系统提示、工具定义)
[常用模板次之]          ← 部分可缓存(格式要求、常用指令)
[动态内容最后]          ← 无法缓存(当前查询、实时数据)

什么会破坏缓存

  • 在系统提示中加入时间戳(每次请求都不同)
  • 格式不一致(同一类请求结构不同)
  • 频繁调整系统提示措辞

金融应用示例

假设你的金融分析系统有 4 万 tokens 的稳定前缀(系统提示 + 工具定义 + 分析框架)。每天处理 100 个请求:

无缓存成本:40,000 × 100 × $3/MTok = $12/天 = $360/月
缓存命中成本:40,000 × 100 × $0.3/MTok = $1.2/天 = $36/月

月节省 = $360 - $36 = $324(90%)
提示技巧

把 CLAUDE.md 想象成「固定资产」——它的内容应该稳定,不要频繁修改。稳定的系统提示是缓存优化的基础。

6.8.3 观察遮蔽:零开销的高杠杆策略

研究发现,在典型的智能体工作流中,工具输出占据 83.9% 的 tokens。这是优化的最大杠杆点。

观察遮蔽(Observation Masking) 的核心思想是:工具输出在使用后往往不再需要完整保留。可以用简短的占位符替换冗长的原始输出。

原始工具输出(2000 tokens):
{
  "date": "2026-01-27",
  "results": [
    {"symbol": "AAPL", "price": 185.23, "volume": 52341000, ...},
    {"symbol": "MSFT", "price": 412.56, "volume": 28765000, ...},
    ... 更多数据 ...
  ]
}

遮蔽后(50 tokens):
[工具输出已处理:获取了 10 只股票的实时行情数据,已提取关键指标]

关键发现

研究表明,固定遮蔽(如「前 X 行已省略」)的效果可以匹配甚至超过 LLM 生成的摘要,同时带来零 token 开销(LLM 摘要通常消耗 5-7% 额外 tokens)。

遮蔽策略选择

内容类型 策略 理由
最近一轮工具输出 保留完整 当前任务可能需要
3 轮以上的工具输出 选择性遮蔽 提取关键点,隐藏细节
重复格式的数据 立即遮蔽 格式已知,只需保留结论
已完成处理的中间结果 完全遮蔽 任务已完成,不再需要

6.8.4 压缩策略:结构化摘要

当上下文利用率达到 70-80% 时,应主动触发压缩。但压缩有代价——研究显示,递归摘要(看似「渐进式总结」的默认方法)会丢失 65% 的准确率。

压缩的代价——DMR 基准测试数据

压缩方法 准确率 关键洞见
时序知识图谱(Zep) 94.8% 时间有效性是关键
MemGPT 93.4% 综合表现良好
GraphRAG 75-85% 保留关系结构
Vector RAG 60-70% 丢失关系结构
递归摘要 35.3% 严重信息损失

结构化摘要模板

与其让模型自由摘要,不如提供结构化模板,强制保留关键信息:

## 会话意图
[用户的核心目标]

## 已修改文件
- file1: 变更内容
- file2: 变更内容

## 已做决策
- 决策 1: 理由
- 决策 2: 理由

## 当前状态
[任务进度:完成/进行中/待开始]

## 下一步
1. 具体步骤 1
2. 具体步骤 2

Claude Code 中的实践

# 带指令的定向压缩
/compact 仅保留决策、待办事项和配置更改

# 保留特定主题
/compact 保留所有关于估值模型的讨论
警告注意

文件追踪信息特别容易在压缩中丢失。即使使用最佳压缩方法,文件追踪评分也只有 2.2-2.5/5.0。关键文件操作应写入 CLAUDE.md,而非仅依赖会话记忆。

6.8.5 分区策略:子智能体隔离上下文

最彻底的优化是从架构层面解决——将复杂任务拆分给子智能体,每个子智能体有独立的上下文空间。

子智能体的本质是上下文隔离,而非拟人化分工

主智能体上下文:
┌──────────────────────────────────────┐
│ 系统提示 + 用户需求 + 任务规划      │
│ 容量:约 20K tokens                 │
└──────────────────────────────────────┘
          ↓ 分派任务
    ┌─────┴─────┐
    ↓           ↓
┌────────┐  ┌────────┐
│子智能体A│  │子智能体B│
│独立上下文│  │独立上下文│
│处理任务A│  │处理任务B│
└────────┘  └────────┘
    ↓           ↓
    └─────┬─────┘
          ↓ 只返回摘要
┌──────────────────────────────────────┐
│ 主智能体接收:任务 A 完成,任务 B 完成 │
│ 新增消耗:约 200 tokens              │
└──────────────────────────────────────┘

文件交接策略

子智能体不应将完整结果返回给主智能体(这会填满主智能体的上下文),而应:

  1. 将详细结果直接写入文件
  2. 只向主智能体返回状态摘要
错误做法:
子智能体 → [完整分析报告 5000 tokens] → 主智能体

正确做法:
子智能体 → [写入 output/analysis.md]
子智能体 → [状态摘要 100 tokens] → 主智能体

金融场景示例

主智能体(理财顾问)需要生成市场分析报告:

主智能体上下文:
┌────────────────────────────────────┐
│ 客户需求:分析科技股投资价值      │
│ 任务规划:分派给研究子智能体      │
└────────────────────────────────────┘
         ↓ 分派任务
    ┌───────────┐
    │研究子智能体│
    │独立上下文 │
    │分析 AAPL  │
    └───────────┘
         ↓ 写入文件
    output/aapl_analysis.md
         ↓ 返回摘要
┌────────────────────────────────────┐
│ 主智能体接收:                     │
│ ✅ AAPL 分析完成,盈利能力优秀    │
│ 消耗:约 50 tokens                │
└────────────────────────────────────┘

如果子智能体将完整分析(3000 tokens)返回主智能体,会填满上下文。

避免「电话游戏」问题

信息经过多个上下文传递会逐步降级。直接文件交接避免了这种损耗。

6.8.6 常见陷阱与避免方法

陷阱类型 具体表现 解决方案
暴力加载 「直接粘贴所有内容到上下文」 渐进式加载,按需检索
信息同质化 所有信息同等对待 区分必要复杂度与偶发复杂度
速度优化偏差 优化生成速度而非理解深度 关注输出质量,非延迟
跳过规划 直接执行,缺乏设计 研究-规划-实现三阶段
不主动压缩 频繁触发自动压缩 每 30-50 轮主动 /compact
CLAUDE.md 过大 文件超过 200 行 使用 @import 分离配置
敏感数据裸存 未加密存储客户信息 加密敏感字段,环境变量存密钥
注意故障排除

如果发现智能体「健忘」——频繁遗忘早期讨论的关键点、重复之前犯过的错误,很可能是自动压缩时丢失了重要信息。解决方案:

  1. 关键决策立即写入 CLAUDE.md 或 REMEMBER.md
  2. 主动压缩时明确指定保留内容
  3. 使用文件而非会话记忆存储重要信息

6.9 综合案例:自我进化的 AI 副本

本节介绍一个真实的 AI-Native 笔记系统的记忆管理架构。这个系统从简单的「省事工具」逐步发展为具有五层记忆架构、可自我进化的 AI 副本。通过这个案例,你将看到本章所有概念如何在实践中协同工作。

6.9.1 案例背景:从静态快照到动态演化

当密集使用 Claude Code 时,一个看似简单的问题浮现:每次开启新会话,都要从零开始建立上下文

表面上是效率问题——每次都要告诉 Claude 你是谁、在做什么研究、偏好是什么。深层来看,这暴露了一个根本矛盾:

大语言模型是无状态的,但人的工作是有状态的。

Claude 可以在单次对话中表现得极其聪明,但它不记得昨天讨论过什么,不知道上个月学了什么方法,也不知道正在进行的研究项目进展。每次会话都是全新的「初次见面」。

痛点的三个层次

层次 痛点描述 对应设计
操作层 每次重复输入项目配置、文件路径、偏好设置 CLAUDE.md 体系
知识层 Claude 不知道我学过什么、研究过什么 domain-expertise.md + 知识库
认知层 Claude 不知道我如何思考问题、做决策 Persona.md + 元认知模式

从工具到系统的转变

最初的解决方案是典型的「工程师思维」:既然每次都要输入相同的信息,为什么不把它存成文件?于是有了最早的 CLAUDE.md。

但很快意识到,这不只是「省事」的问题。当把自己的研究方向、思维模式、偏好写成文件让 Claude 读取时,实际上是在构建一个外化的认知系统。Claude 读取这些文件后,它的行为模式会发生变化——它开始像「我」一样思考问题。

重要核心概念

范式转变:从「用 AI 提高效率」转向「用 AI 延伸认知」。对于 AI 来说,记忆就是身份。

6.9.2 AI-Native 笔记系统记忆架构

传统笔记系统是「人写笔记 → 人读笔记」。AI-Native 设计是「人写笔记 → AI 读笔记 → AI 辅助人」。笔记系统成为 AI 的「记忆基础设施」。

文件夹结构作为记忆分区

NewNote/
├── CLAUDE.md               # 核心配置 - 定义智能体行为
├── 0_待整理/               # 收件箱 - 短期缓冲
├── 1_导航/                 # 外部索引 - 长期记忆指针
├── 3_背景/                 # 用户画像 - 核心身份记忆
│   └── Persona.md          # 多维人格画像
├── 9_学习笔记/             # 学习记录 - 知识积累
├── 10_xai_assets/          # XAI 智能体资产 - 自进化记忆
│   ├── domain-expertise.md # 当前专业能力档案
│   ├── knowledge-index.md  # 知识库导航索引
│   └── versions/           # 历史版本快照
├── 11_交互日志/            # 会话记录 - 情景记忆
└── 系统配置/
    └── lessons_learned.md  # 经验教训记录

四层记忆的具体实现

记忆层 实现机制 更新频率 典型内容
工作记忆 CLAUDE.md + 上下文注入 每次会话 项目配置、当前任务
短期记忆 11_交互日志/ 自动记录 每次会话结束 会话摘要、使用工具
长期记忆 Persona.md + domain-expertise.md 月/年 身份画像、专业知识
情景记忆 versions/ + 反思笔记 按需 决策轨迹、认知转变

索引-内容分离模式

Claude 可以先读索引文件,快速扫描有什么内容,再决定读哪些具体文件:

索引层:
- 1_导航/CLAUDE.md          → 外部资源总索引
- 10_xai_assets/knowledge-index.md → 知识库导航

内容层:
- 实际笔记文件分布在各文件夹
- 通过索引按需访问
提示教学提示

CLAUDE.md 应该是「门户」而非「仓库」。核心信息写进去,详细信息通过路径引用。这是 6.4 节「三层信息架构」的具体应用。

6.9.3 五层记忆分层设计

这个系统采用五层记忆架构,每层有不同的变化频率和加载策略:

五层记忆架构:从 Base Model 到 Session Context 的完整分层设计
Layer 0: Anthropic Base Model (Claude)

Layer 1: Core Identity(核心身份)
         - 价值观、基本人格、道德边界
         - 变化频率:年

Layer 1.5: Meta-Cognitive Patterns(元认知模式)
         - 问题处理框架、评估想法的通用流程
         - 变化频率:每学习一个新领域后

Layer 2: Domain Expertise Profile(专业知识档案)
         - 专业知识的结构化摘要、研究项目状态
         - 变化频率:每月合成

Layer 3: Active Knowledge Retrieval(主动知识检索)
         - 运行时从 vault 检索具体笔记、文献、数据
         - 变化频率:实时

Layer 4: Session Context(会话上下文)
         - 当前对话的累积上下文、用户反馈和纠正
         - 变化频率:每轮对话

认知科学映射表

系统层 认知记忆类型 变化频率 容量
Persona 语义记忆(自我概念)
元认知 程序性记忆(思维技能)
专业知识 语义记忆(领域知识)
主动检索 情景记忆(具体事件) 极大
会话上下文 工作记忆 分钟 有限

Persona 与 Domain Expertise 分离的原因

维度 Persona.md domain-expertise.md
描述 我是谁 我知道什么
内容 身份、价值观、风格 领域、深度、框架
变化 月/周
性质 相对稳定的认知特征 不断增长的知识资产

分离的好处:

  1. 更新独立:学了新东西只需更新 domain-expertise.md,不影响 Persona
  2. 加载灵活:有些任务只需要专业知识,不需要完整人格
  3. 演化清晰:可以单独追踪「知道什么」和「是谁」的变化轨迹

6.9.4 /xai-update:自动化专长更新

系统设计了专门的 Skill 来更新长期记忆。工作流分为四个阶段:

Phase 1: SCAN & ANALYZE(5-10 分钟)

类似年度考核中的「自我回顾」:回顾过去一年做了哪些项目,学到了什么新技能。

1. 读取当前 expertise profile
   - 记录「Last Updated」日期
   - 检查各领域当前深度级别

2. 扫描学习笔记库新增内容
   - 检查 9_学习笔记/ 各文件夹修改日期
   - 识别新增文件夹和笔记

3. 分析新内容深度
   - 阅读文件夹的 _index.md
   - 抽样 2-3 篇代表性笔记评估深度
   - 识别新框架、深度变化、关键洞见

4. 起草更新建议

Phase 2: VALIDATE(2-3 分钟)

类似晋升答辩前的「自我测试」:设计几个问题来检验自己是否真正掌握了新技能。

5. 生成验证问题
   - 创建 3-5 个能区分深度级别的问题
   - 示例:「解释平台包络策略,并举一个现实案例」

6. 对比旧版与新版的回答能力
   - 旧档案能回答这些问题吗?
   - 新档案能回答得更好/更完整吗?

Phase 3: USER APPROVAL(交互式)

类似晋升评审的「主管确认」:将自我评估结果呈报上级审批,确保客观准确。

7. 呈现更新摘要

   ## Update Summary

   **Proposed Changes**:

   | Domain | Current → Proposed | Key Additions |
   |--------|-------------------|---------------|
   | Platform Econ | Intermediate → Adv Int | Envelopment |

8. 请求用户批准
   - 选项:Approve / Show diff / Revise / Cancel

Phase 4: COMMIT(1-2 分钟)

类似 HR 系统的「档案更新」:正式记录能力变化,保留历史版本以备审计。

9. 备份旧版本
   → versions/domain-expertise_v{N}_{date}.md

10. 更新 domain-expertise.md
    - 递增版本号
    - 更新 Last Updated 日期
    - 应用变更

11. 确认完成
    ✅ Update complete
    - Backup saved: versions/domain-expertise_v3_20260127.md
    - xai agent will use new profile on next invocation

版本控制示例

10_xai_assets/versions/
├── domain-expertise_v1_20260123.md
├── domain-expertise_v2_20260124.md
└── domain-expertise_v3_20260125.md
Date Version Key Changes
2026-01-25 v3 Upgraded: Econometrics. Source: Train 14 chapters
2026-01-24 v2 Added: Academic Writing. Source: Bellemare 8 chapters
2026-01-23 v1 Initial profile

成功标准

一次好的更新应该:

  1. ✅ 反映真实学习(有 vault 笔记支撑)
  2. ✅ 提升 xai 回答领域问题的能力
  3. ✅ 保持准确性(无虚构专长)
  4. ✅ 在 15 分钟内完成
  5. ✅ 提供清晰审计轨迹

6.9.5 对教学的启示

这个案例展示了本章所有概念的综合应用:

章节概念 案例体现
6.1 四层记忆模型 五层架构是四层模型的细化实现
6.2 上下文窗口 通过索引-内容分离控制加载量
6.3 压缩策略 会话日志只保存结构化摘要
6.4 长期记忆 domain-expertise.md + 版本控制
6.5 情景记忆 决策轨迹和反思笔记
6.7 CLAUDE.md 体系 三层记忆位置的完整应用
6.8 四策略框架 缓存(稳定前缀)+ 分区(子智能体)

概念映射

知识管理如同资产管理:

笔记系统 金融类比
笔记 知识资产
CLAUDE.md 投资组合配置
domain-expertise.md 资产清单
定期更新 再平衡
版本控制 审计追踪
注记知识卡片

学习新领域给人的不只是知识累积,更是认知方式的转变。学习计量经济学后,遇到因果问题会先问「理想实验是什么?」;学习行为金融后,看到市场异常会先想「什么心理偏差在起作用?」。这种「元认知模式」的记录和传承,是 AI 副本真正有价值的地方。

讨论问题

  1. 如果 Claude 永远记得和你的所有对话,会有什么好处和风险?
  2. 你愿意让 AI 拥有你的完整「数字记忆」吗?为什么?
  3. 为什么要将 Persona.md 和 domain-expertise.md 分开?

练习建议

  1. 为自己的学习项目设计一个 CLAUDE.md,包含:项目概述、学习目标、已掌握知识、学习资源路径
  2. 创建一个「学习日志」系统,记录每次与 Claude 的学习对话摘要
  3. 设计一个简化版的 domain-expertise.md,列出你在不同领域的知识深度

6.10 金融应用案例

案例 6A:客户画像知识库系统

案例背景

某财富管理公司希望为 AI 理财顾问构建客户记忆系统。核心需求:

  • 记住客户的风险偏好、投资目标、ESG 偏好
  • 跨会话保持服务连贯性
  • 追踪客户偏好的时间演化
  • 满足合规审计要求
要素 说明
演示模式 长期记忆 + 情景记忆 + 三层架构 + 时间有效性
案例简述 设计客户偏好数据结构,实现跨会话记忆检索和风险偏好演化追踪
经济学映射 客户生命周期价值(CLV)—— 记忆能力提升客户留存
应用衔接 第 11 章舆情分析的用户画像模块采用类似设计

目录结构

金融智能顾问/
├── CLAUDE.md                      # 项目级规则
├── clients/
│   ├── index.yaml                # 客户索引
│   ├── profiles/
│   │   └── C001_张三.md          # 完整画像
│   └── history/
│       └── C001/                 # 交互历史(JSONL)
│           └── 2026-01.jsonl     # 按月归档
├── compliance/
│   ├── suitability.md            # 适当性规则
│   └── audit_trail.jsonl         # 审计日志(追加式)
└── knowledge/
    └── market_events/            # 市场事件记忆

客户画像分层

层级 内容 更新频率 时间有效性 示例
静态层 风险画像、投资目标 年度 valid_from/valid_until R3 平衡型、退休规划
动态层 持仓、近期交易 实时 当前快照 当前组合、最近买卖
情景层 交互历史 每次会话 事件时间戳 历史建议、客户反应

JSONL 审计日志示例

{"timestamp": "2026-01-27T14:30:00Z", "customer_id": "C001", "action": "profile_update", "field": "risk_level", "old_value": "R2", "new_value": "R3", "trigger": "年度复评", "advisor_id": "A001"}
{"timestamp": "2026-01-27T14:35:00Z", "customer_id": "C001", "action": "recommendation", "product": "沪深300ETF", "amount": 100000, "rationale": "风险等级上调,增加权益配置", "suitability_check": "passed"}

JSONL(JSON Lines)格式的优势:追加式写入,无需读取-修改-写入整个文件;每行独立,便于按时间范围查询;符合审计日志的最佳实践。

时间有效性设计

客户偏好具有时间属性。一年前的风险评估不应与当前等同看待。

# C001_张三.md 中的风险画像部分
risk_profile:
  current:
    level: R3
    score: 7
    valid_from: 2026-01-15
    assessment_method: questionnaire
  history:
    - level: R2
      score: 5
      valid_from: 2024-03-20
      valid_until: 2026-01-14
      assessment_method: questionnaire
    - level: R4
      score: 8
      valid_from: 2023-01-10
      valid_until: 2024-03-19
      assessment_method: initial_onboarding
      note: "首次评估,客户过高估计自身风险承受能力"

截至时点查询

合规审计时经常需要回答「在 2024 年 6 月,该客户的风险偏好是什么?」这类问题。时间有效性设计让这种查询成为可能。

提示推荐

客户画像的更新应该是「增量式」的——每次对话结束后,仅更新发生变化的字段,而非重写整个画像。这既节省存储,又保留了演化历史,还便于合规审计。


案例 6B:市场事件记忆与模式识别

案例背景

投资分析师经常需要回顾历史上的类似市场情景,以辅助当前决策。本案例构建市场事件记忆库,支持「历史不会重演,但会押韵」的类比分析。

要素 说明
演示模式 情景记忆 + Agentic RAG + 时间有效性
案例简述 建立市场事件记忆库,实现基于相似度的情景检索和历史对比分析
经济学映射 历史类比法——「历史不会重演,但会押韵」
应用衔接 第 12 章交易信号分析的市场情景识别功能

事件记录格式(YAML Front Matter)

# market_events/2022_fed_hike.md
---
event_id: ME_2022_FED_HIKE
timestamp: 2022-03-16T00:00:00Z
time_range: 2022-03 至 2023-07
type: monetary_policy
headline: 美联储开启加息周期
impact_level: high
affected_sectors:
  - 科技
  - 房地产
  - 金融
market_reaction:
  sp500: "-0.3%(首日),-20%(全年)"
  treasury_10y: "+180bps"
advisory_implications: "减持久期敏感资产"
tags:
  - 加息
  - 通胀
  - 紧缩
similar_events:
  - "@market_events/1994_rate_hike.md"
  - "@market_events/2018_rate_hike.md"
lessons_learned:
  - 高通胀环境下利率敏感资产首当其冲
  - 美联储「鸽转鹰」通常超出预期
---

## 详细分析

### 背景
2022年3月,美联储为应对40年最高通胀...

### 市场影响
...

### 事后复盘
...

相似事件检索逻辑

当分析师询问「当前市场环境与历史上哪个时期类似」时,系统执行:

1. 提取当前市场特征
   - 货币政策环境(如:加息暂停)
   - 经济状态(如:软着陆预期)
   - 估值水平(如:科技股 PE)
   - 市场情绪(如:谨慎乐观)

2. 与历史事件匹配
   - 基于 tags 字段匹配
   - 基于 type 字段筛选
   - 计算特征相似度

**匹配算法**(基于标签集合的 Jaccard 相似度 + 时间距离权重):

```python
def calculate_event_similarity(current_event, historical_event):
    # 1. 标签相似度(Jaccard)
    common_tags = set(current_event.tags) & set(historical_event.tags)
    all_tags = set(current_event.tags) | set(historical_event.tags)
    tag_similarity = len(common_tags) / len(all_tags) if all_tags else 0

    # 2. 时间距离惩罚
    years_diff = abs(current_event.year - historical_event.year)
    time_decay = 1 / (1 + years_diff * 0.1)  # 每年衰减 10%

    # 3. 综合得分
    similarity = 0.7 * tag_similarity + 0.3 * time_decay
    return similarity
  1. 返回最相似事件
    • 按相似度排序
    • 展示关键差异
    • 提供 lessons_learned ```

加息周期对比分析输出

历史对比分析报告

一、当前市场与 1995-1996 年的相似性

| 维度 | 1995-1996 | 2025-2026(当前)|
|------|-----------|------------------|
| 货币政策 | 加息暂停,观望 | 加息暂停,等待数据 |
| 经济状态 | 软着陆成功 | 软着陆概率上升 |
| 通胀 | 受控 | 回落中 |
| 科技股估值 | 合理偏低 | 合理 |

二、关键差异
- AI 技术周期 vs 互联网早期
- 全球化程度不同
- 债务水平差异

三、历史启示
1995 年加息暂停确认后,标普 500 在随后 12 个月上涨约 20%。

四、风险提示
历史不会简单重演。需关注通胀反弹、地缘冲突、盈利兑现。
注记知识卡片

市场事件记忆库的核心价值是「结构化历史经验」。与其依赖分析师的个人记忆,不如将历史事件系统化记录。这不仅提高检索效率,还能让新入职分析师快速获取团队的集体智慧。


6.11 本章小结

核心要点回顾

  1. 范式转变:从「存储导向」到「检索导向」——记忆的价值在于在正确时间检索正确信息,而非存储更多数据。上下文窗口是具有机会成本的经济资源。

  2. 四层记忆模型:工作记忆(上下文窗口)、短期记忆(会话历史)、长期记忆(外部存储)、情景记忆(决策轨迹)各司其职,形成完整的记忆体系。

  3. U 型注意力曲线:模型注意力在上下文开头和结尾最强,中间区域召回率下降 10-40%。关键信息应放在开头(系统提示)和结尾(当前任务)。

  4. 10 倍成本差异:缓存命中的 tokens 成本仅为未缓存的 1/10。设计缓存友好的提示结构是成本优化的关键杠杆。

  5. 压缩的代价:递归摘要仅 35.3% 准确率。结构化摘要通过强制保留关键字段,比自由摘要更可靠。

  6. 三层信息架构:L1(元数据,始终加载)→ L2(指令,按需加载)→ L3(数据,即时加载),可节省 87% token 消耗。

  7. 四策略框架:缓存优化(预防)→ 观察遮蔽(早期干预)→ 压缩策略(主动管理)→ 分区策略(架构解决),形成层层防御。

  8. Agentic RAG:从被动检索进化为主动决策。GraphRAG 在关系推理场景下准确率提升 20-35%,减少 30% 幻觉。

  9. 自我进化:五层记忆架构 + 自动化更新流程,让 AI 副本能够持续学习和演化。

记忆管理成长路径

入门阶段 - 熟练使用 /compact/clear 命令 - 理解 CLAUDE.md 的三层结构(用户级/项目级/子目录级) - 能在任务节点主动压缩对话

进阶阶段 - 设计三层信息架构(L1/L2/L3) - 使用带指令的 /compact 精确控制保留内容 - 创建文件式长期记忆(WORKING_PLAN.md、REMEMBER.md) - 实施缓存优化策略

精通阶段 - 设计分层记忆架构(短期/中期/长期) - 实施四策略框架进行上下文优化 - 为团队制定上下文管理规范 - 构建具有自我进化能力的智能体记忆系统

下一章预告

第 7 章「工具扩展」将介绍如何通过 MCP 协议和外部工具扩展智能体能力,包括金融数据 API 接入、自定义工具开发和 Plugin 系统。工具输出的记忆管理将直接应用本章的观察遮蔽策略——毕竟,工具输出占据了 83.9% 的 tokens。