在你向客户,承包商,或你无法完全控制的任何输入披露一个工具使用语言模型之前,先让另一个模型攻击它.
这种简短的红队循环在使用自由模型端点和自由服务器时成本很小,它往往在人类发现它们进入生产之前会浮出一出即时注入和工具被滥用的故障.
代理商的问题不是他们偶尔会误解请求;而是指令、数据和工具输出都共享相同的上下文窗口。
攻击者可以在文件,罚单,或网页中隐藏指令,而你的代理人可以将这些单词作为原始操作规则的一部分来对待.
OWASP对LLM应用的指导将即时注射描述为常见的故障模式之一,当代理机可以调用搜索,发送电子邮件,或更新客户记录等工具时,风险会迅速增加.
手试"前作"等三四个短语,让你有信心,但不能覆盖.
自由攻击者模型可以产生数十种变体,重新表达同一种攻击,将合法请求与隐藏命令结合起来,或者利用你特工所暴露的工具的名称和描述.
它不需要是现有最强的模型;它只需要具有足以拉长你的假设的对抗性.
你不需要生产部署才能从中获取价值。
一个在自由服务器上运行的小脚本就足够了,因为少数几发攻击弹通常暴露出数千个正常对话不会出现的措辞空白.
关键不是构建一个官方基准;而是在您仍然可以快速更改系统的同时,使负空间明显可见.
如果您没有备用的GPU或大额的评价预算,MonkeyCode的免费模式访问和免费服务器选项是主持这个循环的一个实用方法.
披露:这篇文章是作为MonkeyCode产品推广的一部分而编写的.
绳子是三段的回路 首先,目标收到一个用户输入,并返回其最后答案加上它试图使用的任何工具。
第二,攻击者模型收到目标输出和被允许工具的简短描述,然后写下对抗性输入.
第三,法官模型或一套小规则检查目标是否披露了系统指令,称为被禁工具,或者给出了违反书面政策的答案.
每个回合都附加在JSONL文件上,以便日后复制失败.
下面的草图是故意通用的,这样您就可以在您的代理,工具处理器,以及任何OpenAI兼容客户端中互换.
它记录了输入,回复,试图使用的工具呼叫,以及简单的违规标签.
在真正的工程中,目标. handle 将您正在构建的代理件包起来,包括它的系统即时和工具路由器.
攻击者和判断者可以是同一种便宜的模型或两种不同的模型;重要的部分是攻击者看到工具政策,因为这正是许多有用的攻击思想的出处.
如果允许您的代理人阅读文档并发送电子邮件,攻击者最终会尝试在文档中而不是直接用户消息中放置指令.
不将输出视为二进制通过或失败 。
记录发生何种侵权行为:泄露的系统指令、被禁的工具企图或破解政策。
这些分类告诉你 代理设计中哪部分需要注意 被泄露的指令表明,即时需要更明确的界限.
一个被禁工具尝试指出缺少批准逻辑.
违反政策的答复意味着内容准则没有得到足够有力的执行。
主要限制在于自由模式仍然可以错过新颖的攻击模式,尤其是那些取决于您特定域的工具副作用的模式.
因为廉价的模型倾向于向狭义的一组模板漂移,你应该用几个已知的例子来给攻击者播种,或者偶尔切换到不同的模型.
绳子也只看到文字通道; 它wi