【免费下载链接】evenfire
Evenfire is an intelligence layer platform for running LLM agents that take real actions, on your infrastructure
AI Agent 一旦能执行 shell 命令、发起 HTTP 请求,"失控"就不再是假设。Evenfire 是一个完全开源的 LLM Agent 智能层平台,它的 Human-in-the-Loop 审批机制内置于运行时:任何高危工具调用都会自动暂停,等待人类在桌面端或 Slack、Telegram 里点击"Approve",任务才继续执行——让 Agent 大胆行动,但每一步都在你的控制之下。
为什么 AI Agent 需要一道"刹车"
大模型会被误导、会幻觉、会"好心办坏事"。当 Agent 拥有shell_exec、http_request这类工具时,一次被注入的提示词就可能让它删除文件、泄露数据。
Evenfire 的安全模型建立在一个简单前提上:永远不完全信任模型。其中第一道防线就是审批门(approval gate):
高危动作必须等待人类确认。命令执行、出站 HTTP、浏览器控制都被审批拦截——任务会挂起,直到有人在频道里点下批准,且回调经过签名校验。
它不是让你事后审查日志,而是让风险动作在执行前停在一位人类面前。
审批机制如何工作:一个4步闭环
整个流程非常简单,官方文档 tool-call-end-to-end 把它描述为一个时序:
- Agent 决定调用工具—— 比如用户说"帮我查一下数据库里有哪些表",Agent 选择了某个 MCP 工具;
- 策略命中,任务挂起—— 审批门拦截调用,任务进入
waiting_approval状态,等待不消耗执行预算; - 人类做出决定—— 在 Desktop App、Slack、Telegram 上点 Approve 或 Deny;
- 运行时继续或中止—— 批准后工具执行并生成结果;拒绝则任务终止,模型收到拒绝原因。
下面是 Evenfire 桌面端中真实的审批卡点界面:MCP 工具调用被挂起,等待人工批准 🛑
几个值得注意的工程细节:
- 审批是"挂起"而非"取消":任务状态持久化在会话存储中,Pod 重启后未决审批依然有效,不会丢单;
- 一次批准可以覆盖后续调用:可以选择"本次对话内一直有效"、"对该工具长期有效",或"对整个 MCP Server 有效",避免反复打断;
- 超时自动拒绝:通过
CLERUM_APPROVAL_TIMEOUT可设置未应答审批的自动拒绝时限,防止任务无限挂起。
哪些工具调用默认需要审批?
Evenfire 的审批默认开启(CLERUM_ENABLE_APPROVAL默认为true),无需任何配置就生效。默认的拦截范围如下:
| 工具类别 | 默认行为 |
|---|---|
| 所有 MCP 工具(连接器) | 一律需要审批,无法通过 per-tool 配置豁免 |
shell_exec(执行命令) | 需要审批 |
http_request(出站 HTTP) | 需要审批 |
cron_manage(定时任务) | 需要审批 |
browser_open/browser_navigate | 需要审批 |
workflow_trigger(触发工作流) | 需要审批(来自 Telegram/Slack/Teams 的任务除外) |
| 其他原生工具(文件读写等) | 无需审批 |
也就是说:能"破坏现场"的工具全部默认设卡,低风险工具保持流畅,这是安全与效率的平衡点。
三种审批配置方式:Default / Required / Skip
在 Control UI 的 Agent 详情页,有一个Per-Tool Approval编辑器,可以为每个原生工具单独设置三档策略:
- Default(跳过)—— 使用工具内置的默认值;
- Required(强制审批)—— 把原本不需要审批的工具也拦下来;
- Skip(跳过审批)—— 把默认需要审批的工具放开。
⚠️ 注意:如果你把shell_exec或http_request设为 Skip,编辑器会弹出风险提示——这不是摆设,而是提醒你确认已有其他防线(比如CLERUM_HTTP_ALLOWLIST域名白名单)。
这些设置最终写入HostCRD 的spec.approval字段(详见 Host CRD 文档),是"配置即代码"的一部分,可以走 Git 评审和 GitOps 流程。
谁有权批准?三种审批人策略
通过spec.approval.defaultPolicy控制审批人的范围:
| 策略值 | 含义 | 适用场景 |
|---|---|---|
cli_only | 只能通过 HTTP / 管理界面审批 | 无人值守环境 |
channel_users | 任何已授权的频道用户都可审批 | 团队共享的 Agent |
designated_approvers | 仅白名单中的指定审批人 | 生产环境、敏感操作 |
在哪里审批?人应该出现在哪
Evenfire 的设计哲学是审批请求跟着人走,而不是让人去找系统:
| 表面 | 典型场景 |
|---|---|
| Desktop App | 运维人员盯着实时任务,聊天内直接 Approve/Deny |
| Telegram / Slack | 手机上随时处理,按钮一键决策 |
| Control API | 自动化集成与测试 |
批准或拒绝本身就是一次带范围限定的 RPC 调用(host:approval:write),意味着"批准人"也是一个被鉴权的身份,而不是随便一个用户。Slack/Telegram 的回调还会经过签名验证(Telegram secret token、Slack HMAC),防止伪造审批请求。
批准之后,任务无缝继续,执行步骤会以进度形式呈现回聊天界面:
进阶:Guardrails 与审批的联动
除了内置审批门,Evenfire 还支持在 Host 上配置可选的 Guardrails(护栏) 规则块,用allow / ask / deny三种决策精细控制每次工具调用:
deny—— 直接拦截,模型收到 "Blocked by guardrail policy";ask—— 挂起为一条待审批项,描述为 "Guardrail requires approval";allow—— 放行,但仍要过正常的审批门(护栏不能绕过审批)。
判定规则是最严格的决策获胜:deny > ask > allow,一条宽泛的 allow 无法覆盖一条精确的 deny。而且对无人值守任务(cron、内部任务)有一个重要的安全默认:ask会直接变成拒绝——没有审批人可用时,宁可停也不放行。
工作流层面:审批不止于单次工具调用
审批机制同样覆盖了多步工作流(WorkflowRecipe),分两层:
- 步骤级审批(
requiresApproval):给工作流的某个步骤加上审批门,它会在执行前暂停,等待指定用户或团队成员的显式批准,还支持timeoutSeconds超时自动过期。适合"向客户频道发帖"、"写生产系统"这类不可逆操作; - 部署级审批:带有外部出站(egress)绑定的 Recipe 会被风险分级,默认要求操作员审批后才能部署,通知中会列出每个出站目标的主机名、端口和协议,供操作员核实。
聊天频道里的审批回调由 workflow-approval-request-reader 服务统一接收、验签、归一化后再提交给对应运行时,完整链路可参考 Configure approvals。
防止Agent失控的实操清单
基于以上机制,给管理员一份最短清单 ✅:
- 保持审批默认开启,不要为了"省事"全局关掉
CLERUM_ENABLE_APPROVAL; - 敏感环境用
designated_approvers,把批准权收敛到少数人手中; - MCP 工具一律过审批是平台默认,任何第三方连接器先审批再信任;
- 要 Skip 某个高危工具时,必须搭配替代防线(如 HTTP 域名白名单),而不是裸奔;
- 给审批设置超时自动拒绝,避免任务无限挂起或审批疲劳;
- 无人值守任务里慎用
ask规则——它会因"无审批人可用"而失败,这是特性不是 bug; - 用 Guardrails 把高频低风险调用设为
allow、可疑目标设为deny,把人类的注意力留给真正需要判断的时刻。
总结
Evenfire 的 Human-in-the-Loop 审批机制回答了"如何防止 AI Agent 失控"这个核心问题:不是限制 Agent 的能力,而是在关键动作前插入一个人类决策点。默认开启的审批门、按工具粒度的三档策略、多表面的随时随地批准、超时自动拒绝,再加上 Guardrails 和工作流双层审批,构成了从"单次工具调用"到"整个部署"的完整控制链。
Agent 可以大胆地调用工具、执行任务,而"失控"这件事,从此需要人类点头才能发生。🔐
【免费下载链接】evenfire
Evenfire is an intelligence layer platform for running LLM agents that take real actions, on your infrastructure
相关推荐
openai-agents-python 人工审批(Human-in-the-Loop)全指南:中断、审批与恢复机制详解
openai agents python 人工审批(Human in the Loop)全指南:中断、审批与恢复机制详解 Human in the Loop(H
人工智能AI AgentAgent 框架多智能体工具调用MCP Clientsollmcp 的 Human-in-the-Loop(HIL)安全机制完整指南:防止本地 LLM 误操作工具的终极防线
ollmcp 的 Human in the Loop(HIL)安全机制完整指南:防止本地 LLM 误操作工具的终极防线 ollmcp(mcp client fo
eve Human-in-the-Loop 完全指南:工具审批门控、会话内提问与持久化暂停恢复机制
eve Human in the Loop 完全指南:工具审批门控、会话内提问与持久化暂停恢复机制 Human in the loop(HITL)是 eve 中
人工智能AI AgentAgent 框架工具调用后端MCP ClientsAI 评测可观测性
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考