Agentforce 客户聊天体验开发指南

发布时间:2026/9/12 10:35:32

Agentforce 客户聊天体验开发指南 Enhanced Chat v2 概述Enhanced Chat v2 是 Service Cloud 上 Enhanced Web Chat 的新客户界面允许你连接和部署 Service Agent 到外部聊天渠道。支持通过 Custom Lightning Types 自定义 UI、通过utilAPI.setSessionContext方法传递上下文事件、以及内联模式Inline Mode将聊天客户端嵌入到网页特定元素中。Context Events上下文事件Enhanced Chat v2 提供了一个独特的上下文事件传递方式。Enhanced Web Chat 中的utilAPI新增了setSessionContext方法可在 Enhanced Chat v2 部署中使用用于在网页和聊天客户端之间传递上下文事件。Inline Mode内联模式vs 浮动模式模式行为浮动模式默认用户点击右下角 FAB 按钮时出现聊天窗口内联模式聊天直接渲染在父页面指定的div元素内填满目标元素启用内联模式embeddedservice_bootstrap.settings.displayMode inline; embeddedservice_bootstrap.settings.headerEnabled false; // 可选 const myElement document.querySelector(.chat-container); embeddedservice_bootstrap.settings.targetElement myElement;Custom Lightning Types使用 Lightning Web Components 个性化聊天外观可以代表用户发送消息或从 LWC 传递上下文事件。Custom Connections自定义连接Custom Connections 通过 Agent API 将外部 Web 客户端连接到 Agentforce Agent。你定义基于元数据的连接告知 Agent 你的客户端支持哪些结构化响应格式Agent 则返回符合这些 Schema 的 JSON。这使得你的客户端可以渲染原生 UI 组件如轮播、卡片、表单或选择器。工作原理Custom Connections 使用两种元数据类型AiSurface—— 定义连接本身表面级指令语气、长度限制、格式化条件、引用的响应格式列表、surfaceType 设为 CustomAiResponseFormat—— 定义单个结构化输出格式JSON Schemainput 字段、描述和指令告诉 Agent 何时应用此格式、可选的 invocationTarget响应格式选择过程当前对话轮次的子代理和动作指令首先运行Agent 评估每个启用的 AiResponseFormat 的描述和指令Agent 每轮最多选择一个格式 —— 判定为最匹配的格式sortOrder控制 LLM 评估顺序较低值先评估影响但不强制执行回退如果没有格式被选中或发生错误 → 返回标准 Agent API 响应无格式纯文本警告所有响应格式指令都是非确定性的。Agent 可能选择错误的格式或产出不完全符合 JSON Schema 的输出。始终构建客户端解析以处理结构化响应和纯文本回退两种情况。设置 Custom Connection目录结构unpackaged/ package.xml aiResponseFormats/ AcmeChatChoices_{surfaceId}.aiResponseFormat AcmeChatChoicesWithImages_{surfaceId}.aiResponseFormat AcmeChatTimePicker_{surfaceId}.aiResponseFormat aiSurfaces/ AcmeChatClient_{surfaceId}.aiSurface genAiPlannerBundles/ {YourPlannerBundle}/ {YourPlannerBundle}.genAiPlannerBundle{surfaceId}是区分自定义连接及其关联响应格式的唯一字母数字标识符。部署顺序重要AiResponseFormat 必须在 AiSurface之前部署因为 Surface 引用了 Format。sf project deploy start --manifest unpackaged/package.xml。更新时直接重新部署同名的定义即可替换旧版本。AiSurface 字段参考description—— 连接的用途描述instructions[]—— 高层指导instruction 字符串 sortOrder 整数较低值优先如 Always reply with a brief, friendly, clear response under 160 characters.responseFormats[]—— 启用的响应格式列表enabled 布尔值 responseFormat 开发者名称surfaceType—— CustomAiResponseFormat 字段参考description—— 告诉 Agent何时选择此格式用于选择评估而非仅供人阅读。如 Use this when the number of choices is GREATER THAN 1 and LESSER THAN 8.input—— 定义预期输出结构的 JSON SchemaAgent 尝试映射但非严格强制instructions[]—— 应用此特定格式的详细用例条件invocationTarget / invocationTargetType—— 可选的可调用动作引用apex/flow/standardInvocableAction关联到 Agent在 GenAiPlannerBundle 中添加plannerSurfaces条目指定 surface 名称和 surfaceType 为 Custom。使用、解析和测试 Custom Connections在 Agent API 会话中使用surfaceConfig: { surfaceType: Custom }解析响应检查消息是否包含result数组 → 响应格式已被应用读取result[0].type→ 格式标识前缀为SURFACE_ACTION__ AiResponseFormat 开发者名称不含 _{surfaceId} 后缀将result[0].value解析为 JSON → 符合你定义的 input Schema无 result 数组→ 回退将 message 字段渲染为纯文本// 示例响应 result: [{ type: SURFACE_ACTION__RegistrationForm, value: {\title\:\registrationForm\,\message\:\To register...\} }]重要始终在客户端验证result[0].value后再交给渲染器 —— 平台不会对 Agent 的结构化输出进行 Schema 验证。响应格式示例和故障排查三种常见设计模式模式Schema使用条件文本选项{message: string, choices: string[]}选项数 1 且 8带图选项{message: string, choices: [{title, imageUrl, actionText}]}图片对决策至关重要时间选择器Slack Block Kit timepicker 语法用户需要选择具体时间设计技巧保持格式集小—— 每个连接少于 7 个响应格式太多会导致选择不可靠描述要写给选择逻辑—— 明确写出精确条件项目数量、是否包含图片、数据形状而非泛泛的人类描述用 LLM 生成 JSON Schema—— 向你偏好的 LLM 提供输出结构让它生成对应的 JSON Schema故障排查速查问题解决方案无效 JSON Schema验证 input 字段包含有效、正确转义的 JSON缺失引用AiSurface 中所有格式必须作为已部署的 AiResponseFormat 实体存在元数据部署错误先部署 AiResponseFormat再部署 AiSurfacesurfaceType 不匹配确保 AiSurface 和 plannerSurfaces 中 surfaceType 一致响应未格式化验证会话调用中包含 surfaceConfig 且 surfaceType 为 CustomCustom Connections 为你提供了对客户如何与 Agentforce Agent 交互的完全控制 —— 从原生 UI 组件渲染到结构化数据交换全部通过标准化的元数据定义实现。文章来源Agentforce 客户聊天体验开发指南 | Salesforce CRM 中文站
延伸阅读

更多相关文章

2026/9/12 11:45:22

运算符与表达式

目录 1.运算符 2.表达式 3.运算符的分类 3.1 算术运算符 (自增运算符) – – (自减运算符) 3.2 关系运算符 3.3 逻辑运算符 C语言逻辑运算符是 "惰性运算" 3.4 位运算符 1.~ 按位取反 2. & 按位与 3. | 按位或 4. ^ 按位异或 有两个变量 a,b 要交换…

2026/9/12 5:56:10

从零手写顺序表到深入理解ArrayList:Java数据结构核心实践指南

顺序表理解顺序表在物理内存结构是连续的 通常用数组 完成增删查改 我们需要删除和修改的时候 必须要遍历整个数组 效率不高 于是引出来链表 顺序表的模拟package Book3;import java.util.ArrayList; import java.util.Arrays; import java.util.List;public class nn{priv…

2026/9/11 9:41:36

滑动窗口算法实战:无重复字符最长子串详解与多语言实现

算法实战:无重复字符的最长子串详解在面试和算法竞赛中,"无重复字符的最长子串"是一个经典且高频出现的题目。很多开发者在初次接触时容易陷入暴力求解的思维定式,导致时间复杂度居高不下。本文将系统讲解滑动窗口算法的核心思想&a…

2026/9/13 6:22:22

具身智能数据采集平台的开源对接三原则

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/13 6:17:21

Inno Setup静默安装实战:从参数到脚本打造无人值守安装包

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/13 0:01:16

拯救者Y7000黑屏故障排查与维修实战指南

1. 项目概述:一台黑屏的拯救者Y7000,到底卡在哪一步? 联想拯救者Y7000系列笔记本,从2018年第一代搭载i5-8300H开始,到后来的i7-9750H、i7-10750H、i5-11400H,再到2023年款的R7-7840HS,它始终是学…

2026/9/13 0:01:16

拯救者Y7000黑屏故障排查与维修实战指南

1. 项目概述:一台黑屏的拯救者Y7000,到底卡在哪一步? 联想拯救者Y7000系列笔记本,从2018年第一代搭载i5-8300H开始,到后来的i7-9750H、i7-10750H、i5-11400H,再到2023年款的R7-7840HS,它始终是学…

2026/9/12 6:29:36

USB Type-C PCB布局分区设计:电源、高速信号与PD协议全攻略

做硬件这行,Type-C接口算是典型的“看着简单,做起来全坑”的东西。光引脚就24个,高低速信号、电源、控制线全部塞在一个小小的连接器里,如果PCB布局不做规划,打样回来基本就是“插上没反应”、“高速掉线”、“静电一打…

2026/9/12 14:32:17

系统编程学习原型如何补齐稳定性边界

系统编程学习原型如何补齐稳定性边界预算有限时&#xff0c;我先优化明显多余的复制&#xff0c;而不是猜测性地换容器。用借用传递只读数据通常就能减少分配&#xff1a; fn parse(line: &str) -> Result<Item, Error> { /* ... */ }用基准确认热点确实在分配&am…

2026/9/12 6:37:43

雨花区哪家财务公司代理记账比较好?

在雨花区&#xff0c;企业处理财税事务常常面临诸多挑战&#xff0c;选择一家靠谱的财务公司至关重要。湖南巨勤财务管理咨询有限公司就是本地正规实体财税服务机构&#xff0c;深耕本地工商财税行业多年&#xff0c;熟悉当地工商局、税务局最新政策与申报流程。主营公司注册、…

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
咨询二维码