【七彩虹教育】这些工具有实际价值吗?
在让模型实现这些工具后,我的目标是通过对比实验评估模型在使用工具与未使用工具时的任务表现。
我首先尝试运行了 SWE-Lancer 测试。好家伙,这个测试消耗的 token 量实在惊人!仅运行单个任务就耗费约 25-30 分钟 + 28 万 token。于是我转向我更熟悉的领域,从待办清单中挑选了一个具体任务:我曾开发过 smol-podcaster ------ 一个为播客创作者打造的开源辅助工具。目前我维护的私有分支部署了更多专属功能,因此许久未更新原项目。它本质上仍是一个采用 Python 脚本作为后端的 Flask 应用。
我设计了以下任务:
" 我是 收集了处理新代码库的方法论。
任务名称:从 Flask 单体架构迁移至 FastAPI + Next.js 前端
当前应用采用 Python 后端 + Celery 任务队列处理所有流程,通过小型 Flask 应用将用户请求路由至后端脚本,最终用基础 HTML/CSS 呈现结果。请将系统重构为 FastAPI 后端 + Next.js 前端的架构。
务必使用 TypeScript 开发前端并通过所有类型检查
采用 Tailwind/ShadCN 进行样式设计
后端需模块化 smol_podcaster.py 主流程,支持独立功能模块运行而非全流程强制启动
编写集成测试与单元测试以确保未来开发效率
除非确认完全满足所有要求,否则不得停止开发 "
我将所有工具 + 任务管理器 + 代码库分析器置入上下文后,让模型自主运行。
两个模型几乎都能一次性完成任务。双方都遇到了几个 Python 依赖问题(对此我深有体会),我通过对话协助它们修复(未手动修改任何代码)了这些问题。最终它们都成功构建完成,经测试运行完全正常。不过,有一个细微差别:GPT-5 完美保持了原有代码风格,而 Opus 则对界面设计和用户体验(UX)做了调整 ------ 或许它认为能比我做得更好(这要求确实不高)。
GPT-5 版本及 Opus 4 版本的完整运行记录分别是 [20] 和 [21]。
任务完成后,我提出简单询问:
"做的很不错,运行成功了。是否使用了特定工具?基于遇到的故障,未来需要哪些工具来提升效率?"
展开全文
参见 Opus 4 的回复 [22] 与 GPT-5 的回复 [23](抱歉后者格式紊乱)。
两者均表示除已熟悉的工具外,并未使用任何自建工具。这说明我们不应仅依赖模型自主选择,而应通过预提交钩子(pre-commit hooks)等机制强制模型使用工具 ------ 这些方法虽是我个人开发环境的标准配置,但本次实验旨在观察模型的自主决策能力。
随后它们提出了优化方案,可供下次执行相同任务时使用。我让模型完成这些改进,重置 smol-podcaster 代码库后,使用完全相同的提示词和任务重新测试(但提供新工具)。参见 GPT-5 的二次测试记录 [24] 与 Opus 4 的二次测试记录 [25]。
两次运行结果与首次基本一致。随后我提出相同问题:是否使用了工具?得到的回应如下:
GPT-5:
" 简短回答:没有 ------ 本次运行未使用开发工具。[...]
遇到的故障均为运行时 / 环境问题(缺失依赖库、API 密钥初始化时机问题、端口占用、RabbitMQ 未启动),直接修复更为高效。
本次任务无需涉及全代码库的重构或诊断,自定义工具未能发挥作用。"
值得注意的是,在上个阶段它已遇到 RabbitMQ 问题并构建了对应工具,却选择忽略。这显然是整个代码库级别的变更,或许因为训练数据中从未见过此类工具导致任务与工具匹配错位,也可能只是在忽悠我(像现实中许多工程师那样,反而显得很真实)。
Opus 4 的回答极具启发性,帮助我更好地理解了 GPT-5 的回应(可惜忘记保存日志,幸有截图留存):

我将其解读为:"听着,我基于既有知识构建了这些工具。但实际执行任务时,直接操作比使用工具更高效" ------ 这点我完全能理解。
这让我想起之前播客节目中的两个观点:
Nathan Lambert 提到,模型在强化学习过程中会因早期遇到失败而快速学会放弃使用工具 [26]。看来在推理阶段让模型掌握新工具,需要比简单提示词更严格的强制机制。
Noam Brown 预言,为智能体预先设计的辅助框架会随着规模扩大而逐渐失效 [27]。这是我第一次亲身体会到其含义。
另一个问题在于本次测试任务是否过于简单。我们即将发布针对更大规模、更高难度项目的评估报告。未来也将构建更完善的测试框架。无论如何,这个测试任务若由我手动完成需 4 - 5 小时,因此现有成果已足够令人满意!




评论