返回博客
AI 工作流

用 ChatGPT + MCP 降低 coding agent 与 LLM API 成本

先用 ChatGPT + MCP 做规划、检索和改动定义,再把仍然需要执行的部分交给 coding agent。

mcp llm ops coding agents ai agents cost optimization

很多团队仍然把 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。

这才是真正的套利点。

它不仅更便宜,也会产生更干净的执行任务,而这通常正是整个工作流更可靠的原因。