7:42Better Stack
Log in to leave a comment
No posts yet
在使用像 Claude Code 这样的自主代理时,最需要警惕的是对话过长的情况。代理会反复读取之前的对话记录和参考文件,从而消耗令牌(Tokens)。对话越长,费用越呈指数级增长。作为独立开发者,应避免请求一次性修改整个项目。如果将会话划分为最小执行单位,例如一个 API 端点或一个 UI 组件,可以将令牌消耗量节省 50% 以上。
为了节省费用,必须养成使用终端命令的习惯。在创建新功能之前,应使用 /clear 命令清除现有的上下文。如果保留之前的对话,模型会扫描那些本不必读取的数据,从而产生费用。指定相关文件夹的 /add-dir 命令也非常有用,因为它能阻止不必要的文件扫描。如果对话变长,请输入 /compact 并添加诸如“仅保留数据库架构信息”之类的指示,只保留核心内容。这个小习惯可以将每月的 API 支出降低 40% 以上。
此外,还需要采取将高难度设计交给昂贵模型、简单编码交给廉价模型的策略。在设计阶段使用推理能力强的模型,而在实际实现时切换到 Sonnet 或 Haiku 模型。根据 Anthropic 的指南,建议将 CLAUDE.md 文件中的项目规则保持在 200 行以内。这可以减少每个会话加载的基础费用。偶尔查看一下 ~/.claude/sessions 目录,亲眼确认钱都花在哪些任务上,才能制定出对策。
将本地环境的精密操作与 UltraPlan 云端环境的自主执行相结合,可以加快开发速度。利用 Superpowers 插件,尝试以 TDD(测试驱动开发)方式先进行设计。在本地创建的详细设计书将成为指引云端代理不迷路的“路标”。一份构思精巧的设计图可以防止代理误操作,提高实现准确度。
具体流程如下:在本地通过 Superpowers 的 /brainstorm 整理需求,并使用 /write-plan 生成 plan.md 文件。接着,使用 Git Worktrees 开辟独立分支,并将设计文档上传到 GitHub。最后,在 claude.ai/code Web 界面设置 .env 环境变量和 service postgresql start 等初始化脚本。这样,云端容器就能运行与本地完全相同的环境,避免浪费时间在处理基础架构设置冲突上。
也有需要注意的地方。UltraPlan 运行在 Anthropic 管理的独立虚拟机中,本地的配置文件不会自动同步。出于安全考虑,CCR (Cloud Container Runtime) 没有专用的私钥存储库,因此放入环境设置中的变量存在泄露风险。建议仅放入必要的敏感信息,并编写脚本让代理自主解决复杂的安装过程,这样更加安全。
把工作交给代理后去睡觉,最担心的就是预算耗尽。如果代理陷入死循环或突然疯狂调用昂贵模型,早上起来就会收到巨额账单。为了防止这种情况,必须安装多重预算控制系统。只需妥善设置 MAX_THINKING_TOKENS,即可在保持性能的同时防止费用飙升。
系统防护栏只需记住三点:在环境变量中设置 MAX_THINKING_TOKENS=8000,为推理费用设定上限。运行时添加 --max-budget-usd 选项,一旦超过预定金额,代理将立即停止。最后,在 CLAUDE.md 中写下测试覆盖率 85% 以上、通过 Linter 检查等清单,让代理在提交代码前进行自我审查。有了这些装置,才能安心入睡。
养成在亲自动手查看代理编写的代码之前,先确认测试代码是否通过的习惯。如果给出明确的成功标准,代理甚至会写出结果报告。使用像 Bifrost 这样的网关,可以更严格地划分各项目的预算。开发者无需逐行阅读代码进行体力劳动,只需查看摘要差异和测试结果,点击批准按钮即可。
开发自动化的终点是无需人工干预即可部署代码的 CI/CD 环境。将 Claude Code 与 GitHub Actions 连接,甚至无需打开终端。只需创建一个 Issue,开发周期就能自动运转。每周可以节省约 5 小时手动部署和同步环境的时间。
构建流水线非常简单。在 GitHub Actions 中开启 issue_comment 触发器,评论 @claude implement 即可让代理开始工作。为了安全,GitHub Token 的权限应仅限于必要范围。部署方面,可将 Vercel 或 AWS Webhook 与主分支合并事件连接。从创建 Issue 到代码修改、创建 PR 再到部署,整个流程将不间断运行。
在自动化环境中,最令人担心的是安全问题。为了防止外部人员滥用 GitHub Actions,务必设置 Fork 限制规则。在代码合并到主分支之前,必须设置人工确认的批准步骤。最终确认 AI 是否植入了异常代码是人类的职责。设计好精密的流水线后,独立创业者就可以专注于提升业务价值,而不是纠结于多写一行代码。