RAG 语义索引(Cursor)#
核心特点:
- 使用 AST(抽象语法树)感知的智能分块,而非粗暴地按行数切分
- 生成 向量嵌入(Embedding) 存储到本地向量数据库(类似 LanceDB 的方案)
- 采用 RAG(Retrieval-Augmented Generation) 架构:先检索、再生成
- 自动索引同步机制,保持语义索引与代码变更一致
好处:
- ✅ 能理解整个代码仓库,而不只是当前打开的文件
- ✅ 语义相似度匹配比关键词搜索更智能(搜"用户认证"能找到
auth middleware) - ✅ 代码智能分块保证检索粒度合理(函数级而非文件级)
- ✅ 更新的 RAG Pipeline 据称将 Agent 准确率提升了 12.5%
- ❌ 索引需要时间;跨会话记忆有限(每次新对话主要靠重新检索)
2️⃣ 文件级持久记忆(Claude Code)#
实现原理:
Claude Code 采用 双轨记忆系统:
Copy
轨道一:静态记忆 — CLAUDE.md 文件 ├─ ~/.claude/CLAUDE.md (全局用户偏好) ├─ ~/project/CLAUDE.md (项目级指令) └─ ~/project/subfolder/CLAUDE.md (目录级指令) ↓ 每次对话开始时自动注入 Prompt 轨道二:动态记忆 — 自动记忆文件 ├─ 存储在本地的记忆文件夹中 ├─ Claude 自主决定什么值得记住并写入 ├─ 四个层级:user / project / submodule / session └─ 下次对话时按层级自动加载
核心特点:
- CLAUDE.md 是静态的、用户手写的项目规则(如"用 TypeScript、禁止 any、测试用 Jest")
- 动态记忆 是 Claude 在工作中自动生成的(如"这个项目用 pnpm 不用 npm"、"数据库是 PostgreSQL")
- 按层级加载:全局 → 项目 → 子模块 → 会话,越具体的记忆越后加载,优先级越高
- 记忆以纯文本文件存储在磁盘上,用户可以查看和编辑
好处:
- ✅ 完全透明可控 — 用户能看到 AI 记住了什么,也可以手动修改
- ✅ 跨会话持久 — 关掉终端再打开,记忆还在
- ✅ 零额外基础设施 — 不需要向量数据库,纯文件系统
- ✅ CLAUDE.md 可纳入版本控制 — 团队共享项目规范
- ❌ 受限于 LLM 自行判断"什么值得记住",可能遗漏重要信息
- ❌ 文件大小需要手动管理,过多记忆会占用上下文窗口
3️⃣ 实时行为感知引擎(Windsurf — Cascade Context Engine)#
实现原理:
Copy
你的实时行为信号 ├─ 鼠标光标位置 ├─ 打开/切换的文件 ├─ 代码编辑内容 ├─ 终端命令执行 ├─ 文件导航模式(你在浏览哪些目录) └─ 错误/警告信息 ↓ Cascade Context Engine 实时处理 ↓ 构建当前工作状态的动态上下文模型 ↓ 结合静态记忆 + 动态行为 → 组装完整上下文 ↓ 注入 AI Prompt
核心特点:
- Cascade Context Engine 是一个持续运行的上下文引擎,像"副驾驶"一样观察你的一切操作
- 结合用户行为启发式规则(cursor position、open files)与 AI 推理
- Cascade Memory 提供跨会话的持久化上下文层
- 实时感知 vs. 被动检索的区别:不需要你主动提问,AI 已经知道你在做什么
好处:
- ✅ 实时感知 — 你还没提问,AI 就已经根据你的编辑行为准备好上下文
- ✅ 行为上下文 — 知道你"正在调试哪个函数",而不只是知道"仓库里有哪些代码"
- ✅ 工作流连续性 — 编辑→终端→切文件的全链路行为都被追踪,Agent 任务不会断
- ❌ 隐私顾虑(所有行为都在被追踪)
- ❌ 持久记忆层还不够成熟,社区反馈跨会话记忆仍有改进空间
4️⃣ 知识图谱 + 向量混合(Augment Code)#
实现原理:
Copy
代码仓库(10万+ 文件) ↓ Tree-Sitter 解析 → AST ↓ 构建代码知识图谱 ├─ 函数调用关系 ├─ 类继承层次 ├─ 模块依赖图 ├─ 变量类型流 └─ 文件/目录结构 ↓ 同时生成向量嵌入(语义搜索) ↓ Graph + Vector 混合检索 ├─ 结构化查询("这个函数被谁调用?")→ 图谱遍历 └─ 语义查询("处理用户支付的代码在哪?")→ 向量搜索 ↓ 合并结果 → 注入 Prompt(200K+ 上下文窗口)
核心特点:
- 使用 Tree-Sitter 解析代码构建知识图谱,理解代码的结构关系(不只是文本相似度)
- Graph + Vector 双引擎:图谱负责结构关系,向量负责语义相似度
- 专为 超大型代码仓库(100K+ 文件、monorepo)设计
- 提供跨会话的持久记忆,Agent 不需要每次从零开始
好处:
- ✅ 结构理解 — 知道函数 A 调用函数 B、类 C 继承类 D,而不是只看文本相似度
- ✅ 大规模仓库友好 — 知识图谱能高效导航 10 万+ 文件
- ✅ 精确到关系 — "修改这个接口会影响哪些调用者?"图谱可以直接回答
- ✅ Graph + Vector 互补 — 结构查询和语义查询各取所长
- ❌ 基础设施较重,构建和维护知识图谱成本高
5️⃣ Agentic 跨会话记忆(GitHub Copilot 新版)#
实现原理:
Copy
Agent 执行编码任务 ↓ 观察结果(代码是否通过测试?PR 是否被接受?) ↓ 反思学习(什么策略有效?什么无效?) ↓ 写入共享记忆库 ↓ 跨 Agent 共享 ├─ 编码 Agent 学到的经验 → 传递给 Code Review Agent ├─ Code Review Agent 的反馈 → 传递给编码 Agent └─ 跨会话、跨工作流持久保存
核心特点:
- GitHub 官方称之为 "Agentic Memory System" — Agent 能自主学习和改进
- 不是简单的"记住对话",而是 "记住什么策略有效"
- 跨 Agent 协同:编码 Agent 和 Code Review Agent 共享经验
- 底层仍依赖代码仓库的语义索引(基于 transformer 的专有嵌入系统)
好处:
- ✅ 主动学习 — Agent 不只是被动检索,而是从结果中学习
- ✅ 跨工作流 — 编码经验能传递到 code review,反之亦然
- ✅ 随时间改进 — 用得越多,Agent 对你的代码库理解越深
- ❌ 目前较新,实际效果还在社区验证中
- ❌ 隐私/安全考量:记忆数据存储在 GitHub 基础设施上
6️⃣ 会话内上下文管理(Cline / ZCode 等终端 Agent)#
实现原理:
Copy
长对话 → 上下文膨胀 ↓ 对话历史压缩/摘要 ├─ 早期对话压缩为摘要 ├─ 关键决策点保留原文 └─ 工具调用结果按需保留或丢弃 ↓ 会话持久化(JSON/文件) ├─ 可从断点恢复 └─ 跨会话可加载(部分工具支持)
更多推荐

所有评论(0)