趋近智
当您为LLM智能体配备工具时,您大幅增强了它们的能力,使其能够以新的方式进行交互。然而,这种能力提升也带来了新的安全考量。每一个能够访问数据、执行代码或与外部系统交互的工具,如果设计时没有考虑安全,都可能成为潜在的滥用或攻击途径。因此,从工具开发伊始就理解并运用基本的安全准则,是构建安全可靠的智能体系统的必要条件。
本节概述了核心安全准则,以指导您设计和实现LLM智能体的工具。这些准则并非详尽无遗,但它们为降低常见风险提供了扎实的依据。
最重要的安全准则之一是最低权限准则。这意味着您创建的任何工具都只应被授予执行其特定、预期功能所需的绝对必需的最小权限,不多不少。如果一个工具只需要读取数据,它就不应拥有写入或删除权限。如果它只需要访问一个特定的API端点,它就不应拥有访问所有端点的权限。
考虑一个旨在获取给定城市当前天气预报的工具。
遵循此准则可限制潜在损害,无论工具是由于自身缺陷、LLM误解其用途,还是恶意行为者影响LLM而受到侵害或滥用。在设计工具时,请始终问自己:“这个工具正常运行所需的绝对最小权限集合是什么?”
LLM智能体将根据对任务和工具描述的理解,向您的工具提供输入。这些输入有时可能是格式错误、出乎意料,甚至带有恶意(例如,如果LLM本身通过提示注入被操纵)。您的工具绝不能盲目信任来自LLM的输入。
输入验证是检查输入数据是否符合预期格式、类型、范围和约束的过程。例如,如果工具期望一个数字ID,它应验证输入确实是数字,并且可能在有效范围内。如果它期望一个日期,它应验证日期格式。
输入清理涉及在工具处理输入数据或将其传递给其他系统(如数据库或shell命令)之前,清除或修改输入数据以去除或中和潜在有害字符或序列。这对于防止注入攻击尤其重要,在注入攻击中,攻击者可能试图在输入数据中嵌入恶意代码(例如,SQL命令、shell脚本)。
此流程展示了工具执行路径中的一个输入验证检查点。
始终严格验证和清理输入。优先使用允许列表(精确定义允许的内容),而非拒绝列表(尝试列出所有禁止的内容),因为允许列表通常更安全。
正如输入必须小心处理一样,您的工具生成的输出也需要关注。如果工具处理敏感信息或执行代码,需要特别预防措施。
对于执行代码的工具(例如,Python解释器工具),沙箱是必不可少的。沙箱涉及在受限、隔离的环境中运行代码,并严格限制其可以访问或执行的操作。这可以防止执行的代码:
当工具处理敏感数据时,请确保返回给LLM的输出经过适当筛选或修订。LLM可能不会固有地理解所有数据点的敏感性,因此工具必须强制执行数据保护策略。例如,查询客户数据库的工具不应返回信用卡号或完整地址,除非绝对必要且获得许可,即使如此,也要考虑LLM是否确实需要这些原始数据。
许多工具将充当外部API或服务的封装器。当您的工具需要与此类服务通信时,它通常需要身份验证(证明其身份)和授权(获得执行操作的许可)。
LLM智能体可以频繁调用工具,有时甚至是快速连续调用,特别是在自动化循环或处理大型任务时。这可能无意中导致:
在您的工具内部或托管它们的infra中实施速率限制,以控制它们的调用频率。监控您的工具的资源消耗(CPU、内存、网络带宽),以识别并解决潜在的性能瓶颈或滥用模式。
全面的日志记录是工具安全运行的基本方面。您的工具应记录足够的信息,以便进行审计、调试和安全事件分析。考虑记录以下内容:
保护您的日志,以防止未经授权的访问或篡改,因为它们包含有价值的信息,可用于理解智能体行为和发现潜在安全问题。
虽然LLM指导工具使用,但工具本身的设计会影响其使用或滥用方式。避免创建过于宽泛的“超级工具”,它们可能执行许多不相关且敏感的操作。优先选择更小、更专注的工具,每个工具都有明确定义的目的和有限的功能集。这使得以下工作变得更容易:
从一开始就将这些安全准则融入您的开发流程,为您的LLM智能体奠定更扎实的根基。安全不是一个可以后期添加的功能;它是设计和构建可靠工具的组成部分。随着本课程的推进,我们将看到这些准则如何应用于特定类型的工具和更复杂的场景。
这部分内容有帮助吗?
© 2026 ApX Machine Learning用心打造