LACUNA: Safe Agents as Recursive Program Holes
LACUNA 是一种面向大语言模型智能体的安全编程模型,它将动作视为由模型填充的类型化程序空洞,并在执行前通过静态类型检查进行验证,从而在统一智能体控制流与生成代码的同时,防止运行时故障并限制工具访问范围。
原始论文采用 CC BY 4.0 许可(http://creativecommons.org/licenses/by/4.0/)。 这是对下方论文的AI生成解释。它不是由作者撰写或认可的。如需技术准确性,请参阅原始论文。 阅读完整免责声明
想象一下,你是某公司的首席执行官,你雇佣了一位才华横溢但稍显不可靠的助理(即人工智能)来替你工作。
旧方法(当前智能体):
通常,你会给助理一个具体而微小的指令:“致电电话公司。”助理会照做,然后停止并等待你的下一条命令。你手持记事板,决定任务的顺序,并掌握着办公室的钥匙。助理无法自行决定改去联系银行,或重写办公室规则,因为他们一次只能按下一个按钮。
问题所在:
有时,助理会被你写下的一条棘手备注(即“提示注入”)搞糊涂,或者在任务进行到一半时犯错,导致办公室陷入混乱且不一致的状态。由于助理只被允许按按钮,他们无法拆毁大楼,但仍能在他们所在的房间内造成大量混乱。
新方法(LACUNA):
这篇论文介绍了LACUNA,它改变了这种关系。你不再给助理一个单一的按钮去按,而是给他们合同中的一个空白处(即“类型化空位”),并说:“用你解决问题所需的任何代码来填充这个空白,但它必须完美契合我们的法律合同。”
以下是其工作原理,使用简单的类比说明:
1. “魔法合同”(类型化空位)
想象你有一份合同,其中规定:“本部分的最终结果必须是一个数字列表。”
- 你询问人工智能:“找出这个列表中的质数。”
- 人工智能会写出一整段指令(代码)来解决这个问题。
- 安全检查: 在人工智能被允许实际执行任何操作之前,一位严格的检查员(即编译器)会检查人工智能撰写的这段文字。
- 这段文字是否真的会产生一个“数字列表”?如果人工智能试图返回一个“苹果列表”,检查员会立即拒绝它。
- 人工智能是否试图使用他们不被允许接触的工具?(例如,试图打开他们没有钥匙的文件。)检查员也会发现这一点。
- 结果: 如果人工智能犯错,合同会在任何行动发生之前被拒绝。办公室保持整洁。人工智能收到拒绝通知,再次尝试,并写出更好的段落。
2. “全有或全无”规则
在旧方法中,如果人工智能试图“删除一个文件”,然后“计算一个总和”,而计算失败,文件可能已经被删除了。
在 LACUNA 中,这就像一块单一且不可分割的黏土。
- 人工智能雕刻整块黏土。
- 检查员一次性检查整个块。
- 如果雕塑的任何部分出错(形状错误、材料错误),整个块都会被丢弃。什么也不会发生。办公室保持与人工智能开始之前完全一样的状态。这防止了“半途而废”的灾难。
3. “钥匙串”(能力)
论文还谈到了能力。想象人工智能被赋予了一组特定的钥匙(一串钥匙)用于工作。
- 如果工作是“阅读菜单”,人工智能会得到“菜单钥匙”。
- 如果工作是“发送电子邮件”,人工智能会得到“邮件钥匙”。
- 即使人工智能被一张坏备注欺骗,说“使用银行钥匙偷钱”,他们也无法在物理上做到这一点。他们口袋里没有银行钥匙。在允许他们转动锁之前,检查员会检查他们的钥匙串。
- 这意味着,即使黑客欺骗人工智能尝试做坏事,人工智能也 literally 缺乏打开那些门的“钥匙”。
4. “嵌套俄罗斯套娃”(递归)
人工智能可以编写包含更多自身指令的代码。
- 你问:“写一份关于三个主题的报告。”
- 人工智能写出一份计划,其中写道:“首先,我将要求人工智能研究主题 A,然后是主题 B,接着是主题 C,最后将它们合并。”
- 这些较小的请求中的每一个也都是一个“空位”,在运行之前都会由检查员进行检查。这就像一套俄罗斯套娃,每一个套娃在允许打开之前都要经过检查。
论文实际发现的内容
研究人员使用一种名为 Scala 3 的编程语言测试了该系统(LACUNA)。
- 安全性: 他们发现,“检查员”在人工智能尝试运行之前拦截了约**8.6%**的尝试。这些尝试要么形状错误,要么试图使用人工智能没有权限的工具。
- 重试: 当人工智能犯错时,系统要求它再次尝试。平均而言,只需0.7 次尝试即可获得有效答案。
- 性能: 该系统解决了约**27%的困难研究任务和76%**的客户服务任务。这与其他标准人工智能代理大致相同,证明添加这种严格的安全检查并没有让人工智能“变笨”,只是使其更安全。
- 安全性: 他们针对试图欺骗人工智能(提示注入)的黑客测试了该系统。由于人工智能受其“钥匙串”(能力)的限制,即使黑客成功欺骗人工智能尝试,也无法让人工智能做超出其允许范围的事情。
局限性(不足之处)
论文承认了一些事项:
- 它并不完美: 检查员检查人工智能是否遵守了规则(它是否使用了正确的工具?是否返回了正确类型的答案?),但它不检查人工智能在逻辑上是否做了正确的事。如果人工智能编写了一段完美的代码却计算出错误的数学结果,检查员仍会放行。
- 它需要聪明的 AI: 如果人工智能不擅长编写代码,它会被频繁拒绝,过程将变得缓慢。
- 它更慢: 因为系统必须每次停下来检查并重新检查代码,所以它比仅仅让人工智能按按钮需要更多的时间和计算能力。
总之: LACUNA 将人工智能从按按钮的人转变为承包商,必须在开始任何工作之前提交完整计划以供批准。如果计划违反规则,工作永远不会开始,从而保护系统免受错误和欺骗。
您所在领域的论文太多了?
获取与您研究关键词匹配的最新论文每日摘要——附技术摘要,使用您的语言。