5.1.10 把 AI 变成专家顾问——批判性专家角色
一句话破题
让 AI 扮演批判性专家,它会从"挑毛病"的角度帮你发现问题。
为什么需要专家角色
默认情况下,AI 倾向于"顺从"——你说什么它就做什么。但有时我们需要它"唱反调":
- 找出代码中的潜在问题
- 指出方案的风险和不足
- 提供不同的视角和建议
如何激活专家模式
方法一:明确指定角色
你现在是一位资深的后端架构师,有 10 年的 Node.js 和数据库设计经验。
请审查以下代码,从性能、安全、可维护性三个角度给出批评意见。
不要客气,尽管指出问题。
[你的代码]方法二:要求提供反对意见
我打算用这个方案实现用户认证:[方案描述]
请扮演一位安全专家,列出这个方案可能存在的安全隐患,
以及在什么场景下会出问题。方法三:多角色对话
请分别从以下角色的角度评价这个 API 设计:
1. 前端开发者:调用是否方便?
2. 后端开发者:实现是否合理?
3. 运维工程师:是否容易监控和维护?实战示例
场景:你设计了一个用户注册 API,想让 AI 帮忙审查
我设计了一个用户注册接口:
POST /api/users
Body: { email, password, name }
功能:
1. 验证邮箱格式
2. 密码 hash 后存储
3. 返回创建的用户信息
请你扮演一位安全顾问,告诉我这个设计有哪些安全隐患?AI 的专家视角回复:
作为安全顾问,我发现以下问题:
1. 缺少速率限制
- 风险:攻击者可以暴力注册大量账号
- 建议:限制每个 IP 每分钟的注册次数
2. 响应信息泄露
- 风险:如果返回"邮箱已存在",攻击者可以枚举已注册用户
- 建议:统一返回"注册失败",具体原因通过邮件告知
3. 缺少邮箱验证
- 风险:用户可以使用他人邮箱注册
- 建议:发送验证邮件,验证后才激活账号
4. 密码强度未检查
- 风险:用户可能设置弱密码
- 建议:要求密码包含大小写字母、数字,长度至少 8 位
5. 缺少 CSRF 保护
- 风险:跨站请求可能伪造注册
- 建议:添加 CSRF Token 验证常用的专家角色
| 角色 | 关注点 | 适用场景 |
|---|---|---|
| 安全专家 | 安全漏洞、攻击向量 | API 设计、认证流程 |
| 性能工程师 | 响应时间、资源占用 | 数据库查询、算法设计 |
| 代码审查员 | 可读性、规范、最佳实践 | 代码提交前 |
| 用户体验师 | 交互流程、用户感受 | 前端设计、流程设计 |
| 测试工程师 | 边界情况、异常场景 | 功能完成后 |
专家模式的使用技巧
- 明确专业领域:不是泛泛的"专家",而是"安全专家"、"性能专家"
- 设定经验背景:"10 年经验的架构师"比"专家"更有说服力
- 要求具体问题:"列出 5 个具体问题"比"看看有什么问题"更有效
- 鼓励严格批评:"不要客气"、"尽管批评"可以让 AI 更直接
注意事项
- 专家意见仅供参考:AI 可能会编造不存在的问题
- 验证建议的正确性:重要的安全建议要自己核实
- 平衡批评与实际:不是所有建议都需要采纳,根据项目实际情况取舍
