窗口不是越多越好 · 用法决定效果

窗口变大了,问题也变了
如何在 1M+ 里高效 coding

把整个代码库扔进去往往适得其反。学会选择性加载、缓存断点、结构化索引,才能把大窗口变成真正优势。

大窗口的真实代价与收益

更大上下文带来更高成本和更低信噪比。有效利用率往往只有 10-30%。关键不是塞更多,而是让模型每次只看到它真正需要的精确信息。

分段与子任务策略

将长任务拆分为小步骤,每一步只提供必要上下文。比一次性塞满整个代码库更精确、更可靠。

实践示例

重构时先缓存架构概览,再添加要修改的文件。显式排除无关文件,避免噪声干扰模型。

高效缓存前缀设计

把系统提示、核心架构描述、常用工具定义做成稳定前缀。长会话中这些部分命中缓存可节省 70-90% 输入成本。

选择性上下文加载

优先使用 repo map + 相关文件子集 + 显式缓存前缀。干净上下文中模型推理效果更好。

成本对比与实测

对比全上下文、选择性、加缓存三种方式的 token 量和费用。在 QCode dashboard 观察实际消耗并快速调整策略。

何时用检索代替塞满窗口

不要把一切都塞进窗口。考虑用搜索或 MCP 工具获取所需信息,还能缓解上下文中间召回退化问题。

QCode 上的长上下文实践

通过同一个 Key 访问支持大窗口的模型,在 dashboard 观察实际 token 消耗,快速迭代你的 context 策略。

长上下文 FAQ

要把整个 repo 都放进去吗?

不要。优先用 repo map + 相关文件子集 + 显式缓存前缀。模型更擅长在干净上下文中推理。

缓存前缀怎么设计最有效?

把系统提示、核心架构描述、常用工具定义做成稳定前缀。长会话中这些部分命中缓存可省 70-90% 输入成本。

中途切换模型会丢上下文吗?

客户端负责维护消息历史。切换模型时历史会保留,但新模型对之前 token 的「理解」可能不同,必要时做摘要压缩。

QCode 有什么特别的帮助?

统一 Key 下可同时使用不同窗口大小的模型,dashboard 按模型拆分用量,便于对比策略效果。

把大窗口用好

注册 QCode,实测不同模型的长上下文表现。