AI代码专项审查Skill
适用场景
代码审查环节中,项目包含模型调用 SDK、Prompt 拼接、工具调用、RAG 检索或 Agent 编排代码,需要专项排查 AI 特有风险时使用。普通逻辑缺陷另行使用「代码逻辑缺陷审查Skill」。
执行步骤
- 定位 AI 代码入口:搜索模型 SDK 调用点、Prompt 组装处、工具调用定义、模型输出解析处。
- 按风险面逐类排查(见下表)。
- 每条发现定位:文件 + 行号 + 证据片段 + 触发场景 + 影响 + 修复建议。
- 分级:P0 安全/资损/PII 泄露,P1 功能缺陷或高概率触发,P2 隐患。
风险面清单
| 风险面 | 排查要点 |
|---|---|
| Prompt 注入面 | 用户输入未经隔离直接拼入系统提示词;工具调用返回内容未过滤回流给模型;外部文档/网页内容可能被模型解读为指令;输出中要求执行敏感动作的提示词无拦截 |
| 模型调用凭证 | API Key 硬编码在代码/配置/前端;前端直连模型服务导致密钥暴露;日志明文打印密钥或请求头;凭证无最小权限、无轮换机制 |
| 输出处理 | 模型输出未校验直接拼接 SQL/Shell 命令;输出直接渲染到前端(存储型 XSS);JSON 解析无异常处理与格式校验;输出长度/枚举值无约束直接入业务库 |
| 成本失控 | 无 max_tokens、无超时、无重试上限与退避;历史消息全量回传导致上下文无限膨胀;循环调用 Agent 无步数上限;无调用量监控与费用告警 |
| 数据与合规 | 敏感数据未脱敏直接送入模型;Prompt 日志留存 PII;无调用审计与留存策略 |
规范要点
- 每条结论必须附证据:文件路径 + 行号 + 关键代码片段,禁止「存在注入风险」式空泛结论。
- 注入面问题必须写出具体可利用路径:什么输入 → 进入哪段 Prompt → 模型可能产出什么危害动作。
- 成本类问题必须量化:给出单次调用 token 量级估算与放大系数(并发用户数 × 调用频次 × 上下文膨胀倍数)。
- 不能确定是否可被利用时,降级为 P2 并注明「需渗透验证」。
输出模板
## AI代码专项审查报告
| # | 风险面 | 位置(文件:行号) | 证据 | 触发场景 | 影响 | 级别 | 修复建议 |
## 成本量化估算(单次 token × 放大系数)
自检清单
- 每条发现附文件与行号证据
- 注入路径描述可复现、非空泛
- 成本问题有量化估算
- 四大风险面(注入/凭证/输出/成本)均已覆盖排查