你的 AI 编程助手正在「学习」——但你可能只用到了 1% 的潜力

1 阅读17分钟

从 Harrison Chase 的三层学习框架出发,拆解 Claude Code / Cursor / Copilot 的持续学习机制,并给出你现在就能用的实操配置。


一、你是不是也有这个困扰?

每次打开 AI 编程助手,你都要重新告诉它:

  • "我们用的是 TypeScript,不是 JavaScript"
  • "项目用 pnpm,别用 npm"
  • "数据库查询必须加 WHERE tenant_id = ?"
  • "组件用函数式写法,别给我写 class"

它什么都不记得。

你可能以为这是 AI 的「本性」——毕竟每次对话结束,上下文就清空了。但事实上,当前主流的 AI 编程工具(Claude Code、Cursor、GitHub Copilot)都已经内置了「持续学习」的能力。只是大多数人从来没有打开过这扇门。

LangChain 创始人 Harrison Chase 最近写了一篇文章叫《Continual Learning for AI Agents》,提出了一个清晰的框架:AI Agent 的学习不只是「训练模型」这一条路,实际上有三个层面可以同时进化。

这篇文章,我会用这个框架,逐层拆解你手里的 AI 编程工具到底能在哪些维度「变聪明」,以及——每一层你现在就能做什么来让它变得更懂你


二、三层框架总览:Agent 是怎么「学习」的?

Harrison Chase 将一个 AI Agent 系统拆成了三层:

层级名称通俗理解类比
第一层上下文层(Context)你给 AI 写的「说明书」新员工入职时收到的《项目规范手册》
第二层引擎层(Harness)驱动 AI 运行的代码框架公司的 SOP 流程和工具链
第三层模型层(Model)底层大模型的权重员工本人的知识和能力

以 Claude Code 为例来映射:

  • 上下文层CLAUDE.md/skillsmcp.json
  • 引擎层 → Claude Code 这个产品本身的代码逻辑
  • 模型层 → Claude Sonnet / Opus 等底层模型

关键洞察:这三层都可以「学习」,但对普通用户来说,投入产出比最高的是第一层。

为什么?因为第三层(模型训练)你几乎无法控制,第二层(引擎优化)需要工具厂商来做,而第一层——你现在就能动手,效果立竿见影。

下面我们逐层展开,每层先讲原理,再给你可以直接复制的实操配置。


三、第一层:上下文中的学习——给 AI 写一份「入职手册」

3.1 原理:为什么一份文件能改变一切?

当你在项目根目录放一个配置文件(比如 CLAUDE.md),AI 工具会在每次对话开始时自动读取它,把内容注入到系统提示词中。

这意味着:你写下的每一条规则,都会成为 AI 的「工作记忆」的一部分。

不同工具的配置文件名不同,但做的是同一件事:

工具主配置文件全局配置本地私有层
Claude CodeCLAUDE.md~/.claude/CLAUDE.mdCLAUDE.local.md(不入 Git)
Cursor.cursor/rules/*.mdc用户设置中的 User Rules无独立本地层
GitHub Copilot.github/copilot-instructions.mdVS Code 设置中的全局指令无独立本地层

3.2 对比:三家的上下文配置有什么不同?

Claude Code 在这一层做得最精细。它支持四层优先级:

全局配置(~/.claude/CLAUDE.md)
  ↓ 被覆盖
项目配置(./CLAUDE.md)
  ↓ 被覆盖  
模块化规则(./.claude/rules/*.md)
  ↓ 被覆盖
本地私有覆盖(./CLAUDE.local.md,不入 Git)

这意味着你可以把「我喜欢用中文回复」放在全局配置,把「本项目用 React + TanStack Query」放在项目配置,把「我本地的数据库连接地址」放在不入库的 local 文件里。

Cursor 走的是另一条路。它的 Rules 系统支持 frontmatter 元数据,可以精确控制规则的触发条件:

---
description: "React 组件开发规范"
globs: "src/components/**/*.tsx"
alwaysApply: false
---

这个 globs 字段很强大——它让规则只在你编辑特定路径下的文件时生效。比如你可以给前端组件、后端 API、数据库迁移脚本各写一套规则,互不干扰。

GitHub Copilot 的配置相对简单直接。一个 .github/copilot-instructions.md 文件搞定全局项目指令。最近还新增了 AGENTS.md(用于 Agent 模式)和 .github/.instructions.md(更细粒度的目录级指令)。

3.3 你现在就能做:配置实操指南

方案一:如果你主要用 Claude Code

第一步:初始化配置

在项目根目录运行 /init 命令,Claude Code 会自动生成一份基础的 CLAUDE.md

第二步:精简并强化

删掉自动生成的废话,保留并补充以下核心内容:

# CLAUDE.md

## 技术栈
- 框架: Next.js 15 + TypeScript 5.7
- 样式: Tailwind CSS v4
- 状态管理: Zustand(NEVER 用 Redux)
- 数据请求: TanStack Query(NEVER 用 useEffect + fetch)
- 包管理: pnpm(NEVER 用 npm 或 yarn)

## 代码规范
- 仅使用函数组件,NEVER 使用 class 组件
- 所有函数必须有完整的 TypeScript 类型注解
- 异步函数必须有 try/catch 错误处理
- 文件命名使用 kebab-case

## 架构约束
- IMPORTANT: 所有数据库查询 MUST 按 tenant_id 过滤(多租户隔离)
- API 路由放在 app/api/ 下,业务逻辑放在 services/
- 数据库操作统一使用 Prisma,NEVER 写原始 SQL

## 常用命令
- 运行开发服务器: `pnpm dev`
- 运行测试: `pnpm test`
- 数据库迁移: `pnpm prisma migrate dev`
- 类型检查: `pnpm type-check`

## 经验教训(踩过的坑)
- user 表有软删除,查询必须加 WHERE deleted_at IS NULL
- 金额字段以"分"为单位存储(整数),展示时再除以 100
- 环境变量在 Edge Runtime 中不可用,需用 next.config.js 注入

写配置的六条黄金法则:

  1. 写指令,不写描述——"仅使用函数组件"比"我们偏好函数式编程"有效 10 倍
  2. 只写能改变行为的规则——"写干净代码"删掉(AI 默认就会),"金额以分存储"必须写
  3. 控制在 200 行以内——超出了收益递减,详细内容用 @ 引用外部文件
  4. 关键规则用强词——MUSTNEVERIMPORTANTALWAYS
  5. 不要复制 Linter 规则——Claude Code 会自动读取 .eslintrcprettier.config
  6. 记录踩过的坑——"经验教训"部分是最有价值的,每次 AI 犯错就加一条

方案二:如果你主要用 Cursor

.cursor/rules/ 目录下创建按场景分类的规则文件:

.cursor/
  rules/
    global.mdc          # 全局规则
    react-components.mdc # React 组件专用
    api-routes.mdc       # API 路由专用
    database.mdc         # 数据库操作专用

示例 react-components.mdc

---
description: "React 组件开发规范"
globs: "src/components/**/*.tsx"
alwaysApply: false
---

# React 组件规范

- 使用函数组件 + TypeScript
- Props 类型定义放在组件文件顶部
- 使用 Tailwind CSS,禁止内联 style
- 组件文件名使用 PascalCase
- 每个组件导出必须是命名导出(非 default export)

Cursor 的优势在于规则的精准触发。 你可以根据当前编辑的文件路径自动切换上下文,而不是一股脑把所有规则都塞给 AI。

方案三:如果你主要用 GitHub Copilot

创建 .github/copilot-instructions.md

## 项目概述
这是一个基于 Express + TypeScript 的微服务后端。

## 代码规范
- 所有 API 响应使用统一格式: { code, message, data }
- 错误处理使用自定义 AppError 类
- 日志使用 winston,不要用 console.log

## 禁止事项
- 不要使用 any 类型
- 不要在 Controller 层写业务逻辑
- 不要硬编码配置值,使用环境变量

如果你用的是 Copilot Agent 模式(VS Code 中的 Agent),还可以创建 AGENTS.md 提供更详细的项目结构说明。

方案四:如果你的团队同时用多个工具

推荐策略:AGENTS.md 为通用基底

AGENTS.md 是目前兼容性最广的格式——Claude Code、Copilot、Codex 都支持。然后在各工具的专属文件中引用它:

  • CLAUDE.md 中写 See @AGENTS.md,然后补充 Claude 特有配置
  • .github/copilot-instructions.md 中复制核心规则
  • .cursor/rules/ 中按场景拆分

四、第二层:跨会话的持久化记忆——让 AI 真正「记住」你

4.1 原理:从「金鱼记忆」到「长期伙伴」

第一层解决的是「项目规范」——AI 知道怎么写代码。但第二层要解决的是更深的问题:AI 能不能记住和你协作过程中积累的经验?

比如:

  • 你告诉它"这个函数的性能很关键,上次优化过"——下次它还记得吗?
  • 你纠正它"不要在这个模块用 async/await,用 callback 风格"——它会内化吗?
  • 你和它讨论过的架构决策——三天后它还知道吗?

这就是 Harrison Chase 所说的「上下文层的持续学习」中更高级的部分——不只是你手动写的配置文件,还包括 AI 自动从协作中学到的东西

4.2 三款工具的记忆系统对比

这一层,三款工具的差距非常大。

Claude Code:四层认知架构(最完整)

Claude Code 构建了目前业界最完整的记忆体系,分为四层:

层级名称谁来写生命周期作用
L1CLAUDE.md你手动写永久(随 Git)项目的"宪法"
L2Auto MemoryClaude 自动永久(跨会话)自动积累的"工作笔记"
L3Session MemoryClaude 自动单次会话当前任务的"便签纸"
L4AutoDreamClaude 子代理周期性运行睡眠时的"记忆整理"

L2 Auto Memory 是关键创新。每当你纠正 Claude 的错误、做出架构决策、或告诉它一些偏好,Claude 会自动把这些信息写入 ~/.claude/projects/<项目>/memory/ 目录下的结构化文件。

这些记忆按主题组织,包含元数据:

---
name: video-editing-rules
description: 视频编辑项目的特殊规则
type: feedback
---
- 视频首帧不能使用 fade-in 效果(客户明确要求)
- 输出分辨率默认 1080p,除非用户指定
- 字幕文件使用 SRT 格式,不用 ASS

L4 AutoDream 更加惊艳——它模仿人类 REM 睡眠期间的记忆整合过程。大约每 24 小时或 5 个会话后,一个后台子代理会自动运行,对积累的记忆进行去重、合并、过期清理。你不需要手动整理,记忆库会自己保持整洁。

Cursor:Memory Bank(社区方案)

Cursor 目前没有原生的跨会话记忆系统。但社区发展出了一个被广泛采用的方案——Memory Bank

Memory Bank 的核心思路是:在项目中创建一个 memory-bank/ 目录,用结构化的 Markdown 文件存储项目知识:

memory-bank/
  projectbrief.md      # 项目概要
  productContext.md     # 产品上下文
  systemPatterns.md     # 系统架构模式
  techContext.md        # 技术上下文
  activeContext.md      # 当前工作焦点
  progress.md           # 进度追踪

然后在 .cursorrules 中配置规则,让 Cursor 在每次对话开始时读取这些文件,在每次对话结束时更新它们。

坦率地说,这是一个「人肉实现」的方案。 它需要你在规则中明确告诉 AI "先读 memory-bank/ 下的文件"、"任务完成后更新 progress.md"。它有效,但远没有 Claude Code 的原生方案优雅。

GitHub Copilot:Agentic Memory(新上线)

GitHub Copilot 在 2026 年 1 月推出了 Agentic Memory(目前公共预览版),这是一个原生的跨会话记忆系统。

它的工作方式:

  • Copilot 在使用过程中会自动捕获与特定仓库相关的记忆
  • 记忆在 Copilot 的各功能间共享——coding agent 学到的东西能帮助 code review
  • 记忆是仓库特定的,使用前会验证是否仍然与当前代码库一致
  • 记忆会在 28 天后自动过期,防止信息过时

与 Claude Code 的比较:

  • Copilot 的记忆更「黑箱」——你无法直接查看和编辑记忆文件
  • Copilot 有固定的 28 天过期策略,Claude Code 的记忆是永久的
  • Copilot 的记忆在 GitHub 平台层面管理,Claude Code 的记忆在本地文件系统

4.3 对比总结

能力Claude CodeCursorGitHub Copilot
原生记忆系统✅ 四层架构❌ 需社区方案✅ Agentic Memory
自动学习✅ 自动捕获❌ 需手动配置✅ 自动捕获
记忆可编辑✅ 本地文件✅ (Memory Bank)❌ 黑箱管理
记忆过期手动/AutoDream 整理手动管理28 天自动过期
记忆整理✅ AutoDream 自动❌ 纯手动自动(不透明)
跨会话恢复--continue / --resume需手动注入自动加载

4.4 你现在就能做:搭建你的记忆系统

如果你用 Claude Code

好消息:你几乎不需要做什么。Claude Code 的 Auto Memory 是默认开启的。

但你可以主动「教」它记住重要的事情:

  • 在对话中说:"记住这个:我们的 API 认证使用 JWT + Refresh Token 双令牌模式"
  • 纠正错误时说:"以后不要再在这个模块使用 moment.js,我们已经迁移到 dayjs"
  • 做完架构决策后说:"记录一下:我们决定用事件驱动架构处理订单流程"

这些信息会被自动写入 L2 Auto Memory,下次会话自动加载。

你也可以直接查看和编辑记忆文件:

# 查看当前项目的记忆
ls ~/.claude/projects/<你的项目路径hash>/memory/

# 查看记忆索引
cat ~/.claude/projects/<你的项目路径hash>/memory/MEMORY.md

如果你用 Cursor

手动搭建 Memory Bank:

第一步:在项目根目录创建 memory-bank/ 目录和核心文件

第二步:在 .cursor/rules/memory.mdc 中添加规则:

---
description: "Memory Bank 管理规则"
alwaysApply: true
---

# Memory Bank 协议

## 对话开始时
读取 memory-bank/ 下的所有文件,了解项目背景和当前进度。

## 对话结束时
如果有新的决策、发现或进展,更新对应的 memory-bank/ 文件:
- 架构决策  systemPatterns.md
- 技术选型  techContext.md  
- 当前进展  progress.md
- 工作焦点  activeContext.md

第三步:养成习惯,在每次对话结束时提醒 Cursor 更新记忆

如果你用 GitHub Copilot

第一步:确保你使用的是付费 Copilot 计划

第二步:在 GitHub 个人设置 → Copilot → 开启 Memory 功能

第三步:正常使用即可——Copilot 会自动学习

第四步:定期在仓库设置 → Copilot → Memory 中检查记忆是否准确


五、第三层:底层模型的进化——你无法控制,但需要理解

5.1 原理:灾难性遗忘与模型进化

第三层是底层大模型的权重更新——也就是通常说的「模型训练」。

Harrison Chase 特别指出了这一层的核心挑战:灾难性遗忘(Catastrophic Forgetting)。当模型在新数据上训练时,它可能会忘记之前学过的能力。这是一个尚未完全解决的研究问题。

目前,模型层的更新主要有两种模式:

  1. 全量训练:模型厂商(Anthropic、OpenAI 等)用大规模数据训练新版本模型。比如从 Claude 4.5 Sonnet 到 Claude 4.6 Opus。
  2. 针对性训练:为特定的 Agent 场景训练专用模型。比如 OpenAI 的 Codex 模型就是专门为 Codex Agent 训练的。

理论上可以为每个用户训练一个轻量级的 LoRA 适配器,但实践中这种方式还很少见。

5.2 三款工具背后的模型演进

维度Claude CodeCursorGitHub Copilot
默认模型Claude Sonnet 4.6 / Opus 4.66多模型可选(Claude/GPT/自研)GPT-4o / Claude(可选)
模型训练方Anthropic依赖第三方 + Cursor 自研模型OpenAI / Anthropic / GitHub
专用编程模型Claude 系列本身就针对编程优化Cursor 有自研的 Tab 补全模型Codex 模型针对编程场景优化
用户能影响模型吗?间接(通过使用数据反馈)间接间接
更新频率数月级模型可自选更新数月级

5.3 你能做什么?

老实说,普通开发者在这一层能做的很有限。但有几件事值得了解:

  1. 选择合适的模型:如果工具支持多模型选择(如 Cursor),针对不同任务选用不同模型。复杂架构设计用 Opus/GPT-5o,简单代码补全用更快的模型。

  2. 理解模型版本差异:当工具升级底层模型时,你之前的配置文件可能需要调整。新模型可能默认就能做好某些事(删掉多余规则),也可能在某些方面出现退化(补充新规则)。

  3. 反馈循环:你在使用中的偏好和纠正,会通过工具厂商的数据管道间接影响模型的下一次训练。所以,养成给好的回复点赞、差的回复纠正的习惯是有意义的。


六、三层协同:1+1+1 > 3

理解了三层分别怎么工作之后,更重要的问题是:它们如何协同?

Harrison Chase 用了一个很好的类比。我把它延伸一下:

想象你雇了一个新员工(AI Agent):

第三层(模型)= 这个人的学历、知识储备、基础能力
  → 你无法改变——这是招聘时就决定的

第二层(引擎)= 公司的工作流程、协作工具、SOP
  → 由公司(工具厂商)持续优化

第一层(上下文)= 你给他的入职手册 + 日常沟通积累的默契
  → 这是你能直接控制的,也是投入产出比最高的

三层之间的关系:

  • 第一层弥补第三层的不足:模型不知道你的项目规范?写进 CLAUDE.md。模型不了解你的架构决策?记录在 Memory 中。
  • 第二层放大第一层的效果:Claude Code 的 AutoDream 自动整理你的记忆,Copilot 的 Agentic Memory 自动捕获使用中的模式。
  • 第三层是基础:再好的配置也需要一个足够强大的底层模型来理解和执行。

实际的优化顺序建议:

1. 先做第一层(10分钟见效)
   → 创建配置文件,写入项目规范和技术栈

2. 再做第二层(1周见效)
   → 开启/搭建记忆系统,让 AI 开始积累

3. 持续关注第三层(长期收益)
   → 跟进工具和模型的更新,及时调整配置

七、你今天就能做的 5 件事

说了这么多,最后给你一个立刻可以执行的行动清单:

✅ 行动 1:创建你的项目配置文件(5 分钟)

不管你用哪个工具,今天就创建:

  • Claude Code 用户 → 运行 /init 或手动创建 CLAUDE.md
  • Cursor 用户 → 创建 .cursor/rules/ 目录,至少写一个 global.mdc
  • Copilot 用户 → 创建 .github/copilot-instructions.md

✅ 行动 2:写下你的「经验教训」(10 分钟)

回想 AI 过去一周犯过的错误,用这个模板记录:

## 经验教训
- [MUST] 数据库查询必须加 tenant_id 过滤
- [NEVER] 不要在 Edge Runtime 中使用 Node.js API
- [IMPORTANT] 金额以"分"存储,展示时除以 100
- [BUG] user 表的 deleted_at 字段有软删除,查询要过滤

✅ 行动 3:开启跨会话记忆(2 分钟)

  • Claude Code 用户 → 默认已开启,确认 ~/.claude/ 目录存在
  • Cursor 用户 → 搭建 Memory Bank(参考 4.4 节)
  • Copilot 用户 → 去 GitHub 设置中开启 Copilot Memory

✅ 行动 4:建立「每次犯错就更新规则」的习惯

这是最重要的一条。把配置文件当成活文档——每次 AI 犯错,就追问自己:"我能写一条什么规则来防止这个错误再次发生?"

✅ 行动 5:如果你的团队用多个工具

创建一个通用的 AGENTS.md 作为基底,然后各工具的专属文件引用它。这样维护一份规则就够了。


八、总结:从「一次性工具」到「持续进化的合作伙伴」

Harrison Chase 的三层框架给了我们一个重要的思维转变:

AI 编程助手不是一个「用完即走」的工具,它是一个可以持续学习、不断进化的合作伙伴。

但前提是——你要给它学习的机会。

大多数人把 AI 编程助手当成一个「高级搜索引擎」:问一个问题,得到一个答案,结束。他们从来不写配置文件,不开启记忆功能,不记录经验教训。

结果就是:每次对话都是从零开始。AI 永远不会变得更懂你。

而当你开始在三个层面都投入一点点时间:

  • 花 10 分钟写一份 CLAUDE.md / .cursorrules / copilot-instructions.md
  • 花 2 分钟开启跨会话记忆
  • 养成「AI 犯错就更新规则」的习惯

你会发现,AI 编程助手的生产力提升不是线性的,而是指数级的。

因为它不只是在回答你的问题——它在学习成为你团队的一员。


参考资料

  • Harrison Chase,《Continual Learning for AI Agents》, LangChain Blog
  • Anthropic, Claude Code Memory 机制文档
  • GitHub Blog, "Agentic Memory for GitHub Copilot" Changelog, 2026.01
  • Cursor 官方文档, Rules 配置指南
  • 多工具记忆对比参考:jimyag.com, heyuan110.com

如果你觉得这篇文章有帮助,欢迎转发给同样在用 AI 编程工具的朋友。

你正在用哪个 AI 编程工具?你配置过它的「学习」能力吗?评论区聊聊。