VC从感觉到工程

入门教程 · Lesson 08

与AI进行项目需求沟通

复盘当前教程项目与 AI 的真实需求沟通过程:先用 grill-me 追问,再把确认过的范围、取舍和验收标准交给 Agent 执行。

约 20 分钟需求沟通 / grill-me / 范围管理

完成后你能:

  • 使用 grill-me 把模糊想法逐轮收敛成明确决策
  • 区分已确认、待决定和明确排除的内容
  • 用对话记录、任务清单和 Git diff 验证需求是否落地

Agent 最容易生成的是一个“看起来像教程”的网站。真正困难的是先把范围、取舍和验收方式说清楚。本章不额外创建没有实例的需求文档,而是复盘这个项目实际发生的需求沟通:你提出方向,grill-me 追问,双方逐轮确认,Agent 再按确认结果修改页面。

第一步:从一句想法开始

最初的需求是:构建一个面向企业零基础用户的中文 Vibe Coding 教程网站,使用 Astro、MDX 和 TypeScript,部署到 GitHub Pages,并分成历史、工具、实践和方法几个部分。

这时仍有很多未知项:历史写多长、工具讲哪些、实践用什么主线、方法是否引用社区概念、哪些内容必须删掉。没有直接让 Agent 开始写页面,而是先安装并使用 grill-me,要求它连续提问、等待回答,不替用户补全未确认的决定。

第二步:用追问收敛历史范围

沟通先解决“历史写什么”。经过几轮确认,范围从泛泛的行业发展收敛为:从 2025 年开始,用少量时间轴讲清模型发布、Coding Agent、Skills、长期运行 Agent 和 Agentic Engineering 的演进。

随后又把时间轴调整为双轨:左侧是模型发布,右侧是 AI 工具和 Agent 工作方式。具体排除了模型训练史、融资新闻和每个小版本;时间点按真实发布日期排列,两侧可以错开,不为了排版强行配对。这个决定直接影响了历史页的结构和每张卡片的文案。

第三步:明确模型与工具边界

工具部分不是“把所有热门产品列一遍”,而是先确定模型范围:国外闭源只讲 Claude、OpenAI 和 Gemini;中国开放权重只讲 DeepSeek、GLM 和 Kimi。实践主线采用 Linux、企业提供的 OpenAI 兼容 API 和 OpenCode。

沟通中还明确了几项排除项:不讲云端 Agent 章节,不保留企业选型章节,OpenCode 放在终端 Agent 后面;工具地图只保留模型、编辑器型工具、终端 Agent、OpenCode 和 Skills 等实际需要的内容。这样,Agent 的任务不再是“介绍工具”,而是按已确认的边界重排目录、修改标题并删除多余页面。

第四步:把方法变成课程

方法部分也经过了对齐,而不是由 Agent 自行发明。最终保留八个工程方法:Prompt Engineering、Context Engineering、Spec-Driven Development、Harness Engineering、Loop Engineering、Test-Driven Development、Human-in-the-Loop 和 Skills Engineering,并补充社区中实际流行的 grill-meautoresearch 等 Skill 示例。

每个方法先讨论“是否适合本教程”和“有没有可引用的 Skill 或 Plugin”,确认后才写入页面。比如 Loop Engineering 的示例替换为 autoresearch,而不是把未经确认的工具硬塞进课程。

第五步:根据反馈持续改版

真实沟通不会在第一次回答后结束。本项目后来又根据页面检查结果做了多轮小步修改:

  • 将导航统一为“历史回顾、工具介绍、入门教程、工程方法、实践案例”;
  • 单独增加“编写项目规则 AGENT.md”章节,并把当前项目的规则作为实例;
  • grill-me 作为第一个 Skill,在 skills.sh 搜索并安装;
  • 删除 GitHub Pages、移动端无障碍等不属于当前入门路径的章节;
  • 合并生成、迭代、测试审查相关内容,保持课程顺序连续;
  • 看到不准确的模型名称或多余提示语时,直接提出具体删除或替换要求。

每次修改都先确认“改什么”,再让 Agent 执行,最后用测试、构建和页面内容检查验证结果。需求的真实产物不是一份从未创建的文档,而是对话中的已确认结论、仓库里的 MDX、Git diff 和通过的构建结果。

可以复用的沟通模板

在任何已有项目中,可以从下面这段话开始:

使用 grill-me,先不要修改文件。
请先通过连续追问帮我明确:
1. 这次改动服务谁,解决什么问题;
2. 哪些页面、功能和文字必须保留;
3. 哪些内容要删除、合并或改名;
4. 技术、视觉、发布和安全边界是什么;
5. 最终用什么测试、页面检查或用户反馈验收。
每次只问必要的问题,等我回答后再继续;不要替我猜测未确认的需求。

沟通结束后,让 Agent 先复述“已确认 / 待决定 / 明确排除”三栏,再执行修改。这样可以在不额外创建需求文档的情况下,保留清晰的决策链,并让后续的 diff 和测试结果都能回溯到具体讨论。

完成检查