文章指出 AI 编程的核心约束不是模型或 token 成本,而是「重置循环速度」——即从失败到下一次尝试的间隔。主张把每次 AI 实验当 git 分支,轻量创建、快速丢弃。
DEV 上最近有一个反复出现的争论,认为约束能让你成为更好的工程师,而我认为 AI 编程的讨论一直忽略了真正重要的那个约束。这个约束不是模型、不是上下文窗口、也不是 token 限额——而是你的重置循环(reset loop)的速度。编程助手的有用程度,取决于一次失败实验到下一次尝试之间的时间间隔,而大多数工作流程恰恰在这个环节输掉了比赛。
我用一个刻意省钱的方案来验证这个想法:一个叫 MonkeyCode 的开源助手,配合它的免费模型访问和免费服务器选项。声明:本文是 MonkeyCode 产品推广的一部分。重点不在于将模型与其竞争对手进行排名对比,因为排名描述的是模型本身,而非你的工作流程。关键在于衡量一个下午能承受多少轮失败实验,而不花一分钱,也不污染我的笔记本电脑。
这里是我的核心观点:你应该把每一个 AI 编程实验都当作一个 git 分支来对待——创建成本低,删除成本低,永远不要对它产生执念。当一个工具让它的环境变得像永久性的,你就会停止实验;一旦停止实验,模型质量就不再重要了。免费服务器和免费模型层之所以重要,是因为它们让分支这个比喻从愿景变成了现实,这比任何基准测试的差异都更有意义。
我反复使用的这个工作流程有四个步骤,但它们都与 prompt 工程无关。第一,启动一个临时服务器,让助手指向免费模型端点。第二,给它一个真实的任务和真实的失败条件,比如"写一个因为正确原因而失败的测试"。第三,用我自己的检查来验证输出,而不是信任工具的自我报告。第四,拆解整个设置,然后决定下一轮是否值得重新开始。
让这一切变得具体可行的成果是一个微小的 shell 测试工具,它可以计时整个循环过程而不是模型的响应。它可以与任何编程助手的 CLI 一起运行,所以下面的三个函数是占位符,你需要用你的工具实际提供的命令来替换它们:
#!/usr/bin/env bash
# loop.sh — time the full experiment loop, not the model's answer
set -euo pipefail
TASK="${1:-write a failing test for the auth module}"
ROUNDS="${2:-3}"
# Replace these three functions with your assistant's real CLI.
provision() { your-cli server up --free; }
run_task() { your-cli run "$TASK" --output "./out-$1"; }
teardown() { your-cli server down; }
for i in $(seq 1 "$ROUNDS"); do
echo "--- round $i ---"
start=$(date +%s)
provision >/dev/null 2>&1
run_task "$i" >/dev/null 2>&1
./run-tests.sh "./out-$i"
teardown >/dev/null 2>&1
end=$(date +%s)
echo "round $i took $((end - start))s"
done
运行它三次——一次用本地设置,一次用免费服务器,一次用付费模型——你会学到比一个月模型对比更多的关于你自己工作流程的东西。我发现免费服务器胜出的原因不是因为它生成 token 的速度更快,而是因为它消除了清理的摩擦。当环境是远程的和一次性的,我就不再囤积失败的实验了,而这一个习惯改变了我编写 prompt 的方式。
为什么这对于更广泛的讨论很重要?因为当前这波 AI 讨论中,很多人都在争论哪个模型写的代码更好,而几乎没有人去测量模型周围的循环。"限制造就伟大"这派人是对的,但原因错了:重要的限制不是更少的功能,而是更便宜的失败。拥有慷慨限额的免费层——该项目的当前限额在撰写本文时是 1000 万 token,尽管你在依赖这个数字之前应该验证 README 中的最新数据——这是一个对你有利的约束条件。
现在说一些真实的限制,因为这个方法并不适合所有人。如果你正在构建一个需要保证正常运行时间和支持合同的生产管道,免费的服务器是错误的基础,你不应该围绕它来构建你的 CI。如果你的代码库是专有的,你的合规规则禁止将代码发送到远程机器,那么将所有内容保持在本地,完全跳过服务器。而如果你需要一个不在免费层上的特定模型,这个工作流程将无法覆盖你,所以在投入之前请检查模型列表。
还有一个更深的警告:免费层会发生变化,今天免费的东西明天可能会计量,所以要把这个限额当作实验预算,而不是基础设施计划。这个循环测试工具本身也有局限性,因为它同时在测量你的习惯和工具,如果有一个快速的循环但验证步骤很敷衍,那就只是快速的垃圾。你需要一个真正的测试套件或真正的人工审查在验证步骤,否则整个过程就变成了做秀。
所以我的最终论点是:停止调优 prompt,开始调优循环,因为 prompt 是你能看到的部分,而循环才是真正消耗你时间的部分。一个临时服务器和免费模型层是一个强制函数,它让你的实验保持诚实,让你的环境保持干净。上一次基准测试告诉了你关于你自己的周一早晨什么事情?拿起这个开源助手,启动免费服务器,然后计时你自己的三轮——上面的脚本会在一个下午告诉你比一个月的模型对比更多的东西。