AI Coding的 CRIPS 模式介绍
基于AI编码开发,重要的一点让AI有足够的上下文辅助推理判断,再高效实施 CRISP 原则 (Context, Role, Issue, Scope, Preference)的关键在于:将模糊需求转化为 AI 可精准理解、可操作、可验证的结构化指令。尤其在使用 Trae + GLM-4.7 这类高能力大模型平台时,CRISP 不仅是"写得清楚",更是"引导模型按工程思维推理"。
以下是 高效实施 CRISP 原则的实操方法论,包含模板、技巧与避坑指南:
一、CRISP 五要素的高效构建策略
1. Context(上下文)------ 让 AI "知道你在哪个世界"
✅ 高效做法:
- 用 技术栈三元组 快速定位:
[框架] + [状态管理] + [平台]示例:Taro 4 + React 18 + Zustand + 微信小程序 - 补充 关键依赖版本 (若涉及时序/兼容性问题): "使用 @tarojs/taro 4.0.8,GLM-Vision API v2"
- 附上 架构简图关键词(如"单页应用""微前端子模块")
❌ 避免:
"这是一个小程序项目" → 太泛,无法判断是原生、Taro 还是 UniApp。
2. Role(角色)------ 引导 AI 的"专业视角"
✅ 高效做法:
- 指定 复合角色 ,而非泛泛"开发者": "你是一名精通异步状态管理的小程序性能优化专家"
- 若涉及多端,强调 平台特性意识 : "请以微信小程序主线程与 Worker 通信限制为前提思考"
💡 技巧:角色越具体,模型越倾向调用相关知识库(如小程序生命周期、React 渲染机制)。
3. Issue(问题)------ 用"可观测现象 + 预期行为"定义问题
✅ 高效做法:
-
采用 "When--Then--But--Should" 模板:
When 用户在 1 秒内连续点击上传按钮两次,
Then 第二个请求的 loading 状态覆盖了第一个,
But 第一个请求完成后仍尝试更新已卸载的组件,
Should 每次上传应独立管理状态,且取消过期请求。 -
附上 错误日志片段或控制台警告(如有):
"控制台报错:Can't perform a React state update on an unmounted component."
❌ 避免:
"试衣功能有时卡住" → 无法复现、无边界。
4. Scope(范围)------ 锁定"最小修改域"
✅ 高效做法:
- 明确 文件路径 + 函数名 (利用 Trae 的代码索引能力): "仅限修改:src/pages/tryon/index.tsx 中的 handleUpload 和 renderResult 函数"
- 若跨模块,用 依赖箭头 表示流向: "影响链:useTryOn.ts → TryOnView.tsx,不涉及后端 API 层"
💡 提示:范围越小,@SOLO Coder 的修改越安全,Plan 越聚焦。
5. Preference(偏好)------ 设定"工程约束"
✅ 高效做法:
- 列出 "必须用 / 禁止用" 技术 : "必须使用 AbortController 取消请求;禁止引入新状态管理库"
- 指明 质量优先级 : "优先保证用户体验(无卡顿),其次代码简洁性"
- 若有 团队规范 ,直接引用: "遵循项目 ESLint 规则:no-async-in-loops"
二、CRISP 高效模板(可直接复制使用)
markdown
【Context】
技术栈:{框架} + {状态管理} + {平台},关键依赖:{版本}。
架构特点:{如:单页应用 / 组件化设计 / 使用 Web Worker}
【Role】
你是一名 {具体角色,如:小程序性能优化专家 / React 状态流设计师}
【Issue】
When {触发条件},
Then {实际现象},
But {导致的问题或错误},
Should {期望行为}。
(可选)错误日志:{粘贴关键报错}
【Scope】
仅限修改以下文件/函数:
- {文件路径1}:{函数A, 函数B}
- {文件路径2}:{Hook 名称}
【Preference】
- 必须使用:{技术/模式}
- 禁止使用:{技术/反模式}
- 优先级:{如:稳定性 > 性能 > 代码行数}
三、结合 Trae + GLM-4.7 的进阶技巧
-
分步输入 CRISP
若 Trae 支持多轮对话,可先输入 Context + Role,让模型"进入角色",再逐步提供 Issue/Scope。
-
用代码片段增强 Context
在 Context 后附加关键代码(如 useTryOn 的核心逻辑),GLM-4.7 的长上下文能力可精准理解现状。
-
要求模型"复述问题"
在 prompt 末尾加一句:
"请先用自己的话复述问题,确认理解无误后再生成 Plan。"
这能显著减少误解。
-
自动化 CRISP 检查
团队可建立简单 checklist,在提交 Plan 前自问:
- ✅ 是否明确技术栈?
- ✅ 问题是否可复现?
- ✅ 范围是否小于 3 个文件?
- ✅ 是否有明确的"禁止项"?
四、常见误区与纠正
| 误区 | 纠正 |
|---|---|
| "写得越长越好" | ❌ → 聚焦 关键差异点,冗余信息会稀释信号 |
| "AI 应该自己猜上下文" | ❌ → 显式声明比隐式假设更可靠 |
| "Preference 不重要" | ❌ → 没有约束的 Plan 往往生成理想化但不可落地的方案 |
CRISP 原则的本质,是 将人类工程师的领域知识结构化地"注入"AI 的推理过程 。当你熟练运用这一框架,Trae + GLM-4.7 就不再是一个"代码生成器",而是一个能与你协同思考的 智能工程伙伴。
📌 行动建议:下次提交 Plan 请求前,花 2 分钟套用上述模板。你会发现,@SOLO Coder 的输出准确率显著提升,返工率大幅下降。