世界上有一种开发方式,叫先想清楚再动手 —— 没错,就是先写规格再写代码
Spec-Driven Development(规格驱动开发),简称SDD,就像盖房子先画图纸。你以为程序员都是先写代码再想逻辑?不,在AI时代,正确的打开方式是——先写一份详细的规格说明(Spec),让AI Agent根据规格去写代码。
2026年5月,GitHub官方发布的 spec-kit 项目(99,329⭐)让这个概念彻底出圈。它的核心理念很简单:
需求 → 直接写代码 → 调试 → 改需求 → 再写代码 → 无限循环...
像周星驰电影里跑龙套的:没剧本,全靠临场发挥。
需求 → 写Spec → AI按Spec生成代码 → 验证 → 交付
像王家卫写分镜:每一帧都有意义,每一个场景都有规格。
# spec-kit 工作流
1. 编写 spec.yaml —— 定义功能、接口、行为
2. spec-kit generate —— AI按规格生成代码骨架
3. spec-kit validate —— 验证代码是否符合规格
4. spec-kit test —— 根据规格自动生成测试用例
5. 迭代:修改spec → 重新生成 → 验证
在OpenClaw中,你可以把Spec-Driven Development融入Agent工作流:
# OpenClaw SDD 工作流配置
# .openclaw/config.yaml
skills:
- name: spec-writer
description: "根据需求文档生成规格说明"
prompt: |
你是一个规格编写专家。根据用户的需求描述,
生成详细的spec.yaml文件,包含:
- 功能描述
- API接口定义
- 输入输出格式
- 边界条件和错误处理
- 性能要求
- name: spec-validator
description: "验证代码实现是否符合规格"
prompt: |
对比spec.yaml和实际代码实现,
检查是否存在偏差,输出验证报告。
cron:
# 每次代码提交后自动验证
- schedule: "on_commit"
task: "spec-validator run"
target: "spec-validator"
把Spec文件放入OpenClaw的工作目录,Agent在编码时会自动参考规格:
# spec.yaml —— OpenClaw Agent的"圣经"
feature:
name: "用户认证模块"
version: "1.0.0"
requirements:
- 支持邮箱+密码登录
- 支持OAuth2.0(Google、GitHub)
- 密码强度:至少8位,包含大小写+数字
api:
endpoints:
- path: /api/auth/login
method: POST
input:
email: string (required)
password: string (required, 8-64 chars)
output:
token: string (JWT)
expires_in: number (seconds)
errors:
401: "邮箱或密码错误"
429: "请求过于频繁,请稍后重试"
behavior:
- 登录失败5次后锁定账号30分钟
- Token有效期7天
- 支持Remember Me延长至30天
# 安装spec-kit
pip install spec-kit
# 初始化项目
spec-kit init my-project
# 生成:spec.yaml, tests/, src/
# 编写规格
cat > spec.yaml << 'EOF'
feature:
name: "待办事项API"
version: "1.0.0"
api:
endpoints:
- path: /api/todos
method: GET
description: "获取所有待办事项"
output:
todos: array[{id: int, title: string, done: bool}]
- path: /api/todos
method: POST
input:
title: string (required, max 200)
output:
id: int
title: string
done: bool (default: false)
EOF
# AI根据规格生成代码
spec-kit generate --from spec.yaml --lang python
# 验证实现
spec-kit validate --spec spec.yaml --src ./src
# 自动生成测试
spec-kit test --spec spec.yaml --output ./tests
# 用OpenClaw子Agent实现SDD流水线
# 主Agent负责协调,子Agent分工执行
# Step 1: Spec编写Agent
spec_agent:
task: "分析需求,生成spec.yaml"
skills:
- spec-writer
output: "spec.yaml"
# Step 2: 代码生成Agent
code_agent:
task: "根据spec.yaml生成代码实现"
depends_on: spec_agent
skills:
- code-generator
input: "spec.yaml"
output: "src/"
# Step 3: 验证Agent
validate_agent:
task: "验证代码是否符合spec"
depends_on: code_agent
skills:
- spec-validator
input: ["spec.yaml", "src/"]
output: "validation-report.md"
# 如果验证失败,回到Step 1修改spec
# 如果验证通过,自动创建PR