即使是再先进的大语言模型代理,也会遇到自动决策不足或不适用的情况。在重要环节加入人工监督,通常称为人工干预(HITL)方法,对于构建安全、可靠、有效的代理系统是必需的。当工具执行的操作可能产生重大影响、处理不明确的信息,或需要当前人工智能无法稳定提供的判断时,这一点尤为重要。何时融入人工干预决定何时让人介入,需要在工具和代理设计阶段仔细考虑。以下是人工干预机制有益的常见情况:高影响决策: 如果工具的操作可能导致重大的财务、运营或声誉影响,人工批准应是前提。例如,执行大额交易、部署关键基础设施更改,或向广泛受众发送官方通信。歧义消除: 当大语言模型遇到不明确的指令,或工具接收到的输入可以有多种解读时,人工可以提供必要的澄清以防止错误。道德或敏感判断: 涉及道德考量、主观评估(例如,内容审核以检查政策违规)或个人数据处理的任务,通常需要人工判断以确保负责任的结果。低信心场景: 如果大语言模型对其理解或计划的工具执行路径表示低信心,触发人工审查是明智的。安全关键操作: 在故障可能导致损害的应用中,人工监督是不可商议的。例如控制物理系统或提供医疗诊断支持。创意或战略性输入: 对于需要高度创意、战略见解或主观偏好的任务(例如,确定营销口号,在多个有效战略计划中选择),人工输入可以引导代理获得更理想的结果。学习与完善: 可以收集人工对工具操作或代理决策的反馈,以微调大语言模型,改进工具描述,或随时间调整代理提示。设计人工干预交互点有效地整合人工输入,意味着设计清晰高效的交互机制。这些机制本质上是专用工具或工具的组成部分,它们会暂停执行并请求人工指导。确认提示: 最简单的人工干预形式。代理提出一个操作或一条信息(例如,“我计划使用主题为‘系统更新’的send_notification工具。是否继续?[是/否]”)。这适用于进行/不进行决策。澄清请求: 代理识别到缺失信息或歧义,并直接请求人工提供具体输入。例如,“要查询用户数据库,我需要知道您是对‘EMEA’还是‘APAC’区域的用户感兴趣。请具体说明。”选择项: 代理呈现多个选项,人工选择最适合的一个。当存在多个有效路径或输出时,这很有用,例如,“我生成了文档的三份摘要。报告应该使用哪一份?”数据录入或修改: 对于某些任务,代理可能要求人工提供特定数据(例如,安全操作的授权码),或编辑工具生成的数据(例如,“这是提取的送货地址。请在安排配送前审核并根据需要更正。”)。开放式反馈: 更先进的系统可能允许人工提供自由形式的文本反馈或指令,代理随后会尝试采纳。这需要代理具备更复杂的自然语言理解能力。这些交互的界面可以有所不同:命令行界面 (CLI): 针对开发人员或技术用户的简单文本提示。网页用户界面或应用集成: 针对最终用户的更丰富的界面,包含按钮、表单和上下文信息。聊天机器人: 在对话情境中的自然语言交互。API 端点: 用于程序化人工干预,由另一个自动化系统(可能自带人工监督)提供输入。实施考虑事项构建系统需要跨多个方面的仔细设计。清晰度与上下文: 请求人工输入必须明确。人工需要足够的上下文来做出明智的决定。这包括了解代理试图实现什么、为什么需要人工输入,以及其输入将产生什么影响。digraph General_HITL_Workflow { rankdir=TB; node [shape=box, style="rounded,filled", fillcolor="#e9ecef", fontname="Arial"]; edge [fontname="Arial"]; agent_executing [label="代理执行任务", fillcolor="#a5d8ff"]; hitl_check [label="人工干预检查点:\n需要人工输入吗?", shape=diamond, fillcolor="#ffe066"]; tool_auto [label="工具自主执行", fillcolor="#b2f2bb"]; trigger_hitl [label="触发人工干预交互", fillcolor="#ffc078"]; human_provides_input [label="人工提供输入/\n决策", shape=parallelogram, fillcolor="#fcc2d7"]; agent_processes_input [label="代理处理人工输入", fillcolor="#96f2d7"]; resume_task [label="代理恢复任务"]; task_outcome [label="任务结果", fillcolor="#a5d8ff"]; agent_executing -> hitl_check; hitl_check -> tool_auto [label="否"]; hitl_check -> trigger_hitl [label="是"]; trigger_hitl -> human_provides_input; human_provides_input -> agent_processes_input; tool_auto -> resume_task; agent_processes_input -> resume_task; resume_task -> task_outcome; }通用流程,展示代理进行人工干预的决策点。状态管理: 代理必须能够在等待人工输入时平稳暂停其操作,并在输入提供后恢复。这通常涉及持久化代理的状态。超时与升级: 如果人工未能及时响应会怎样?实施超时机制。根据重要程度,系统可能会重试、默认为安全操作,或将请求升级给另一个人或不同的流程。输入验证: 就像任何工具输入一样,人工提供的数据也应进行验证。人工可能会犯错,因此在代理继续执行之前,请确保输入符合预期的格式或限制。反馈整合: 代理需要一种清晰的方式来理解并将其采纳到其正在进行的计划或工具执行中。用户体验 (UX): 人工干预交互应尽可能顺畅。避免用过多请求使人感到不知所措。界面应直观并提供清晰的指令。可审计性: 所有人工干预、决策和输入都应被记录。这对于调试、责任追踪和了解系统行为很重要。平衡自动化与干预大语言模型代理的目标通常是自动化任务。引入人工干预步骤会增加人工操作部分,因此这是一种平衡行为。追求“智能升级”: 设计代理以自主且可靠地处理尽可能多的任务,仅在真正必要时才升级给人。避免“狼来了效应”: 如果代理频繁请求不重要的确认,用户可能会产生“警报疲劳”,并在未经适当审查的情况下批准操作。人工干预的触发阈值应设定得当。渐进式自动化: 对于新的或复杂的工具,可能从更多的人工干预接触点开始,然后随着代理和工具证明其可靠性或大语言模型根据人工反馈进行微调而逐渐减少。安全影响当系统允许人工输入来指示或授权操作时,特别是那些由强大工具执行的操作,安全是一个值得重视的问题。认证与授权: 确保只有授权人员才能提供输入。这可能涉及用户登录、基于角色的访问控制(RBAC)或其他身份验证方法。输入净化: 验证输入很重要,但也应考虑对其进行净化,以防其使用方式可能导致注入攻击。工具直接执行人工提供的原始字符串,特别是对于数据库查询或shell命令等操作,通常是一种高风险模式,应极其谨慎地处理,倾向于使用结构化输入或更安全的中间表示。防止社会工程: 代理本身可能被恶意行为者欺骗,从而请求人工批准有害操作。提供给人工审批者的清晰度和上下文是这里的重要防御措施。融入精心设计的人工干预机制,将先进工具从强大但可能脆弱的组成部分,转变为复杂工作流程中更可靠、更值得信任的伙伴。这承认了人工智能当前的局限性,同时为人工和大语言模型代理有效协作提供了途径。通过仔细考量何时以及如何进行人工监督,您可以构建不仅能力强,而且安全且负责任的代理系统。