权限模式
权限模式控制 Agent 可以访问什么,以及在执行工具操作前是否需要人工审批。这是实现 Human-in-the-Loop 的核心机制——让你在 Agent 自主执行和人工监管之间找到平衡。
已安装的 Agent 程序采用的权限模型并不相同。AstraBox 保留每个程序原有的模式名称和行为,不会把它们改写成平台自定义的 allow / ask / deny 策略。
权限模式
打开 Agent 对话,在消息输入框下方选择权限模式。只有当前 Agent 程序支持切换模式时,页面才会显示这个选项。
选择器只会显示 Agent 所用 Environment 中 Agent 程序声明的模式;名称和说明均来自该程序。有些程序还会在 Agent 的高级设置中提供单独的审批选项,它与权限模式选择器是两项不同的设置。
权限模式不会绕过 Environment 的网络策略或沙箱隔离设置。
配置方式
打开 Agent,开始或继续一段对话,然后在消息输入框下方选择权限模式。Agent 空闲时可以切换;下一轮会使用新的模式,无需修改 Agent,也无需另开一段对话。
如果所选 Agent 程序还提供单独的审批选项,请在创建或编辑 Agent 时进入高级设置配置。控制台会把它和对话中的权限模式分开显示。
人工确认流程
Agent 在操作前需要审批时:
- Agent 产生一项审批请求
- 当前 turn 暂停,等待人工输入
- 网页控制台显示操作内容、参数和可选项
- 用户批准或拒绝这项操作
- Agent 根据决定继续同一个 turn
关闭浏览器不会批准或拒绝这项操作。只要请求仍在等待处理,重新打开同一段对话就可以继续。
Interaction Response API
网页控制台会直接处理审批请求。API 客户端也可以通过以下接口回答同一项请求:
POST /api/v1/sessions/{session_id}/interaction-respond
批准操作:
{
"interaction_id": "INTERACTION_ID",
"answer": {
"decision": "approve"
}
}
或拒绝操作:
{
"interaction_id": "INTERACTION_ID",
"answer": {
"decision": "reject",
"comment": "该操作不在本次任务范围内"
}
}
拒绝时,如果 Agent 可以根据原因调整方案并重试,可以附带 comment。每次都要回答请求中返回的准确 interaction_id。
完整流程示例
1. 选择权限模式
打开 Agent 对话,在消息输入框下方选择模式。需要逐项查看操作时,选择说明中明确要求人工审批的模式。
2. 发送会触发工具调用的任务
正常向 Agent 说明任务,例如让它删除一组日志文件。
3. 查看待确认操作
需要审批时,网页控制台会显示工具名称、参数,以及继续或拒绝操作的按钮。
4. 批准执行
选择允许并继续。Agent 会执行这项操作,并继续同一个 turn。
5. 或者拒绝
选择拒绝操作。表单允许填写说明时,告诉 Agent 应该如何调整方案。
策略设计建议
| 场景 | 推荐配置 |
|---|---|
| 交互式开发 | 使用会在较高风险操作前请求审批的模式 |
| 生产运维 | 从能够完成任务的最严格模式开始,并把 Environment 网络策略设为受限 |
| 无人值守的 Schedule 或 Webhook | 只在可信且受限的 Environment 中使用不会等待人工审批的模式 |
| 只读分析 | 所选 Agent 程序提供规划或只读模式时,使用该模式 |
常见问题
Q:不选择权限模式时使用什么默认值?
A:默认值由所选 Agent 程序声明。对话中会显示当前值;没有权限模式的 Agent 程序不会显示选择器。
Q:待确认操作有超时吗?
A:超时不由浏览器决定。Agent 程序可以结束自己的等待,运行实例丢失也会结束这项请求。发生这种情况后,这项审批不能再提交;发送下一条消息即可继续对话。
Q:一个 turn 可以有多个待确认操作吗?
A:可以,但同一时间只显示一项。第一项处理完成后,Agent 可以在同一个 turn 中继续请求下一项决定。
Q:能否根据命令内容动态决定是否审批?
A:所选 Agent 程序支持时可以。AstraBox 不会解析或重新解释命令,只显示 Agent 程序产生的请求,并原样返回用户的决定。