用途
该技能解决一个具体故障:当 Fulfiller NGA 智能体脚本通过 source:/target: generatePromptResponse://... 引用 svc_itsm_intelligence__* 提示模板可调用动作时,如果这些动作未对运行用户暴露,Fulfiller 智能体配置技能第 6 阶段的激活调用会返回 HTTP 200,但响应体为静默的 {success:false, messages:[{... "does not exist"}]},智能体始终无法使用。本技能通过分配正确的 Fulfiller 角色权限集(及其背后的许可证,若存在)来修复这一缺口。
主要能力
- 检测目标组织中三个核心 Fulfiller 角色权限集(IncidentFulfiller、ProblemFulfillerPermSet、ChangeRequestFulfillerPermSet)中哪些已预置。
- 让用户选择要分配的角色(不自动选择)。
- 检查现有分配(幂等性)。
- 当角色受许可证限制时,先分配权限集许可证(PSL),再分配权限集给运行用户或指定用户。
- 通过后续读取 /actions/custom/generatePromptResponse 验证目标 svc_itsm_intelligence__* 可调用动作是否已暴露。
- 当三个角色权限集均不存在时,转交给 service-itsm-agentic-setup-agentforce-studio-validate,以便先启用 ITSM AddOn。
使用方式
所有调用均通过 Salesforce CLI(sf)执行:
sf api request rest— 已认证的 Connect API GET(身份、验证读取)。sf data query— 对 PermissionSet(角色存在性)、PermissionSetAssignment / PermissionSetLicenseAssign(幂等性)执行 SOQL。sf org assign permset— 为运行用户分配权限集。
不提取任何令牌,不使用 MCP。
工作流分为五个阶段:
- 读取:查询三个已知 Fulfiller 角色 DeveloperNames 的 PermissionSet,并用 scripts/classify-permset-availability.mjs 分类,得到 verdict:ASSIGN(≥1 个角色存在)、HAND-OFF(三个均不存在)或 CANNOT-CONFIRM(查询失败)。
- 分配路径(分支 A):解析目标用户(scripts/resolve-target-user.mjs),读取现有分配(scripts/classify-assignment-state.mjs),确认写入,然后按 needsPsl 决定是否先 POST PSL 再执行
sf org assign permset。 - 转交路径(分支 B):当无任何 Fulfiller 角色预置时,提示用户是否运行 service-itsm-agentic-setup-agentforce-studio-validate 诊断需要启用哪个 AddOn。
- 验证:重新读取 /actions/custom/generatePromptResponse,并用 scripts/classify-action-surface.mjs 分类,得到 SURFACED / PARTIAL / MISSING / CANNOT-CONFIRM。
- 汇总判定:ASSIGNED、ALREADY-ASSIGNED、HAND-OFF、VERIFY-INCONCLUSIVE 或 FAILED。
四个辅助脚本(均通过 Bash 调用)承载所有确定性决策:
- scripts/classify-permset-availability.mjs — 判定分支 A 与 B,以及每个角色的 needsPsl 标志。
- scripts/resolve-target-user.mjs — 从 API 根身份 URL 提取 005… 运行用户 Id。
- scripts/classify-assignment-state.mjs — 幂等性判断;当所选角色 needsPsl:false 时传入哨兵值 NO-PSL。
- scripts/classify-action-surface.mjs — 第 4 阶段验证判定。
适用场景
- 目标组织已预置至少一个 Fulfiller 角色权限集,需要为运行用户或指定用户分配该角色,使 Fulfiller NGA 智能体可激活。
- 需要判断故障是“角色存在但未分配”还是“AddOn 完全缺失”。
限制
- 不适用于 Employee 智能体访问(其访问模型不同,属于另一技能)。
- 不负责安装/启用 ITSM AddOn 或内容包(转交 service-itsm-agentic-setup-agentforce-studio-validate)。
- 不启用组织级 Agentforce 功能开关。
- 不创建权限集。
- 不创建或激活 Fulfiller 智能体(属于 service-itsm-agentic-setup-fulfiller-agent-configure)。
- 不处理 CMDB 访问(service-itsm-agentic-setup-cmdb-access-assign)。
- 不处理通用非 ITSM 权限集分配(dx-org-permission-set-assign)。
- 前置条件:sf CLI 已安装并认证到目标组织;API v67.0+;PATH 上 node ≥ 18。
- 三个角色权限集均以命名空间 force 核心发布,不存在托管包命名空间的权限集。
- 分配权限集许可证会消耗席位并对活动用户会话生效,写入前需显式确认。
- 400 DUPLICATE_VALUE 视为成功;400 INSUFFICIENT_ACCESS / 席位耗尽则停止该写入。
- 写入后必须通过 /actions/custom/generatePromptResponse 验证,不能仅信任 POST 返回码。