部署 Agent 认证 — 客户验证 + 条件逻辑 + 双因素认证

完整实操项目:跟随 Pronto 外卖配送公司实施 Agent 认证——区分公开/私有操作、导入 Agent via Script、构建 Order Issues and Refunds Subagent(Apex 检索客户+案例)、创建 Verify Customers Subagent(Flow 邮件验证码+验证)、设置 IsVerifiedCustomer 和 AuthenticationKey 全局变量并映射输入/输出、添加 If/Else 条件逻辑路由未验证用户到验证流程、端到端测试双因素邮件认证——敏感操作仅在验证后执行。...

📅 2025/12/1 ✍️ ponybai 🏷️ agentforce, salesforce, security

一、了解 Subagents 与 Actions 的认证

欢迎来到 Deploying Agent Authentication。本项目跟随 Pronto 外卖配送公司的管理员 Linda Rosenberg,为敏感的 Agent 操作实施客户验证。添加认证的第一步是区分哪些操作应该是公开的,哪些应该是私有的

Public vs. Private Actions 与 Pronto 需求

Public Actions(公开操作):Agent 无需认证即可访问——无需身份验证。示例:回答 FAQ、提供公司公开信息(地址、营业时间等)。

Private Actions(私有操作):需要验证用户身份后 Agent 才能执行。示例:更新个人信息、处理支付、取消预约、访问敏感账户、请求退款。

Pronto 的需求:订单查询触发 Order Issues and Refunds Subagent + 验证;双因素验证:询问邮箱→发送一次性验证码;Agent 只有验证码匹配后才能访问敏感操作。

环境设置

  1. 注册包含 Agentforce Studio 和 Pronto 示例数据的 Developer Edition org
  2. Setup → Salesforce Go → Agentforce Studio → Get Started → Turn On → Confirm
  3. 配置邮件可达性(发送验证码的关键步骤):Setup → Deliverability → Email Domain Verification → 勾选 "Use a substitute email address for unverified domains" → Domain Name: gmail.com → Save

二、导入 Agent 并添加客户验证

导入 Agent 并构建 Order Issues Subagent

  1. Agentforce Studio → New Agent → New from Script → 粘贴 Agent Script → Create Agent → 打开 Pronto Service Agent → Save → 分配 EinsteinServiceAgent User
  2. 创建 Order Issues and Refunds Subagent:Purpose=解决订单问题(缺失物品、冷食、延迟配送、退款),处理支持案例并确定退款资格
  3. 创建两个 Apex ActionsGet Customer Profile(按邮箱检索客户档案)和 Get Related Cases(检索客户关联案例)
  4. 添加 Subagent 指令:"当用户询问订单或请求退款时,先询问邮箱地址。运行 Get Customer Profile 和 Get Related Cases 检查现有案例并提供状态。"
  5. 测试:"Can you show me all of my cases?" → Agent 询问邮箱 → 返回案例结果

创建 Verify Customers Subagent 与自定义变量

Verify Customers Subagent:在允许访问敏感支持操作之前验证客户身份。

  • Send Email with Verification Code (Flow):向客户邮箱发送验证码 → Input: customerToVerify → Output: verificationMessage
  • Verify Code (Flow):验证用户输入的验证码 → Inputs: customerCode, customerId, customerType

两个全局自定义变量:

  • IsVerifiedCustomer (Boolean, 默认 False):跟踪客户是否完成验证
  • AuthenticationKey (String):存储链接邮箱验证码发放与验证的认证密钥

变量映射:Send Email 输出 AuthenticationKey + VerifiedCustomerId → Verify Code 输入 AuthenticationKey(Agent Populated)→ 输出 IsVerifiedCustomer。将 Get Customer Profile 也添加到 Verify Customers Subagent。

添加条件逻辑与端到端测试

条件逻辑(If/Else):更新 Order Issues and Refunds Subagent 指令:

  • IF IsVerifiedCustomer == True → 运行 Get Related Cases 敏感操作
  • ELSE → Transition to Verify Customers Subagent

这意味着:敏感操作仅在验证后执行。未验证客户先被路由到 Verify Customers 流程。Save → Commit Version (x2) → Activate (x2)。

端到端测试:Preview → "Hi, I'm Alex Morgan. Can you show me all of my cases?" → Agent 转换到 Verify Customers(尚未验证)→ 询问邮箱 → 发送验证码 → 复制 6 位 verificationCode → 粘贴 → 验证成功 → Agent 确认并显示案例。

可复用的 Verify Customers Subagent 配合混合推理护栏(Hybrid Reasoning Guardrails)确保敏感操作仅在双因素邮件验证成功后执行。公开操作对所有人开放;私有操作以认证为门槛。


文章来源:Trailhead - Deploying Agent Authentication