67837df8d0
- 新增全套考试卷、评估卷、参考答案与考试培训包模板 - 修正slidev培训课件:调整模块标题、链路图缩放,替换工单示例为通用业务对象 - 修正课堂红线表述为证据红线,将小组作业调整为个人作业要求 - 新增权限、状态流转、审计日志、看板指标四类可复用业务规则块 - 整理AI工程技能交付包,迁移旧资产至客户专属交付包并统一术语 - 新增考试输出模板与TRAE使用记录文档
213 lines
6.5 KiB
Markdown
213 lines
6.5 KiB
Markdown
# 模块 3:若依场景中的幻觉死循环
|
|
|
|
<div class="mt-6 text-sm">
|
|
|
|
**常见表现:**
|
|
- AI 说所有接口都有权限校验 → 但不给 Controller 依据
|
|
- AI 说操作日志完整 → 但不给注解或 AOP 依据
|
|
- AI 说按钮权限安全 → 但只看到前端代码
|
|
</div>
|
|
|
|
<!--
|
|
在若依项目里,AI 很容易因为它“知道若依是权限系统”就过度自信。
|
|
它说所有接口都有权限校验,但不给 Controller 依据。
|
|
它说操作日志完整,但不给注解或 AOP 依据。
|
|
它说按钮权限安全,但只看到了前端按钮隐藏。
|
|
这就是需要切断的幻觉。
|
|
-->
|
|
|
|
---
|
|
|
|
# 幻觉控制顺序
|
|
|
|
<div class="grid grid-cols-3 gap-4 mt-10">
|
|
<div class="text-center p-6 rounded-xl bg-blue-500/10 border border-blue-500/30">
|
|
<div class="text-2xl mb-2">1️⃣</div>
|
|
<div class="font-bold">先找证据</div>
|
|
</div>
|
|
<div class="text-center p-6 rounded-xl bg-emerald-500/10 border border-emerald-500/30">
|
|
<div class="text-2xl mb-2">2️⃣</div>
|
|
<div class="font-bold">再判断原因</div>
|
|
</div>
|
|
<div class="text-center p-6 rounded-xl bg-amber-500/10 border border-amber-500/30">
|
|
<div class="text-2xl mb-2">3️⃣</div>
|
|
<div class="font-bold">最后给方案</div>
|
|
</div>
|
|
</div>
|
|
|
|
<!--
|
|
遇到这种情况,不要继续让 AI 给结论。
|
|
先让它找证据:文件、类、方法、注解、调用关系。
|
|
然后再判断问题。
|
|
最后才给方案。
|
|
-->
|
|
|
|
---
|
|
|
|
# 证据矩阵:事实、推测、不确定
|
|
|
|
<div class="mt-5 text-sm">
|
|
|
|
| 类型 | 判断标准 | 输出写法 |
|
|
|---|---|---|
|
|
| 已确认事实 | 能指向文件、函数、注解、配置或测试结果 | “在 xxxController#remove 看到 @PreAuthorize...” |
|
|
| 合理推测 | 有局部证据,但缺少完整链路 | “可能依赖全局拦截器,仍需查看配置” |
|
|
| 无法确认 | 当前上下文没有证据 | “未引用到日志 AOP,暂不能判断是否记录日志” |
|
|
|
|
</div>
|
|
|
|
<div class="mt-4 p-3 rounded-xl bg-red-500/10 border border-red-500/30 text-sm">
|
|
<strong>证据红线:</strong>没有证据时,禁止写“已完成”“一定安全”“肯定没有问题”。
|
|
</div>
|
|
|
|
<!--
|
|
幻觉控制的关键,是让 AI 学会把事实、推测和无法确认分开。
|
|
只要能指向文件、函数、注解或配置,才叫事实。
|
|
有部分依据但链路不完整,只能叫推测。
|
|
上下文里没有看到,就必须写无法确认。
|
|
-->
|
|
|
|
---
|
|
|
|
# 若依证据收集 Prompt
|
|
|
|
<div class="mt-4 p-4 rounded-xl bg-blue-500/10 border border-blue-500/30 text-sm">
|
|
|
|
```
|
|
请先不要修改代码。请围绕"用户管理删除按钮权限"收集证据:
|
|
1. 前端按钮在哪个页面
|
|
2. 使用了哪个权限字符
|
|
3. 前端如何判断按钮显示
|
|
4. 后端删除接口在哪里
|
|
5. Controller 是否有权限注解
|
|
6. 是否记录操作日志
|
|
7. 无法确认的内容
|
|
```
|
|
|
|
</div>
|
|
|
|
<!--
|
|
这是若依场景下的证据收集 Prompt。
|
|
它没有直接问“有没有风险”,而是先要求 AI 找证据。
|
|
前端按钮在哪里,权限字符是什么,前端怎么判断,后端删除接口在哪里,Controller 是否有权限注解,是否记录操作日志,哪些无法确认。
|
|
这些证据收集完,才能判断风险。
|
|
-->
|
|
|
|
---
|
|
|
|
# 证据表输出模板
|
|
|
|
<div class="mt-4 p-4 rounded-xl bg-blue-500/10 border border-blue-500/30 text-sm">
|
|
|
|
```md
|
|
| 审查项 | 证据位置 | 证据内容 | 结论等级 | 不确定点 |
|
|
|---|---|---|---|---|
|
|
| 前端删除按钮 | 文件 + 行为 | 权限字符/显示条件 | 已确认/推测/未知 | 需要补充什么 |
|
|
| 后端删除接口 | Controller + 方法 | 请求路径/权限注解 | 已确认/推测/未知 | 需要补充什么 |
|
|
| 操作日志 | 注解/AOP/配置 | 日志类型/触发条件 | 已确认/推测/未知 | 需要补充什么 |
|
|
| 验证方式 | 测试步骤 | 账号/操作/预期结果 | 已确认/待执行 | 需要谁确认 |
|
|
```
|
|
|
|
</div>
|
|
|
|
<!--
|
|
这是建议学员要求 TRAE 输出的表格。
|
|
表格让证据可复查,也方便讲师点评。
|
|
如果某一列空白,就说明 AI 还没有真正完成证据审查。
|
|
-->
|
|
|
|
---
|
|
|
|
# 原因判断 Prompt
|
|
|
|
<div class="mt-4 p-4 rounded-xl bg-emerald-500/10 border border-emerald-500/30 text-sm">
|
|
|
|
```
|
|
请基于证据判断风险:
|
|
- 每个风险必须对应文件、函数或注解
|
|
- 区分已确认事实和推测
|
|
- 无法确认的内容写入不确定点
|
|
- 不要直接下安全结论
|
|
```
|
|
|
|
</div>
|
|
|
|
<!--
|
|
第二步是原因判断。
|
|
比如发现前端按钮有权限字符,但后端删除接口没有找到权限注解。
|
|
这时可以说“存在接口级权限待确认风险”,但不能直接说“系统不安全”。
|
|
如果没有看到后端文件,也要写无法确认,而不是猜测。
|
|
-->
|
|
|
|
---
|
|
|
|
# 追问模板:把 AI 拉回证据
|
|
|
|
<div class="mt-4 p-4 rounded-xl bg-red-500/10 border border-red-500/30 text-sm">
|
|
|
|
```md
|
|
你刚才的结论缺少代码依据。
|
|
请重新输出:
|
|
1. 每条结论对应的文件路径和函数/注解
|
|
2. 哪些是已确认事实,哪些只是推测
|
|
3. 哪些文件还需要我补充引用
|
|
4. 在证据不足前不要给最终安全结论
|
|
```
|
|
|
|
</div>
|
|
|
|
<!--
|
|
当 AI 开始空泛总结时,不要继续追问“那怎么改”。
|
|
先用这个追问模板把它拉回证据。
|
|
这也是团队 rules 里应该写进去的一条:证据不足时,必须先请求补充上下文。
|
|
-->
|
|
|
|
---
|
|
|
|
# 方案生成 Prompt
|
|
|
|
<div class="mt-4 p-4 rounded-xl bg-amber-500/10 border border-amber-500/30 text-sm">
|
|
|
|
```
|
|
请基于已确认风险给出方案:
|
|
修改文件 · 修改方法 · 新增或调整权限注解 ·
|
|
是否需要操作日志 · 影响范围 · 验证方式 · 测试建议
|
|
```
|
|
|
|
</div>
|
|
|
|
<!--
|
|
第三步才给方案。
|
|
如果确认证据显示后端接口缺少权限注解,才建议补权限注解。
|
|
如果敏感操作缺少日志,才建议补操作日志。
|
|
每个方案都要说明文件、方法、影响范围、验证方式和测试建议。
|
|
-->
|
|
|
|
---
|
|
|
|
# 幻觉控制验收
|
|
|
|
<div class="grid grid-cols-2 gap-4 mt-6 text-sm">
|
|
<div class="p-4 rounded-xl bg-emerald-500/10 border border-emerald-500/30">
|
|
<div class="font-bold mb-2">通过</div>
|
|
|
|
- 结论能追溯到文件/函数/注解
|
|
- 风险分为事实、推测、未知
|
|
- 修改建议包含影响范围
|
|
- 验证步骤能被人工执行
|
|
</div>
|
|
<div class="p-4 rounded-xl bg-red-500/10 border border-red-500/30">
|
|
<div class="font-bold mb-2">不通过</div>
|
|
|
|
- 只有“建议加强权限”这类空话
|
|
- 把前端按钮隐藏当安全边界
|
|
- 看不到后端代码却断言接口安全
|
|
- 没有无权限账号验证步骤
|
|
</div>
|
|
</div>
|
|
|
|
<!--
|
|
第三模块结束时,学员应该知道什么叫“靠谱的 AI 输出”。
|
|
不是文字长,而是能追溯、能区分不确定、能执行验证。
|
|
-->
|