把同一个顶尖大模型(比如 Claude)交给几款不同的工具,让它们改同一个 bug——有的三两下就修好,有的越改越乱。


一个你大概也有过的疑惑

GitHub Copilot、OpenAI 的 Codex、Claude Code、Cursor,还有国产的通义灵码、Trae、文心快码……这些 AI 编程工具,看起来都在做同一件事:让模型替你改代码。

其中不少工具已经提供了模型选择,可以在 GPT、Claude、Gemini、Qwen / DeepSeek 等模型之间切换;也有一些工具更偏向自家模型体系,比如 OpenAI 的 Codex 主要围绕 OpenAI / ChatGPT 体系,Claude Code 主要围绕 Claude。不同产品支持哪些模型,要看当时的版本、地区和套餐。

于是一个很自然的问题冒出来:

如果两款工具真的接入了同一个顶尖模型,比如都选 Claude,那做出来的结果会不一样吗?

会。而且可能差得离谱。

这件事反直觉的地方在于:大多数人默认"模型 = 能力",以为挑工具就是挑模型。但真相是,决定你最终体验的,很大一部分根本不在模型里

大模型是引擎,工具是整辆车

同一台顶级发动机,装在一辆调校精良的 F1 赛车上,和装在一辆零件松垮的组装车上,跑出来的成绩天差地别。大模型就是那台发动机,它只负责"思考"这一下;至于它能看见什么、能动手做什么、怎么一步步把活干完,全由发动机外面那层东西决定。

这层东西在业内有个名字,叫 Agent 框架(也叫脚手架,harness)。各家真正拉开差距的战场,就在这里。

大模型是引擎,Agent 框架是整辆车:一次任务从"你的问题"进入,依次经过上下文工程、工具与闭环、系统提示词、Agent 循环、模型接入这五层,包裹着中间那台叫"大模型"的引擎,最后产出代码

模型只能看见你喂给它的那部分

大模型没有眼睛,它不会自己"打开你的项目翻一翻"。你的工程可能有几万、几十万行代码,但模型一次能读进去的内容是有限的(这个容量叫上下文窗口)。于是就有了一个生死攸关的问题:

面对一个具体任务,到底该把哪些文件、哪些片段、哪些报错,挑出来塞进模型的视野?

这个"挑"的能力,就是上下文工程,也是各家框架最核心的竞争力。它背后是一整套系统在运转:

  • 代码怎么建索引、怎么做语义检索(把和当前任务相关的片段找出来);
  • 能不能读懂你的项目结构,顺着一个函数跳到它的定义、找到所有引用它的地方;
  • 你当前打开的文件、终端里的报错、Git 的改动历史,算不算进"喂给模型的资料"里。

打个比方:模型是一位很聪明的顾问,但他对你的项目一无所知,只能看你递进去的材料。你递给他一份精准、相关的资料,他给你靠谱的方案;你甩给他一摞不相干的文件,他只能连蒙带猜。 顾问还是同一个顾问,结果却完全不同。

这就是为什么同样调用 Claude,一个工具能改对,另一个改得驴唇不对马嘴——差别往往不在模型,而在这一步"喂料"的功夫。在真实项目里,这是头号变量。

会跑测试的 Agent,才会自己改错

光会"想"还不够。一个 AI 编程工具真正有用,得能动手:读写文件、在终端里跑命令、跑测试、看代码检查(lint)的报错、甚至开个浏览器验证页面效果。

这些能力决定了一件要命的事——它有没有反馈闭环。

  • 有闭环的 Agent:写完代码,自己跑一遍测试,看到报错,回头改,再跑,直到通过。像一个会自己验算的人。
  • 没闭环的 Agent:写完就扔给你,对错全凭这一次盲猜。错了也不知道。

一步之差,可靠性天壤之别。

有了闭环,还得看它怎么把一件大事一步步干完:

  • 是"你问一句、它答一句"的一次性问答;
  • 还是能自己把大任务拆成小步骤——规划 → 执行 → 验证 → 不对就退回重来——的自主循环?甚至多个智能体分工协作?

这套调度逻辑,决定了它到底能不能啃下"改一个真实项目里的复杂 bug"这种活,而不只是补全几行代码。

看不见的"说明书",和"同样调 Claude"的猫腻

每一家工具,都给模型配了一份精心打磨的系统提示词——你可以理解成一份看不见的"岗前说明书"。它规定模型:该怎么规划任务、多久跟你确认一次、遵循什么代码风格、改动要多激进还是多克制。同一个模型,说明书不同,行为就不同。

还有一个更隐蔽的差别:"调用 Claude"这四个字,其实并不是一回事。

  • 具体是哪个版本的 Claude?参数(比如控制随机性的 temperature、允许输出多长)设成了多少?
  • 它给你开放了完整的上下文窗口,还是为了省成本,偷偷把喂给模型的内容做了裁剪、压缩?
  • 中间有没有一层代理或中间件,对你的请求做了二次加工?

这些藏在水面下的配置差异,都会让"同一个模型"在不同工具里表现出不同的脾气。

那么,把提示词"套"出来,不就能复制它的能力了吗?

聊到这儿,很多人会立刻想到一个"捷径":

既然系统提示词这么关键,那我把各家的提示词想办法套出来,不就等于拿到它们的能力了吗?

系统提示词或片段确实时常被曝光出来。 有的来自客户端文件、日志或接口痕迹,有的来自越狱式提示诱导,也有人专门整理这些材料。但不同产品防护不同,外面流传的内容未必完整,也未必是最新版本。

但**"拿到提示词" ≠ "拿到能力"**。提示词只是整套系统露出水面的冰山一角,而且是最容易被复制的那一角。真正值钱的东西,你复制不走:

  • 上下文检索的基础设施:前面说的代码索引、语义搜索、相关性排序,是一整套后端系统,不是一段能粘贴的文字。
  • 工具的可靠实现:提示词里写一句"你可以编辑文件"很容易,但怎么把改动稳定、准确地落到代码里(处理冲突、出错重试、不改错地方),全是底下的工程代码。
  • Agent 编排逻辑:任务怎么拆、失败怎么退回、多智能体怎么配合,这套控制流不在提示词里。
  • 迭代打磨的飞轮:成熟产品通常会拿大量真实案例和评测集反复调,这份"经验"偷不走。

更何况,一段提示词是为它自家那套工具和上下文格式量身调的,你原样贴到别的系统里,工具对不上、格式对不上,效果完全走样——像把一条鱼捞出水。它们还会频繁调整,很多甚至是运行时根据你的项目动态拼出来的,压根没有一份固定答案可偷。

各家也有防护:很多商业工具会把一部分核心编排逻辑放在服务端,你在本地能看到的只是最终请求的一部分,甚至更少;有些云端任务连完整提示词都不经过你的机器。

拿到提示词,其实就像拿到一家餐厅的菜谱卡片:可有了菜谱,你也开不出那家米其林——你还缺厨房、供应链、训练有素的厨师,和日复一日稳定的出品。知道可乐的配方,也复制不了可口可乐的全球生意。

所以,真正难复制的从来不是那段提示词,而是上下文检索 + 工具实现 + 编排 + 集成 + 长期迭代的一整套系统。提示词泄露会带来安全和产品风险,但它不等于整台机器被复制走。

Prompt、Skill、Instructions,都是提示词,差在哪?

在 VS Code / Copilot、Claude Code、Codex 这类工具的定制体系里,你会反复遇到三个词:Prompt(提示词)、Skill(技能)、Instructions(指令/约定)。不同产品叫法和细节不完全一样,但大体可以这样区分:它们在文本层面确实都是"喂给模型的字",区别在于扮演的角色、由谁触发、怎么进入模型视野。

  • Prompt一个要立即执行的任务请求——"我现在就要你干这件事"。通常由你主动触发(比如敲一个斜杠命令),触发时内容全文注入。像一张存好的"点单/快捷键",按一下,整张单子立刻生效。
  • Skill一包领域知识 + 操作指南——不是让你此刻执行的请求,而是"遇到这类活儿该怎么干"的攻略。很多实现会做渐进式加载:平时上下文里只放一段简短的"简介/标题",Agent 判断当前任务用得上时,才去读取完整内容;有些工具也允许你手动触发。像书架上一排带标签的手册,平时只露封面,需要时才抽出来翻。
  • Instructions 则是常驻的背景规则——满足条件(比如你在改某类文件)就自动、始终生效,不用触发也不用判断。像贴在墙上的"店规"。
Prompt Skill Instructions
本质 要立即执行的任务/请求 一包领域知识 + 操作指南 常驻的背景规则
谁触发 用户主动(斜杠命令) 通常由 Agent 按相关性自动调用,也可能手动触发 满足条件自动生效
怎么进上下文 触发时全文注入 先只放简介,用到才加载全文 一直在场
打个比方 存好的"点单/快捷键" 书架上"随取随用的手册" 贴在墙上的"店规"

为什么要分出 Skill 这种"用到才展开"的机制?答案又绕回了前面那个上下文工程:模型的窗口有限且宝贵。你可以给它注册几十上百个 Skill,但要是全文都塞进去,上下文瞬间就爆了。"先露简介、用到再加载",让 Agent 拥有大量潜在能力,却只为当前任务付出相关那一小部分的成本。这本身就是一门精打细算的上下文生意。

回到最初的问题:挑工具,该看什么

开头那一幕——同一个顶尖模型,交给几款工具改同一个 bug,有的三两下修好、有的越改越乱——到这儿就不难解释了:差别不在模型本身,在包着它的那台"整车"。

要补一句的是,这种差距主要出现在改真实项目、需要多步骤推进的活上;只是写段一次性的小代码,各家差别不大,那时拼的还是模型本身。

这不是空口白话。业界有个专门测 AI 改真实代码能力的评测叫 SWE-bench,它的榜单比较的不是单纯的"模型智商",而是一套套完整的 AI coding system:有的只是简单 agent loop,有的带检索、规划、多次尝试和评审。SWE-bench Verified 还专门提供了把语言模型放进同一个 mini-SWE-agent 里比较的口径,目的就是把"模型能力"和"外层脚手架"分开看。引擎没变,换了车,成绩就是不一样。

所以下次挑 AI 编程工具,除了问"它支持哪个模型",更该问这几件事:

  • 找相关代码的能力强不强(上下文工程);
  • 它能不能跑测试、看报错、自己纠错(工具与闭环);
  • 它和你的编辑器、你的项目集成得有多深

引擎当然重要。但真正带你到目的地的,是整辆车。