引言:为什么需要"严肃编程"?
Costrict(读作/koʊ'strɪkt/),名字源于strict coding,是深信服的一款开源、实用的AI编程工具,基于全球领先的代码大模型,为开发团队提供代码生成、代码补全、代码审查、智能问答、注释生成、单测编写等全方位支持。
和其他AI IDE 不一样的是,costrict的聊天窗口默认放在左边,同时增加几个常用但是在其他IDE没有的功能。

在这里插入图片描述
在传统 AI 编程工具中,开发者往往直接对模型说:"帮我写个登录功能"。这种方式看似高效,却隐藏三大问题:
- 需求模糊 → 产出不可控
- 缺乏设计 → 架构混乱
- 无测试保障 → 代码不可靠
为解决这些问题,Costrict 提出了 "Strict 模式"(严肃编程模式) ------ 一种将 需求澄清 → 架构设计 → 任务拆解 → 自动测试 全流程结构化、可追溯、自动化的 AI 编程范式。
如果你也迫不及待想体验,可以小手指翻到文章末尾,去官网下载体验。
一、什么是 Strict 模式?
Strict 模式不是简单的"AI 写代码",而是一个 多智能体协作的工程流水线,包含以下核心阶段:
| 阶段 | 负责 Agent | 产出物 |
|---|---|---|
| 需求澄清 | Requirement Agent |
requirements.md(带验收标准) |
| 架构设计 | Architect Agent |
design.md(含技术选型、序列图) |
| 任务拆解 | Task Agent |
tasks.md(可执行子任务列表) |
| 代码实现 | Coder Agent |
实际代码文件 |
| 测试验证 | Tester Agent |
单元测试 + 集成测试 |
✅ 所有产出物均保存在
.cospec/{功能名}/目录下,支持 Git 版本管理与变更追溯。
二、实战:开发"用户登录接口"功能
步骤 1:启动 Strict 模式
在 Costrict 编辑器中:
-
点击 "Strict Mode"
-
输入一句话需求:
"实现一个支持邮箱/密码登录的 RESTful 接口,使用 JWT 鉴权,密码需加密存储"

步骤 2:自动生成需求文档(requirements.md)
输入需求后,Costrict 会自动分析需求,生成结构化文档,例如:
markdown
## FR-001: 用户可通过邮箱和密码登录
- **输入**:{ email: string, password: string }
- **输出**:{ token: string } 或 401 错误
- **验收标准**:
- 密码错误时返回 401
- 成功登录返回 JWT token(有效期 2 小时)
- 邮箱不存在时返回 401(不区分邮箱/密码错误,防枚举)
## FR-002: 密码必须加密存储
- 使用 bcrypt 加盐哈希
- 加盐强度 ≥ 12
💡 你可手动编辑此文件,或与
Requirement Agent对话调整。

在这里插入图片描述
步骤 3:生成架构设计(design.md)
.cospec/{功能名} 目录下会生成对应需求、设计、 任务文档。

在这里插入图片描述
系统自动调用 Architect Agent,输出:
bash
## 技术栈
- 后端:Go + Gin
- 数据库:PostgreSQL
- 密码加密:bcrypt(cost=12)
- JWT 签名:HS256,密钥从环境变量读取
## 接口定义
POST /api/v1/auth/login
Request: { "email": "user@example.com", "password": "xxx" }
Response: { "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..." }
## 序列图
用户 → API Gateway → AuthService → UserRepository → 返回 token
步骤 4:拆解为可执行任务(tasks.md)
Task Agent 将需求分解为原子任务:
diff
- [ ] TASK-01: 创建 User 模型(含 email, password_hash 字段)
- [ ] TASK-02: 实现 UserRepository(CRUD + findByEmail)
- [ ] TASK-03: 实现 AuthService(login 方法,含密码验证)
- [ ] TASK-04: 添加 /login 路由并集成 AuthService
- [ ] TASK-05: 编写单元测试(覆盖正确/错误密码场景)
每个任务旁有 Run 按钮 ,点击即可由 Coder Agent 自动实现。
步骤 5:自动编写代码与测试
点击 Run 后:
-
Costrict 修改
user.go、auth_service.go、auth_handler.go -
同时生成
auth_service_test.go,包含:gofunc TestLogin_WrongPassword(t *testing.T) { // 模拟用户存在但密码错误 // 断言返回 401 } -
所有变更自动提交到 Git(可选)
三、需求变更?全流程自动同步!
假设产品临时要求:"增加登录失败 5 次锁定账户 10 分钟"。
变更流程:
-
编辑
requirements.md,新增 FR-003 -
点击任意文档中的
Update按钮 -
Costrict 自动:
- 更新
design.md(增加 Redis 缓存失败计数) - 重生成
tasks.md(新增"实现账户锁定逻辑"任务) - 保留已完成任务,仅追加新任务
- 更新
🔁 整个过程无需手动同步,避免"改了需求但忘了改代码"的经典问题。
四、为什么 Strict 模式更可靠?
| 维度 | 传统 AI 编程 | Costrict Strict 模式 |
|---|---|---|
| 需求明确性 | 模糊自然语言 | 结构化需求 + 验收标准 |
| 设计完整性 | 无 | 架构文档 + 序列图 |
| 任务可追溯 | 无 | 需求 ↔ 任务 ↔ 代码 ↔ 测试 全链路关联 |
| 变更可控性 | 易遗漏 | 自动同步 + 变更记录 |
| 测试覆盖率 | 依赖人工 | 自动生成 + 执行验证 |
五、适用场景推荐
- ✅ 中大型功能开发(如支付、认证、数据导入)
- ✅ 合规性要求高的项目(金融、医疗、政务)
- ✅ 团队协作场景 (新人可通过
.cospec快速理解上下文) - ❌ 简单脚本/样式调整(建议直接用普通模式)
六、总结:AI 编程的"工程化"跃迁
Costrict 的 Strict 模式,标志着 AI 编程从 "玩具级辅助" 迈向 "生产级工程" 。它不是取代开发者,而是将人类从"写代码"解放为"定义问题 + 审核结果",同时确保整个过程:
- 可审计(所有决策留痕)
- 可重复(一键重现实现)
- 可验证(测试驱动交付)
costrict下载地址 costrict.ai/
本文使用 mdnice 排版