技术深度解析
审批提示看似简单,但在其背后,它代表了风险评估、权限范围界定和人机交互之间复杂的相互作用。现代AI代理的架构通常包含一个决策引擎,该引擎在执行前会根据一系列策略评估每个操作。这正是审批提示发挥作用的地方。
分层授权模型
大多数先进的代理框架,如AutoGPT、LangChain的Agent Executor和微软的Copilot,都实现了分层授权系统。第一层是静态的:一组预定义的规则(例如,“永不删除文件”、“未经确认绝不汇款”)。第二层是动态的:代理使用风险模型来估计操作的潜在危害。这个模型可以是简单的启发式规则(例如,涉及外部API的操作比本地文件读取风险更高),也可以是基于历史故障模式训练的复杂神经网络。
例如,开源项目AutoGPT(拥有超过16万GitHub星标)使用了一种“连续模式”,代理可以在无需审批的情况下执行操作,但它也有一种“人在回路中”模式,会在每个关键操作前暂停。该项目最近的更新集中在改进风险分类器上,该分类器现在使用微调后的GPT-4来评估操作是“安全”、“有风险”还是“关键”。
信任光谱
关键洞察在于,信任并非二元对立。用户可能信任代理读取邮件,但不信任其发送邮件;或者信任其向已知联系人发送邮件,但不信任其向陌生人发送。这引出了一个连续的信任光谱,其中每个操作都被赋予一个信任分数。审批提示仅在信任分数低于某个阈值时触发。
| 操作类型 | 风险等级 | 是否需要审批? | 示例场景 |
|---|---|---|---|
| 读取本地文件 | 低 | 否 | 总结文档 |
| 写入新文件 | 中 | 是,如果文件大小 > 1MB | 创建报告 |
| 删除文件 | 高 | 始终需要 | 清理临时文件 |
| 执行Shell命令 | 关键 | 始终需要 | 安装软件 |
| 向已知联系人发送邮件 | 中 | 是,如果正文包含附件 | 发送会议邀请 |
| 通过API汇款 | 关键 | 始终需要 | 支付账单 |
数据要点: 表格显示,并非所有操作都同等重要。一个设计良好的代理必须将操作分类为至少四个风险等级,并且仅在中等级别及以上触发审批提示。这既减少了摩擦,又保障了安全。
技术实现
从工程角度来看,审批提示是一个门控机制。代理的操作流程如下:
1. 意图生成: LLM生成一个计划(例如,“给John发送一封关于项目更新的邮件”)。
2. 操作分解: 计划被分解为原子操作(例如,“读取草稿”、“撰写邮件”、“发送”)。
3. 风险评估: 每个操作都通过一个风险分类器。这可以是单独的LLM调用或基于规则的引擎。
4. 策略检查: 将操作与用户定义的策略进行比较(例如,“晚上10点后绝不发送邮件”)。
5. 审批提示(如果需要): 如果风险评分超过阈值,则向用户显示一个包含上下文信息的提示(操作是什么、为什么有风险、可能产生什么后果)。
6. 执行: 如果获得批准,则执行操作;否则,记录日志并跳过。
挑战在于延迟。每一步都会增加时间。一个优化良好的流程可以在500毫秒内完成步骤1-4,但审批提示(步骤5)会引入数秒或数分钟的人为延迟。这就是为什么许多系统采用“批量审批”方法,将多个低风险操作分组并一次性批准。
值得关注的GitHub仓库
- AutoGPT (github.com/Significant-Gravitas/AutoGPT): 自主代理领域的先驱。其最近的v0.5.0版本引入了“风险感知”模式,使用轻量级分类器来减少不必要的提示。
- LangChain (github.com/langchain-ai/langchain): 构建LLM应用最流行的框架。其`AgentExecutor`现在支持一个`callbacks`系统,可以拦截操作并请求人工审批。
- CrewAI (github.com/joaomdmoura/crewAI): 一个多代理框架,包含针对关键决策的“人在回路中”功能。它使用基于YAML的策略文件来定义审批规则。
关键玩家与案例研究
关于审批提示的争论并非纸上谈兵。几家公司已经在推出必须应对这种紧张关系的产品。
微软Copilot
微软的Copilot集成在Office 365中,是一个典型例子。当用户要求Copilot“给团队发送一封邮件”时,它首先起草邮件,然后显示一个带有“批准”按钮的预览。这是一个经典的审批提示。然而,微软因过于保守而受到批评——用户抱怨Copilot在格式化文档等琐碎操作上也要求确认。