上周三下午三点,屏幕上一段 CI 流水线卡住长达四个小时,手里的咖啡早已冷得像西伯利亚的寒冬。那一刻我突然想:如果有个智能助手能自动发现问题、自行修复、独立跑完测试,程序员是不是终于可以安心睡个整觉了?
巧的是,本周 Qwen Code 0.16.0 恰好将 /goal 功能推上舞台。更巧的是,隔壁 Codex 也刚刚上线了类似的自主执行能力。今天我们不聊参数对比表,只聊一个现实话题:当代码助手开始“自主驾驶”,程序员究竟是迎来解放,还是面临失业?
/goal 到底是什么?
简单来说,过去用 AI 写代码就像带一位实习生:每一步都需要确认——“这个文件改吗?”“那个命令跑吗?”现在只需对 /goal 说一句:“把项目从 Jest 迁移到 Vitest”,然后——你就可以去喝杯咖啡了。
但等等,Codex 不也能做到类似的事情吗?
关键区别就在这里:Qwen Code 的 /goal 引入了一位“第三方裁判”(judge model)。执行模型负责具体干活,裁判模型负责验收成果。这就像你装修房子,施工队和监理绝不能是同一个人,对吧?
# 传统模式(自我判断)Agent: "我觉得改完了" → 其实漏了三个测试文件 ?# Qwen 模式(独立裁判)Executor: "这轮改完了"Judge: "等等,vitest.config.ts 还没创建,继续"

这种设计让人联想到康德的“批判哲学”:理性需要自我批判,更需要外部审视。代码执行也是如此——让同一个模型既当运动员又当裁判,难免会产生“我觉得我行了”的幻觉。
上个月有人让某个 AI 助手“优化项目性能”,结果它把所有的 console.log 全删了,包括生产环境用来跟踪用户行为的关键埋点。为什么?因为它觉得自己“任务完成了”。
Qwen 的 judge model 有一个很人性化的设计:遇到不可能完成的目标时,它会主动放弃。比如你让它“用纯前端实现比特币挖矿”,它不会硬着头皮跑三小时烧掉你的 token,而是直接告诉你:“兄弟,这事儿在浏览器里真干不了”。
这一点特别值得肯定。很多 AI 工具为了显得“什么都能干”,硬扛着执行不可能的任务,最后留下一堆半成品的代码垃圾。能够承认“这个我做不到”,恰恰是更高级的智能表现。
与 Codex 的 /goal:表面相似,内核不同
| 对比维度 | Codex /goal | Qwen Code /goal |
|---|---|---|
| 完成判断机制 | 执行模型自我评估 | 独立 judge model 进行验收 |
| 失败处理方式 | 通常继续尝试或直接报错 | 主动放弃并附带原因说明 |
| 集成方式 | 主要面向交互式对话场景 | 支持 CI/CD 流式输出与自动化流水线 |
| 风险控制手段 | 依赖用户手动配置 | Auto Approval 配合风险分类 |
举个实际场景:你需要把 200 个测试文件从 Jest 迁移到 Vitest。
- Codex 模式:执行过程中遇到某个不支持的特定语法,可能卡住或胡乱修改,必须人工介入干预。
- Qwen 模式:judge 模型发现“这个文件依赖了 Jest 特有 API,当前上下文无法处理”,主动跳过并记录,最后给出一份清晰的清单:“已完成 197 个文件,剩余 3 个需要人工处理”。
哪种模式更让人放心?显然是后者——毕竟凌晨三点被叫醒修 bug 的体验,经历一次就足够了。
自主与控制之间的永恒张力
写到这里,突然想起福柯在《规训与惩罚》中提到的观点:权力不是压制,而是生产。AI 编程工具的发展,本质上也是在不断重新分配“控制权”。
- 过去:程序员掌握 100% 控制权,每行代码亲手敲写
- 现在:程序员定义目标,AI 负责执行细节
- 未来?:程序员定义“什么是好代码”,AI 自主迭代并持续优化
/goal 中 judge model 的设计,实际上是在“完全放权”和“完全控制”之间找到一个精妙的平衡点。就像教孩子骑自行车:一开始扶着后座稳住车身,后来悄悄松手,但视线始终不离开孩子。
人们既渴望解放双手提高效率,又害怕失去掌控权。这种内在矛盾,或许正是技术演进最底层的驱动力。
结语
回到开头那个凌晨三点的问题:如果 AI 能独立跑完全程测试与修复,程序员还需要做什么?
答案是:定义什么是真正的“完成”。
/goal 的 judge model 之所以重要,不是因为它能简单判断代码对错,而是因为它把“验收标准”这个最核心的决策权,交还给了人类。你可以说“测试全部通过就算完成”,也可以要求“必须通过代码审查”,甚至可以自定义一套极其复杂的验收逻辑。
技术越智能,人的判断力就越珍贵。就像相机自动对焦功能再先进,构图和光影的审美判断,永远掌握在摄影师眼中。
所以下次当你输入 /goal 时,不妨多思考一秒钟:你真正想要的“完成”,到底是什么样子?
