用 ChatGPT + MCP 降低 coding agent 与 LLM API 成本
先用 ChatGPT + MCP 做规划、检索和改动定义,再把仍然需要执行的部分交给 coding agent。
很多团队仍然把 coding agent 用在本来可以更早、更便宜完成的工作上。
真正的问题不是使用了 coding agent,而是用得太早了。在任务还没有被收窄、定义清楚、转化成一个干净的执行问题之前,就把它交给了执行型系统。
更实际的做法很简单:先用 ChatGPT + MCP 完成推理、规划、检索和改动定义。然后,只有在 ChatGPT 不能直接完成执行时,才把剩下的部分交给 coding agent。
这就是成本优势所在。
如果规划工作先在 ChatGPT 里完成,后面需要的 usage-limited 或单独计费的 coding-agent 调用就会变少。更重要的是,留下来的调用会更聚焦。
常见错误
一个典型工作流通常是这样的:
- 打开一个 coding agent
- 让它检查代码仓库
- 让它自己找出问题
- 让它决定应该改什么
- 让它执行修改
- 因为最初的请求仍然太模糊,于是反复重来
这种方式很浪费,因为同一个昂贵系统被拿来做两种不同的工作。
第一种工作是推理:
- 理解问题
- 找出可能原因
- 决定应该改什么
- 明确约束条件
第二种工作是执行:
- 编辑文件
- 运行命令
- 应用补丁
- 验证结果
这两种工作不需要在同一个阶段由同一个系统来完成。
核心思路
核心思路很直接:
尽可能先用 ChatGPT + MCP 把"思考工作"做完。只有当剩下的问题已经足够具体、主要变成执行任务时,再使用 coding agent。
这意味着 ChatGPT 应该先做这些事:
- 从工具中取回正确上下文
- 澄清真正的问题
- 收窄范围
- 识别可能的根因
- 确定需要修改的具体文件或组件
- 产出明确的实现方案
- 指定执行代理应该做什么
到了这个阶段,coding agent 就不再需要从头自己理解整个问题。
它需要完成的,只是一个更窄、更清晰的指令集。
为什么这样能省钱
节省成本的机制并不复杂。
当规划和推理先在 ChatGPT 里完成后,coding agent 就不需要把大量预算花在探索阶段。
这会从几个方面减少浪费:
- 更少的探索性调用
- 更少重复的仓库检查
- 更少由于提示词模糊导致的重试
- 更少仅仅为了理解任务而做的上下文加载
- 当 coding agent 真正开始工作时,执行范围已经更小
结果并不是执行变成了免费的。
结果是,付费或受配额限制的执行能力被保留给那些真正需要它的部分。
另一个相关好处是上下文可以复用。如果同一份代码或规格说明存在于多个系统都能访问的位置,不同模型环境就可以围绕同一份材料展开推理,而不必重复做准备工作。实际效果是,更容易让一个系统负责规划,让另一个系统负责执行。比如,放在本地磁盘上的代码可以被 Hermes 或 OpenClaw 这类本地 agent 环境使用;而放在共享云端文档空间里的资料,也可以被其他工作区原生助手继续利用。
一个通用软件例子
假设一个团队知道最近一次发布引入了回归问题,但最初的问题描述仍然很模糊。
浪费性的工作流会直接给 coding agent 一个宽泛请求,例如:
"去看一下整个仓库,找出 bug,想出修复方案,然后把它实现出来。"
这会迫使 agent 同时把预算花在仓库探索、问题诊断和代码实现上。
更好的方式是不一样的。
先用 ChatGPT + MCP 把相关上下文取出来:
- 失败的工单
- 相关的变更请求
- 受影响的模块
- 最近的 diff
- 错误信息
- 预期行为
然后用 ChatGPT 完成推理工作:
- 判断最可能的故障机制
- 确定最可能相关的文件
- 定义最小且安全的修改
- 指定修复后应该通过哪些测试
这时,交给 coding agent 的执行提示就会更紧:
"编辑这些文件。做这些修改。保持这些行为不变。运行这些检查。"
这才是对 coding agent 更合理的使用方式。
第二个例子
同样的模式也适用于功能变更,而不只是 bug 修复。
一个模糊的请求可能是:
"给这个工作流加上基于角色的审批支持。"
这听起来很具体,但通常并不是。真正困难的地方往往不是写代码,而是决定:
- 审批状态应该放在哪里
- 哪些现有流程会受影响
- 哪些边界情况重要
- 应该采用什么权限模型
- 回滚或重试时应该如何处理
这些推理工作完全可以先在 ChatGPT 里完成。
一旦这些问题被想清楚,执行任务就会明确很多:
- 更新这些模型
- 添加这些字段
- 修改这些处理逻辑
- 增加这些校验
- 更新这些测试
这时,coding agent 仍然很有用,只不过它被放到了更后面、也更具体的阶段。
ChatGPT 应该先做什么
在这种工作流里,ChatGPT 不只是 coding agent 旁边的一个小助手。
它本身就应该承担尽可能多的前置推理工作。
这包括:
- 澄清请求
- 识别假设
- 比较实现方案
- 发现可能的失败模式
- 决定哪些应该改,哪些不应该改
- 起草执行计划
- 写出最终交给 coding agent 的 handoff prompt
很多团队恰恰跳过了这一步。
他们直接从一个模糊请求跳到昂贵的执行环境,然后再困惑为什么 coding agent 很快消耗掉 usage,却迟迟不能收敛。
coding agent 仍然适合做什么
这不是反对 coding agent。
这是在强调:应该把 coding agent 用在它最擅长的部分。
当任务已经具体到需要下面这些动作时,coding agent 仍然很合适:
- 文件编辑
- 命令执行
- 测试运行
- 补丁应用
- 在真实代码库里验证结果
- 在真实环境中迭代执行
这正是 coding agent 的优势所在。
关键在于,交给它的问题不应该还是"把一切都想清楚"。
约束条件
这种工作流也有明确限制。
第一,ChatGPT 仍然需要拿到有用的上下文。MCP 或 connectors 之所以重要,是因为它们能让 ChatGPT 在执行开始之前,就取到相关文件、笔记、工单或文档。
第二,这种方式只有在规划足够具体时才成立。如果 ChatGPT 给出的建议仍然很空泛,那么 coding agent 还是会被迫做太多探索工作。
第三,执行本身仍然重要。有些任务就是无法在 ChatGPT 里完成,仍然需要 coding agent 或 API 驱动的执行路径。
结语
这里的实际结论很直接。
如果 ChatGPT 已经可以先完成大部分思考,就不要让 coding agent 去承担全部思考过程。
先用 ChatGPT + MCP 取回上下文、推理问题、并明确需要的改动。然后,只把真正还需要执行的部分交给 coding agent。
这才是真正的套利点。
它不仅更便宜,也会产生更干净的执行任务,而这通常正是整个工作流更可靠的原因。