English
主导航

旧版 API

构建智能体的安全性

在构建智能体时最大限度地减少提示注入和其他风险。

在构建和部署智能体时,使用 智能体构建器,理解其中的风险很重要。了解构建多智能体工作流时的风险类型以及如何缓解它们。

风险类型

某些智能体工作流模式更容易受到风险的影响。在聊天工作流中,两个重要的考虑事项是保护用户输入和谨慎处理 MCP 工具调用。

提示注入

提示注入 是一种常见且危险的攻击类型。当不受信任的文本或数据进入 AI 系统时,就会发生提示注入,该文本或数据中的恶意内容会试图覆盖给 AI 的指令。提示注入的最终目的各不相同,但可能包括通过下游工具调用窃取隐私数据、执行偏离设定的动作,或以非预期的方式改变模型行为。例如,某个提示可能会欺骗数据查询智能体,使其发送原始的客户记录而不是预期的摘要。请在以下文档中查看上下文示例: Codex 互联网访问文档.

隐私数据泄露

隐私数据泄露,即智能体意外共享私密数据,也是需要防范的风险。模型有可能在没有攻击者的情况下,以非预期的方式泄露私密数据。例如,模型可能向某个 MCP 发送超出用户预期或意图的数据。尽管护栏能更好地控制以限制纳入上下文的信息,但你无法完全控制模型选择与已连接 MCP 共享的内容。

请使用以下指南来缩小攻击面并降低这些风险。但是, 即使采取了这些缓解措施,智能体不会是完美的,仍可能犯错或被欺骗;因此,理解这些风险并谨慎对待你授予智能体的访问权限以及使用智能体的方式很重要。

不要在开发者消息中使用不受信任的变量

由于开发者消息的优先级高于用户和助手消息,将不受信任的输入直接注入开发者消息会赋予攻击者最高程度的控制权。通过用户消息传递不受信任的输入,以限制其影响力。这对于将用户输入传递给敏感工具或特权上下文的工作流来说尤其重要。

使用结构化输出来约束数据流

提示注入通常依赖于模型自由生成非预期的文本或命令,并将其向下游传播。通过定义节点之间的结构化输出(例如枚举、固定模式和必填字段名),可以消除攻击者利用来夹带指令或数据的自由文本通道。

使用清晰的指导和示例来引导智能体

由于幻觉、误解、用户输入含糊不清等原因,智能体工作流可能会执行您不希望的操作。例如,智能体可能会提供不应提供的退款,或者删除不应删除的信息。降低此风险的最佳方法是,通过完善所需策略的文档并提供清晰的示例来增强您的提示。预见非预期的场景并提供示例,以便智能体知道在这些情况下该怎么做。

使用 GPT-5 或 GPT-5-mini

这些模型在遵循开发者指令方面更加自律,并针对越狱和间接提示注入展现出更强的鲁棒性。请在智能体节点级别配置这些模型,以获得更具弹性的默认防御态势,尤其是在风险较高的工作流中。

保持工具批准开启

在使用 MCP 工具时,请始终启用工具批准功能,以便最终用户可以审查并确认每一项操作,包括读取和写入。在 Agent Builder 中,使用 人工批准 node.

为用户输入设置防护措施

使用内置的 防护措施 清理传入的输入,以隐去个人身份信息 (PII) 并检测越狱尝试。虽然 Agent Builder 中的防护措施节点本身并非万无一失,但它们是有效的第一道防线。

运行 Trace 评分器和评估

如果您了解模型在做什么,就能更好地发现和预防错误。使用 评估 来评估和改进性能。Trace 评分可以为智能体 Trace 的特定部分(例如决策、工具调用或推理步骤)提供分数和注释,以评估智能体在哪些方面表现出色,在哪些方面犯了错误。

结合多种技术

通过结合这些技术并加固关键步骤,您可以显著降低提示注入、恶意工具使用或非预期智能体行为的风险。

设计工作流,使不受信任的数据永远不会直接驱动智能体的行为。仅从外部输入中提取特定的结构化字段(如枚举或经过验证的 JSON),以限制注入风险在节点之间流动。使用防护措施、工具确认以及通过用户消息传递的变量来验证输入。

当智能体处理影响工具调用的任意文本时,风险会随之上升。结构化输出和隔离措施可以大大降低风险, 但不能完全消除, this risk.