人、模型、工具与代码如何协作
AI Coding 不是“人提一句要求,AI 独自把项目做完”,而是一套由人、模型、工具与代码共同参与的协作系统。 可以先把四者记成一个团队:- 人是负责人:定义目标、提供背景、判断取舍并验收结果;
- 模型是智能助手:理解上下文、提出方案并生成候选内容;
- 工具是执行环境:读取文件、修改代码、运行命令并收集反馈;
- 代码是工作对象和事实依据:它既承载实现,也通过运行结果证明方案是否成立。
先用一个类比理解:软件开发小组
假设一个小组要改造一间房子:- 人像项目负责人,决定房间要给谁使用、预算多少、什么效果算完成;
- 模型像设计顾问,根据要求提出布局和施工建议;
- 工具像卷尺、电钻和施工设备,把方案转化为实际操作;
- 代码像房屋本身,任何修改最终都要体现在结构中,并接受真实使用的检验。
一、人的职责:目标、判断与责任
人是整个协作流程的发起者和最终负责人,主要承担五项工作:- 定义目标:要解决什么问题?为谁解决?
- 补充上下文:技术栈、相关文件、现有规则和历史背景是什么?
- 设置约束:哪些文件可以改?能否新增依赖?性能和安全要求是什么?
- 做出取舍:多个方案中选哪个?为什么?
- 最终验收:代码是否正确、安全、可维护并满足真实需求?
二、模型的职责:理解、生成与解释
模型根据人提供的文字、代码和反馈,生成可能有用的候选内容,例如:- 澄清需求并提出问题;
- 解释现有代码和报错;
- 给出任务拆解和实现方案;
- 生成代码、测试和文档初稿;
- 比较多种技术方案;
- 审查代码并指出潜在风险;
- 根据运行结果修正方案。
三、工具的职责:连接模型与真实项目
模型本身只能生成文字或操作建议。工具把这些建议连接到真实开发环境中。 不同工具可能提供以下能力:
工具能力越强,AI 可以完成的步骤越多,但也越需要权限控制、修改前确认、版本管理和结果审查。
四、代码的职责:承载实现并提供事实反馈
代码不是被动的“输出结果”,而是协作过程中最重要的事实来源。 人和模型可以讨论方案,但最终要回到代码与运行结果:- 现有接口到底如何定义,要看真实代码;
- 某个库是否已经使用,要看依赖配置;
- 修改是否有效,要运行程序和测试;
- 是否引入副作用,要查看差异和回归结果;
- 文档和推测发生冲突时,应进一步核对可执行事实。
四者如何形成协作闭环
一个可靠的协作流程通常包含以下七步:- 人提出任务:说明目标、对象与验收标准;
- 模型澄清问题:找出缺少的信息和可能歧义;
- 人补充上下文和约束:提供相关代码、环境、规则和修改范围;
- 模型提出计划:拆解步骤,说明准备修改什么;
- 工具执行最小修改:读取文件、编辑代码并运行必要命令;
- 代码和测试返回反馈:提供输出、报错、差异和测试结果;
- 人进行验收:决定接受、继续迭代、回滚或更换方案。
一个完整示例:给待办应用增加“截止日期”
第一步:人定义任务
一个过于模糊的要求是:给任务加个日期。更清晰的要求是:
在现有待办应用中增加可选的截止日期。列表按日期显示,逾期且未完成的任务标红;不要新增第三方依赖,并保持旧数据可用。完成后运行现有测试,并补充日期为空和日期过期的测试。这一步由人负责,因为只有人知道真正需求和限制。
第二步:模型阅读上下文并提出计划
模型查看任务数据结构、列表组件、存储逻辑和测试文件后,可能提出:- 在任务对象中增加可选的
dueDate; - 修改创建任务的表单;
- 在列表中显示并判断逾期状态;
- 兼容没有日期的旧数据;
- 增加对应测试。
第三步:工具执行修改
AI 编辑器或 Agent 根据确认后的计划修改相关文件、运行格式检查和测试。此时应限制修改范围,不要顺便重构无关模块。第四步:代码和测试提供反馈
如果测试显示旧数据加载失败,说明方案没有真正满足“保持旧数据可用”。这个失败比模型的一句“已经兼容”更可信。第五步:人验收并继续迭代
人检查代码差异、页面行为和测试覆盖,确认:- 没有日期的任务仍能正常显示;
- 逾期判断考虑了时区;
- 已完成任务不会错误标红;
- 没有引入无关依赖或大范围改动。
合理的人机分工
最健康的分工不是“AI 全做,人只点接受”,也不是“人拒绝使用 AI”,而是让 AI 承担高频生成和重复劳动,让人把精力放在目标、边界、证据和决策上。
常见的协作失败模式
1. 人不给上下文,模型只能猜
表现:只说“修一下”“优化一下”,却不提供代码、环境和验收标准。 改进:说明期望与实际结果,提供最小相关上下文,让 AI 先提问。2. 模型一次改太多,工具扩大风险
表现:一个小需求修改几十个文件,还顺便升级依赖和重构架构。 改进:先审计划,限制文件和任务范围,分批执行并保留回滚点。3. 代码能运行,就被误认为完全正确
表现:程序没有崩溃便直接提交,没有检查边界情况、安全性和真实需求。 改进:定义验收标准,运行针对性测试,查看差异并进行人工审查。4. 人把最终判断交给模型
表现:AI 说“已经修复”“没有安全问题”,人便直接相信。 改进:要求证据,用测试、日志、代码位置和官方资料验证结论。小练习:给四个角色分配职责
你准备让 AI 给一个购物网站增加“优惠券”功能。请判断下列任务主要应该由谁负责:- 确定优惠券可以与哪些促销叠加;
- 根据现有代码生成折扣计算函数初稿;
- 修改项目文件并运行测试;
- 通过测试结果确认金额计算是否正确;
- 决定功能是否可以上线。
参考答案
**协作顺序:**人先定义规则,模型生成方案,工具执行操作,代码和测试返回证据,最后由人验收并做决定。
本节结论
在人、模型、工具与代码的协作中,没有任何一个角色可以单独保证成功:- 人提供方向、约束、判断与责任;
- 模型提供理解、生成、解释与建议;
- 工具提供读取、修改、执行与反馈能力;
- 代码提供真实实现和可验证的结果。