Spec Coding 调研

什么是spec coding Spec coding 是一种通过 AI 生成代码和方案的开发方式,它通过先定义"做什么",再决定"怎么做"的方式,帮助开发者聚焦在业务逻辑和架构设计上,而将重复性的编码工作交给 AI 完成。 对比 vibe coding 不同 从研发周期上看,拆解为不同的阶段或者角色,每个阶段都有对应的输入和输出要求 每个角色阶段之间没有状态,不进行上下文持久化和传递 每个阶段都有对应的规范文档,并按照特定的名称持久化在特定的工程目录中 每个阶段记录过程,人工都可以被动或主动进行澄清 文档不是静态的,需要动态变化,不断对齐现实,保持和现实的一致性 优点 通过文档建立持久化的知识库,每个独立任务保持无状态,避免上下文混乱和信息丢失。 文档代表事实真相,与代码保持一致性。文档不是静态的,而是动态变化,不断对齐现实,确保文档和实际代码的同步。 开发者可以专注于"做什么"(业务逻辑和架构设计),而将重复性的编码工作交给 AI 完成,提高开发效率。 通过明确的规范定义,AI 能够准确理解开发意图,生成高质量、可预测的代码,大大减少开发时间和沟通成本。 从研发周期上拆解为不同的阶段或角色(constitution → specify → plan → tasks → implement),每个阶段都有对应的输入和输出要求,流程清晰可控。 每个阶段都记录过程,人工可以被动或主动进行澄清和调整,保持对开发过程的控制。 总结:让 AI 辅助开发变得更加可控、可靠和高效,彻底解决了 AI 编程助手"不可控"的痛点。 spec-kit https://github.com/github/spec-kit spec-kit 介绍 spec-kit 是由 GitHub 开发的规范驱动开发(Spec-Driven Development, SDD)工具,旨在帮助开发团队专注于产品场景而非重复编码,从而构建高质量的软件。它通过先定义"做什么",再决定"怎么做"的方式,让 AI 更好地理解和执行开发任务。 spec-kit 工作流程 graph TD Start([开始项目]) --> Constitution[1. Constitution<br/>定义项目宪法] Constitution --> |核心原则<br/>技术约束<br/>协作规则| Specify[2. Specify<br/>创建项目规范] Specify --> |功能描述<br/>用户场景<br/>业务规则| Clarify{3. Clarify<br/>需要澄清?} Clarify --> |是| ClarifyProcess[澄清模糊点<br/>解决不确定性] ClarifyProcess --> Plan Clarify --> |否| Plan[4. Plan<br/>制定技术方案] Plan --> |架构设计<br/>技术选型<br/>数据模型| Tasks[5. Tasks<br/>任务分解] Tasks --> |可执行任务列表| Analyze{6. Analyze<br/>需要分析?} Analyze --> |是| AnalyzeProcess[一致性分析<br/>验证完整性] AnalyzeProcess --> Implement Analyze --> |否| Implement[7. Implement<br/>任务实施] Implement --> SelectTask[选择任务] SelectTask --> Understand[理解需求] Understand --> WriteCode[编写代码] WriteCode --> WriteTest[编写测试] WriteTest --> CodeReview[代码审查] CodeReview --> Acceptance[验收确认] Acceptance --> MoreTasks{还有任务?} MoreTasks --> |是| SelectTask MoreTasks --> |否| End([项目完成]) style Constitution fill:#e1f5ff style Specify fill:#e1f5ff style Clarify fill:#fff4e1 style Plan fill:#e1f5ff style Tasks fill:#e1f5ff style Analyze fill:#fff4e1 style Implement fill:#e8f5e9 style Start fill:#f3e5f5 style End fill:#f3e5f5 classDef optional fill:#fff4e1,stroke:#ff9800,stroke-width:2px,stroke-dasharray: 5 5 class Clarify,ClarifyProcess,Analyze,AnalyzeProcess optional spec-kit 的开发流程分为五个主要阶段: ...

October 30, 2025 · 5 min · 1053 words

Agent 技术调研

Agent 内容 整个 Agent 相关技术拆为两个大的部分进行介绍,一个是对应的工作流,一个是对应的 Agent 开发相关技术 工作流介绍 顺序执行型:ReAct、Plan & Execute、流水式、提示链 协作优化型:自协商、评估优化、多智能体协作、分层规划 动态编排型:动态编排、自演化、混合模式、路由、并行化、协调者-工作者 顺序执行型 1. ReAct 通过推理(Reasoning)和行动(Acting)交替循环的方式,让Agent在思考和执行工具之间迭代,直到完成任务。 stateDiagram-v2 [*] --> 接收任务 接收任务 --> 推理思考 推理思考 --> 判断是否需要行动 判断是否需要行动 --> 执行工具: 需要行动 判断是否需要行动 --> 生成答案: 无需行动 执行工具 --> 观察结果 观察结果 --> 推理思考 生成答案 --> [*] 2. Plan & Execute 先制定完整的执行计划,然后按照计划逐步执行各个步骤,适合复杂任务的分解与执行。 stateDiagram-v2 [*] --> 接收任务 接收任务 --> 规划阶段 规划阶段 --> 生成执行计划 生成执行计划 --> 执行步骤1 执行步骤1 --> 执行步骤2 执行步骤2 --> 执行步骤N 执行步骤N --> 检查完成状态 检查完成状态 --> 返回结果: 已完成 检查完成状态 --> 重新规划: 需调整 重新规划 --> 生成执行计划 返回结果 --> [*] 3. 流水式 将任务按固定顺序分配到多个专门的Agent,每个Agent处理特定环节后传递给下一个,形成处理流水线。 ...

October 28, 2025 · 7 min · 1370 words

如何写出高质量的 Prompt

整个 AI Agent 的开发流程中,编写高质量的 Prompt 非常重要,目前总结了一些 writing prompt 的技巧,可以作为后续的参考 要点 内容需要详细,不要概括笼统,月具体越好 让模型充当一个角色,让其更加专业和明确 使用分割符来区分输出的不同部分 指定任务完成的步骤,将复杂任务简化 提供示例,给模型进行参考 指定输出长度 内容 1. 确定角色定义 明确定义 AI 的身份和专业背景,这决定了 AI 的回答风格和专业程度。 要点: 具体的职业身份(如:高级软件架构师、产品经理、数据分析师) 相关的专业背景和经验 工作场景和责任范围 与用户的关系定位 示例: ## 角色定义 你是一个专门负责XXX互动游戏框架的高级需求分析师,具备深度的技术架构理解能力和丰富的互动营销产品经验。 2. 确定核心目标 清晰描述希望 AI 完成的主要任务和期望达到的效果。 要点: 主要任务的具体描述 预期的输出结果 成功的衡量标准 目标用户和使用场景 示例: ## 核心目标 - **产出需求文档**:你的主要职责是将复杂的互动营销产品需求与现有的XXX基座能力进行深度结合,系统性地拆分成技术边界清晰、可独立开发和测试的产品包需求模块,并生成标准化的产品包需求文档 3. 确定关键规则 设定 AI 行为的边界和约束条件,确保输出的质量和一致性,迭代过程中可以持续拓展相关规则 要点: 约束AI 的行为 内容的准确性标准 禁止的行为或内容 特殊情况的处理方式 示例: ## 关键规则 - **后端聚焦**:一定只提取后端功能需求(业务逻辑、数据处理、系统集成),必须忽略前端实现细节 - **防简化要求**:严格遵循 `./anti-simplification-rules.md` 中的防简化规则,绝对禁止简化、概述、总结原始需求内容 4. 确定执行流程 定义 AI 处理任务的具体步骤和逻辑顺序。 ...

July 28, 2025 · 2 min · 260 words

Augment 试用

最近试用了下 augment 进行一些需求开发,感觉相比 cursor 还是解决了一些问题,挺好的进行分享下 上下文机制 如何进行跨仓库开发,以前使用 cursor 是通过同时打开两个仓库进行的,但是在 augment 中,可以通过上下文机制进行。 通过这种方式可以给新的仓库添加对应的索引,然后在当前仓库的开发中进行使用 工具 另外一个比较好的点是 augment 提供了一些工具配置,可以一键进行安装使用 任务规划 提供了任务规划,可以让用户手动指定相关任务列表,并且后续能够将本次编辑的任务导出进行保存,后续可以二次进行使用 同理,针对起他通用的agent 任务,augment 也会进行任务拆分,然后逐个实现,只不过这里提供了一个窗口,可以让用户指定任务列表,这针对于用户想要自己创建固定的任务流程是非常有用的 图表展示 不知道为什么,感觉 augment 针对 mermaid 的图标进行了展示优化,看起来比较舒服,如果能够再加一个全屏展示会更好 提示词优化 可以先编写简短或不完整的提示,然后使用提示增强从代码库中添加相关的参考、结构和约定,以便在发送提示之前对其进行改进。这个非常好用

July 17, 2025 · 1 min · 29 words