如何把人类放进LightAgent审核回路:HumanApprovalHook高风险操作审批实战教程

发布时间:2026/10/13 12:21:45
如何把人类放进LightAgent审核回路:HumanApprovalHook高风险操作审批实战教程 【免费下载链接】LightAgentLightAgent: Lightweight Python framework for OpenAI-compatible agents with tools, memory, guardrails, tracing, lifecycle hooks, multi-agent collaboration, and workflows.项目地址https://gitcode.com/gh_mirrors/lig/LightAgent点击查看免费下载LightAgent是一个轻量级 Python 框架支持工具调用、记忆、护栏、链路追踪与多智能体协作。当你的 Agent 能执行send_payment付款、delete_file删文件这类高风险操作时你肯定不想让它想干嘛就干嘛。本教程带你用 LightAgent 内置的HumanApprovalHook3 步把人类审核员放进执行回路哪些工具需要人工审批、如何批准 / 拒绝 / 修改参数、以及如何在 LightFlow 工作流中做持久化审批节点。无需 Web UI、无需数据库零额外依赖。为什么需要人在回路Agent 的审批缺口Agent 自主性越强风险面越大。传统做法是全放行或全禁止都不够精细全放行Agent 可能误调高危工具造成资金或数据损失全禁止功能形同虚设Agent 失去自主执行能力。LightAgent v0.9.6 起提供了Human-in-the-loop人在回路审核原语HumanApprovalHook可以只拦截指定的工具或交接handoff其余操作照常自动执行。它的核心设计原则是fail-closed失败即拦截——只要审核员没给明确通过动作就会被阻止。 设计要点LightAgent 不给你塞 Web UI 或队列服务只给你可序列化的审批请求 存储 决策对象审核界面由你的应用自己掌控这正是它轻量的体现。核心实现位于 review.py官方文档见 human_review.md。多 Agent 协作场景下如上图的 LightSwarm谁有权批准 A 把任务交给 B 执行同样是一个审批问题——HumanApprovalHook对on_handoff阶段同样生效。审批四步走从待审到放行一次典型的延迟审批流程分为 4 步全部由你掌控节奏Step 1注册 Hook圈定受保护工具用tools参数声明哪些工具需要审核例如付款、删文件把它挂到 Agent 的hooks上from LightAgent import HumanApprovalHook, JsonReviewStore, LightAgent review_store JsonReviewStore(.lightagent/reviews.json) approval_hook HumanApprovalHook( storereview_store, tools{send_payment, delete_file}, ) agent LightAgent( modelgpt-4.1, api_keyyour_api_key, base_urlyour_base_url, hooks[approval_hook], )Step 2动作被自动拦截Agent 运行中一旦命中受保护工具Hook 会生成一条ApprovalRequest含工具名、参数、run_id、trace_id、源/目标 Agent 等审计元数据写入JsonReviewStore并阻塞该动作。你可以随时用review_store.list_pending()拉出待审列表推给审核员界面。Step 3审核员做出决策ApprovalDecision支持 4 种决策比通过/拒绝强大得多决策作用典型场景approve()原样放行参数合规直接执行reject(reason...)拒绝并留下原因参数明显越权edit(arguments)修改参数后放行把超额付款砍到预算内respond(response)用人工文本直接替代该动作输出人工兜底回复Step 4凭 approval_id 重跑并复用审批审核完成后用同一个request_id作为approval_id重跑任务即可from LightAgent import ApprovalDecision request pending[0] review_store.resolve( request.request_id, ApprovalDecision.approve(reviewer_idfinance-reviewer), ) result agent.run(Pay invoice 42, approval_idrequest.request_id)注意两个安全细节源码review.py审批不可乱用approval_id只有在阶段、工具、参数、源/目标 Agent全部与原始请求匹配时才能复用否则会被 block 并记录approval_rejected事件——防止一次审批反复套娃。审批 ID 不外泄approval_id只存在于 Hook 内部上下文不会转发给模型 API。同步审核与参数改写审核员回调模式如果你的应用能当场做出审核决定例如审核逻辑是预算策略而非真人可以传入reviewer回调Hook 会同步等待其结果from LightAgent import ApprovalDecision, HumanApprovalHook def review(request): if request.tool_name send_payment: return ApprovalDecision.edit( {amount: min(request.arguments[amount], 100)}, reviewer_idbudget-policy, ) return ApprovalDecision.approve() approval_hook HumanApprovalHook( reviewerreview, tools{send_payment}, timeout2, )上面的例子里审核员是一个预算策略付款金额超过 100 就自动砍到 100 再放行。两个关键保障fail-closedreviewer抛异常或超过timeout秒未返回一律按拒绝处理决策宽松解析回调也可以直接返回True放行、False拒绝或 dict框架会自动归一化为标准ApprovalDecision见 review.py。LightFlow 工作流审批跨进程可恢复的审批节点在 LightFlow 多步骤工作流中审批能力进一步持久化待审请求 ID 和决策都会写进 checkpoint进程重启后依然可恢复——这对下午提交的审批明天才有人点同意的场景至关重要。from LightAgent import ApprovalDecision, JsonLightFlowStore, LightFlow flow LightFlow(storeJsonLightFlowStore(.lightflow_runs)).step( publish, agentpublisher, requires_approvalTrue, ) waiting flow.run(Publish the report, run_idreport-42) request_id waiting.steps[0].approval_request_id # 步骤进入 waiting_approval 状态 flow.approve( report-42, publish, ApprovalDecision.edit( {query: Publish the approved redacted report}, reviewer_ideditor, ), ) result flow.resume(report-42) # 从 checkpoint 恢复执行对应的步骤状态与 trace 事件见 lightflow.mdwaiting_approval步骤在等人工决策approval_approve/approval_reject/approval_edit/approval_respond审核决策已应用。批量审批与事后反馈把审核做成流水线批量审核InMemoryReviewStore和JsonReviewStore提供create_batch()/resolve_batch()适合把多条待执行动作合并到一个审核界面里一次批完文档human_review.md。Human-on-the-loop 反馈审批不只是事前拦截还可以事后打分。任务跑完后用HumanFeedback把评分、标签挂到 trace 上供评测与审计使用from LightAgent import HumanFeedback feedback HumanFeedback( trace_idresult.trace_id, rating0.9, labelcorrect, reviewer_idqa-17, ) review_store.add_feedback(feedback)这些审批事件同样会进入 trace接入 Langfuse 等追踪平台后可在时间线上直接看到approval_required、approval_edit等节点常见坑与最佳实践场景建议审批通过了但重跑被 block检查参数 / Agent 是否变了——审批绑定的是当时那一次动作任何字段变化都会失配reviewer 回调卡死一定设置timeout超时按拒绝处理避免 Agent 挂起敏感数据入库reviewer_metadata/ trace 里避免存放完整 prompt、密钥或原始参数除非存储端已获准只拦一部分工具用tools{...}精确圈定而非全量拦截保留 Agent 日常自主性工作流跨天审批用 LightFlow 的requires_approvalresume()靠 checkpoint 恢复总结5 分钟回顾HumanApprovalHook是 LightAgent 的 fail-closed 审核钩子可精确圈定受保护的工具与 handoff 阶段4 种决策approve / reject / edit / respond覆盖从放行到人工替代输出的全部诉求延迟审批JsonReviewStore持久化待审请求approval_id复用审批且审批严格绑定原始动作同步审批reviewer回调 timeout异常即拒绝工作流审批LightFlow checkpoint 让审批跨越进程重启事后反馈HumanFeedback把人类判断沉淀进 trace反哺评测。下一步可以继续了解护栏模板与策略 Hook 见 guardrails.md确定性工作流的完整用法见 lightflow.md全部审批 API 参考 human_review.md。赞分享【免费下载链接】LightAgentLightAgent: Lightweight Python framework for OpenAI-compatible agents with tools, memory, guardrails, tracing, lifecycle hooks, multi-agent collaboration, and workflows.项目地址https://gitcode.com/gh_mirrors/lig/LightAgent点击查看免费下载相关推荐Agent Governance Toolkit 审批工作流实战为高风险 Agent 动作构建 Human-in-the-Loop 审批门Agent Governance Toolkit 审批工作流实战为高风险 Agent 动作构建 Human in the Loop 审批门 导读 本文基于人工智能AI AgentAI 安全治理策略引擎认证鉴权Agent 沙箱可观测性飞书 CLI 审批任务拒绝操作指南lark-cli approval tasks reject 的高风险写操作实战飞书 CLI 审批任务拒绝操作指南lark cli approval tasks reject 的高风险写操作实战 本文档基于 Lark/飞书官方 CLI 工CLIAI 技能lark-cli 共享规则实战指南身份、认证、输出契约与高风险操作审批协议lark cli 共享规则实战指南身份、认证、输出契约与高风险操作审批协议 lark cli 是飞书官方维护的命令行工具面向人与 AI Agent 设计覆CLIAI 技能创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考