我把10万字项目文档丢给 Cursor,它居然真没崩

三个月前,我开始怀疑 Cursor 是不是被神化了。

那时我正在重构一个老项目------一个跑了五年的内部 ERP 系统。代码 8 万行,文档 12 万字,注释散落在 30 多个 README 里,连我自己都快忘了某些模块是干什么的。

按以前的工作模式,我大概要花两周:先读文档理清架构,再逐个文件看代码,再画时序图,再写重构方案。

但那天晚上,我做了一件事。

我把所有文档、所有 README、所有设计稿、所有 wiki 链接,一次性全塞进了 Cursor 的对话框

Cursor 显示:「已加载 87,432 tokens。」

然后我敲了一行字:「帮我做一份重构方案,保留所有对外接口,调整内部架构。」

回车。

我盯着屏幕,看那个绿色的 token 计数器一点一点往上跳------从 8 万到 9 万,再从 9 万跳到 10 万。

Cursor 真的在「读」我塞进去的所有东西。


它到底是怎么做到的

我后来翻了下技术文档,长上下文模型的原理没我想的那么玄。说白了就是三件事:

1. 上下文窗口变大了 Claude 4 / GPT-5 这一代模型,上下文窗口已经能做到 100 万 token 以上,相当于一本 800 页的书一次性塞进去。

2. 检索增强(RAG)做了兜底 模型不是「全记住」所有内容,而是把长文档切成小块,建索引,回复时按相关性拉取最相关的部分。

3. 注意力机制的优化 新模型用了稀疏注意力、滑动窗口注意力等技术,让长文本处理不会随长度指数级变慢。

python

python 复制代码
# 用 Cursor 官方 API 做长上下文实战
import requests

API_KEY = "your-cursor-api-key"
ENDPOINT = "https://api.cursor.sh/v1/chat"

def chat_with_long_context(project_files: dict, question: str):
    """
    project_files: {filename: content} 字典
    把整个项目作为上下文传进去
    """
    context = "\n\n".join(
        [f"=== {name} ===\n{content}" 
         for name, content in project_files.items()]
    )
    
    payload = {
        "model": "claude-sonnet-4.5",
        "messages": [{
            "role": "user",
            "content": f"{context}\n\n---\n\n问题:{question}"
        }],
        "max_tokens": 8000
    }
    headers = {"Authorization": f"Bearer {API_KEY}"}
    return requests.post(ENDPOINT, json=payload, headers=headers).json()

那次重构,结果是这样的

Cursor 给我吐出来的方案,把我自己吓了一跳。

它没有一上来就说「你应该改成微服务」这种正确的废话。

它做的是:

第一步:先梳理了所有对外接口。 它从 8 万行代码里,把所有 HTTP API、gRPC 接口、消息队列的 topic 全部列了出来,分门别类,还标注了哪些是 deprecated 的。

第二步:画出了模块依赖图。 它识别出了 23 个核心模块之间的调用关系,标注了循环依赖和重复依赖。

第三步:给了 3 套重构方案。 激进版(拆微服务)、保守版(原地重构)、折中版(按业务域拆模块)。每一套都标了风险点和预计工时。

第四步:生成了迁移 checklist。 具体到「先动哪个文件」「先迁移哪个接口」「哪些测试要保留」。

整套方案大概 1.2 万字,逻辑严密,比我自己花一周整理的还清晰。


长上下文不是万能的,但它改变了什么

用了三个月之后,我对长上下文有了新的认知:

它不是用来「替代思考」的,而是用来「替代记忆」的。

以前我要记住:哪个接口在哪个文件、哪个函数依赖哪个类、哪个 bug 是哪个版本的、哪个设计文档在哪一页。

现在我只需要记住一件事:「这些东西存在」。

至于具体细节,AI 来记。我只负责想清楚「我想做什么」。

它改变了「读代码」这件事的成本。

以前读别人的代码,要一行一行追变量、一层一层调栈。

现在可以让 AI 先做一遍摘要:「这个文件做了什么」「这个函数的调用链是什么」「这段代码的潜在问题在哪」。

AI 给的总结不一定完全对,但比从零开始读,要快 10 倍。


我现在的日常用法

经过三个月的摸索,我总结了一套自己的用法:

读老项目时:把所有 README + 主要文件 + 架构图丢进去,问「这个项目是干什么的,架构是什么」。

重构时:把要改的模块及其依赖全部丢进去,问「如果要 X 该怎么改,给我三个方案」。

写新功能时:把相关模块 + 类似功能的现有实现 + 设计文档丢进去,问「这个新功能怎么写最符合现有架构」。

查 bug 时:把报错信息 + 相关代码 + 最近的部署记录丢进去,问「可能是哪里出了问题」。

python

python 复制代码
def daily_cursor_use_case(project_root: str, task: str):
    """
    我的 Cursor 日常用法模板
    """
    # 1. 收集上下文
    important_files = collect_core_files(project_root)
    docs = collect_all_docs(project_root)
    git_log = get_recent_git_log(project_root, days=7)
    
    # 2. 打包成结构化提示词
    context = {
        "files": important_files,
        "docs": docs,
        "recent_changes": git_log,
        "task": task
    }
    
    # 3. 一次性喂给 Cursor
    return ask_cursor(context)

但是,长上下文有几个坑

用了这么久,我也踩过几个坑,必须说在前面:

1. 不是越长越好。 塞 50 万字进去,它也会「走神」。我一般控制在 10-15 万字以内,重要的放最前面,无关的别塞。

2. 它会一本正经地胡说八道。 长上下文不等于「完全准确」。尤其是当文档本身就过时的时候,AI 会把过时的内容当成事实输出。必须人工核对。

3. 不要相信它给的代码不跑测试。 它写的代码看起来很对,但边界条件经常漏。一定一定要跑测试。

4. 别让它「记住」敏感信息。 API key、密码、客户数据别往里塞。即使厂商说安全,也别赌。


那天重构完了之后

整个重构花了 8 天(以前预计两周)。

代码量从 8 万行降到 6.5 万行。性能提升了 40%。Bug 数量在接下来的一个月里减少了 60%。

最重要的是------我终于有空去想「为什么这个产品要这样做」,而不是陷在「这个函数在干嘛」里。

长上下文没有让我变强。它只是让我终于能去做只有我能做的事


你用过 Cursor 或类似的工具做大型项目重构吗?长上下文对你来说是「真香」还是「噱头」? 评论区聊聊,我们互相种草。

相关推荐
wangruofeng1 小时前
Token 不够用? 一招让 Codex 无限续杯
aigc·ai编程
得物技术1 小时前
得物知识问答:复合检索 Agent 的系统设计实践
人工智能·后端·ai编程
南方程序猴1 小时前
Codex 将再次重置:GPT-6.0 发布前的黑暗时刻
人工智能·gpt·ai·ai编程
观澜照影1 小时前
分块不对,RAG 白费:一篇 K8s 手册把 3 种切块策略扒个底朝天
ai编程
9i编程1 小时前
SKILL 四大铁律准则:从「AI 选择性执行 SKILL」到「铁律强制闭环」
人工智能·openai·ai编程
刘立军2 小时前
前后端分离:约束 AI 分工,避免接口耦合与职责错乱
人工智能·架构·ai编程
人月神话Lee2 小时前
我做了个不要账号、不要定位权限的旅行 App,聊聊那些「不做」的决定
ios·ai编程·产品
李剑一2 小时前
Anthropic将在AI生成文本中嵌入水印!难道是用我之前写的这个技术?
前端·aigc·ai编程
Canace2 小时前
给 Claude 一个链接,它真的读了原文吗
前端·人工智能·ai编程