Skip to content

人在环恢复、权限变化与自治评估 ​

人工确认不是布尔开关,而是对特定版本动作的授权。暂停期间价格、文件、用户权限都可能改变;恢复应核对原动作内容和当前权限。批准旧参数不能自动批准模型随后生成的新参数。

恢复前检查版本和期限 ​

完整标准库实验:时间由参数注入,可确定性验证到期边界,不依赖睡眠。

python
def resume(action, approval, now, allowed):
    identity = (action["id"], action["version"], action["target"])
    if identity != approval["identity"]:
        return "changed"
    if now >= approval["expires"]:
        return "expired"
    if action["target"] not in allowed:
        return "revoked"
    return "ready"
a = {"id":"t1", "version":2, "target":"draft:7"}
p = {"identity":("t1",2,"draft:7"), "expires":20}
assert resume(a,p,19,{"draft:7"}) == "ready"
assert resume(a,p,20,{"draft:7"}) == "expired"
assert resume(a,p,19,set()) == "revoked"
print("approval rechecked")

这里只返回 ready,真正写入还要经过工具幂等层;审批记录的身份必须由服务端认证,不能相信用户提交的任意 tuple。拒绝、过期与取消应成为终态或重新审批态,不能当暂时错误自动重试。

停止后的事实与收尾 ​

管理员暂停首先阻止领取新任务,再给运行任务取消信号;无法取消的外部调用继续查询效果,状态 unknown 时提供证据给人处理。删除文件、发信、支付和发布有不同补偿方式,撤销权限不能让已发送消息消失。沙箱限制工作区、网络、凭据和 CPU;“只读任务”也可能通过读取秘密产生外泄。

Supervisor 应保留每个子任务成功、失败、证据与成本,汇总不能把部分成功写成整体完成。AutoGen 类消息协作与显式 DAG 的区别在于下一说话者/执行者是否动态决定;无论框架如何选择,都要限制角色白名单、总轮次和交接次数。

评估使用同一任务集比较单 Agent、固定工作流和多 Agent。记录外部验收成功率、人工返工、来源覆盖、费用、墙钟时间与安全失败。多 Agent 的调用成本相加,独立任务的墙钟时间近似关键路径加协调开销;不能把每个子 Agent 的用时相加当用户等待时间。发布时一次改变拓扑或模型之一,并保留旧版本回滚入口。

练习 ​

action version 从2改3,旧审批即使未过期也应 changed;更新审批后可以 ready。再撤销权限,应 revoked。

核对本章答案

返回全书导读

用心记录每一步成长