AI 编程工具开始省 token 之后,真正变贵的是上下文治理

我最近看 AI 编程工具的更新,越来越少关注“它又支持了什么模型”,反而更关注一个不太显眼的方向:它们开始认真处理上下文成本了。

GitHub Copilot 在 2026 年春季的一些更新里提到语义搜索、跨仓库 grep、prompt caching、deferred tool loading、面向 Agent 的专用工具。这些词听起来像产品细节,但背后其实是一个很现实的工程问题:AI 编程不是模型越强越好,而是谁能更稳定、更便宜、更少误读地把正确上下文喂给模型。

上下文不是越多越好

开发者第一次用 AI 编程工具,通常会希望它“理解整个项目”。但项目越大,这句话越危险。一个中型仓库里,真正与当前任务相关的代码可能只有 5 个文件,模型却可能被 README、旧实现、测试 fixture、生成代码、历史迁移脚本一起淹没。

上下文多,会带来三个问题:

  • 成本上升,尤其是长会话和多轮修复;
  • 注意力被稀释,模型更容易抓错重点;
  • 错误上下文会显得“很有证据”,导致错误方案更难被发现。

所以 prompt caching 和 deferred tool loading 这类能力,本质不是锦上添花。它们是在把 AI IDE 从“把东西全塞进去”推进到“按任务组织上下文”。

语义搜索有用,但不能替代工程索引

语义搜索适合找“不知道关键词但知道意图”的代码。比如你想找“创建订单后扣库存的逻辑”,但项目里函数名叫 reserveSku,传统 grep 可能不容易找到。语义检索在这里能明显节省时间。

但语义搜索不是万能的。它容易找到“看起来相关”的代码,却不一定知道调用链、运行时依赖和边界条件。一个真实的改动通常还需要这些信息:

rg "reserveSku|inventory|stock" src tests
pnpm test -- --runInBand inventory
pnpm typecheck
git diff -- src/domain/order.ts src/domain/inventory.ts

我的经验判断是:语义搜索应该负责扩大候选范围,grep、类型系统、测试和调用图负责收口。只靠语义搜索,很容易把 Agent 带进“相似但不相关”的文件。

deferred tool loading 说明工具本身也成了上下文噪音

很多人设计 Agent 时喜欢一次性暴露很多工具:查数据库、跑测试、发请求、读文档、开 PR、发 Slack。问题是,工具说明本身也占上下文。工具越多,模型越需要先判断“我该用哪个工具”,这一步也会出错。

deferred tool loading 的思路很朴素:不要一开始就把所有工具塞给模型,而是在任务需要时再加载。这个方向对小团队尤其重要,因为大多数团队没有能力维护一个庞大但干净的工具目录。

如果自己做内部 Agent,我会把工具目录拆成几层:

tools/
  readonly/
    search_docs
    grep_repo
    read_logs
  safe_write/
    create_branch
    update_draft_pr
  dangerous/
    deploy_prod
    delete_record
    merge_pr

默认只加载 readonly。safe_write 需要任务进入实现阶段后再开放。dangerous 永远不要自动开放,至少要有人工确认和审计记录。

真正该建设的是项目上下文层

很多团队会把 AI 编程工具当成一个外部应用来用:开发者自己装插件,自己写 prompt,自己复制错误日志。短期没问题,长期会变成混乱。因为每个人喂给 AI 的上下文不同,得到的代码风格、边界判断、测试习惯也不同。

我更建议把一部分上下文沉淀到项目里,而不是散落在聊天记录里:

.github/copilot-instructions.md
AGENTS.md
docs/architecture.md
docs/testing.md
docs/decisions/ADR-0001-auth-boundary.md

这些文件不需要写成公司级规范,越短越好。重点是告诉 Agent:这个项目的边界在哪里,测试怎么跑,哪些目录不要碰,哪些历史包袱不要误删。

个人开发者怎么做才不亏

个人开发者最容易犯的错,是为了“让 AI 更懂我”不断加上下文,最后每次任务都变成一次昂贵的长会话。我的建议是反过来:先减上下文,再加工具。

  • 给项目写一个不超过 200 行的 AGENTS.md
  • 把常用命令固定下来,比如 test、lint、typecheck;
  • 把生成代码目录、迁移脚本、第三方复制代码标记为低优先级;
  • 每次任务前先让 AI 列出它认为相关的文件,再允许它修改。

一个很实用的 prompt 是:

先不要修改代码。请只做三件事:
1. 找出与这个 bug 最相关的 5 个文件;
2. 说明每个文件为什么相关;
3. 给出你打算运行的验证命令。

这句话看起来慢,但能显著减少“AI 上来就改错地方”的情况。

我的判断

AI 编程工具下一阶段的竞争,不只是模型能力,而是上下文供应链。谁能更便宜地找到正确文件,谁能更晚加载不必要工具,谁能把团队约定变成可读上下文,谁就能让 Agent 少犯低级错。

个人开发者现在不需要重仓某一个插件,但应该开始整理自己的项目上下文。半天时间足够做一件事:给最常维护的项目补一个 AGENTS.md,写清楚启动、测试、目录边界和禁止事项。这个投入比追最新模型更稳。

资料依据:GitHub Copilot for VS Code 2026 年 4 月更新、JetBrains Copilot CLI agent 和全局 agent 配置更新。本文没有做真实 token 成本对比,后续最好补一组同任务在不同上下文策略下的调用成本和失败率。

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇