一位非程序员在消耗超过11.3亿个token后,分享了使用AI智能体构建真实应用的实践经验与三层执行架构。
AI translation, not an official translation. Refer to the original for technical details.
Adapted from @jamescantcode# 已燃烧超过11.3亿个Token……且仍在增加:一位非程序员用AI智能体构建应用的经验教训 我不懂写代码。 我是一名父亲,整个职业生涯都在科技行业的商业端度过。直到不久之前,打开一个终端窗口对我来说就像是盯着一辆现代混动汽车的发动机舱——令人着迷,但如果我碰了任何东西,我又害怕它再也发动不起来了。 然而在过去一年里,我凭借AI智能体和一股子蛮劲,构建并发布了真实可用的Web应用、移动端PWA以及生产工作流。 在这个过程中,我的机器处理并消耗了超过11.3亿个token……而且还在持续增加。我亲眼见过上下文窗口崩溃成一片混乱,Claude把能正常运行的文件改写得面目全非,也花了真金白银让智能体原地打转。 随着时间推移,通过无数次的试错——以及借鉴社区中各路人的精彩创意——我在CLI操作上节省了超过1800万个token,并搭建出一套真正能日复一日稳定运行的智能体配置。 这不是一篇推销文章,也不是一份强制性的"你必须这样构建"的指南。这纯粹是我的个人观点,以及在撞遍了所有能撞的墙之后总结出来的实践教训。 希望它能为你节省几百个小时和几百万个token。 ## "随心编码"的神话(以及你会遭遇的三堵墙) 当AI编程工具刚刚爆发的时候,流行的说法是:你只需往后一靠,随手在智能体里输入两句话,一个生产级应用就会凭空出现。 如果你尝试过构建比单页计数器更复杂的东西,你就知道现实会在第二天狠狠地给你当头一棒。具体来说,你会直接撞上三堵巨墙: 1. **上下文黑洞**:你让智能体运行一个测试或检查git状态。终端输出了3000行噪音。突然间,你80%的上下文窗口被原始的终端垃圾吞噬殆尽。智能体变得迟缓,思路断裂,开始忘记你十分钟前交代的规则。 1. **AI土拨鼠日**:你发现智能体做了某个假设——比如,它试图使用一个过时的库,或者重构了一个本不该碰的文件。你纠正了它。四十五分钟后,在一个全新的上下文窗口里,它犯了完全相同的错误。 1. **配置漂移**:你在一个CLAUDE.md文件里有一套指令,在Cursor里有一套完全不同的提示词,在Google Antigravity或Gemini里又有另一套。没有任何对齐,你花在管理配置文件上的时间比真正构建的时间还多。 为了突破这三堵墙,我不得不停止把AI智能体当成万能魔法师,而是开始把它们当成有能力的初级工程师——他们需要明确的护栏、严格的系统和好用的工具。 以下是我的个人配置今天的结构。 ## 一、三层执行层级与1-2-3法则 人们在使用编程智能体时犯的最昂贵的单一错误,就是把前沿模型(Claude、Gemini、GPT-4)当作处理一切事务的通用执行引擎。 前沿大语言模型在高层推理、架构设计和边缘情况检测方面极为出色。但让一个前沿模型去重新格式化一个500行的JSON文件或解析一份构建日志,就好比雇用一位资深建筑师用牙刷去扫车道。慢、贵,而且是对智识的浪费。 我把所有任务组织成三个层级: - **第一层 — 大脑(前沿大语言模型)**:负责策略规划、架构设计、系统设计、权衡分析、复杂调试和最终审查。这正是 Claude Code、Google Antigravity 和 Gemini 大展身手的地方。 - **第二层 — 技能(程序化标准操作流程)**:存储在本地 `skills/` 目录中的结构化 Markdown 操作规程。这些是手把手的分步流程,教会智能体如何执行可重复的工作——例如运行测试驱动开发循环,或在声称 PR 完成之前对其进行审计。 - **第三层 — 脚本(零令牌确定性执行)**:位于 `scripts/` 文件夹中的本地 Bash、Python 或 Node 脚本。这些脚本以 5 毫秒、零令牌的代价处理机械性任务——例如检查环境健康状态、格式化数据或过滤日志。 为了保持这一层级结构的整洁,我遵循 **1-2-3 法则**: 1. **第一次**:与智能体在对话中手动完成任务。 1. **第二次**:将可重复的操作序列整理成 Markdown 格式的程序化技能文档。 1. **一周内第三次出现**:将其自动化为本地脚本。 永远不要把大语言模型的令牌浪费在用十行脚本就能免费解决的机械性工作上。 ## 2. 令牌经济学,以及我如何节省了超过 1800 万个令牌(RTK) 关于智能体开发,有一个不为人知的秘密:终端命令是吞噬令牌的怪兽。 每当智能体运行 `git diff`、`git log`、`npm test` 或 `ls -la` 时,原始的 shell 输出会被直接推入模型的上下文窗口。一个嘈杂的差异文件可以毫不费力地吞掉 50,000 个字符。 如果一次会话中执行十条命令,你就悄无声息地将数十万个令牌浪费在了空白字符、未更改的行和构建样板代码上。 为了解决这个问题,我使用 **RTK(Rust Token Killer)** 作为 CLI 代理。 智能体接收到的不再是原始 shell 输出,RTK 会拦截常见的终端命令(`git status`、`git diff`、`git log`、测试运行器),并在其进入大语言模型上下文之前对其进行压缩。它会剥离样板内容、去除重复行,只向智能体呈现其做出下一步决策所真正需要的信息。 结果如何?在终端和 Git 操作上,我的令牌节省率始终保持在 60% 到 90% 之间。我的 RTK 全局计数器已记录超过 1800 万个令牌的节省量。 更重要的是,由于上下文窗口保持干净整洁,模型能够在数小时内维持架构层面的上下文,不会发生漂移或产生幻觉。 ## 3. 跨智能体的单一事实来源(AgentSync) 和许多开发者一样,我并不只用一个工具。根据任务需要,我会在终端中的 Claude Code、Google Antigravity、Gemini CLI 和 Cursor 之间切换。 早期,在所有这些平台之间保持指令同步简直是噩梦。我会在 Claude 中更新一项编码规范,却忘了同步到 Cursor,然后花一个下午苦苦思索为什么一个表现正常而另一个却不听话。 现在,我使用由 **AgentSync** 驱动的单一事实来源架构: - 所有主指令存储在一个规范化的 `AGENTS.md` 文件中。 - 所有共享技能存储在一个中央 `skills/` 文件夹中。 - 通过 `agentsync.toml` 配置,符号链接会自动将这些指令同步映射到 `CLAUDE.md`、`GEMINI.md`、`ANTIGRAVITY.md` 和 `.github/copilot-instructions.md`。 每当我完善一条规则或新增一项技能,只需在 `AGENTS.md` 中更新一次。我整台机器上的所有智能体都会即时更新。零漂移。 ## 4. 自我修复与纠错规则协议 我们都经历过这种令人沮丧的情况:AI 智能体为某个错误道歉,半小时后却犯下完全相同的错误。 我的基本原则很简单:**同一个错误,绝不纠正第二次。** 为了贯彻这一原则,我维护着一个只可追加、不可删改的文件,名为 `Correction Rules.md`。 每当智能体做出错误假设、引入反模式,或遗忘项目约定时,我不会只说"修一下"。我会立刻让智能体将一条简洁、可核查的规则记录到 `Correction Rules.md` 中。 例如: - *"在尝试安装替代工具之前,始终先检查某个 CLI 工具是否已存在。"* - *"未经直接运行确定性测试并检查退出码,绝不声称代码已修复。"* - *"仅做外科式精准修改——不得重新格式化未改动的相邻函数。"* 由于我的主配置 `AGENTS.md` 要求智能体在执行任务前必须先审阅 `Correction Rules.md`,整个系统会随时间推移自我优化。你在一个代码仓库中构建的时间越长,你的智能体就会变得越聪明、越自律。 ## 5. 双重运作模式:"强观点 + 创意空间" 当你与 AI 协同工作时,通常会遭遇两种极端: 1. 智能体表现得像一个唯唯诺诺的应声虫,即便你的想法存在技术缺陷,它也会盲目照单全收。 1. 智能体给你罗列四个学术性选项并让你自己挑,而当你对深层技术权衡并不了解时,这毫无帮助。 为了解决这一问题,我将智能体的运作明确划分为两种认知模式: - **构建者模式(执行)**:在编写代码或修复 Bug 时,智能体进行外科式精准修改,编写最少量的必要代码,运行测试,并直接交付完成的输出,零废话前言。 - **顾问模式(策略与架构)**:在审查系统架构、产品功能钩子或 UI 设计时,智能体扮演高级对练伙伴的角色,并被明确要求对脆弱的假设提出质疑。 每当遇到设计抉择时,我会强制执行**"强观点 + 创意空间"协议**: 1. 基于已有证据和良好判断,执行唯一最优方案。 1. 附上 1–2 条非显而易见的创意点子或更强的创意角度,并附简短理由,让我只需一个词便可拍板。 你将同时获得雷厉风行的执行速度,以及真正具有创造力的协作所带来的增值空间。 ## 6. 站在巨人的肩膀上 这一切并非凭空创造。我今天所用的大量方法,都深受开发者社区和 AI 社区中杰出先行者的启发与影响: - **Everything Claude Code(ECC)社区**:他们展示了模块化技能、自定义命令与简洁的智能体配置,如何将一个 CLI 工具打造成真正的操作系统。 - **Anthropic 研究团队**:他们在智能体架构与评估循环方面的论文,彻底改变了我对自主验证的思考方式。 - **Boris Cherny 及早期 Claude Code 探索者**:他们证明了当你赋予一个大语言模型原始终端访问权限和自由构建的空间时,一切皆有可能。 - **Unix 哲学**:工具应专注于一件事并做好,通过简洁的文本流进行通信——这一永恒理念至今仍是 AI 编排的最佳指南。 功劳归于应得之人——我只是将他们的洞见加以改造,形成了一套非技术背景的构建者也能可靠运作的体系。 ## 7. 开源入门工具包(`agent-starter-kit`) 我不想只是用一篇文章空谈理念,而是希望给你一些今天就能上手使用的实质性内容。 我整理了一个完全免费的开源模板仓库,包含这套设置的基础框架: 👉 **GitHub: github.com/jamescantco-de/agent-starter-kit** 仓库内包含: - 经过生产环境验证的主 `AGENTS.md` 指令框架。 - 为 Claude Code(`CLAUDE.md`)和 Google Gemini / Antigravity(`GEMINI.md`)预配置的符号链接。 - 附带真实初始规则的 `Correction Rules.md` 自愈账本。 - `agentsync.toml` 多智能体配置。 - 精选的初始技能,涵盖测试驱动开发(`tdd-workflow`)、验证关卡(`verification-loop`)、脚本优化(`script-optimizer`)以及真实语气(`brand-voice`)。 - 一个零 token 消耗的设置健康验证脚本(`scripts/verify_setup.sh`)。 你可以克隆该仓库,根据自己的技术栈自定义第一节内容,五分钟内即可完成配置并投入使用。 ## 结语 我每天仍在持续学习。随着新模型的发布和更优模式的涌现,我的设置也在不断迭代演进。 没有传统计算机科学背景,曾经让我觉得软件开发是一道难以逾越的高墙。而今天,只要你拥有好奇心、清晰的系统思维,以及从错误中汲取经验的耐心,这道墙几乎已不复存在。 希望分享这套设置能让你少走弯路,也能帮你省下几百万个 token。 如果你试用了这个入门套件,或者对其中任何部分的运作方式有疑问,欢迎告诉我。 谢啦, James James Nunn 创作者,James Can't Code [jamescantco.de](https://jamescantco.de) | [@JamesCantCode](https://x.com/JamesCantCode)