我用 fcontext 解决了 AI IDE 最烦的一个问题:开新会话就失忆

0 阅读8分钟

我用 fcontext 解决了 AI IDE 最烦的一个问题:开新会话就失忆

我现在几乎每天都在 AI IDE 里写代码。

Copilot、Cursor、Claude Code 这些工具,确实已经把“写第一版代码”的速度拉上去了。

但只要你连续用几天,就会撞上一个很烦的问题:

开一个新会话,AI 又失忆了。

昨天你们还在讨论 Kafka 分区、异常补偿、模块边界,今天它第一句话又变成:

你现在在做什么项目?

如果你只是在写一个 200 行 demo,这个问题不大。

但只要项目稍微复杂一点,这件事就会非常消耗人。

你要重新解释项目背景、重新复述昨天的决策、重新告诉它哪些坑已经踩过。更麻烦的是,上午你用 Copilot,下午换到 Claude,这套上下文还得再讲一遍。

我被这件事折腾了一段时间之后,做了一个本地工具:fcontext

它不解决“模型聪不聪明”,它解决的是另一个更基础的问题:怎么让 AI 在不同会话、不同 Agent 之间持续拿到同一份项目上下文。

这篇文章不讲概念,直接讲我怎么用它解决这个问题。

先说结论:问题不在模型,在上下文交付方式

很多人一遇到 AI 失忆,第一反应是:

  • 是不是上下文窗口不够大?
  • 是不是模型太笨?
  • 是不是提示词还不够完整?

我后来发现,很多时候都不是。

根因更像是这样:

  1. AI 会话默认是短期的
  2. 项目知识默认散落在代码、文档、聊天记录里
  3. 不同 Agent 之间默认不共享这些知识

也就是说,真正缺的不是某一句神奇 Prompt,而是一层可持续、可落盘、可复用的上下文管理机制

如果把 AI IDE 看成一个新来的工程师,那你现在的工作流基本等于:

  • 每天早上都给他重新做一遍入职培训
  • 每换一个人,就再培训一遍
  • 昨天的设计结论不做记录,全靠今天口述重建

这套方式当然会崩。

fcontext 做的事情,其实很简单

它的核心思路不是把记忆塞进模型里,而是把上下文落到项目里。

安装之后,项目目录下会多一个 .fcontext/

.fcontext/
  _README.md       # 项目摘要,AI 每次开聊先读它
  _workspace.map   # 项目结构映射
  _topics/         # 对话中沉淀出的关键结论
  _requirements/   # 需求、任务、演化关系
  _cache/          # PDF / DOCX / XLSX 转成的 Markdown 缓存

你可以把它理解成一层给 AI 用的“项目知识面板”。

工作方式大概是这样:

flowchart LR
    A[代码库 / 文档 / 对话] --> B[.fcontext 结构化上下文]
    B --> C[Copilot]
    B --> D[Cursor]
    B --> E[Claude Code]
    C --> F[新会话继续干活]
    D --> F
    E --> F

这里最关键的一点是:

不同 Agent 读的是同一份上下文,而不是你每次手动重讲一遍。

30 秒上手:就 3 行命令

先安装:

pip install fcontext
fcontext init
fcontext enable copilot

如果你主要用的是 Cursor 或 Claude Code,把最后一行换掉就行:

fcontext enable cursor
# 或
fcontext enable claude

这 3 行命令分别做了 3 件事:

  1. pip install fcontext 安装工具。
  2. fcontext init 在项目里初始化 .fcontext/ 目录。
  3. fcontext enable <agent> 告诉对应的 AI Agent:每次进入项目,先读哪份上下文、怎么维护它。

这套东西是本地优先的:

  • 不需要 API Key
  • 不要求联网
  • 不需要把项目知识传到云端

如果你比较在意隐私或者团队代码安全,这一点很重要。

我是怎么验证它有没有用的

我没有做很复杂的 benchmark,就用最朴素的方式:

连续用 7 天,记录自己少解释了多少次。

我当时在做一个数据管道,和 AI 讨论过这些东西:

  • Kafka + ClickHouse 的组合
  • 为什么不用 Elasticsearch
  • 分区策略怎么选
  • 消费者 offset 提交的边界

以前我的习惯是,讨论完之后自己再手写一份备忘录。因为如果不记,第二天基本就得重讲。

这次我故意没记,直接让 fcontext 接管。

第二天我开新会话时,AI 已经能接上昨天的讨论,知道我们为什么选这个方案、下一步要继续什么。

第三天我把 Agent 从 Copilot 切到 Claude Code,它也能直接接上同一套上下文。

对我来说,这个体验变化不是“它回答更华丽了”,而是:

讨论不再每天从第 0 分钟开始。

一个最直观的收益:切 Agent 不用重新做口供

以前最崩的一幕是这样的:

上午用 Copilot 讨论了两个小时,下午它没定位出来一个 Bug,我想换 Claude Code 试试。

结果我还没开始排查问题,就得先重新讲一遍:

  • 项目是干什么的
  • 昨天为什么选这个架构
  • 哪个模块已经改过
  • 现在卡在哪个边界条件上

这就很像你在公司里换了个同事接手,第一件事不是解决问题,而是先做知识迁移。

用了 fcontext 之后,流程变成:

fcontext enable claude

然后直接问:

帮我看看消费者 offset 提交的问题,按昨天 Kafka + ClickHouse 的方案继续分析。

重点不在这句话本身。

重点在于,Claude 读到的是和 Copilot 同一份项目上下文。

这时候你的切换成本,不再是“重新建模”,而只是“换个视角继续解题”。

我记录下来的时间账

下面这张表,是我那几天最直接的感受整理:

场景以前花的时间用 fcontext 之后
新会话解释项目背景3-5 分钟0
换 Agent 重新介绍上下文8-10 分钟0
找昨天讨论过的结论2-3 分钟0
把文档内容口述给 AI5 分钟index 后接近 0

平均下来,每天大概能省出 12 分钟。

12 分钟听起来不夸张,但这不是全部价值。

真正有意义的是两件事:

  1. AI 回答更稳定了
  2. 你不再抗拒开新会话和切换 Agent

以前你会觉得“好不容易聊热了,别换,不然又要重来”。

现在你更敢在复杂问题上切模型、切工具、切讨论入口,因为上下文已经被交付出去了。

这类工具最容易踩的 4 个坑

这里把我自己踩过的坑也一起写了,避免你上手时浪费时间。

1. 初始化完,不代表上下文已经完整

fcontext init 只是把目录结构建出来。

第一次用的时候,最好明确告诉 AI:

先读一下 .fcontext/_README.md,补充当前项目的关键信息。

后面它才会持续维护这份摘要。

2. _topics/ 不要手改

_topics/ 更像是 AI 的结构化工作笔记。

你可以读,但不建议自己直接改。因为一旦你手工改乱了,AI 可能会基于一份前后不一致的记录继续推理。

更稳的做法是:在对话里补充信息,让 AI 自己更新。

3. 项目里有二进制文档时,先跑 index

如果你的项目里有这些材料:

  • PRD PDF
  • API Word 文档
  • Excel 规格表

AI 默认是吃不到这些内容的。

这时候先跑:

fcontext index docs/

它会把二进制文件转成 Markdown,放进 _cache/。这样后面 AI 才能把这些资料纳入上下文。

4. 团队协作时,记得把 .fcontext/ 一起提交

如果你只在本地用,那这套上下文只对你自己有效。

但如果你希望团队共享,就要把 .fcontext/ 纳入版本控制:

git add .fcontext/
git commit -m "chore: persist project context for AI agents"

这样其他人拉代码之后,他们的 AI 也能直接读到同一套上下文。

它适合什么场景,不适合什么场景

我觉得它最适合 3 类情况:

  1. 你经常在同一个项目里连续几天和 AI 协作
  2. 你会在 Copilot、Cursor、Claude Code 之间切换
  3. 你做的是中等以上复杂度项目,不想每天重复讲架构

如果你只是偶尔让 AI 帮你写几个独立函数,或者一直只在一个短会话里做一次性任务,那它的价值不会这么明显。

所以这类工具本质上不是“万能提效插件”,而更像是:

把 AI 从一次性聊天工具,往长期协作工程师的方向推了一步。

最后:今天就能自己试一遍

还是这 3 行:

pip install fcontext
fcontext init
fcontext enable copilot

然后做一个最简单的实验:

  1. 今天在项目里和 AI 讨论一个具体问题
  2. 明天重新开一个新会话
  3. 看它还能不能接上昨天的结论

如果你还会跨 Agent 切换,再加一步:

fcontext enable claude

然后直接把昨天的问题丢给另一个 Agent,看看它是不是还需要你从头解释。

如果这一步成立,你就会非常直观地感受到一件事:

决定 AI 协作体验上限的,不只是模型能力,还有上下文能不能被持续交付。

GitHub:github.com/lijma/agent-skill-fcontext

如果你想看第二篇,我下一篇会继续写:

怎么让新同事的 AI 第一天就读懂项目,而不是再来一遍口述架构。