ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

告别随口问AI写代码:六工位流水线让代码质量可控

告别随口问AI写代码:六工位流水线让代码质量可控

1. 为什么“随口问 AI 写代码”迟早会翻车

我大概是从两年前开始把 AI 拉进日常开发流程的。最开始那几个月,用法非常粗暴:打开对话框,敲一句“帮我写个 XXX 函数”,复制结果,粘进 IDE,跑一下,报错,再贴回去让它改。这个循环在写几十行的工具函数时确实爽,但一旦需求稍微复杂一点,问题就全冒出来了。

最典型的翻车场景是这样的:你让 AI 写一个“用户注册接口”,它给你返回了一段看起来没问题的代码,字段校验、密码哈希、数据库写入一应俱全。你复制进去,跑通了,提交了。三天后测试提了个 bug——并发注册同一个手机号时产生了重复数据。你回头再看那段代码,发现它压根没考虑唯一索引冲突的处理,也没加事务。这不是 AI 笨,而是你给它的输入里根本没有这些约束条件,它只能按“最常见的情况”去猜。

这就是“随口问”的本质问题:你把需求拆解、边界定义、验收标准这些真正决定代码质量的环节,全部省略了,直接跳到了“写代码”这一步。AI 在这种模式下扮演的是一个“高级自动补全”,而不是一个可靠的工程协作者。

我后来复盘了一下,随口问 AI 写代码主要有四个坑:

  • 上下文缺失:AI 不知道你的项目用什么框架、什么数据库、什么代码规范、什么错误处理约定。它只能按训练数据里最普遍的模式来写,写出来的东西“能跑但不对味”。
  • 需求模糊:一句“帮我做个搜索功能”,背后可能是模糊匹配、精确匹配、分词检索、拼音搜索、高亮显示等完全不同的实现路径。你不说清楚,AI 只能随机选一条。
  • 无法复用:每次对话都是从零开始,上次踩过的坑、定过的规范,下次对话它全忘了。你等于每次都在重新培训一个新人。
  • 质量不可控:没有验收标准,你就没法判断 AI 的输出到底算“完成”还是“没完成”。代码能跑不等于需求满足,这个差距在复杂业务里会被无限放大。

所以问题不在于“要不要用 AI 写代码”,而在于怎么把 AI 写代码这件事,从一次性的对话,变成一条可重复、可验证、可迭代的流水线。这也是我后来花了不少时间去做的事情——把需求开发流程编排成一条流水线,让 AI 在固定的工位上干固定的活,每个工位都有明确的输入、输出和验收标准。

下面我就把这套流水线的设计思路、每个环节的具体做法、以及我在实操中踩过的坑,完整地拆一遍。不管你是刚接触 AI 编程的新手,还是已经用了一段时间但觉得效率上不去的老手,应该都能从中找到可以直接抄作业的东西。

2. 流水线的整体设计:把“对话”拆成“工位”

2.1 核心思路:从“一问一答”到“多工位协作”

我最初的想法很简单:既然随口问容易翻车,那我就把一个问题拆成多个步骤,每个步骤单独问 AI,前一步的输出作为后一步的输入。这样至少能保证每个环节的上下文是聚焦的,不会因为问题太杂而导致 AI 顾此失彼。

但很快我发现,光拆步骤还不够。因为每一步的输出格式不固定,下一步的输入就没法稳定解析。比如第一步让 AI 输出“需求分析”,它可能给你一段散文,也可能给你一个列表,还可能给你一个表格。下一步让 AI 基于这个分析写代码,它就得先“理解”上一步的输出,这个理解过程本身就引入了不确定性。

所以真正的关键不是“拆步骤”,而是定义每个步骤的输入输出契约。就像工厂流水线一样,每个工位接收固定规格的零件,加工后输出固定规格的半成品,下一个工位才能无缝衔接。

我最终定下来的流水线包含六个核心工位:

  1. 需求澄清工位:把模糊的一句话需求,拆解成结构化的需求文档,包含功能点、边界条件、验收标准。
  2. 方案设计工位:基于需求文档,输出技术方案,包含数据结构、接口定义、关键流程、技术选型理由。
  3. 任务拆解工位:把技术方案拆成可独立开发、可独立验证的任务单元,每个任务有明确的输入输出。
  4. 代码生成工位:针对每个任务单元,生成符合项目规范的代码,包含必要的注释和错误处理。
  5. 代码审查工位:对生成的代码进行静态检查、逻辑审查、边界测试,输出审查报告。
  6. 集成验证工位:把各个任务单元的代码集成到一起,跑通完整流程,验证是否满足最初的验收标准。

这六个工位串起来,就是一条完整的“需求到代码”的流水线。每个工位都有明确的输入模板和输出模板,工位之间通过结构化文档传递信息,而不是靠自然语言的“理解”。

2.2 为什么是这六个工位

你可能会问,为什么不是三个工位或者十个工位?我的划分依据是关注点分离和可验证性。

需求澄清和方案设计必须分开,因为“做什么”和“怎么做”是两个完全不同的问题。混在一起问 AI,它很容易在还没想清楚需求边界的时候就开始选技术方案,结果就是方案很漂亮但漏了关键需求。

方案设计和任务拆解也必须分开,因为方案是全局视角,任务是局部视角。全局方案里一个“用户认证模块”,拆到任务层面可能是“登录接口”“注册接口”“token 刷新接口”“权限校验中间件”等好几个独立任务。不拆开的话,AI 生成代码时容易把多个任务的逻辑揉在一起,后期维护很痛苦。

代码生成和代码审查必须分开,而且最好是换一个 AI 会话甚至换一个模型来做审查。同一个会话里让 AI 审查自己刚写的代码,它往往会“护短”,觉得自己的实现没问题。换个上下文,它才能以更客观的视角去挑毛病。

集成验证单独作为一个工位,是因为前面五个工位都是“局部正确”,只有集成起来跑一遍,才能发现接口对不上、数据流断裂、边界条件遗漏这些全局问题。

2.3 工位之间的“传送带”:结构化文档模板

流水线能不能跑起来,关键看工位之间的传送带——也就是每个工位输出的结构化文档——设计得好不好。我试过好几种格式,最后稳定下来的是一套 Markdown + YAML 的混合模板。

Markdown 用来写描述性的内容,比如需求背景、方案说明、审查意见。YAML 用来写结构化的数据,比如接口定义、数据结构、任务清单。这样既方便人阅读,也方便 AI 解析。

举个例子,需求澄清工位的输出模板大概长这样:

requirement: id: REQ-001 title: 用户手机号注册 background: | 当前注册流程只支持邮箱注册,大量用户反馈希望支持手机号。 functional_points: - id: FP-001 desc: 用户输入手机号,系统发送验证码 priority: P0 - id: FP-002 desc: 用户输入验证码和密码,完成注册 priority: P0 - id: FP-003 desc: 同一手机号只能注册一个账号 priority: P0 boundary_conditions: - 手机号格式校验:必须为 11 位数字,以 1 开头 - 验证码有效期:5 分钟 - 验证码错误次数限制:连续 3 次错误后锁定 10 分钟 - 并发注册:同一手机号同时发起两次注册,只能成功一次 acceptance_criteria: - 正常流程:输入合法手机号 -> 收到验证码 -> 输入正确验证码和密码 -> 注册成功 - 异常流程:输入已注册手机号 -> 提示“该手机号已注册” - 异常流程:验证码错误 3 次 -> 提示“请 10 分钟后再试” - 并发场景:两个请求同时注册同一手机号 -> 只有一个成功,另一个返回“该手机号已注册”

这个模板的好处是,它强迫你在需求阶段就把边界条件和验收标准想清楚。以前随口问 AI 的时候,这些条件都在你脑子里,你不说它就不问。现在有了模板,你填的时候自然就会去思考“并发怎么办”“异常怎么处理”“怎么算完成”。

而且这个模板可以直接作为下一个工位的输入。方案设计工位拿到这个 YAML,就知道要针对哪些功能点做设计,要覆盖哪些边界条件,验收标准是什么。不需要再用自然语言去“解释”一遍。

3. 每个工位的具体操作与核心细节

3.1 需求澄清工位:把“一句话”变成“可验收的文档”

这个工位是整个流水线的起点,也是最容易被忽视的环节。很多人觉得“需求我自己还不清楚吗,直接让 AI 写就行了”。但实际情况是,你脑子里的需求往往是模糊的、跳跃的、有隐含假设的。AI 没法读心,你给它的信息越模糊,它猜的成分就越大。

我的做法是,在跟 AI 对话之前,先自己填一遍需求模板的草稿。不用填得很完整,但至少要把功能点和边界条件列出来。然后把这个草稿丢给 AI,让它帮我补充遗漏的边界条件和验收标准。

这里有一个很关键的提示词技巧:不要让 AI“写需求”,而是让它“审需求”。你写一版,让它挑毛病,比你让它从零写一版效果要好得多。因为从零写的时候,AI 不知道你的业务背景和约束条件,写出来的东西很泛。而审的时候,它是在你的基础上做增量,更容易发现你没想到的角落。

我常用的提示词大概是这样:

以下是我对某个需求的功能点和边界条件的初步梳理。请你以资深测试工程师的视角,帮我检查:

  1. 有没有遗漏的功能点?
  2. 有没有遗漏的边界条件(特别是并发、异常、权限、数据一致性方面)?
  3. 验收标准是否可量化、可验证?
  4. 有没有隐含的假设需要明确?

请以 YAML 格式输出补充后的完整需求文档。

实测下来,AI 在补充边界条件方面确实很强。比如我写“验证码错误 3 次锁定 10 分钟”,它会追问“锁定期间用户是否可以重新发送验证码”“锁定是按手机号还是按 IP”“锁定状态存在哪里”。这些问题如果你在需求阶段不想清楚,到代码阶段就会变成 bug。

注意:需求澄清工位的输出必须经过人工确认才能进入下一个工位。AI 补充的边界条件不一定都合理,有些可能是过度设计。你要根据实际业务场景做取舍,确认后的版本才是流水线的正式输入。

3.2 方案设计工位:先定契约,再写实现

需求文档确认后,进入方案设计工位。这个工位的目标是输出一份技术方案,包含数据结构、接口定义、关键流程和技术选型理由。

我特别想强调一点:方案设计工位不要写具体代码。很多人习惯让 AI 直接“设计并实现”,结果就是方案和代码混在一起,后期想调整方案就得连代码一起改,非常痛苦。方案就是方案,代码就是代码,分开两个工位做,后期维护成本会低很多。

方案设计的输出模板我一般包含这几块:

  • 数据结构定义:用 YAML 或 SQL DDL 描述新增或修改的表结构、字段类型、索引、约束。
  • 接口定义:用 OpenAPI 风格的 YAML 描述接口的路径、方法、请求参数、响应结构、错误码。
  • 关键流程:用文字描述核心流程的步骤,特别是涉及事务、并发、异步处理的地方。
  • 技术选型理由:为什么用这个方案而不是另一个,有什么权衡。

以手机号注册为例,方案设计工位的输出可能包含这样的接口定义:

api: path: /api/v1/auth/register/phone method: POST request: body: phone: string, required, 11位数字 code: string, required, 6位数字 password: string, required, 8-32位,含字母和数字 response: success: code: 0 data: user_id: string token: string errors: - code: 1001 msg: 手机号格式错误 - code: 1002 msg: 验证码错误或已过期 - code: 1003 msg: 该手机号已注册 - code: 1004 msg: 验证码错误次数过多,请稍后再试 concurrency: strategy: 数据库唯一索引 + 捕获冲突异常 detail: | phone 字段加唯一索引。插入时如果触发唯一约束冲突, 捕获异常并返回 1003 错误码。不使用“先查后插”的方式, 因为存在竞态条件。

这份方案里,并发策略是明确写出来的。这就是方案设计工位的价值——它把“怎么保证并发安全”这个关键决策显式化了,而不是留给代码生成工位去猜。

实操心得:方案设计工位可以让 AI 提供两个备选方案,然后你来选。比如并发控制可以选“唯一索引 + 异常捕获”,也可以选“分布式锁”。让 AI 把两个方案的优缺点都列出来,你根据项目实际情况做决策。这样比让 AI 直接选一个方案要好,因为 AI 不了解你的基础设施和团队习惯。

3.3 任务拆解工位:让每个任务都能独立验证

方案确定后,进入任务拆解工位。这个工位的目标是把方案拆成一个个可独立开发、可独立验证的任务单元。

拆解的原则是:每个任务应该能在一次 AI 对话中完成,并且能独立跑测试验证。如果一个任务太大,AI 生成代码时容易顾此失彼;如果一个任务太小,拆解成本又太高。

我的经验是,一个任务对应一个接口、一个函数、或者一个独立的逻辑单元比较合适。比如手机号注册这个需求,可以拆成:

任务编号任务名称输入输出验证方式
TASK-001手机号格式校验函数手机号字符串布尔值单元测试覆盖合法/非法格式
TASK-002验证码发送接口手机号发送结果接口测试,验证验证码存储和过期
TASK-003验证码校验逻辑手机号+验证码校验结果单元测试覆盖正确/错误/过期/锁定
TASK-004注册接口主逻辑手机号+验证码+密码用户ID+token接口测试覆盖正常/异常/并发
TASK-005数据库表结构变更无DDL 语句在测试库执行并验证约束

每个任务都有明确的输入输出和验证方式。这样代码生成工位拿到任务后,就知道要生成什么,生成完怎么验证。代码审查工位也知道该审查哪些点。

任务拆解工位还有一个重要作用:它让你能并行推进多个任务。比如 TASK-001 和 TASK-005 没有依赖关系,可以同时让两个 AI 会话去生成。TASK-002 和 TASK-003 有依赖关系,但也可以先并行生成,最后集成时再对齐接口。

注意:任务拆解不要拆得太细。我见过有人把“写一个 if 判断”都拆成一个任务,这就过度了。拆解的粒度应该以“能否独立验证”为标准,而不是以“代码行数”为标准。

3.4 代码生成工位:给足上下文,约束输出格式

这是大家最熟悉的工位,但也是最容易做错的工位。很多人在这里翻车,不是因为 AI 不会写代码,而是因为给它的上下文不够。

代码生成工位的输入应该包含:

  • 当前任务的详细描述(来自任务拆解工位)
  • 相关的数据结构定义(来自方案设计工位)
  • 相关的接口定义(来自方案设计工位)
  • 项目的代码规范(缩进、命名、注释风格、错误处理约定)
  • 已有的相关代码片段(比如类似的接口实现,让 AI 参考风格)

最后一条特别重要。如果你能让 AI 看到项目里已有的一个类似接口的实现,它生成的代码风格会和你项目高度一致,后期 review 和合并的成本会低很多。

我常用的代码生成提示词模板:

你是一名资深后端工程师,正在为一个已有项目开发新功能。请根据以下信息生成代码:

任务描述:[粘贴任务详情]

数据结构:[粘贴相关表结构]

接口定义:[粘贴相关接口定义]

项目规范:

  • 语言:Python 3.10
  • 框架:FastAPI
  • 数据库:PostgreSQL + SQLAlchemy
  • 错误处理:统一使用自定义异常类,由全局异常处理器捕获
  • 日志:使用 structlog,关键步骤打 info 日志,异常打 error 日志
  • 注释:函数级 docstring,复杂逻辑行内注释

参考代码:[粘贴一个类似接口的完整实现]

请生成完整的代码文件,包含必要的 import、类型注解、错误处理和日志。

这个模板的关键在于“参考代码”那一项。有了参考代码,AI 生成的代码风格会非常接近项目现有代码,你几乎不需要做格式调整。

实操心得:代码生成工位最好一个任务一个会话,不要在一个会话里连续生成多个任务的代码。因为会话上下文会越来越长,AI 在后面生成时可能会被前面的内容干扰。而且分开会话也方便你单独回滚某个任务的代码。

3.5 代码审查工位:换个视角挑毛病

代码生成完之后,不要直接合并。先进入代码审查工位,让 AI 以审查者的视角检查一遍。

这个工位的关键是换一个会话甚至换一个模型。同一个会话里让 AI 审查自己刚写的代码,它往往会觉得“没问题”。换个上下文,它才能以更客观的视角去挑毛病。

审查的维度我一般分四块:

  • 正确性:逻辑是否满足需求,边界条件是否覆盖,异常处理是否完整。
  • 安全性:是否有 SQL 注入、XSS、越权访问、敏感信息泄露等风险。
  • 性能:是否有 N+1 查询、不必要的循环、缺失的索引、过大的事务范围。
  • 可维护性:命名是否清晰,注释是否充分,是否有重复代码,是否遵循项目规范。

审查工位的输出应该是一份结构化的审查报告,包含问题列表、严重程度、修改建议。我常用的模板:

review: task_id: TASK-004 reviewer: AI issues: - id: ISSUE-001 severity: high category: 正确性 desc: 验证码校验失败后没有递增错误次数计数器 suggestion: 在返回错误前调用 increment_fail_count(phone) - id: ISSUE-002 severity: medium category: 性能 desc: 查询用户是否存在时使用了 SELECT *,建议只查 id suggestion: 改为 SELECT id FROM users WHERE phone = ? - id: ISSUE-003 severity: low category: 可维护性 desc: 魔法数字 3 和 10 应该定义为常量 suggestion: 定义 MAX_FAIL_COUNT = 3, LOCK_DURATION_MINUTES = 10 summary: | 整体逻辑正确,但验证码错误计数逻辑有遗漏, 需要修复后再进入集成验证。

拿到审查报告后,你可以选择让 AI 自动修复,也可以自己手动改。我的习惯是 high 级别的问题必须手动确认修复方案,medium 和 low 级别可以让 AI 自动修。

注意:AI 审查不是万能的。它可能会漏掉一些业务逻辑层面的问题,也可能会误报一些不是问题的问题。审查报告需要人工过一遍,确认哪些是真问题,哪些可以忽略。

3.6 集成验证工位:跑通完整流程才算完成

最后一个工位是集成验证。前面五个工位都是局部正确,只有集成起来跑一遍,才能发现接口对不上、数据流断裂、边界条件遗漏这些全局问题。

集成验证的步骤我一般这么安排:

  1. 代码合并:把各个任务的代码合并到同一个分支。
  2. 依赖检查:确认所有 import、配置、环境变量都齐全。
  3. 单元测试:跑一遍所有任务的单元测试,确保没有回归。
  4. 接口测试:用 Postman 或 curl 跑一遍完整流程,覆盖正常和异常场景。
  5. 并发测试:针对并发场景做专项测试,比如同时发起两个相同手机号的注册请求。
  6. 验收标准核对:逐条核对需求文档里的验收标准,确认全部满足。

这一步我强烈建议不要完全交给 AI。AI 可以帮你生成测试用例、分析测试结果,但最终的验收确认必须由人来做。因为验收标准里有些是业务层面的判断,AI 不一定能准确理解。

比如“注册成功后用户应该收到欢迎短信”这条验收标准,AI 可以帮你写发送短信的代码,也可以帮你写测试用例,但它没法确认短信是否真的发出去了、内容是否正确。这些必须人工验证。

4. 常见问题与排查技巧实录

4.1 流水线跑不起来?先检查这三个地方

问题一:AI 不按模板输出

这是最常见的问题。你给了 YAML 模板,AI 却输出了一段散文。原因通常是提示词里没有明确要求输出格式,或者模板太复杂 AI 理解不了。

解决办法:在提示词里明确写“请严格按照以下 YAML 格式输出,不要添加任何额外说明文字”,并且把模板简化到最小必要字段。如果还是不行,可以先让 AI 输出 JSON,再用工具转成 YAML。

问题二:工位之间信息丢失

上一个工位输出的信息,下一个工位没用上。比如方案设计里定义了错误码,代码生成时却用了另一套错误码。

解决办法:在每个工位的提示词里,明确列出“你必须使用的输入信息”。比如代码生成工位的提示词里写“错误码必须使用方案设计中定义的错误码,不得自行发明新的错误码”。

问题三:审查工位挑不出问题

AI 审查自己生成的代码时,往往觉得什么都好。

解决办法:换一个会话,换一个模型,甚至换一个提示词风格。比如生成代码时用的是“你是一名资深后端工程师”,审查时改成“你是一名严格的代码审查员,你的任务是找出所有潜在问题,不要放过任何细节”。

4.2 常见问题速查表

问题现象可能原因排查方法解决方案
AI 生成的代码跑不通上下文缺失,AI 猜错了框架或依赖检查提示词里是否包含了框架版本和依赖信息补充项目技术栈和依赖版本
代码风格和项目不一致没有提供参考代码对比生成代码和项目现有代码的风格差异在提示词里附上一个类似功能的现有代码
边界条件遗漏需求文档没写清楚对照需求文档逐条检查代码回到需求澄清工位补充边界条件
并发问题方案设计没考虑并发做并发测试,观察是否出现数据不一致在方案设计工位明确并发策略
审查报告误报太多审查提示词太宽泛检查审查报告里哪些是真问题细化审查维度,明确哪些不算问题
集成时接口对不上任务拆解时接口定义不清晰对比各任务的接口定义在任务拆解工位统一接口契约

4.3 几个我踩过的坑

坑一:需求文档写得太细,AI 反而不会写了

有一次我把需求文档写得非常详细,连每个字段的长度、每个错误码的文案都定好了。结果 AI 生成代码时反而畏手畏脚,因为它觉得“这么详细的需求,肯定有我没理解的地方”。后来我调整了策略:需求文档写清楚“做什么”和“验收标准”,但“怎么做”留给方案设计工位去发挥。

坑二:任务拆得太碎,集成成本飙升

有一次我把一个接口拆成了 8 个任务,每个任务都很小。结果集成的时候发现,各个任务之间的接口定义有细微差异,光是统一接口就花了大半天。后来我调整了拆解粒度:一个接口最多拆成 3-4 个任务,而且接口定义必须在任务拆解工位就统一好。

坑三:审查工位太依赖 AI,漏掉了业务逻辑问题

有一次 AI 审查报告说“代码没问题”,我就直接合并了。结果测试提了个 bug:用户注册成功后,欢迎短信没有发送。原来代码里确实写了发送短信的逻辑,但被一个 if 条件挡住了,而那个 if 条件的判断逻辑是错的。AI 审查时只看了代码本身,没有结合业务需求去验证。后来我在审查工位加了一条:必须对照需求文档逐条验证功能点是否实现。

坑四:流水线太死板,不适合所有场景

这套流水线适合中等复杂度的需求,比如一个完整的接口、一个独立的功能模块。但如果只是改一个文案、调一个样式,走完整流水线就太浪费时间了。后来我给自己定了个规则:改动涉及 3 个以上文件或者涉及数据结构的,走流水线;小改动直接问 AI 就行。

5. 工具选型与流水线落地建议

5.1 工具选型:不追求最新,追求最顺手

流水线能不能跑起来,工具选型很关键。但我的建议是不要追求最新最炫的工具,选你最顺手的就行。

对话工具方面,我主力用一个支持长上下文和文件上传的 AI 助手。长上下文很重要,因为方案设计工位需要把需求文档、数据结构、接口定义一起丢进去。文件上传也很重要,方便我把参考代码直接传上去。

版本管理方面,每个工位的输出我都建议存成文件,用 Git 管理。这样你可以追溯每个需求的完整流水线记录:需求文档是什么、方案是什么、任务怎么拆的、代码怎么生成的、审查报告说了什么。后期出问题时,这些记录就是最好的排查依据。

任务管理方面,我用的是最简单的 Markdown 看板。每个任务一张卡片,包含任务描述、输入输出、验证方式、当前状态。不需要上 Jira 这种重型工具,除非你的团队已经有现成的流程。

5.2 流水线的落地节奏

不要一上来就把六个工位全跑一遍。我的建议是分三步走:

第一步:先跑需求澄清 + 代码生成两个工位。这两个工位是核心,跑通了就能解决大部分“随口问”的问题。需求澄清让你想清楚要什么,代码生成让你拿到符合规范的代码。

第二步:加入方案设计和代码审查工位。当需求稍微复杂一点时,方案设计能帮你理清技术决策,代码审查能帮你发现遗漏。这两个工位是质量保障的关键。

第三步:加入任务拆解和集成验证工位。当需求涉及多个模块、多个接口时,任务拆解能帮你并行推进,集成验证能帮你发现全局问题。

每一步跑稳了再加下一步,不要贪多。

5.3 什么场景适合这套流水线

这套流水线最适合的场景是:中等复杂度、有明确验收标准、需要长期维护的功能开发。比如一个完整的 API 接口、一个独立的功能模块、一次数据结构变更。

不太适合的场景是:一次性脚本、探索性原型、纯样式调整。这些场景走完整流水线太重了,直接问 AI 更快。

还有一个适合的场景是团队协作。当多个人协作开发时,流水线的结构化文档可以作为团队之间的沟通媒介。需求文档、方案文档、任务清单、审查报告,这些文档让每个人都知道当前进展和下一步要做什么,减少了很多口头沟通的成本。

5.4 流水线的持续优化

流水线不是定下来就不变了。我在实际使用中会定期复盘:哪个工位经常出问题、哪个模板需要调整、哪个提示词效果不好。比如我发现需求澄清工位的输出经常缺少“权限校验”相关的边界条件,就在模板里加了一条“权限校验”的必填项。

还有一个优化方向是积累提示词库。每个工位我都有几套不同风格的提示词,针对不同类型的需求。比如代码生成工位,我有“新接口开发”“现有接口修改”“bug 修复”三套提示词,根据任务类型选用。

最后再分享一个小技巧:把流水线的输出当作项目文档的一部分。需求文档、方案文档、审查报告,这些不只是 AI 的输入输出,也是项目的技术文档。后期新人接手时,看这些文档就能快速理解功能的设计思路和实现细节,比看代码注释效率高得多。

这套流水线我跑了大概半年多,最大的感受是:AI 写代码的质量,不取决于 AI 有多强,而取决于你给它的输入有多清晰。把需求开发流程编排成流水线,本质上就是把“想清楚”这件事从脑子里搬到纸面上,让 AI 能看懂、能执行、能验证。这个过程一开始会多花一些时间,但跑顺了之后,返工率会大幅下降,整体效率反而更高。

RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进