智能体工作流 · 2026 年 9 月 21 日
如何为 AI 智能体提供安全的邮件发送权限
直接给 AI 智能体一个 API 密钥是一种隐患。了解如何实现限定作用域的凭据、审批边界和幂等,防止由智能体引发的邮件灾难。
智能体邮件的核心挑战
要为 AI 智能体提供安全的邮件访问权限,您必须把发送邮件视为高风险的外部副作用。绝不要给智能体根 API 密钥,而应使用按工作区限定作用域的凭据,为大批量或高敏感度的发送设置人工审批边界,并强制使用幂等键,防止 LLM 重试时重复发送。这种架构可以限制智能体的影响范围,同时保留审计每一封外发邮件的能力。
作为负责事件队列的工程师,我见过智能体陷入循环或凭空捏造分发列表时会发生什么。如果您的智能体能不受限制地访问事务性邮件服务商,一个逻辑错误就能在几分钟内毁掉您的域名信誉。您必须把智能体撰写邮件的能力,与系统发出邮件的权限分开。
AI 邮件智能体的风险画像
当我们把 LLM 集成到邮件工作流中时,会引入三种主要的失败模式:
- 无限循环:智能体触发一次发送,收到退信或回复后立即作出响应,形成递归循环,导致发送量激增并触发速率限制。
- 幻觉收件人:智能体生成看似合理但实际错误的邮件地址,推高您的退信率并损害发件人信誉。
- 上下文漂移:智能体丢失了会话的原始意图,开始向客户发送不相关或不恰当的内容。
更糟糕的是,大多数传统邮件 API 是为确定性的应用逻辑而设计的,而不是为概率性的 AI 逻辑设计的。如果您使用标准的 API 密钥,服务商无法区分正常的系统通知和一个失控的智能体。
实现限定作用域的凭据
第一道防线是最小权限原则。不要使用全局账户密钥,而要使用按工作区限定作用域的 API 密钥,将智能体限制在特定的域名或模板上。
例如,如果您使用 SendHQ,就可以利用按工作区限定作用域的 API 密钥,确保智能体只能从特定的已验证域名发信。这可以防止智能体意外冒用其他内部域名或访问管理设置。
负载结构
当智能体请求发送时,负载的结构中应包含用于审计的元数据。避免让智能体动态指定 from 地址。请在后端固定 from 地址,只让智能体提供 to、subject 和 body(或模板变量)。
{
"to": "customer@example.com",
"template_id": "welcome-email-01",
"variables": {
"first_name": "Jane",
"onboarding_step": "API Integration"
},
"idempotency_key": "req_agent_88234_step_1",
"metadata": {
"agent_id": "support-bot-v2",
"conversation_id": "conv_9912"
}
}
解决重复发送问题
LLM 很容易遇到超时和重试。如果您的智能体调用邮件 API 时请求卡住,智能体又进行了重试,同一封邮件就有可能被发送两次。这不仅用户体验差,还会向垃圾邮件过滤器表明您的发送模式不稳定。
这时幂等键就是必需的。幂等键是由客户端(智能体的编排器)生成的唯一值,API 用它来识别针对同一请求的后续重试。如果 API 发现某个键已被处理过,就会返回最初的成功响应,而不会再次发送邮件。
审批边界与人工介入(HITL)
并非每封邮件都需要人工过目,但高风险邮件需要。我建议根据智能体的置信度或收件人的重要程度,建立分级审批体系。
第 1 级:自动发送(低风险)
- 事务性提醒(例如密码重置)。
- 已确认的预约提醒。
- 这些邮件无需经过审批队列。
第 2 级:标记待审(中风险)
- 客户支持回复。
- 基于潜在客户数据的外联邮件。
- 这些邮件会在控制台中排队,等待人工点击“批准”或“编辑”。
第 3 级:禁止自动发送(高风险)
- 发给高管的邮件。
- 群发公告。
- 这些邮件需要人工撰写,或使用严格的模板覆盖。
基础设施成本的权衡
为智能体选择服务商时,您必须在成本与安全所需的功能(例如细粒度的 API 密钥和投递事件)之间取得平衡。
根据 Amazon SES 价格,按量计费的发送成本为每 1,000 封邮件 0.10 USD。不过,其 2026 年 7 月 21 日推出的新分级套餐改变了计算方式:Essentials 为每 1,000 封 0.16 USD,Pro 为每 1,000 封 0.22 USD 另加每个区域每月 105 USD,Enterprise 为每 1,000 封 0.23 USD 另加每月 500 USD。
与其他服务商对比:
- Resend 提供每月 3,000 封邮件的免费额度(每天上限 100 封),Pro 套餐为每月 20 USD、含 50,000 封邮件,超出部分每 1,000 封 0.90 USD。
- SendGrid 的免费版现已改为 60 天试用,Essentials 起价为每月 19.95 USD。
- Mailgun 起价为每月 15 USD、含 10,000 封邮件,超出部分每 1,000 封 1.80 至 1.10 USD。
- Postmark 起价为每月 15 USD、含 10,000 封邮件,超出部分每 1,000 封 1.80 至 1.20 USD。
单从成本看,50,000 封邮件在 SES 按量计费下约为 5 USD,而在 Postmark 的套餐下约为 66 USD。但成本并不是唯一的指标。对于 AI 智能体,您需要健全的投递事件和易于管理的抑制列表,防止智能体反复向失效地址发信。
审计追踪与遥测
如果智能体发出了一封有问题的邮件,您需要准确知道原因。您的日志应将邮件 ID 与 LLM 提示词以及智能体系统指令的具体版本关联起来。
审计日志的必备字段
message_id:服务商分配的唯一 ID。agent_version:所使用的具体提示词版本。prompt_hash:提供给 LLM 的输入上下文的哈希值。approval_timestamp:人工批准发送的时间。delivery_status:邮件是否已被收件服务器接受。
请记住,服务商受理不等于投递,投递也不等于收件箱送达。您的智能体可能从 API 收到 202 Accepted,但邮件仍可能因为 SPF 或 DKIM 校验失败而被收件方服务器丢弃。在让智能体发出任何一封邮件之前,请使用 SendHQ 邮件 DNS 检查工具等工具确认您的记录正确无误。
AI 智能体送达率检查清单
在将智能体部署到生产环境之前,请逐项检查以下清单:
- DNS 验证:SPF、DKIM 和 DMARC 是否已配置?(详情参阅我们的DKIM、SPF 和 DMARC 指南)。
- 限定作用域的密钥:智能体的密钥是否限定为特定工作区或域名?
- 幂等性:每个请求是否都有唯一密钥以防止重复?
- 速率限制:智能体每小时可发送的邮件数量是否有硬性上限?
- 抑制同步:智能体是否会在尝试发送前检查抑制列表?
- 人工参与:是否有机制拦截高风险邮件?
处理错误情况
智能体的编排器必须妥善处理 API 错误。不要让智能体通过修改负载来“尝试修复”401 Unauthorized 或 429 Too Many Requests 错误。这些是基础设施问题,而不是内容问题。
错误码 | 含义 | 智能体应采取的操作
400 Bad Request | 负载无效 | 记录错误,通知开发者,停止智能体
401 Unauthorized | API 密钥无效 | 立即熔断,通知管理员
429 Too Many Requests | 触发速率限制 | 指数退避,不要立即重试
500 Internal Error | 服务商故障 | 排队稍后处理,不要让智能体陷入重试循环
总结
让 AI 智能体能够与客户沟通,是一种强大的效率倍增器,但同时也是一种隐患。把邮件视为副作用、严格限定凭据作用域并实现幂等,您就能在享受 AI 速度的同时,不让域名信誉承担风险。要关注边界,而不只是提示词。
使用 SendHQ 放心构建您的智能体工作流。