Gemini 4 Argon 高效工作流:与 AI 协作的最佳实践
为什么我开始了这次尝试
先说说背景。上个月我在做一个遗留系统重构,要把一个 3000 多行的 Python 订单处理模块拆成微服务。以前我的做法是把代码整段贴给模型,让它“帮我重构”,结果通常是一次性的代码片段——上下文一丢,下一轮它就忘了之前的约定。来回解释了五六轮之后,我意识到问题不在模型,而在我的协作方式:我一直在把 AI 当“代码生成器”,而不是“结对编程的同事”。
于是我花了两周时间,系统性地摸索出一套围绕 Gemini 4 Argon 的工作流。这篇文章记录我实际走过的路,包括踩过的坑。
第一步:建立项目上下文,而不是每次都从零开始
我犯的第一个错误是每次会话都重新描述一遍项目。后来我固定了一个做法:在仓库根目录维护一个 AI_CONTEXT.md,内容包括:
# 项目上下文
- 技术栈:Python 3.12, FastAPI, PostgreSQL, Redis
- 架构:订单服务 / 支付服务 / 通知服务,通过消息队列解耦
- 编码规范:类型注解必须完整,错误处理用自定义异常层级
- 禁止:不要引入新依赖除非明确要求;不要修改数据库迁移文件
每次开新会话,第一句话就是“请先读 AI_CONTEXT.md 再回答”。就这么一个文件,让我的重复沟通成本下降了大概 70%。还有个意外发现:把“禁止事项”单独列出来,比写一堆“应该怎么做”效果好得多——模型对负面约束的遵守明显更稳定。
第二步:把大任务拆成可验证的小任务
重构那个 3000 行模块时,我最初的提示词是“把这个文件拆成三个服务”。结果得到的是结构上说得过去、但根本跑不起来的代码。后来我改成了这样的节奏:
- 先要分析,不要代码:“分析这个文件的职责划分,列出拆分边界和依赖方向,先不要写代码。”
- 对齐方案:我在它给的方案上标注“这个函数留在原模块,因为XX”,然后让它更新方案。
- 逐块生成:“现在实现 PaymentService,只实现 charge 和 refund 两个方法,保持接口签名和原来一致。”
- 每块跑完测试再进入下一块。
关键教训:“先分析后编码”这个顺序千万不能省。有一次我跳过分析直接要代码,结果它把一个有副作用的日志调用挪到了纯函数里,测试挂了整整半小时我才找到原因。
第三步:让 AI 写测试,但验收标准由你定
一个高效的分工模式是:我来定义验收标准,Argon 负责把标准翻译成测试用例。比如:
为 OrderService.create_order 写测试,覆盖以下场景:
1. 正常创建
2. 库存不足
3. 用户黑名单
4. 并发重复提交(同一订单号)
用 pytest,mock 掉 Redis 和数据库层。
它给出的并发重复提交测试用例是我自己当时都没想到的——用了 asyncio.gather 模拟并发。这让我意识到让 AI 参与测试设计的价值:它经常能补上人类容易漏掉的边界情况。但反过来,测试“对不对”的判断权必须在你手里。有一次它为一个方法写了完全符合我描述的测试——但描述本身是错的,测试通过反而掩盖了真实的 bug。
第四步:代码审查用它,决策靠自己
现在我有一个固定的自查提示词:
作为严格的 code reviewer 审查以下 diff:
重点检查:错误处理遗漏、类型不一致、隐式副作用、
与 AI_CONTEXT.md 中规范的冲突。按严重程度排序输出。
实测结果是:它抓隐式副作用和异常处理遗漏的准确率相当高,两周里至少帮我拦下了 4 个会在线上爆掉的问题。但对于架构层面的建议(比如“建议引入事件溯源”),它倾向于给出偏重的方案,需要你自己根据团队实际情况过滤。
第五步:长会话要主动“存档”
Argon 支持很长的上下文,但我发现超过一定轮数后,最早的约定会被“稀释”。我的对策是:每隔一段时间让它输出一份“当前共识摘要”,粘贴到 AI_CONTEXT.md 里,然后开新会话。相当于手动做了一次垃圾回收。
实用技巧汇总
- 给出反例:“不要像这样:XXX”,比正面描述有效得多
- 要求引用来源:让它标注“这段代码基于文件中的哪个函数”,可以快速定位幻觉
- 温度/创造性设为保守:写代码的任务不要追求“有创意”的输出
- 提示词本身也要迭代:我把常用的提示词存在了
.prompts/目录里,像维护代码一样维护它们
诚实的局限评估
最后说说没那么美好的部分:
- 它仍然会自信地说错话。尤其是在冷门库的 API 细节上,我遇到过两次虚构的方法签名,直到运行时才暴露出来。
- 上下文不是万能的。即使给了完整上下文,跨多个文件的重构它仍可能漏改引用处,全局搜索验证少不了。
- 拆分粒度需要自己拿捏。拆太细沟通成本上升,拆太粗质量下降,这个平衡点目前只能靠手感。
总结一句:Gemini 4 Argon 在我的工作流里最大的价值不是“替我写代码”,而是把我的思考过程外包出去了一部分——分析、测试设计、代码审查。角色定位对了,效率提升是实实在在的;定位错了,你就只是在给 AI 打工做修修补补。