用AI写代码几个月,最大成本不是烂代码

更新时间: 2026-10-27 浏览:879

据赏金大对决整理:

用 Cursor 和 Claude Code 在真实产品上写了几个月代码之后,作者算了一笔账:最大的成本不是写坏的代码。

是反复解释同一套架构,反复抓同一个错误,反复从 diff 里倒推某处为什么改。

他把这件事归结成一个很朴素的事实:每次会话唯一能活下来的上下文,是代码仓库本身。

于是他开始把仓库当成 AI 代理的记忆来用,做成了一个开源项目 Agent Runway ,把规格、决策、检查点和运行日志都放在代码旁边。

项目采用 MIT 许可,免费。

作者在文中披露了自己的身份:他是 Agent Runway 的作者。

写代码不再是难的那部分 难的是在一个真实代码库里维持连续性。

只要用编码代理做过活过不止一个周末的项目,大概率撞过下面这堵墙: 会话之间上下文丢失 架构决策做过了,然后被忘掉 同样的错误在不同功能里重复出现 自主运行没有可追溯性 实现慢慢偏离需求 这些问题的根源不是模型"笨",而是模型每次都从零开始,而且没有人(人或代理)把重要的东西写下来,放在下一次会话真的会去读的地方。

光有规则文件不够 常见的第一个补丁是 CLAUDE.

md、.

cursor/rules 目录或者 .

github/copilot-instructions.

md。

这些有用,Agent Runway 也会生成它们。

但规则文件只回答一个问题:这里的代码应该长什么样。

它不回答另外几个问题:我们在造什么,"做完"是什么意思(规格);

工作按什么顺序推进,推进前必须通过什么(工作流与关卡);

上次学到了什么、决定了什么(记忆);

我们停在哪、还有什么没关(检查点与运行日志)。

把这些全塞进一个不断膨胀的指令文件,就是文档熵。

Agent Runway 的做法是:生成的指令文件(AGENTS.

md、CLAUDE.

md、Copilot instructions)只当轻量入口,耐久知识放进仓库里一个专门的文件夹。

四层结构 Agent Runway 是产物驱动的,工作经过四层:规格定义意图与行为,工作流用质量关卡编排执行,规则在每一步强制标准,记忆为未来会话捕获决策与教训。

全部放在仓库内的 .

agent-runway/ 目录里。

一次 Lite 初始化之后,这个目录里会有 config、docs(含 architecture、business、contracts、examples、testing、tickets)、logs、memory、rules、skills、specs、workflows。

memory 目录下是 common-failures.

md、execution-memory.

md、project-decisions.

md、reasoning-memory.

md、recurring-patterns.

md、review-findings.

md、testing-notes.

md、ticket-quality-notes.

md 这些文件。

它们不是被动文档。

规格、工单、记忆文件、检查点和运行日志会影响代理跨会话如何推理、规划和执行。

about image

因为只是仓库里的文件,这层产物可以在 Cursor、Claude Code 和 VS Code Copilot 之间迁移,也能提交给团队共享。

它不替代你的技术栈、架构或流程,只是包在外面。

从 Lite 开始 第一天不需要全套仪式。

Vibe/Lite 预设是快速、技能优先的配置,面向原型、单人和低仪式编码,需要 Node.

js 22 或更新版本: npx @adonai-labs/agent-runway init --preset vibe-lite --target all Lite 装几个技能,加一小套工程原则、安全和测试规则。

没有斜杠命令,没有代理,没有重工作流。

这些技能之间没有固定顺序,作者自己的用法是:@express 处理改动本身,范围小、仪式少;

@checkpoint 在当天收工或交接时用,当前状态写进日志,下一次会话(你的或代理的)从那里恢复而不是靠猜;

@learning 在抓到值得记住的东西时用——一个反复出现的错误、一个决策、一个约定,写进 .

agent-runway/memory/,未来会话会读到。

他强调这只是习惯,不是必须的顺序。

@learning 那一步是他最推荐的:修一次错误很容易,重点在于下一次会话不再重复它。

升级到 Structured 工作超出 Lite 之后,原地升级: npx agent-runway upgrade --to structured 记忆、日志、检查点和文档都会保留,同时加上完整的 Structured 工作流集。

也可以直接从这里起步,比如用 node-typescript 预设初始化。

Structured 增加斜杠命令、代理、规格、工单、lead/自主工作流、架构/逆向关卡

更多体坛动态,关注赏金大对决。