提示注入测试 Skill 实战演练:从请求到交付的全过程
安全工程师与开发团队经常要做「提示注入测试」这类事:为大模型应用设计提示注入测试用例。每次都从头写提示词,结果时好时坏;把它做成智能体 Skill,就能让智能体每次按同一套步骤执行,输出结构也更稳定。
背景(虚构)
阿周是一名安全工程师,每周都要做几次提示注入测试。过去靠复制粘贴提示词,结果不稳定。这次团队把它做成了技能,下面记录一次完整运行。
1. 发出请求
阿周在代码、配置与云环境中输入:
帮我做一下提示注入测试,材料是附上的应用说明。
2. 技能被触发
智能体根据技能描述判断任务匹配,加载「提示注入测试」的完整指令。它不需要外部工具,直接按指令处理。
3. 识别外部输入点
“识别外部输入点”是最容易出错的环节,技能里专门写了要求,所以智能体给出了清楚的结果与理由。
4. 构造注入样例
智能体完成“构造注入样例”,并在中间结果里注明依据,方便阿周回看。
5. 运行并记录
“运行并记录”是最容易出错的环节,技能里专门写了要求,所以智能体给出了清楚的结果与理由。
6. 给出防护建议
这一步的产出会作为下一步的输入。智能体在“给出防护建议”时遇到一处含糊的信息,没有自行猜测,而是标注出来等待确认。
7. 交付与复核
智能体交付测试用例与结果,末尾列出两条需人工确认的内容。阿周对照原始应用说明抽查关键信息,修正一处表述后采用。
复盘:这次做对了什么
- 步骤写在技能里,没有遗漏
- 不确定处被标出,而不是被编造
- 遵守了「扫描结论需人工复核,涉及生产的动作走变更流程」
- 属于中等风险:结果会影响业务判断,建议在输出前设置人工审核点
可以改进的地方
阿周发现智能体对团队内部术语理解不一致,于是在技能目录中加了一份术语表(reference.md),并在 SKILL.md 中写明“遇到术语先查表”。更多改法见定制指南。
什么时候用这个技能
- 手头有应用说明,需要在较短时间内得到测试用例与结果
- 同类任务每周出现多次,希望每次处理方式一致
- 结果要交给同事或上级复核,需要统一的结构和清楚的依据
- 新人接手这类工作,需要一个可以照着做的标准流程
反过来,如果只是偶尔做一次,或者任务高度依赖现场判断,直接和代码、配置与云环境里的智能体对话即可,不必专门封装成技能。
交付物结构示例
建议把测试用例与结果固定成下面的结构(示意),方便复核与归档:
## 结论
一句话说明最重要的发现或结果
## 主要内容
- 识别外部输入点:……
- 构造注入样例:……
- 运行并记录:……
- 给出防护建议:……
## 依据
- 引用输入中的具体位置或数据
## 需人工确认
- ……(没有则写“无”)
结构固定之后,复核的人只要先看“结论”和“需人工确认”两部分,就能快速判断结果能否使用。
延伸阅读
说明:文中的配置、代码与目录结构均为示意,用于说明思路;各平台的入口、字段名与能力会更新,落地前请以对应官方文档为准。示例中的数据与场景为虚构,不代表真实案例。