OpenAI Agents JS 0.17.0 阐明 Guardrail 只作用于模型可见内容层,外部写入(发邮件、改文件等)不受影响,需独立的风控机制。
OpenAI Agents JS 0.17.0 澄清了围绕 Guardrail、工具结果回放和保留副本的一个微妙边界。Guardrail 可以将工具结果排除在模型下一次回放之外,但这并不会自动撤销已经发生的外部副作用。应用程序也可以自行保留一份结果副本。
这不是一个安全漏洞的声明。这只是一个有用的提醒:Agent 安全不止一个层面。
三个层面需要独立的控制
一个 Agent 应用可以将这三个层面视为三个独立的层次:
模型可见内容:进入下一次模型上下文或回放的内容。
外部操作:工具在另一个系统中改变的内容。
保留的应用状态:宿主应用程序在工具调用后存储的内容。
第一层的控制不会自动保护其他两层。如果一个工具已经发送了邮件、修改了文件、创建了工单或调用了外部 API,将其结果从模型中隐藏并不会让现实倒带。
在副作用发生前设置最强边界
对于高风险的外部写入,工具边界应该在执行前强制执行范围授权。它还应该在目标支持的情况下使用幂等性,在后果合理的情况下要求确认,并保留足够的证据用于独立回读。当存在可逆的补偿操作时,先设计并测试它,再依赖它。
只读工具和不可逆写入不应共享一个宽泛的权限。也不是每个被阻止的结果都应该用同一种方式处理。策略可能需要决定模型、应用程序还是两者都不能保留结果,同时分别记录发生了外部操作。
因此,实际的审计记录需要的不仅仅是最终的对话记录。它应该捕获授权目标、操作标识、执行收据、外部回读、模型可见的结果状态,以及应用保留状态。否则,一份干净的对话记录可能隐藏着混乱的真实世界结果。
Primary source: https://github.com/openai/openai-agents-js/releases/tag/v0.17.0
Disclosure: I used AI assistance to organize and edit this article, then verified the SDK behavior boundary against the linked primary release.
For further actions, you may consider blocking this person and/or reporting abuse