跳到主要内容

权限模式

权限模式控制 Agent 可以访问什么,以及在执行工具操作前是否需要人工审批。这是实现 Human-in-the-Loop 的核心机制——让你在 Agent 自主执行和人工监管之间找到平衡。

已安装的 Agent 程序采用的权限模型并不相同。AstraBox 保留每个程序原有的模式名称和行为,不会把它们改写成平台自定义的 allow / ask / deny 策略。

权限模式

打开 Agent 对话,在消息输入框下方选择权限模式。只有当前 Agent 程序支持切换模式时,页面才会显示这个选项。

选择器只会显示 Agent 所用 Environment 中 Agent 程序声明的模式;名称和说明均来自该程序。有些程序还会在 Agent 的高级设置中提供单独的审批选项,它与权限模式选择器是两项不同的设置。

权限模式不会绕过 Environment 的网络策略或沙箱隔离设置。

配置方式

打开 Agent,开始或继续一段对话,然后在消息输入框下方选择权限模式。Agent 空闲时可以切换;下一轮会使用新的模式,无需修改 Agent,也无需另开一段对话。

如果所选 Agent 程序还提供单独的审批选项,请在创建或编辑 Agent 时进入高级设置配置。控制台会把它和对话中的权限模式分开显示。

人工确认流程

Agent 在操作前需要审批时:

  1. Agent 产生一项审批请求
  2. 当前 turn 暂停,等待人工输入
  3. 网页控制台显示操作内容、参数和可选项
  4. 用户批准或拒绝这项操作
  5. 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 程序产生的请求,并原样返回用户的决定。