AI News HubLIVE
站内改写2 分钟阅读

从零构建基础AI智能体:人类监督与安全保障

本文介绍了如何在AI智能体中引入人类监督机制,通过权限分级、审批流程和询问工具来平衡自主性与安全性,避免有害操作。

来源Hacker News AI作者: ruxudev

在本系列的前几部分中,我们构建了一个能够规划和执行长期任务的AI智能体,使其具备了更强大的能力。然而,自主性提升的同时也带来了风险:不加区分地运行命令或修改文件可能导致不可逆的后果。为了在自主性与安全性之间取得平衡,本部分引入了人类监督(Human in the Loop)机制。

人类监督的核心思想是:某些敏感操作在执行前必须获得人类的明确许可。但并非所有工具调用都需要同等程度的审查。如果每个动作都请求批准,智能体会变得冗长而低效;反之,如果从不请求批准,则可能危险。因此,我们将工具按风险分类:只读工具(如读取文件)和规划工具(如更新待办事项)被认为是安全的,自动允许执行;写入工具(如写文件)和操作工具(如运行Shell命令、获取网页)则默认需要人工批准。

为了灵活控制,我们定义了三种权限模式:默认模式(default)只自动允许读取和规划工具;接受编辑模式(acceptEdits)在默认模式基础上允许在当前工作目录内进行文件写入;危险跳过权限模式(dangerouslySkipPermissions)则完全跳过所有权限检查。最后一种模式名称故意令人警惕,仅适用于可信任的沙箱或自动化环境。用户可以通过命令行参数--mode选择模式,并指定工作目录作为信任边界。

在实现中,我们通过check_permission函数决定工具调用是否被允许。该函数首先检查工具是否属于自动允许的集合,然后根据模式进行判断。如果模式为危险跳过,则全部允许;如果为接受编辑且工具是写入工具,则检查目标路径是否在工作目录内;否则,通过_ask_permission函数向用户交互式提问,显示工具名称和参数,等待用户输入'y'或'n'。用户的选择将反映到工具结果中,智能体据此调整行为。

除了被动等待用户批准,智能体还可以主动请求帮助。我们新增了ask_question工具,允许智能体在信息不足时向用户提出一个聚焦的问题,例如当存在多个配置文件需要确定目标时。该工具描述明确指出:仅当真正受阻且无法从上下文合理推断时才使用,不应用于进度更新或确认已可执行的操作。这减少了智能体在不确定性中盲目行动的风险。

通过集成权限检查到工具执行路径中,我们确保每个工具调用在运行前都经过安全网关。当权限被拒绝时,智能体收到明确的消息,从而避免重试相同操作。整个系统既保持了智能体的自主规划能力,又通过人类监督提供了必要的安全护栏。在后续测试中,智能体能够在默认模式下正常工作,读取文件无需批准,而写入文件时则暂停等待用户决策。

这种设计使得智能体在真实环境中更加可靠,尤其适用于处理敏感数据或执行潜在危险操作的任务。开发者可以根据具体场景选择适当的权限模式,平衡效率与安全。