service-helpagent-coordinate

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

service-helpagent-coordinate: Service Cloud Help Agent, guided setup

service-helpagent-coordinate:Service Cloud Help Agent 引导式设置

Use this skill to stand up a Service Cloud Help Agent (an Agentforce Service Agent) on a Salesforce org from Claude Code, following the same guided flow as the Help Agent Quick Setup wizard. This is a coordinate skill: it orchestrates existing skills against a canonical spec — it does not author a new agent primitive.
使用本技能可通过Claude Code在Salesforce org中搭建Service Cloud Help Agent(即Agentforce Service Agent),遵循与Help Agent快速设置向导相同的引导流程。这是一个协调类技能:它依据标准规范编排现有技能——不会创建新的代理原语。

Why this skill exists

本技能的存在意义

Salesforce's official Help Agent template-creation API is not yet shipped. Without it, Claude has no built-in concept of "Help Agent" and would otherwise generate a generic agent.
assets/help-agent-spec.md
substitutes for the missing API: its agent script is the canonical template the eventual Quick Start UI will produce. Treat the spec as source of truth for the agent's lineage (topics, actions, instructions).
Salesforce官方的Help Agent模板创建API尚未发布。没有该API的话,Claude没有内置的「Help Agent」概念,会生成通用代理。
assets/help-agent-spec.md
可替代缺失的API:其中的代理脚本是最终快速启动UI将生成的标准模板。请将该规范作为代理血统(主题、操作、指令)的唯一可信来源。

Scope

适用范围

In scope:
  • Guided, four-checkpoint Help Agent setup (identity → grounding → channel → go-live)
  • Knowledge grounding via Agentforce Data Library (ADL)
  • Web Chat / Help Portal channel setup and Experience Cloud site embed
  • Readiness checks (licenses, Einstein Agent User, Data Cloud permission sets)
Out of scope — delegate elsewhere:
  • OAuth / External Client App setup → integration-connectivity-connected-app-configure
  • Raw agent authoring with no Help Agent lineage →
    agentforce-generate
  • Metadata deploy/retrieve →
    platform-metadata-deploy
适用场景:
  • 四检查点引导式Help Agent设置(身份配置 → 知识库关联 → 渠道配置 → 启用上线)
  • 通过Agentforce Data Library(ADL)实现知识库关联
  • 网页聊天/帮助门户渠道设置及Experience Cloud站点嵌入
  • 就绪性检查(许可证、Einstein Agent User、Data Cloud权限集)
不适用场景——请委托其他技能:
  • OAuth/外部客户端应用设置 → integration-connectivity-connected-app-configure
  • 创建无Help Agent血统的原生代理 →
    agentforce-generate
  • 元数据部署/检索 →
    platform-metadata-deploy

Prerequisites

前置条件

  • Claude Code + Salesforce CLI installed and an authenticated org (see repo
    README.md
    )
  • MCP servers registered:
    salesforce-api-context
    ,
    metadata-experts
    ,
    sobject-reads
  • Salesforce Skills installed into
    .agents/skills/
    (or
    .claude/skills/
    )
  • A Salesforce org with the required features enabled (or enable-able via metadata): Agentforce, Einstein Generative AI, Knowledge, Experience Cloud, and Data Cloud. Any org shape that meets this bar works — production, sandbox, scratch, or Developer Edition. The readiness check in
    assets/help-agent-spec.md
    §4.0 detects each feature and enables what can be enabled; it stops with a clear message if a required capability is missing and cannot be turned on.
  • 已安装Claude Code + Salesforce CLI,且已完成org身份验证(详见仓库
    README.md
  • 已注册MCP服务器:
    salesforce-api-context
    metadata-experts
    sobject-reads
  • Salesforce技能已安装至
    .agents/skills/
    (或
    .claude/skills/
  • 具备所需功能(或可通过元数据启用)的Salesforce org:Agentforce、Einstein生成式AI、Knowledge、Experience Cloud和Data Cloud。满足该条件的任何org形态均可——生产环境、沙箱、临时环境或开发者版。
    assets/help-agent-spec.md
    第4.0节中的就绪性检查会检测各项功能并启用可启用的功能;若缺失无法启用的必要功能,会停止流程并给出明确提示。

Skills this coordinates

本技能协调的其他技能

The spec feeds these existing skills — do not author a new Help Agent skill:
SkillRole
agentforce-generate
Agent authoring + ADL provisioning/grounding (see its
references/data-library-reference.md
,
references/org-setup-for-adl.md
)
dx-org-permission-set-assign
Data Cloud permission-set assignment
service-digital-engagement-channel-configure
Messaging channel setup (uses
sessionHandlerAsa
for AgentforceServiceAgent routing — see
references/channel-web-chat.md
)
service-digital-engagement-deployment-configure
Embedded Service Deployment (targets
SiteType = 'ChatterNetworkPicasso'
sites — Aura won't work)
experience-lwr-site-generate
Experience Cloud (LWR) site — used when the org has no Live LWR site yet
service-digital-engagement-messaging-site-integrate
Widget placement + embed (Checkpoint 3.5 / 4)
规范会对接以下现有技能——请勿创建新的Help Agent技能:
技能作用
agentforce-generate
代理创建 + ADL配置/知识库关联(详见其
references/data-library-reference.md
references/org-setup-for-adl.md
dx-org-permission-set-assign
Data Cloud权限集分配
service-digital-engagement-channel-configure
消息渠道设置(使用
sessionHandlerAsa
实现AgentforceService Agent路由——详见
references/channel-web-chat.md
service-digital-engagement-deployment-configure
嵌入式服务部署(目标为
SiteType = 'ChatterNetworkPicasso'
站点——Aura站点不兼容)
experience-lwr-site-generate
Experience Cloud(LWR)站点——当org中无可用LWR站点时使用
service-digital-engagement-messaging-site-integrate
小部件部署与嵌入(检查点3.5/4)

Workflow

工作流程

Read
assets/help-agent-spec.md
first — it is the authoritative flow and is intentionally kept small. Do not pre-load the rest. The heavy or conditional material is split into
references/
and read only when the flow reaches it (progressive disclosure — this is deliberate, to keep token usage low):
  • references/agent-script.md
    — the ~500-line canonical agent script + placeholder list. Load it only when you are ready to create the agent, after Checkpoint 2 — not during Checkpoints 1, 3, or 4.
  • references/channel-web-chat.md
    — Web Chat provisioning detail. Load only if the user picks Web Chat at Checkpoint 3.
  • references/channel-help-portal.md
    /
    references/channel-voice.md
    — coming-soon channel hard-stops. Load only if the user picks that channel.
Read the one channel file that matches the user's selection — never all three. Then run the interactive setup without one-shotting: walk the user through four checkpoints in order, waiting for a reply at each.
请先阅读
assets/help-agent-spec.md
——这是权威流程,内容精简。请勿预先加载其他文件。复杂或条件性内容已拆分至
references/
目录,仅当流程推进到对应阶段时再读取(渐进式披露——此设计旨在降低令牌使用量):
  • references/agent-script.md
    ——约500行的标准代理脚本+占位符列表。仅在完成检查点2后准备创建代理时加载——请勿在检查点1、3或4期间加载。
  • references/channel-web-chat.md
    ——网页聊天配置细节。仅当用户在检查点3选择网页聊天时加载。
  • references/channel-help-portal.md
    /
    references/channel-voice.md
    ——即将推出的渠道拦截规则。仅当用户选择对应渠道时加载。
仅读取与用户选择匹配的渠道文件——切勿全部读取。然后运行交互式设置请勿一次性完成:按顺序引导用户完成四个检查点,每个检查点等待用户回复后再推进。

Readiness check (silent, MANDATORY, do not reorder)

就绪性检查(静默执行,必须执行,不可调整顺序)

Order is load-bearing — running step 3 before step 2 fails with
PermissionSet not found: GenieUserEnhancedSecurity
because the Data Cloud permission sets do not exist in the org until Data Cloud itself is turned on:
  1. Verify licenses + Einstein Agent User.
  2. Enable Data Cloud — must complete before step 3 (permission sets don't exist until Data Cloud is on). If Data Cloud is not yet provisioned, offer the user the choice up front — enable and come back later, or wait through it now.
  3. CRITICAL — Assign the Data Cloud permission sets immediately after enablement. Non-negotiable — skipping it ships an agent whose grounding returns empty
    knowledgeSummary
    at runtime even though ADL indexing reports SUCCESS.
Also verify the
SvcCopilotTmpl
and
EmployeeCopilot
namespaces are present. These are Salesforce out-of-the-box platform artifacts surfaced by
enableEinsteinGptPlatform: true
— not AppExchange managed packages — and will not appear in
sf package installed list
. Probe the namespace directly (e.g.
SELECT DeveloperName FROM Flow WHERE NamespacePrefix = 'SvcCopilotTmpl' LIMIT 1
).
顺序至关重要——若先执行步骤3再执行步骤2,会因
PermissionSet not found: GenieUserEnhancedSecurity
失败,因为Data Cloud权限集在Data Cloud启用前并不存在于org中:
  1. 验证许可证+Einstein Agent User。
  2. 启用Data Cloud——必须在步骤3前完成(Data Cloud启用前权限集不存在)。若Data Cloud尚未配置,需提前让用户选择——是先启用后返回,还是立即等待启用完成。
  3. 关键步骤——启用后立即分配Data Cloud权限集。此步骤不可省略——跳过该步骤会导致代理在运行时返回空的
    knowledgeSummary
    ,即使ADL索引报告显示SUCCESS。
同时需验证
SvcCopilotTmpl
EmployeeCopilot
命名空间是否存在。这些是Salesforce开箱即用的平台构件,由
enableEinsteinGptPlatform: true
启用——并非AppExchange托管包,因此不会出现在
sf package installed list
中。需直接探测命名空间(例如:
SELECT DeveloperName FROM Flow WHERE NamespacePrefix = 'SvcCopilotTmpl' LIMIT 1
)。

Recognizing where the user is entering

判断用户的流程起始点

Do not assume every run starts at Checkpoint 1. Read the opening prompt and enter at the right checkpoint: if identity is already decided, start at Checkpoint 2 (grounding); if grounding is already in place, start at Checkpoint 3 (channel). Never restart at Checkpoint 1 or re-ask decisions the user already stated. If the opening prompt names Voice / phone / telephony / IVR / Amazon Connect, asks to "reach" or "contact" the agent "by phone" / "by call", or asks for it "as a Voice channel" (even phrased as a rejection of web chat), or Help Portal as the channel, take the coming-soon hard stop immediately: respond verbatim "This feature is coming soon, please select Web Chat." and re-present the channel options — do not run the checkpoints or write any Voice/Help-Portal plan.
请勿假设每次运行都从检查点1开始。读取用户的初始请求,从正确的检查点进入:若身份已确定,从检查点2(知识库关联)开始;若已完成知识库关联,从检查点3(渠道配置)开始。切勿重新从检查点1启动或重复询问用户已做出的决策。若初始请求提及语音/电话/电话客服/IVR/Amazon Connect、要求通过「电话」联系代理、或指定「语音渠道」(即使明确拒绝网页聊天),或选择帮助门户作为渠道,需立即触发即将推出的拦截规则:直接回复*"该功能即将推出,请选择网页聊天。"*并重新展示渠道选项——请勿继续执行检查点或编写任何语音/帮助门户相关的配置方案。

Checkpoint 1 — Meet Your Agent

检查点1——代理身份配置

Agent name, language, greeting, tone. Offer defaults.
代理名称、语言、问候语、语气。提供默认选项。

Checkpoint 2 — Give Your Agent Context (grounding)

检查点2——为代理配置上下文(知识库关联)

Ask which knowledge source (Salesforce Knowledge / files / website sync). Grounding is provisioning an Agentforce Data Library, not designing a search — the agent's
knowledge:
block does the retrieval at runtime. This checkpoint MUST produce all five of:
  1. Delegate provisioning to
    agentforce-generate
    — it owns ADL create/index/publish. Do not hand-roll data-library metadata.
  2. A dedicated, named library — create
    Help_Agent_Knowledge
    . Never wire the stock
    All_Records_and_Fields_Default
    (it sits in
    NOT_SCHEDULED
    on trial or preloaded sample-data orgs and returns empty
    knowledgeSummary
    with no error).
  3. Category selection — for Salesforce Knowledge, query the org's Data Category Groups and ask which categories to ground on. Do not assume "all."
  4. Wait-for-indexing gate — poll and only proceed once
    indexingStatus.status ∈ {COMPLETED, READY, SUCCESS}
    .
    NOT_SCHEDULED
    is not success.
  5. Capture the
    rag_feature_config_id
    (format
    ARFPC_<libraryId>
    ) and wire it into the agent script's
    knowledge:
    block — never hardcode.
Anti-rule: never respond to a grounding request by designing a SOQL/SOSL/GraphQL/Apex search over Knowledge articles. Grounding is ADL provisioning; retrieval is the agent's job at runtime.
询问用户选择的知识库来源(Salesforce Knowledge/文件/网站同步)。知识库关联是指配置Agentforce Data Library,而非设计搜索逻辑——代理的
knowledge:
块会在运行时执行检索。此检查点必须完成以下五项内容:
  1. 委托
    agentforce-generate
    完成配置
    ——该技能负责ADL的创建/索引/发布。请勿手动编写数据库元数据。
  2. 创建专用命名库——创建
    Help_Agent_Knowledge
    切勿使用默认的
    All_Records_and_Fields_Default
    (在试用版或预加载样本数据的org中,该库会处于
    NOT_SCHEDULED
    状态,返回空的
    knowledgeSummary
    且无错误提示)。
  3. 选择分类——对于Salesforce Knowledge,查询org的数据分类组并询问用户要关联的分类。请勿默认选择「全部」。
  4. 等待索引完成——轮询状态,仅当
    indexingStatus.status ∈ {COMPLETED, READY, SUCCESS}
    时才继续推进。
    NOT_SCHEDULED
    不属于成功状态。
  5. 捕获
    rag_feature_config_id
    (格式为
    ARFPC_<libraryId>
    )并将其写入代理脚本的
    knowledge:
    块——切勿硬编码。
反规则: 切勿通过设计SOQL/SOSL/GraphQL/Apex查询来响应知识库关联请求。知识库关联是ADL配置;检索是代理运行时的任务。

Checkpoint 3 — Add to Channels

检查点3——渠道配置

Web Chat / Help Portal / Voice. Create messaging channel + Embedded Service Deployment; locate the target site via a query-first pattern:
sql
SELECT Id, Name, UrlPathPrefix, SiteType, Status
FROM Site
WHERE SiteType = 'ChatterNetworkPicasso' AND Status = 'Live'
Only ever present or target
ChatterNetworkPicasso
(LWR) sites — never Aura (
ChatterNetwork
). Resolve the site in the same turn, do not defer:
  • Zero Live LWR sites → create one via
    experience-lwr-site-generate
    (recommend the Help Center template).
  • Exactly one → confirm it with the user before using (an existing site may serve a different audience); do not silently adopt it.
  • Multiple → in the SAME turn, show the executed SOQL, enumerate the results as a table (
    Name | UrlPathPrefix | Id
    ), state plainly "no site is created or modified until you choose," then ask which one to target (include a "create a new site instead" option). Do not answer "I'll query and get back to you" — run the query and present results now.
Do not filter by hardcoded name or URL path prefix — the correct site depends on the customer's org.
Coming-soon channels are hard stops. If the user selects Help Portal or Voice, respond verbatim "This feature is coming soon, please select Web Chat.", re-present the channel options, and wait. Never write a provisioning plan, phone number, portal site, or "planning-only" scaffold for these channels — even adjacent objects produce broken half-configurations. See
references/channel-voice.md
/
references/channel-help-portal.md
.
网页聊天/帮助门户/语音。创建消息渠道+嵌入式服务部署;通过先查询再决策的方式定位目标站点:
sql
SELECT Id, Name, UrlPathPrefix, SiteType, Status
FROM Site
WHERE SiteType = 'ChatterNetworkPicasso' AND Status = 'Live'
仅展示或定位
ChatterNetworkPicasso
(LWR)站点——切勿使用Aura(
ChatterNetwork
)站点。需在同一轮对话中完成站点解析,不得延迟:
  • 无可用LWR站点→通过
    experience-lwr-site-generate
    创建一个(推荐使用帮助中心模板)。
  • 仅有一个可用站点→在使用前与用户确认(现有站点可能服务于不同受众);请勿直接使用。
  • 多个可用站点→在同一轮对话中,展示执行的SOQL语句,将结果以表格形式列出(
    Name | UrlPathPrefix | Id
    ),明确说明"在您选择前不会创建或修改任何站点",然后询问用户要定位的站点(提供"创建新站点"选项)。请勿回复"我将查询后告知您"——需立即运行查询并展示结果。
请勿通过硬编码名称或URL路径前缀进行筛选——正确的目标LWR站点取决于客户的org。
即将推出的渠道会被拦截。若用户选择帮助门户语音,直接回复*"该功能即将推出,请选择网页聊天。"*,重新展示渠道选项并等待。切勿编写配置方案、电话号码、门户站点或仅用于规划的框架——即使是相关对象也会导致配置不完整。详见
references/channel-voice.md
/
references/channel-help-portal.md

Checkpoint 3.5 — Silent pre-flight (INTERNAL — never announce)

检查点3.5——静默预检查(内部操作——无需告知用户)

Run silently; surface output only on failure. Every check must pass before Checkpoint 4:
  1. Data Cloud access in place for running user and Einstein Agent User (defer to
    agentforce-generate
    ).
  2. ADL is Activated and grounded — run a canary retrieval with the captured
    rag_feature_config_id
    ; if empty despite SUCCESS, surface the Known manual step (Data Space scope on the permission set) verbatim, wait for confirmation, re-run.
  3. Messaging channel is Active (assert status; activation is
    service-digital-engagement-channel-configure
    's job, not the site-integrate skill's), and the widget is actually placed — independently re-read the deployed guest-layout JSON for the
    experience_messaging:embeddedMessaging
    node rather than trusting the site-integrate skill's 200-only signal; inject if missing.
静默执行;仅在失败时展示结果。所有检查必须通过后才能进入检查点4:
  1. 运行用户和Einstein Agent User均具备Data Cloud访问权限(委托
    agentforce-generate
    验证)。
  2. ADL已激活且完成知识库关联——使用捕获的
    rag_feature_config_id
    执行一次测试检索;若索引报告SUCCESS但返回空结果,需直接展示已知手动步骤(权限集上的数据空间范围),等待用户确认后重新运行。
  3. 消息渠道处于激活状态(验证状态;激活是
    service-digital-engagement-channel-configure
    的任务,而非站点集成技能的任务),且小部件已实际部署——需重新读取已部署的访客布局JSON,检查
    experience_messaging:embeddedMessaging
    节点,而非仅依赖站点集成技能返回的200状态码;若缺失则注入该节点。

Checkpoint 4 — Review & Go Live

检查点4——审核与启用上线

Embed (LWR + Aura), then complete four explicit go-live steps: (a) wire the Escalation Flow to the agent (reuse
Help_Agent_Escalation_Flow
if it already exists — do not create a duplicate); (b) confirm the Messaging Channel is Active in Setup → Messaging Settings; (c) Publish the Embedded Service Deployment in Setup → Embedded Service Deployments; (d) offer to test together. An unpublished deployment or an inactive channel silently ships a dead widget.
嵌入(LWR+Aura),然后完成四项明确的上线步骤:(a) 将升级流程关联到代理(若
Help_Agent_Escalation_Flow
已存在则复用——请勿创建重复流程);(b) 在设置→消息设置中确认消息渠道已激活;(c) 在设置→嵌入式服务部署中发布嵌入式服务部署;(d) 提供共同测试的选项。未发布的部署或未激活的渠道会导致小部件无法正常运行。

Rules / Constraints

规则/约束

RuleRationale
Never one-shot the setupIt is a guided conversation; wait for user input at each checkpoint
Never skip or reorder the readiness stepsPermission sets don't exist before Data Cloud enablement — you'll see
PermissionSet not found: GenieUserEnhancedSecurity
Never advance past 3.5 with empty ADL retrievalShips a silently-broken agent
Never hardcode a site name or URL path prefixThe correct target LWR site depends on the customer's org — query first, then decide
Never assume
SvcCopilotTmpl
/
EmployeeCopilot
are packages
They are OOB namespaces surfaced by
enableEinsteinGptPlatform
; probe the namespace directly
Never wire an Embedded Service Deployment to an Aura (
ChatterNetwork
) site
It must target
ChatterNetworkPicasso
(LWR) or the widget will fail silently
Create the Embedded Service Deployment as V2 via the Connect API, never bare Metadata deploy — and embed the V2 ESD via the
experience_messaging:embeddedMessaging
LWR component
Metadata API defaults to legacy V1 (
WebV1
, "Web (v1)" in Setup) which breaks Enhanced Web Chat; create via Connect API on v67.0+ with
clientVersion: WebV2
. The customer widget mounts via the LWR component keyed on
deploymentName
(not a bootstrap
<script>
). Full six-attribute shape, the Tooling-API patch path, and guest-browser verification are in
references/channel-web-chat.md
— do NOT verify with <!-- skill-validate: ignore-start -->
curl | grep
<!-- skill-validate: ignore-end -->
Always create a dedicated ADL for the Help Agent — never wire the stock
All_Records_and_Fields_Default
library
On trial or preloaded sample-data orgs the stock library is stuck in
NOT_SCHEDULED
and never indexes; wiring the agent to it produces empty
knowledgeSummary
at runtime with no visible error. Create
Help_Agent_Knowledge
at Checkpoint 2 and wait for
indexingStatus ∈ {COMPLETED, READY, SUCCESS}
before wiring
Never leave Checkpoint 4 without publishing the Embedded Service Deployment and activating the channelBoth are required for the widget to actually serve on the site. If the ESD was created via the Connect API
deployment/setup
call, it is already published — verify "Published on:" is stamped (not empty) and the title has no
(v1)
suffix
Web Chat is the only buildable channel; Voice and Help Portal are hard stopsComing-soon channels have no supporting skill — respond verbatim "This feature is coming soon, please select Web Chat." and re-present options; never scaffold. For Web Chat, always run the post-deploy assertion (re-fetch the MessagingChannel, assert
embeddedConfig.authMode
; default
UnAuth
) — a wrong choice silently ships a widget that won't render for guests. The report names
authMode
as a bare value (
authMode: UnAuth
); do not narrate the rationale or the assertion in the report. Never emit a legacy
esw.min.js
/ Live Agent V1 snippet
规则理由
切勿一次性完成设置这是引导式对话;每个检查点需等待用户输入后再推进
切勿跳过或调整就绪性步骤的顺序Data Cloud启用前权限集不存在——提前分配会导致
PermissionSet not found: GenieUserEnhancedSecurity
错误
若ADL检索为空,切勿推进到检查点3.5之后会导致代理静默失效
切勿硬编码站点名称或URL路径前缀正确的目标LWR站点取决于客户的org——需先查询再决策
切勿假设
SvcCopilotTmpl
/
EmployeeCopilot
是包
它们是由
enableEinsteinGptPlatform
启用的开箱即用命名空间;需直接探测命名空间
切勿将嵌入式服务部署关联到Aura(
ChatterNetwork
)站点
必须关联到
ChatterNetworkPicasso
(LWR)站点,否则小部件会静默失效
通过Connect API创建V2版本的嵌入式服务部署,切勿使用原生元数据部署——并通过
experience_messaging:embeddedMessaging
LWR组件嵌入V2 ESD
元数据API默认使用旧版V1(
WebV1
,设置中显示为"Web (v1)"),会导致增强型网页聊天失效;需通过v67.0+的Connect API创建,设置
clientVersion: WebV2
。客户端小部件通过基于
deploymentName
的LWR组件挂载(而非引导
<script>
)。完整的六属性结构、Tooling-API补丁路径和访客浏览器验证方式详见
references/channel-web-chat.md
——请勿使用<!-- skill-validate: ignore-start -->
curl | grep
<!-- skill-validate: ignore-end -->进行验证
始终为Help Agent创建专用ADL——切勿使用默认的
All_Records_and_Fields_Default
在试用版或预加载样本数据的org中,默认库会处于
NOT_SCHEDULED
状态且永远不会完成索引;将代理关联到该库会导致运行时返回空的
knowledgeSummary
且无可见错误。需在检查点2创建
Help_Agent_Knowledge
,并等待
indexingStatus ∈ {COMPLETED, READY, SUCCESS}
后再关联
完成检查点4前,必须发布嵌入式服务部署并激活渠道两者都是小部件在站点上正常运行的必要条件。若通过Connect API的
deployment/setup
调用创建ESD,它已处于发布状态——需验证"发布时间"已标记(非空)且标题无
(v1)
后缀
仅网页聊天是可配置的渠道;语音和帮助门户会被拦截即将推出的渠道无配套技能支持——直接回复*"该功能即将推出,请选择网页聊天。"*并重新展示选项;切勿编写框架。对于网页聊天,始终执行部署后验证(重新获取MessagingChannel,验证
embeddedConfig.authMode
;默认值为
UnAuth
)——错误的选择会导致访客小部件无法渲染。报告中
authMode
为裸值(
authMode: UnAuth
);无需说明理由或验证过程。切勿输出旧版
esw.min.js
/Live Agent V1代码片段

Output Expectations

输出要求

The one deliverable is a single
report.md
: a status report of what was decided and done, not a design doc, plan, or architecture write-up. Two rules govern quality:
  1. Report concrete outcomes, never intentions. Write what is — the decided value, the created resource, the resolved ID — not what you would or plan to do. If a step could not run to completion because this is a non-interactive run, decide the sensible default, state it as the decision, and report it as such — do not stall on "awaiting confirmation," "to be resolved," "pending user input," or "please provide…". Hedging language ("will create", "to be executed", "once confirmed") reads as an unfinished plan and is scored as incomplete. Name the agent, the locale, the grounding source,
    authMode
    , the ADL name, the
    rag_feature_config_id
    , the site
    UrlPathPrefix
    , the ESD publish state — as settled facts.
  2. No padding, no scaffolding prose. No preamble, no design-doc sections, no restating the prompt. Dense, declarative lines only.
Before writing, choose the report shape by what the run actually did. There are three:
  • A coming-soon stop — the run hard-stopped on a coming-soon channel (Voice / Help Portal).
  • A settled-facts report — the flow executed a step: the user directed a concrete action ("set up the grounding", "put it on <named site>") and every input was supplied or has a sensible skill-owned default. Report what was decided and done.
  • A guided-decision report — the flow is at a decision the user owns: an opening request with no agent details yet ("set up a help agent", "add a chat widget"), or a checkpoint surfacing multiple real alternatives the skill must not invent (e.g. several Live LWR sites). Presenting the checkpoint's questions/options is the deliverable; stay draft-first.
Use the settled-facts report, not the guided-decision one, when the missing value is a mechanical default the skill can just pick (data category → org default) — decide it and report it done. Use the guided-decision report only when the choice genuinely belongs to the user (identity at an opener; which of several existing sites). The guided-decision report is not an escape hatch for hedging on an execute request.
Coming-soon stop — the flow hard-stopped on a coming-soon channel (Voice / Help Portal). Short and fixed — the four H2 sections below, nothing more. Do NOT describe how Voice/Portal would be built, do NOT list architecture options, telephony, IVR, Amazon Connect, or "planning-only" steps — that content is an automatic fail. Write exactly:
markdown
undefined
唯一交付物是单个
report.md
文件:一份关于已决策内容和已执行操作的状态报告,而非设计文档、计划或架构说明。以下两条规则确保报告质量:
  1. 报告具体结果,而非意图。记录实际情况——已确定的值、已创建的资源、已解析的ID——而非计划要做的事。若因非交互式运行导致某步骤无法完成,需选择合理的默认值,将其作为已决策内容并记录——切勿停滞在"等待确认"、"待解决"、"等待用户输入"或"请提供…"状态。模糊表述("将创建"、"待执行"、"确认后")会被视为未完成计划,判定为不合格。需明确记录代理名称、区域设置、知识库来源、
    authMode
    、ADL名称、
    rag_feature_config_id
    、站点
    UrlPathPrefix
    、ESD发布状态——作为已确定的事实。
  2. 无冗余内容,无框架性文字。无需前言、设计文档章节或重复请求内容。仅保留简洁、说明性的内容。
编写前,需根据实际运行情况选择报告格式。共有三种格式:
  • 即将推出渠道拦截报告——流程因即将推出的渠道(语音/帮助门户)被拦截。
  • 已完成事实报告——流程已执行某步骤:用户下达了具体操作指令("配置知识库关联"、"部署到<指定站点>"),所有输入已提供或有技能内置的合理默认值。报告已决策和已执行的内容。
  • 引导式决策报告——流程处于用户需做出决策的阶段:初始请求未提供代理细节("设置帮助代理"、"添加聊天小部件"),检查点出现多个真实选项,技能无法自行决定(例如多个可用LWR站点)。展示检查点的问题/选项即为交付物;保持草稿风格。
当缺失的值是技能可自行选择的机械默认值时(例如数据分类→org默认值),需使用已完成事实报告——做出决策并记录为已完成。仅当选择确实属于用户时(例如初始请求中的身份配置、多个现有站点中选择其一),才使用引导式决策报告。引导式决策报告并非规避执行请求的借口。
即将推出渠道拦截报告——流程因即将推出的渠道(语音/帮助门户)被拦截。内容简短且固定——仅包含以下四个H2章节,无其他内容。请勿描述语音/门户的构建方式、列出架构选项、电话系统、IVR、Amazon Connect或仅用于规划的步骤——此类内容会被判定为不合格。需严格按照以下内容编写:
markdown
undefined

Help Agent Setup Report

Help Agent设置报告

Blocking Issue

拦截问题

<Channel> is a coming-soon channel with no supported setup path. Response given verbatim: "This feature is coming soon, please select Web Chat."
<渠道名称>是即将推出的渠道,暂无支持的配置路径。已直接回复:"该功能即将推出,请选择网页聊天。"

Channel Options

渠道选项

  • Web Chat — supported; the only buildable channel.
  • Voice / phone — coming soon, not available.
  • Help Portal — coming soon, not available.
  • 网页聊天——支持;唯一可配置的渠道。
  • 语音/电话——即将推出,暂不可用。
  • 帮助门户——即将推出,暂不可用。

No Provisioning Performed

未执行任何配置

No Voice/telephony channel, phone number, messaging channel, or Embedded Service Deployment was created or configured. No supported channel was selected, so the flow did not proceed past the channel gate.
未创建或配置语音/电话渠道、电话号码、消息渠道或嵌入式服务部署。因未选择支持的渠道,流程未通过渠道拦截点。

Next Action

下一步操作

Re-run and select Web Chat as the channel.

**Settled-facts report — the flow ran (completed, or blocked on something other than a coming-soon channel).** Start with the exact H1 `# Help Agent Setup Report`, then the two tables and two short sections below, in order. Every cell is a **concrete, decided value** — a bare value, not a sentence. Keep prose out.

**Report DECISIONS as settled facts, never placeholders or intentions.** This is a non-interactive run: you do not get to defer. Do NOT emit "to be captured", "not yet reached", "flow is paused", "awaiting", "once confirmed", or "will create". For a value the flow **decides** (agent name, locale, tone, ADL name, `authMode`, data category), state the concrete decision as done — a cell with nothing decided gets `None`. For an **opaque ID the run generates** (the `rag_feature_config_id`, a Salesforce record Id, a site's URL path prefix), report the **actual value produced this run** — never invent a plausible-looking one and never copy an ID from this template; if the run genuinely did not produce it, name that in Blocking Issues rather than fabricating. Hedging is scored as incomplete; fabricated IDs are scored as inaccurate. Include every value below and nothing else.

**Scope the report to the checkpoint(s) the request targeted — do not narrate checkpoints the run never entered.** When the user directs a single checkpoint ("set up the grounding", "ground it on Knowledge" → Checkpoint 2 only), the report centers on that checkpoint. Fill its row with settled facts; give each checkpoint the run did **not** reach a bare `Not started` in its Decision cell — no plan, no "pending", no "not yet reached", no downstream detail. Do **not** manufacture a `Blocking Issues` entry or a `Next Action` about a later checkpoint you were never asked to run: if the targeted checkpoint completed, `Blocking Issues` is `None` and `Next Action` is the single next checkpoint by name (e.g. "Checkpoint 3 (channel) when you're ready"). A report that sprawls into unrequested checkpoints and hedges there is scored as incomplete even when the targeted checkpoint is perfect.

**When the request centers on one decision, carry that decision's reasoning — not a bare value.** Some requests are about a single load-bearing choice: *why the readiness steps run in a specific order*, or *which `authMode` to pick and why*. For these, the targeted cell (or a short `## <Topic>` section right after the tables) must state the **decision, its rationale, and the concrete failure it avoids** — because that reasoning is the deliverable, not scaffolding:
- **Readiness ordering** — give the ordered sequence (licenses / Einstein Agent User → **enable Data Cloud** → **assign Data Cloud permission sets**), say *why* the order is load-bearing (the permission sets do not exist until Data Cloud is enabled — assigning first fails with `PermissionSet not found: GenieUserEnhancedSecurity`), and warn that skipping the assignment yields empty runtime grounding even when ADL indexing reports SUCCESS. Do not compress this to "perm sets assigned". If Data Cloud is not yet enabled on this org, the Readiness row must say so — never assert "Data Cloud enabled; perm sets assigned" while `Blocking Issues` says it isn't; that contradiction is scored as inaccurate.
- **`authMode` choice** — name the value (`UnAuth` for an anonymous-or-mixed audience), state the rationale (`UnAuth` allows **both** guests and authenticated upgrades via `identityToken`; `Auth` is authenticated-only and silently breaks the guest widget and the Setup "Test Enhanced Web Chat" page), confirm the audience it was chosen for, and state the assertion as a settled part of the flow — "the deployed MessagingChannel is re-fetched and `embeddedConfig.authMode = UnAuth` is asserted" — **present tense, not "will be re-fetched"**. Do not compress this to "authMode UnAuth". The `authMode` decision is complete once chosen: do **not** frame it as pending ("to be confirmed"), and do **not** manufacture a `Blocking Issues` entry or `Next Action` about the *adjacent* site-resolution step — a scoped `authMode` request is not blocked on the LWR site. If nothing stopped the scoped decision, `Blocking Issues` is `None`.

The `‹…›` slots below mark where **this run's** real values go — replace each slot, never emit the slot text itself:

```markdown
重新运行并选择网页聊天作为渠道。

**已完成事实报告——流程已运行(已完成或因非即将推出渠道的原因被拦截)**。以精确的H1标题`# Help Agent设置报告`开头,然后按顺序展示以下两个表格和两个简短章节。每个单元格均为**具体、已确定的值**——裸值,而非句子。避免使用描述性文字。

**将决策记录为已确定事实,而非占位符或意图**。这是非交互式运行:不得延迟。**请勿**输出"待捕获"、"未到达"、"流程暂停"、"等待"、"确认后"或"将创建"等内容。对于流程**确定**的值(代理名称、区域设置、语气、ADL名称、`authMode`、数据分类),需记录具体决策结果——未确定的值填`None`。对于运行生成的**不透明ID**(`rag_feature_config_id`、Salesforce记录Id、站点URL路径前缀),需记录**本次运行生成的实际值**——切勿编造看似合理的值或从模板中复制ID;若运行未生成该值,需在拦截问题章节中说明,而非编造。模糊表述会被判定为未完成;编造ID会被判定为不准确。需包含以下所有值,无其他内容。

**报告范围需限定在请求目标的检查点——切勿描述未进入的检查点**。当用户仅针对单个检查点下达指令时("配置知识库关联"、"关联到Knowledge"→仅检查点2),报告需聚焦该检查点。在对应行中填写已确定事实;对于未进入的检查点,在决策单元格中填写`未启动`——无计划、无"待执行"、无"未到达"、无后续细节。**请勿**编造拦截问题或下一步操作中关于未请求的后续检查点的内容:若目标检查点已完成,拦截问题填`无`,下一步操作为下一个检查点的名称(例如"准备好后执行检查点3(渠道配置)")。若报告涉及未请求的检查点并使用模糊表述,即使目标检查点完成,也会被判定为不合格。

**当请求聚焦于单个决策时,需记录决策的理由——而非仅记录值**。部分请求仅涉及一个关键选择:例如"就绪性步骤为何按特定顺序执行",或"选择哪个`authMode`及原因"。对于此类请求,对应单元格(或表格后的简短`## <主题>`章节)需记录**决策内容、理由及避免的具体失败情况**——因为理由是交付物,而非框架性内容:
- **就绪性步骤顺序**——列出有序步骤(许可证/Einstein Agent User → **启用Data Cloud** → **分配Data Cloud权限集**),说明顺序至关重要的原因(Data Cloud启用前权限集不存在——提前分配会导致`PermissionSet not found: GenieUserEnhancedSecurity`错误),并警告跳过分配步骤会导致ADL索引报告SUCCESS但运行时知识库关联返回空结果。切勿简化为"已分配权限集"。若当前org尚未启用Data Cloud,就绪性行需如实说明——切勿在拦截问题章节中说明未启用的同时,断言"已启用Data Cloud;已分配权限集",这种矛盾会被判定为不准确。
- **`authMode`选择**——记录值(面向匿名或混合受众选择`UnAuth`),说明理由(`UnAuth`允许**访客和已认证用户**通过`identityToken`升级;`Auth`仅支持已认证用户,会导致访客小部件和设置中的"测试增强型网页聊天"页面静默失效),确认选择对应的受众,并将验证记录为流程的已完成部分——"已重新获取已部署的MessagingChannel,验证`embeddedConfig.authMode = UnAuth`"——**使用现在时态,而非"将重新获取"**。切勿简化为"authMode UnAuth"。`authMode`决策一旦做出即完成:**请勿**将其描述为待确认("待确认"),也请勿编造拦截问题或下一步操作中关于相邻站点解析步骤的内容——针对`authMode`的请求不会因LWR站点而被拦截。若未出现拦截情况,拦截问题填`无`。

以下`‹…›`标记为**本次运行**的实际值填充位置——需替换每个标记,切勿保留标记文本:

```markdown

Help Agent Setup Report

Help Agent设置报告

Setup Summary

设置摘要

FieldValue
ReadinessData Cloud enabled; perm sets assigned (GenieUserEnhancedSecurity, GenieAnalytics, DataSpacePermSet); Einstein Agent User assigned
Failure mode guardedStock NOT_SCHEDULED ADL → empty knowledgeSummary; guarded via dedicated ADL, indexing gated to COMPLETED
Delegationagentforce-generate → agent + ADL; dx-org-permission-set-assign → Data Cloud perms; service-digital-engagement-* → channel + ESD
字段
就绪性已启用Data Cloud;已分配权限集(GenieUserEnhancedSecurity、GenieAnalytics、DataSpacePermSet);已分配Einstein Agent User
规避的失败模式默认NOT_SCHEDULED ADL → 空knowledgeSummary;通过专用ADL规避,索引需完成至COMPLETED状态
委托技能agentforce-generate → 代理+ADL;dx-org-permission-set-assign → Data Cloud权限;service-digital-engagement-* → 渠道+ESD

Checkpoint Outcomes

检查点结果

#CheckpointDecision
1Identity‹agent name› (‹DeveloperName›), ‹locale›, ‹tone›
2GroundingSalesforce Knowledge via agentforce-generate; dedicated ADL ‹library name› (stock All_Records_and_Fields_Default not wired); indexing gated to COMPLETED before wiring; rag_feature_config_id ‹ARFPC_ id from this run's adl publish› captured
3ChannelWeb Chat; authMode ‹UnAuth or Auth›; site ‹target site UrlPathPrefix›; ESD HelpChat WebV2 — or
Not started
if the run never entered this checkpoint
4Go-liveESD Published; channel Active; escalation flow wired — or
Not started
#检查点决策
1身份配置‹代理名称›(‹DeveloperName›),‹区域设置›,‹语气›
2知识库关联通过agentforce-generate关联Salesforce Knowledge;专用ADL ‹库名称›(未使用默认的All_Records_and_Fields_Default);索引完成至COMPLETED状态后再关联;已捕获rag_feature_config_id ‹本次运行ADL发布生成的ARFPC_ id›
3渠道配置网页聊天;authMode ‹UnAuth或Auth›;站点 ‹目标站点UrlPathPrefix›;ESD HelpChat WebV2 —— 若未进入该检查点则填
未启动
4启用上线ESD已发布;渠道已激活;已关联升级流程 —— 若未进入该检查点则填
未启动

Blocking Issues

拦截问题

‹the one thing that actually stopped the flow — one line — or
None
‹实际阻止流程的一件事——一行内容——或填

Next Action

下一步操作

One line — the single next step for the user.

Non-slot values above (Data Cloud, perm-set names, `HelpChat WebV2`, delegation targets) are the skill's canonical defaults — reproduce them as-is. Fill the `‹…›` slots from this run (including `authMode`, which is decided per run from the Step B choice — do not default it in the report). **Any checkpoint the run did not reach gets a bare `Not started` — not a plan, forecast, or "pending" note.** For a request scoped to one checkpoint (e.g. Checkpoint 2 grounding), only that row carries settled facts; rows 3 and 4 read `Not started`, `Blocking Issues` is `None`, and `Next Action` names the next checkpoint (e.g. "Checkpoint 3 (channel) when you're ready").

**Blocked run?** `Blocking Issues` is the one sanctioned place to state a real blocker — one honest line there (e.g. "multiple Live LWR sites — asked user to choose"; "Knowledge data category not specified — chose the org's default group") is **required and is not hedging**. It records what stopped a checkpoint the run *actually entered* — never a checkpoint the request never targeted (a scoped Checkpoint-2 run is not "blocked" on Checkpoint 3). Keep the checkpoint cells decisive for what *was* settled; put the single unresolved thing here. What is scored as incomplete is hedging *inside the decision cells* ("to be captured", "not yet", "pending") — not a clear one-line blocker in this section.

**Guided-decision report — a decision the user owns.** Here the deliverable is *the decision point itself*, presented cleanly. This is not hedging: at an opener or a genuine fork, asking with sensible defaults is the correct, complete response. Do **not** provision, deploy, or fabricate the value the user still owns. Orient, present the current checkpoint's choices with defaults, sketch what the remaining checkpoints will cover, and confirm nothing is live yet. Use exactly these sections:

```markdown
一行内容——用户的单个下一步操作。

上述非标记值(Data Cloud、权限集名称、`HelpChat WebV2`、委托技能)为技能的标准默认值——需如实保留。从本次运行中填充`‹…›`标记的值(包括`authMode`,需根据步骤B的选择确定——请勿在报告中默认值)。**未进入的检查点需填`未启动`——无计划、无预测、无"待执行"说明**。对于仅针对单个检查点的请求(例如检查点2知识库关联),仅对应行填已确定事实;第3、4行填`未启动`,拦截问题填`无`,下一步操作为下一个检查点的名称(例如"准备好后执行检查点3(渠道配置)")。

**流程被拦截?** `拦截问题`是唯一可记录真实拦截情况的位置——此处的一行真实说明(例如"多个可用LWR站点——已请求用户选择";"未指定Knowledge数据分类——已选择org默认组")**是必要的,不属于模糊表述**。它记录的是流程实际进入的检查点中未解决的问题——而非请求未涉及的检查点(针对检查点2的请求不会因检查点3而被拦截)。需确保检查点单元格中记录已确定的内容;将单个未解决的问题记录在此章节。被判定为不合格的情况是在决策单元格中使用模糊表述("待捕获"、"未完成"、"待执行")——而非在此章节中清晰记录一行拦截情况。

**引导式决策报告——用户需做出决策**。此处的交付物是**决策点本身**,需清晰展示。这不属于模糊表述:在初始请求或真实分支点,提供合理默认选项并询问是正确、完整的响应。**请勿**配置、部署或编造用户需自行决定的值。需说明背景、展示当前检查点的选项及默认值、概述后续检查点的内容,并确认尚未启用任何内容。需严格使用以下章节:

```markdown

Help Agent Setup Report

Help Agent设置报告

Guided Setup

引导式设置

Help Agent setup runs as four checkpoints: identity → grounding → channel → go-live. Nothing is created, deployed, or published until you confirm at each step.
Help Agent设置分为四个检查点:身份配置 → 知识库关联 → 渠道配置 → 启用上线。在您确认每个步骤前,不会创建、部署或发布任何内容。

Current Checkpoint

当前检查点

Checkpoint ‹n — name›. This agent will ‹map the user's stated needs to the design in one line: knowledge-grounded Q&A from Salesforce Knowledge, support-case create/update, and escalation to a live human when needed›, delivered as ‹the channel the user named, e.g. a Web Chat widget on their site›.
检查点‹n——名称›。该代理将‹用一行文字描述用户需求对应的设计:通过Salesforce Knowledge实现基于知识库的问答、创建/更新支持案例、必要时转交给人工代理›,以‹用户指定的渠道,例如站点上的网页聊天小部件›交付。

Decisions Needed

需要做出的决策

  • ‹Question 1 — offered default› (e.g. Agent name —
    Help Agent
    , API name
    Help_Agent
    )
  • ‹Question 2 — offered default› (e.g. Language —
    en_US
    )
  • ‹Question 3 — offered default› (e.g. Greeting, Tone)
  • ‹…the real choices for THIS checkpoint only; for a multi-option fork, list the actual alternatives found (e.g. each Live LWR site by Name + UrlPathPrefix) and never pick for the user›
  • ‹问题1——提供默认选项›(例如代理名称——
    Help Agent
    ,API名称
    Help_Agent
  • ‹问题2——提供默认选项›(例如语言——
    en_US
  • ‹问题3——提供默认选项›(例如问候语、语气)
  • ‹…仅列出当前检查点的真实选项;对于多选项分支,列出实际找到的替代方案(例如每个可用LWR站点的名称+UrlPathPrefix),切勿替用户选择›

Checkpoint Roadmap

检查点路线图

  • Readiness (silent, before provisioning): confirm licenses / Einstein Agent User → enable Data Cloud → assign the Data Cloud permission sets, in that order.
  • 2 Grounding: connect Salesforce Knowledge via a dedicated Agentforce Data Library, indexing gated to COMPLETED.
  • 3 Channel: deploy the chosen channel + Embedded Service Deployment; confirm
    authMode
    from who will be chatting.
  • 4 Go-live: embed, publish, and verify with a live round-trip — only after you confirm.
  • 就绪性检查(静默执行,配置前):按顺序确认许可证/Einstein Agent User → 启用Data Cloud → 分配Data Cloud权限集。
  • 2 知识库关联:通过专用Agentforce Data Library关联Salesforce Knowledge,索引需完成至COMPLETED状态。
  • 3 渠道配置:部署选定渠道+嵌入式服务部署;根据聊天用户类型确认
    authMode
  • 4 启用上线:嵌入、发布并通过实时往返测试验证——仅在您确认后执行。

Next Action

下一步操作

Reply with your choices (or accept the defaults) and I'll proceed to the next checkpoint. Nothing is created, grounded, embedded, or published until you confirm at each step.

Fill every `‹…›` from this run's context. Keep to these five sections — the Roadmap names what later checkpoints will do (it is not a settled-fact table and must not claim any of it is done); no provisioning tables, no settled-fact cells for steps not yet reached.

**Never include** (each is a scored failure): a preamble restating the prompt or the request; "End of report." trailers; decorative `---` / `===` rules; `Scope`, `Assumptions`, `Out-of-Scope`, `Architecture`, `Options Considered`, `Next Steps`, `Steps:`, or `Outcome Gate:` sections; the checkpoints re-listed as questions; the agent script or reference-file contents pasted inline; emoji; marketing adjectives ("seamless", "robust", "powerful", "comprehensive").
回复您的选择(或接受默认选项),我将推进到下一个检查点。在您确认每个步骤前,不会创建、关联、嵌入或发布任何内容。

从本次运行的上下文中填充每个`‹…›`标记。仅保留这五个章节——路线图说明后续检查点的内容(并非已完成事实表格,不得声称已完成任何内容);无配置表格、无未到达步骤的已完成事实单元格。

**请勿包含**以下内容(均会被判定为不合格):重复请求内容的前言;"报告结束"等结尾;装饰性`---`/`===`分隔线;`Scope`、`Assumptions`、`Out-of-Scope`、`Architecture`、`Options Considered`、`Next Steps`、`Steps:`或`Outcome Gate:`等章节;以问题形式重新列出检查点;代理脚本或参考文件内容直接粘贴;表情符号;营销形容词("无缝"、"强大"、"全面")。

Reference File Index

参考文件索引

FileWhen to read
assets/help-agent-spec.md
Always (first) — the canonical flow; small by design. Points to the files below
references/agent-script.md
At agent creation only (after Checkpoint 2) — the canonical agent script + placeholders
references/channel-web-chat.md
Only if the user selects Web Chat at Checkpoint 3
references/channel-help-portal.md
Only if the user selects Help Portal (coming-soon hard stop)
references/channel-voice.md
Only if the user selects Voice (coming-soon hard stop)
文件读取时机
assets/help-agent-spec.md
始终优先读取——权威流程;内容精简。指向以下文件
references/agent-script.md
仅在创建代理时(检查点2后)读取——标准代理脚本+占位符
references/channel-web-chat.md
仅当用户在检查点3选择网页聊天时读取
references/channel-help-portal.md
仅当用户选择帮助门户(即将推出渠道拦截)时读取
references/channel-voice.md
仅当用户选择语音(即将推出渠道拦截)时读取