ai 编程实践

很久没有动笔写 blog 了,想不到再更新已经到了 AGENTS 时代了。

去年开始,经历过了疯狂vibe-coding 的时期(一堆玩具,都是没用过的技术栈),也养过小龙虾(现在还火吗?),然后研究过 MCP(我们的产品上加了这个能力), 然后是现在的 cli + skills。

从 github copilot 第一批用户,到 cursor 自费订阅(tab-tab), 再到 sonnet 出来之后大跃进,经历了一个月左右的 AI 额度自由(想念opus),再到后面不自由自费订阅了 codex pro(稳重的 gpt 5.4/5.5)。

也焦虑过一段时期,疯狂刷推,看各种项目、文章,让小龙虾帮忙做各种汇总。

然后,到现在,形成了相对稳定的工作流和生产力。

5 天左右的 SDD,做完了一个生产级别的 cli,放原先手工时代至少半个月。 3 天左右的大规模重构,完成了之前接近一个月的重构工作量。这是以前想都不敢想的生产力提升。

虽然个人生产力提升很多,但是整体项目运作的摩擦还是很大的,毕竟沟通、基建等还有待改进。

下面就简单介绍下一些确定的实践经验。


1. 深度使用一个 agent

虽然我们最好不要绑死在某个 Agent、某个模型或某个工具上,但是提升生产力的大前提是,磨刀。

而最好的刀,一般是御三家几个头部。

推荐 claude 及 codex; claude 更爽,codex 更稳,个人偏好 codex。

建议走官方订阅。(不建议走中转,太黑盒)

目前主要是用 VSCode Codex 插件 + Codex app. 然后少量用 Cursor(开发体验最好,就是太贵), 一些简单执行类用的 claude+自定义模型;

不差钱的话, cursor 的体验胜过 VSCode Codex 插件(每次切回去用一段时间都得回来骂两句)

这里用好它,指的是深度阅读官方文档,阅读其他人的实践文章,了解各种配置,获取自己需要的配置,定制自己的配置。(让我想起了当初折腾vim)

2. 创建一个自己的 .agents 仓库

创建一个仓库,私有的,维护到 git 的,然后 clone 到你的所有机器

我们的目标

  1. 所有机器使用相同的配置,
  2. 并且通过makefile将仓库中差异化配置通过软链到各个 agent 目录,从而抹平所有 Agent 的使用体验。
  3. 配置是可以持续迭代的,某个机器上优化更新后,可以同步到其他所有的机器。

例如,.agents/skills目录,codex 是认的,但是claude 不认,那就做一个软链。个性化的 AGENTS.md, 软链到 .codex下,以及软链成CLAUDE.md

目前市面上vibe-coding 出来各种管理工具,我觉得是没必要的,最原始的git,让 Agent 帮你去处理,是定制化最高的方式。

3. 创建自己的 AGENTS.md

如果不知道写什么内容,参考 https://github.com/forrestchang/andrej-karpathy-skills 这个项目,直接拷贝放进去。

如果使用 codex, 软链到~/.codex/AGENTS.md

然后,你可以在使用过程中,持续优化这个 AGENTS.md, 应该怎么沟通,用什么语气,翻过的错误等等

4. 选一个基础工作流

最底层原子skill

目前有很多工作流,我们现在需要安装上一批适合自己的、原子的 SKILL。

注意,不要装 SDD 这种核武器,要装瑞士军刀这种轻量并且相对全的

加入方式: git submodule 加进来,软链到skills 【这样能定时更新】

目前重度使用 superpowers, 如果你觉得某个工作流触发比较烦,那么可以在 AGENTS.md 中优化它。(触发规则)

例如: 如果是小的修改、bugfix,请不要调用 tdd

5. 挑选一批适合自己的skill

最底层原子 skill

市面上skills 非常多,例如code-review 你估计能找到几十上百个。

但是,符合自己工作方式、风格的 SKILL,才是最合适的。

目前比较火的集合

加入方式: git submodule 加进来,仅挑选想要的skill,软链到skills 【这样能定时更新】

6. 创建自己的skill

上层skill

使用 $skill-creator 可以创建自己的 SKILL

  1. 可以在基础工作流之上,定制自己的工作流(自己的 SKILL,依赖底层原子 SKILL)
    1. 例如,small-steps-refactor可以依赖 superpowers 里面的writing-plansexecuting-plans (我用这个 SKILL 重构了近三万行代码,单测+可 review 的小步重构使得巨大的重构变得可控)
    2. 例如,fix-bug可以依赖 superpowers 里面的systematic-debugging 以及自己的git-commit
  2. 也可以是全新的 SKILL

可以导出自己所有同 AGENTS 的对话记录,让 Agent 分析那些重复的,反复出现的,形成模式的对话,然后创建成 SKILL。

你还可以考虑把那些繁琐的日常行为,转换成 SKILL。

特别是那些被动触发的 SKILL,效果非常好,例如auto-load-env 在 Agent 找到不到环境的时候自动触发,加载正确环境,那么意味着未来的所有遇到这种场景,Agent 都能自动解决,无需询问、打断。

7. 安装 cli + skill

个人偏好 cli + SKILL,厌恶MCP

那么,此时你可以通过各种各样的 CLI, 扩展你的 Agent 能力

例如 playwright-cli

8. 持续迭代它

  • Agent 不好用,去优化 agent 配置
  • 对话或各种交互、服从性不好,去优化 AGENT 配置
  • 不断添加、优化、淘汰 SKILL
  • 不断通过 cli 扩展 Agent 的能力,配合 SKILL 做更为复杂的事

慢慢的,我们的工作流变得非常高效,与 Agent 配合非常默契,甚至大部分时候能一波流完成目标。

那么,你有了一份适合自己的,可持续迭代的配置。

或者说,你有了一份 数字的你, 当你把他放入openclaw 或 hermes 的时候,他就能用你的行事风格以及标准,做你能做到的事情

(至于会不会被 ai 替代掉,我们后面再讨论)

9. 啰嗦两句:保证交付质量

不管是 Agent 还是我们自己写的,我们需要保证交付的质量

AI 带来的质量方面的好处:

  1. 写单测不再是负担,并且可以达到非常恐怖的覆盖率,给重构予信心
  2. 集成测试、自动化测试,都可以轻易地验证
  3. debug 非常之快

但是:

  1. AI 是有幻觉的(屎山也能给你写 100% 覆盖率单测,所以不能轻信)
  2. 模型差异是个的代码质量差异非常大
  3. AI 无法一步到位解决存量项目中的复杂度

你需要

  • 选好模型,写好prompt,把控好处理流程
  • review 自己的代码【不要超出你的掌控】
  • 做好自测

写在最后

其实,由于这个浪潮来的太快,信息过载,进而导致人非常焦虑,漫天的工具、配置、最佳实践,一个又一个的热点,导致整个人非常浮躁。巨大的不确定性的情况下,我们需要去寻找确定性。

而以上,就能给你一份确定性,而且是越用越聪明,越用越有信心的积累。

或许未来有一天 Agent 强大到这些也变得没有意义,但是在当下,这个能给我们信心。


aiagents

2466 Words

2026-05-11 15:00 +0000