首页 › new-tools › AI agent总从零开始:三块外挂记忆本周上线

AI agent总从零开始:三块外挂记忆本周上线

用了一周 Claude Code、Cursor、Codex,你可能没意识到一个荒诞的事实:你的电脑里躺着几个月的 agent 对话历史——你做过的决策、踩过的坑、跑通过的命令、被否掉的方案——但下一个 agent 会话一行都用不上。它每次都从零开始 grep,连你昨天为什么放弃某个重构都不知道。

这不是吐槽,这是本周 Hacker News 连续冒出来的一个新共识:AI 编程 agent 真正的瓶颈不是模型够不够聪明,而是"记忆"这一层缺位。过去这周(截至 2026-07-02),Show HN 上接连出现三把针对这个缺口的全新开源工具,都还在当天提交:一个把你机器上的 agent 历史变成可检索的金矿(ctx),一个把整个代码库的架构做成确定性地图喂给 agent(Enola),一个用 embedding 找出"语义撞车"的重复代码(slopo)。国内目前还没有任何工具盯住这条线,这就是这周该捡的信息差。

信息差在哪:agent 缺的不是算力,是三块"外挂记忆"

先把问题说清楚。当前主流用法(包括国内大量教程)里,AI agent 的状态管理基本是裸奔的:

这三块缺口,恰恰就是这周这三把刀各自补上的位置。它们合起来,相当于给 agent 装了三个"外挂记忆器官"。下图是它们和 agent 的协作关系:

flowchart LR
    subgraph Agent["你的 AI Coding Agent"]
        CC[Claude Code]
        CU[Cursor]
        CX[Codex]
    end

    subgraph Mem["三块外挂记忆 本周新开源"]
        M1["ctx<br/>情景记忆<br/>检索本地历史会话"]
        M2["Enola<br/>结构记忆<br/>确定性代码架构图"]
        M3["slopo<br/>去重记忆<br/>embedding 语义查重"]
    end

    H[("本地 SQLite<br/>历史会话索引")] -.喂回.-> M1
    SRC[("源代码库")] -.解析.-> M2
    SRC -.分块计算.-> M3

    M1 -->|"先搜历史 别重复踩坑"| Agent
    M2 -->|"先看地图 别猜结构"| Agent
    M3 -->|"先查重复 别重写"| Agent

    style M1 fill:#e8f5e9
    style M2 fill:#e3f2fd
    style M3 fill:#fff3e0

下面挨个拆,每个都附真实链接、价格和可直接抄的安装命令。

工具一:ctx — 把你机器上的 agent 历史变成可检索的金矿

这是这周我最想安利的一把,也是国内信息差最大的一把。

它解决什么:你用了几个月 Claude Code、Cursor、Codex,本地其实存了海量 session 日志——里面有你的决策、约束、被否掉的方案,也有上一个 agent 的 bug 排查、重构记录、跑过的命令和测试结果。但新的 agent 会话永远从零开始,它最多能看当前 repo,翻不出这些历史。ctx 做的事很简单:把这些日志导入本地 SQLite,建索引,然后给当前/未来的 agent 提供一个 CLI,让它在重复造轮子之前,先去搜一下你以前有没有试过、为什么失败。

核心命令(仓库 README 原文):

# 一次性把你所有本地 agent 会话建索引
ctx setup

# 让 agent 用自然语言搜历史
ctx search "failed migration"

# 搜碰过某个文件的会话
ctx search --file crates/foo/src/lib.rs

# 多关键词组合
ctx search --term "failed migration" --term rollback

为什么值得特别关注(硬数据):README 里给了实测——同样查一次历史,ctx 返回 917 tokens,而直接喂原始 transcript 搜要 45,734 tokens。也就是比裸搜 transcript 省约 50 倍 token。作者说得直白:裸搜历史 token 太重,"效果上等于没有可用历史"。换句话说,你以前把整个 ~/.claude 日志塞进 context window 的做法,基本是错的——既贵又没用。

还可以一键装成 agent skill:npx skills add ctxrs/ctx,Claude Code / Codex / Cursor 都支持,这样 agent 在干活时能自动调用 ctx search。

国内对比:国内基本没有同类工具。最接近的土办法是用 grep / rg 在 ~/.claude/projects 那堆 JSONL 里硬翻,但完全没有 session 级、event 级的结构化,也没有按"碰过的文件"检索的能力,更谈不上给 agent 当工具调用。适用人群:重度 Claude Code / Cursor / Codex 用户,尤其是一个人维护多仓库、经常隔几天再回头改代码的独立开发者和团队。

小提醒:ctx 默认本地私有,但 transcript 文本会原样保留(包括本地路径、长得像密钥的字符串),所以复制结果对外分享前要自己 review 一眼,别把 token 带出去。

工具二:Enola — 给 agent 一张确定性的代码架构地图

它解决什么:AI agent 最稳的痛点之一就是"每次都得重新发现代码库"——grep、开文件、猜模块怎么连起来的,而且经常猜得"差一点点但够错"。这个猜测烧的是时间(走错路、反复重提需求)和 token(每个会话重读同一批文件)。Enola 是个本地 MCP server,你把它指向一个或多个 repo,它会用解析器和图算法(而不是语言模型)构建一张精确的架构图:模块、类型、路由、依赖、它们怎么连——全是从源码里提取出来的事实,不是 LLM 总结出来的笔记。同一份 commit 跑两遍,结果完全一致。

30 秒接入 Claude Code / Cursor:

# Claude Code
claude mcp add enola enola

# Cursor 的 mcp.json
{ "mcpServers": { "enola": { "command": "enola" } } }

接好后对 agent 说一句"Generate an architectural snapshot of /path/to/my/project",它就拿到了精确的结构地图。

支持面:Go、JavaScript、TypeScript、Python、Java、Kotlin、Swift、Ruby、C、C++、PHP、Vue、Svelte、OpenAPI,而且带框架感知——Next.js、Nuxt、SvelteKit、FastAPI、Django、Spring、Rails、Laravel、Symfony、SwiftUI、Jetpack Compose、WordPress 等都认得。

为什么值得关注:作者的 framing 很戳——它把现状叫"vibe coding"(提示、祈祷、修 bug),用上之后才叫"AI-augmented engineering"(基于事实的工程)。结构层永远不该交给概率模型去猜。国内对比:国内很多人给 agent 配 RAG、配"代码知识图谱",但绝大多数是让模型去概括代码,而不是用静态分析提取确定性事实;Enola 的"提取而非总结"是思路上的差异。适用人群:中大型代码库、多模块 monorepo、做遗留系统重构、或经常被 agent"猜错目录结构"坑到的团队。

工具三:slopo — 用 embedding 抓"语义撞车"的重复代码

它解决什么:它专门抓那种最该查、最难抓的重复——写法很像、但隔得很远(不同模块、甚至同一大文件两端)的代码片段。逐字复制粘贴那种,PMD/CPD 早就能抓;靠得近的重复,人或 AI 一眼也看得见。slopo 抓的是"语义相近、空间分散"的隐性重复。

怎么干:对每个代码单元算一个 embedding,然后找 embedding 距离接近的对;相似不一定是重复,所以每对都是"待确认"候选项,最后由你的 AI agent 来判定是不是真重复,确认的可以标记忽略或送去重构。作者自己拿 slopo 代码库跑了一遍,发现各语言 parser 之间有大量重复(有逐字复制,也有相似变体),确实需要重构——这是真实可用证据。

快速上手:

uv tool install slopo     # 用 uv 装到隔离环境
slopo init                # 生成配置模板

embedding 模型:走 LiteLLM,理论上任何 LiteLLM 兼容 provider 都行;作者推荐专门的代码 embedding 模型,比如 Voyage AI(低维度 512 就够用,成本低)。这点对国内用户其实很友好——GLM、通义、BGE 这类国产 embedding 也能接,等于把查重成本压到几乎可忽略。

国内对比:国内代码查重基本停留在 PMD CPD、SonarQube 这类基于 token 序列/文本的工具,抓得了逐字复制,抓不了"换变量名、调整顺序但语义相同"的重复。用 embedding 做语义级查重,国内几乎没有成品工具。适用人群:老项目重构、团队代码治理、以及想让 agent"动手前先确认这段逻辑是不是已经存在"的人——本质上这也是 agent 的一块"去重记忆"。

信息差总结:你知道的 vs 别人不知道的

维度 多数人现在的认知 这周的信息差
agent 历史 聊完就没了,下次从零开始 本地躺着几个月会话,ctx 能让 agent 检索,省 50 倍 token
代码库理解 让 agent 自己 grep + 猜 Enola 用静态分析喂确定性架构图,跑两遍结果一致
重复代码 只能抓逐字复制 slopo 用 embedding 抓语义重复,连变量改名都逃不掉
成本 塞整段 transcript 进 context 又贵又没用 结构化索引 + 静态分析,token 降一个数量级
国内可用性 以为只能等国产工具 三者全开源、本地优先,embedding 还能换国产模型

行动指南:今晚就能抄的三步

  1. 先装 ctx(5 分钟,立竿见影):curl -fsSL https://ctx.rs/install | sh → ctx setup → 让 agent 习惯性先 ctx search 再动手。这一步对重度 Claude Code 用户回报最大。
  2. 给主力仓库接 Enola:挑你最常被 agent 猜错结构的那个 repo,claude mcp add enola enola,让它先生成一张架构 snapshot。观察接下来几次改动是否少了"猜错目录"的反复。
  3. 把 slopo 接进 CI 或周报:uv tool install slopo + 接国产/低成本 embedding,每周跑一次,把候选重复丢给 agent 复核,逐步消除技术债。

一个组合用法:让 agent 改东西前,先 ctx search 看历史有没有踩过坑,再问 Enola 这块结构长啥样,最后 slopo 确认别处有没有现成实现——三步走完再动手,几乎能干掉一半"重复劳动 + 返工"。

参考来源

完成摘要(What was done)

下一步计划(What's next)

注意事项(If applicable)

[!tip] 51学通信知识星球 星主:爱卫生(微信:gprshome201101)——公众号「51学通信」创办者,19 年通信行业运维与讲师经验,著有《GPRS网络信令实例详解》《EPC原理与实践》《5G核心网原理与实践》三本纸质书(各大电商平台有售)。 星球定位:深耕 5G 核心网、IMS、NFV/AI、云原生等 ICT 领域,主打运维岗位与信令分析。 当前规模:5200 篇主题 / 990 个回答,198 元/年。 加入福利:加入星球后请加爱卫生微信,拉您进知识星球年度陪伴与答疑群——不限量回复您的各种问题,另有群内分享。 AI 加持:51学通信知识星球已作为 skill 接入 WorkBuddy,使用 deepseek-4-flash 在海量星球帖子中精准找贴、找视频、找 FAQ 和案例,做总结、找文档和 PPT 等场景全覆盖。

51学通信知识星球海报-扫码加入