Agent 工程化系列 · 第 13 篇_Agent安全与可靠性如何保障

news2026/5/18 12:36:50
Agent 工程化系列 · 第 13 篇Agent 的安全与可靠性如何保障Agent 最危险的不是回答错而是执行错开篇定位前面我们已经讲过LLM 是能力核心Agent 是执行系统Function Call 让模型能够调用工具MCP 负责连接工具生态A2A 负责 Agent 之间协作Memory 让 Agent 具备连续上下文。到了这一篇要进入一个更现实的问题Agent 能不能安全、稳定地上线很多 Agent Demo 看起来很厉害会查资料、会写代码、会调用工具、会自动执行任务。但一旦进入真实业务环境问题马上变得复杂。因为 Agent 不只是回答问题它可能会读文件、写数据库、发邮件、调接口、改代码、下单、审批、甚至操作生产系统。所以这篇不是讲“如何让 Agent 更聪明”而是讲另一个工程问题如何让 Agent 在会做事的同时不乱做事目录01 为什么 Agent 比 Chatbot 更危险02 Agent 的风险来自哪里03 第一条防线权限最小化04 第二条防线工具调用前后校验05 第三条防线Human-in-the-loop06 可靠性不是安全但同样重要07 一个可落地的安全可靠性架构08 最后总结01 为什么 Agent 比 Chatbot 更危险普通聊天机器人回答错了最多是给了一段错误信息。但 Agent 不一样。Agent 通常连接了工具和外部系统一旦判断错可能真的会执行动作。比如用户只是想让它“整理一下文件”它可能误删目录。用户只是想让它“总结邮件”它可能把隐私内容转发出去。用户只是想让它“修复一个问题”它可能直接改动生产配置。这就是 Agent 和普通 LLM 应用最大的安全差异。一个核心判断安全风险不是从“回答”开始的而是从“行动”开始的。只要 Agent 能调用工具、访问文件、写数据库、发送消息、执行命令它就不再只是一个文本生成系统而是一个带执行能力的软件系统。02 Agent 的风险来自哪里Agent 的风险通常不是单点问题而是一条链路问题。一个用户输入、一段网页内容、一个工具返回结果、一次错误权限配置都可能影响 Agent 下一步动作。常见风险可以分成五类。第一类提示词注入提示词注入就是外部输入改变模型行为。它可能来自用户直接输入也可能藏在网页、邮件、PDF、图片、代码注释、工具返回结果里。这类风险对 Agent 特别危险因为 Agent 会把外部内容放进上下文再基于这些内容决定下一步动作。OWASP 对 Prompt Injection 的定义也强调攻击者可以通过输入改变 LLM 的行为或输出甚至影响关键决策、诱导未授权访问和连接系统中的命令执行。第二类权限过大很多 Agent 出问题不是因为模型太差而是因为系统给了它太大的权限。本来只需要读文件却给了读写删权限。本来只需要查数据库却给了更新和删除权限。本来只需要在测试环境执行却给了生产环境访问权限。这就是 OWASP 所说的 Excessive Agency功能过多、权限过大、自治程度过高都会让 LLM 系统执行破坏性动作。第三类工具污染工具返回的内容也不一定可信。比如搜索网页返回了一段隐藏提示词邮件内容里藏了“忽略前面的规则”MCP Server 返回了带指令的文本。如果 Agent 不区分“数据”和“指令”就可能把工具结果里的恶意文本当成新的系统命令。第四类敏感信息泄露Agent 经常需要访问用户文件、企业知识库、邮件、客户数据和系统日志。如果没有权限隔离、脱敏、输出检查它可能把不该展示的信息带到回答里或者传给不该调用的外部工具。第五类执行循环失控Agent 不是一次调用就结束它可能循环执行思考、调用工具、读取结果、再调用工具。如果没有终止条件、超时、预算和错误收敛机制就会出现无限循环、成本飙升、接口打爆、任务卡死。03 第一条防线权限最小化Agent 安全的第一原则不是“让模型更听话”而是不给它不该有的能力。工程上要先把能力拆开再按任务授权。比如文件工具不应该只有一个“操作文件”的大工具而应该拆成读取文件、列目录、写入新文件、修改文件、删除文件。其中读取可以低风险删除必须高风险审批。再比如数据库工具不应该让 Agent 直接拿一个高权限账号连接数据库。查询类任务只给 SELECT 权限更新类任务需要单独授权删除类任务最好不要直接暴露给 Agent。权限最小化的四个层次层次要控制什么工程做法工具最小化只暴露必要工具不需要的工具不注册给 Agent功能最小化工具只做一件事不用一个万能 Shell 代替专用工具权限最小化只给必要权限读写分离、按用户身份执行自治最小化高风险动作不自动执行删除、发送、付款、上线必须审批这几个原则听起来朴素但非常关键。因为一旦模型判断错真正决定损失大小的往往不是模型本身而是它能碰到什么系统、能做什么动作。04 第二条防线工具调用前后校验只做权限控制还不够。Agent 调工具之前要校验参数工具执行之后也要校验结果。OpenAI Agents SDK 的 Guardrails 文档把防护分成输入、输出和工具相关的校验。其中 Tool Guardrails 可以在函数工具执行前后运行执行前可以跳过、替换结果或触发中断执行后也可以替换输出或触发中断。这对 Agent 很重要。因为很多风险不是发生在最终回答而是发生在工具调用那一刻。工具调用前要检查什么第一参数格式是否合法。比如 city 是否是字符串amount 是否是正数file_path 是否在允许目录内。第二参数内容是否越权。比如用户只能访问自己的订单却请求查询别人的订单。第三动作风险等级是否过高。比如 delete、send、pay、deploy、update_permission 这类动作不能静默执行。第四是否存在注入风险。比如 Shell 命令、SQL 参数、URL、文件路径都要做白名单和转义处理。工具执行后要检查什么第一工具返回是否包含敏感信息。第二返回结果是否可信。第三是否包含新的恶意指令。第四是否需要摘要、脱敏、截断后再给模型。一个重要原则不要把所有安全责任都压到 Agent Prompt 里。Prompt 可以提醒模型不要越权但真正可靠的安全边界应该放在代码、权限、网关、沙箱和审批流程里。05 第三条防线Human-in-the-loopHuman-in-the-loop 不是为了降低自动化水平而是为了把高风险动作控制在可接受范围内。一个成熟 Agent 系统应该区分三类动作。第一类是低风险动作可以自动执行。比如读取公开资料、查询天气、生成草稿、总结文档。第二类是中风险动作可以自动准备但需要用户确认。比如修改文件、创建日程、发送内部消息。第三类是高风险动作必须强制审批。比如删除数据、外发邮件、付款、发布生产环境、修改权限、执行 Shell 命令。OpenAI 的 Guardrails and Human Review 文档中也描述了类似的审批生命周期工具调用需要审查时系统记录审批中断返回 interruptions 和可恢复 state应用批准或拒绝后再从同一 state 继续运行。这说明审批不是“重新开始一次对话”而是 Agent 执行链路中的一个状态暂停点。审批界面应该展示什么不要只给用户一个“是否同意”的按钮。审批界面至少要展示Agent 准备做什么动作使用了哪些参数会影响哪些对象是否可撤销如果不批准替代方案是什么这次动作由哪个用户、哪个任务、哪个工具触发只有这样用户才是在做有效审批而不是机械地点“同意”。06 可靠性不是安全但同样重要安全解决的是Agent 不要做危险的事。可靠性解决的是Agent 做事时不要卡死、乱重试、重复执行、失败不可恢复。这两者经常被混在一起但工程上要分开设计。Agent 可靠性的六个关键点第一超时每次模型调用、工具调用、外部 API 调用都要有超时。没有超时Agent 就可能一直等下去。第二重试重试只能用于临时失败比如网络抖动、限流、服务短暂不可用。不能对所有失败都盲目重试。比如参数错误、权限错误、业务规则不满足重试多少次都没用。第三幂等只要动作有副作用就要考虑幂等。比如创建订单、发送邮件、写数据库、触发流程如果 Agent 因为超时重试不能造成重复下单、重复发送、重复扣款。第四状态机复杂任务不要只存在模型上下文里。应该把任务拆成明确状态待开始、执行中、等待审批、已完成、失败、已回滚。这样任务失败后才能知道卡在哪一步。第五回滚不是所有动作都能回滚但至少要知道哪些动作可以撤销哪些动作不可撤销。不可撤销动作更应该强制审批。第六日志与追踪Agent 每一次计划、工具调用、审批、失败、重试、输出都应该留下日志。否则一旦出问题你很难回答三个问题它为什么这么做调用了什么工具影响了哪些数据07 一个可落地的安全可靠性架构如果把前面的内容落成架构可以拆成七层。第一层是输入边界负责输入清洗、风险识别、上下文来源标记。第二层是 Agent / Planner负责理解目标、制定计划、选择工具。第三层是 Policy Engine负责判断当前用户、当前任务、当前工具调用是否有权限。第四层是 Tool Gateway负责参数校验、工具白名单、限流、超时、重试、审计和审批触发。第五层是 Sandbox / External System负责把高风险动作限制在可控环境内。第六层是 Output Checker负责敏感信息过滤、格式校验、结果一致性检查。第七层是 Observability负责日志、指标、追踪、评估和告警。最小可落地版本如果你现在只是做一个早期 Agent 产品不一定要一次性做完所有能力。但至少应该先做到这五件事工具分级读、写、删、发、付、执行命令分开权限隔离按用户、项目、租户控制访问范围高危审批删除、外发、付款、上线必须暂停确认状态持久化复杂任务能暂停、恢复、重试日志审计每次工具调用都能追踪到用户、参数和结果这五件事做完Agent 才开始具备工程上线的基础。08 最后总结Agent 的安全与可靠性不是给模型多写几句“请谨慎操作”。真正的安全来自边界设计最小权限、工具校验、风险分级、人工审批、沙箱隔离、输出检查、日志审计。真正的可靠性来自执行设计超时、重试、幂等、状态机、checkpoint、回滚、可观测性。如果说前面几篇讲的是 Agent 如何获得能力那么这一篇讲的是能力必须被关进工程边界里Agent 才能从 Demo 走向生产。下一篇我们会继续讲一个和 Agent 落地密切相关的问题RAG 和 Agent 到底是什么关系。参考技术资料OpenAI Agents SDK - Guardrails输入、输出和工具级 Guardrails 的执行边界与触发机制。OpenAI API - Guardrails and Human Review高风险工具调用的审批中断、state 恢复和继续执行机制。OWASP Top 10 for LLM ApplicationsPrompt Injection、Insecure Output Handling、Excessive Agency 等 LLM 应用风险。OWASP LLM06:2025 Excessive Agency功能过多、权限过大、自治过高会导致破坏性动作。Anthropic - Claude Code Security权限系统、沙箱、网络请求审批、提示词注入防护和审计建议。Anthropic - Mitigating Prompt Injection in Browser Use浏览器 Agent 面临更大的不可信内容攻击面提示词注入仍不是已解决问题。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2621644.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

SpringBoot-17-MyBatis动态SQL标签之常用标签

文章目录 1 代码1.1 实体User.java1.2 接口UserMapper.java1.3 映射UserMapper.xml1.3.1 标签if1.3.2 标签if和where1.3.3 标签choose和when和otherwise1.4 UserController.java2 常用动态SQL标签2.1 标签set2.1.1 UserMapper.java2.1.2 UserMapper.xml2.1.3 UserController.ja…

wordpress后台更新后 前端没变化的解决方法

使用siteground主机的wordpress网站,会出现更新了网站内容和修改了php模板文件、js文件、css文件、图片文件后,网站没有变化的情况。 不熟悉siteground主机的新手,遇到这个问题,就很抓狂,明明是哪都没操作错误&#x…

网络编程(Modbus进阶)

思维导图 Modbus RTU(先学一点理论) 概念 Modbus RTU 是工业自动化领域 最广泛应用的串行通信协议,由 Modicon 公司(现施耐德电气)于 1979 年推出。它以 高效率、强健性、易实现的特点成为工业控制系统的通信标准。 包…

UE5 学习系列(二)用户操作界面及介绍

这篇博客是 UE5 学习系列博客的第二篇,在第一篇的基础上展开这篇内容。博客参考的 B 站视频资料和第一篇的链接如下: 【Note】:如果你已经完成安装等操作,可以只执行第一篇博客中 2. 新建一个空白游戏项目 章节操作,重…

IDEA运行Tomcat出现乱码问题解决汇总

最近正值期末周,有很多同学在写期末Java web作业时,运行tomcat出现乱码问题,经过多次解决与研究,我做了如下整理: 原因: IDEA本身编码与tomcat的编码与Windows编码不同导致,Windows 系统控制台…

利用最小二乘法找圆心和半径

#include <iostream> #include <vector> #include <cmath> #include <Eigen/Dense> // 需安装Eigen库用于矩阵运算 // 定义点结构 struct Point { double x, y; Point(double x_, double y_) : x(x_), y(y_) {} }; // 最小二乘法求圆心和半径 …

使用docker在3台服务器上搭建基于redis 6.x的一主两从三台均是哨兵模式

一、环境及版本说明 如果服务器已经安装了docker,则忽略此步骤,如果没有安装,则可以按照一下方式安装: 1. 在线安装(有互联网环境): 请看我这篇文章 传送阵>> 点我查看 2. 离线安装(内网环境):请看我这篇文章 传送阵>> 点我查看 说明&#xff1a;假设每台服务器已…

XML Group端口详解

在XML数据映射过程中&#xff0c;经常需要对数据进行分组聚合操作。例如&#xff0c;当处理包含多个物料明细的XML文件时&#xff0c;可能需要将相同物料号的明细归为一组&#xff0c;或对相同物料号的数量进行求和计算。传统实现方式通常需要编写脚本代码&#xff0c;增加了开…

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器的上位机配置操作说明

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器专为工业环境精心打造&#xff0c;完美适配AGV和无人叉车。同时&#xff0c;集成以太网与语音合成技术&#xff0c;为各类高级系统&#xff08;如MES、调度系统、库位管理、立库等&#xff09;提供高效便捷的语音交互体验。 L…

(LeetCode 每日一题) 3442. 奇偶频次间的最大差值 I (哈希、字符串)

题目&#xff1a;3442. 奇偶频次间的最大差值 I 思路 &#xff1a;哈希&#xff0c;时间复杂度0(n)。 用哈希表来记录每个字符串中字符的分布情况&#xff0c;哈希表这里用数组即可实现。 C版本&#xff1a; class Solution { public:int maxDifference(string s) {int a[26]…

【大模型RAG】拍照搜题技术架构速览:三层管道、两级检索、兜底大模型

摘要 拍照搜题系统采用“三层管道&#xff08;多模态 OCR → 语义检索 → 答案渲染&#xff09;、两级检索&#xff08;倒排 BM25 向量 HNSW&#xff09;并以大语言模型兜底”的整体框架&#xff1a; 多模态 OCR 层 将题目图片经过超分、去噪、倾斜校正后&#xff0c;分别用…

【Axure高保真原型】引导弹窗

今天和大家中分享引导弹窗的原型模板&#xff0c;载入页面后&#xff0c;会显示引导弹窗&#xff0c;适用于引导用户使用页面&#xff0c;点击完成后&#xff0c;会显示下一个引导弹窗&#xff0c;直至最后一个引导弹窗完成后进入首页。具体效果可以点击下方视频观看或打开下方…

接口测试中缓存处理策略

在接口测试中&#xff0c;缓存处理策略是一个关键环节&#xff0c;直接影响测试结果的准确性和可靠性。合理的缓存处理策略能够确保测试环境的一致性&#xff0c;避免因缓存数据导致的测试偏差。以下是接口测试中常见的缓存处理策略及其详细说明&#xff1a; 一、缓存处理的核…

龙虎榜——20250610

上证指数放量收阴线&#xff0c;个股多数下跌&#xff0c;盘中受消息影响大幅波动。 深证指数放量收阴线形成顶分型&#xff0c;指数短线有调整的需求&#xff0c;大概需要一两天。 2025年6月10日龙虎榜行业方向分析 1. 金融科技 代表标的&#xff1a;御银股份、雄帝科技 驱动…

观成科技:隐蔽隧道工具Ligolo-ng加密流量分析

1.工具介绍 Ligolo-ng是一款由go编写的高效隧道工具&#xff0c;该工具基于TUN接口实现其功能&#xff0c;利用反向TCP/TLS连接建立一条隐蔽的通信信道&#xff0c;支持使用Let’s Encrypt自动生成证书。Ligolo-ng的通信隐蔽性体现在其支持多种连接方式&#xff0c;适应复杂网…

铭豹扩展坞 USB转网口 突然无法识别解决方法

当 USB 转网口扩展坞在一台笔记本上无法识别,但在其他电脑上正常工作时,问题通常出在笔记本自身或其与扩展坞的兼容性上。以下是系统化的定位思路和排查步骤,帮助你快速找到故障原因: 背景: 一个M-pard(铭豹)扩展坞的网卡突然无法识别了,扩展出来的三个USB接口正常。…

未来机器人的大脑:如何用神经网络模拟器实现更智能的决策?

编辑&#xff1a;陈萍萍的公主一点人工一点智能 未来机器人的大脑&#xff1a;如何用神经网络模拟器实现更智能的决策&#xff1f;RWM通过双自回归机制有效解决了复合误差、部分可观测性和随机动力学等关键挑战&#xff0c;在不依赖领域特定归纳偏见的条件下实现了卓越的预测准…

Linux应用开发之网络套接字编程(实例篇)

服务端与客户端单连接 服务端代码 #include <sys/socket.h> #include <sys/types.h> #include <netinet/in.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <arpa/inet.h> #include <pthread.h> …

华为云AI开发平台ModelArts

华为云ModelArts&#xff1a;重塑AI开发流程的“智能引擎”与“创新加速器”&#xff01; 在人工智能浪潮席卷全球的2025年&#xff0c;企业拥抱AI的意愿空前高涨&#xff0c;但技术门槛高、流程复杂、资源投入巨大的现实&#xff0c;却让许多创新构想止步于实验室。数据科学家…

深度学习在微纳光子学中的应用

深度学习在微纳光子学中的主要应用方向 深度学习与微纳光子学的结合主要集中在以下几个方向&#xff1a; 逆向设计 通过神经网络快速预测微纳结构的光学响应&#xff0c;替代传统耗时的数值模拟方法。例如设计超表面、光子晶体等结构。 特征提取与优化 从复杂的光学数据中自…