返回目录 / Agent 安全
为有副作用的Agent工具加入人工审批
在Agent准备执行外部变更时暂停运行,让用户检查并批准确切操作。
目标
让需要人工决定的工具调用在副作用发生前等待批准。
步骤
- 列出哪些工具会写入、发送或删除数据,并把它们纳入审批策略。 [openai-human] [openai-tools]
- 在函数工具上设置
@function_tool(needs_approval=True)(或按参数返回bool的策略),让Runner在调用前暂停。 [openai-human] [openai-tools] - 检查
result.interruptions后调用state=result.to_state(),把工具名、参数和目标展示给审核者。 [openai-human] [openai-tools] - 仅对明确批准项调用
state.approve(interruption);拒绝用state.reject(...),随后await Runner.run(agent, state)。 [openai-human] [openai-tools] - 用模拟工具验证批准会执行、拒绝不会执行,且审批对象与实际参数一致。 [openai-human] [openai-tools]
验证方式
在测试环境中分别批准和拒绝一次,确认只有批准分支调用副作用函数。
故障处理
若调用未暂停,检查审批机制是否接在副作用之前,并确认测试工具确实触发审批。
权限边界
前置条件
- Python 3.10+、固定提交兼容的 openai-agents、获准模型提供商凭据(本地模拟测试例外)
权限边界
- 只在本地或隔离测试环境操作;涉及外部数据或副作用时使用最小权限并先审批
限制
SDK的审批不是沙箱,也不能替代工具实现自身的资源权限校验;不要仅凭模型参数批准高影响操作。
固定上游来源
- 仓库
- openai/openai-agents-python
- 文件路径
- docs/human_in_the_loop.md
- 固定提交
f53c62451c7f34c15f0c87fa745e05404025420f- 来源检查
- 2026-10-14 · 已按固定上游来源核对
仓库指标
以下数字属于上游仓库整体,不代表单个 Skill 或指南的点赞/热度。
- Stars
- 未取得
- Forks
- 未取得
- 观测时间
- 未取得
尚未取得指标快照。
许可证: MIT