Loading...
Loading...
Compare original and translation side by side
sfsf api request rest| Step | Skill | What it does |
|---|---|---|
| 1. Validate (this skill) | | Read the toggles → READY / NOT-READY (no writes) |
| 2. Configure | | Turn the disabled toggles ON |
| 3. Create agent | | Create + activate the Fulfiller agent |
service-itsm-agentic-setup-agentforce-studio-configurefeatureApiName| Go-page toggle | featureApiName | Required for |
|---|---|---|
| Turn on Agentforce Studio | | both paths (shared) |
| Agentforce for IT Service (parent umbrella) | | both paths (shared) |
| IT Service Fulfiller | | fulfiller |
| IT Service Employee | | employee |
| Specialized Agent Templates for Employee | | employee |
/connect/setup/discovery/...sf api request restscripts/classify-readiness.mjsBashsfsf api request rest| 步骤 | 技能 | 功能 |
|---|---|---|
| 1. 验证(本技能) | | 读取开关 → READY / NOT-READY(无写入操作) |
| 2. 配置 | | 将禁用的开关开启 |
| 3. 创建代理 | | 创建并激活Fulfiller代理 |
service-itsm-agentic-setup-agentforce-studio-configurefeatureApiName| Go页面开关 | featureApiName | 适用场景 |
|---|---|---|
| 开启Agentforce Studio | | 两种路径(共用) |
| Agentforce for IT Service(父级总开关) | | 两种路径(共用) |
| IT Service Fulfiller | | fulfiller路径 |
| IT Service Employee | | employee路径 |
| 面向Employee的Specialized Agent Templates | | employee路径 |
/connect/setup/discovery/...sf api request restscripts/classify-readiness.mjsBashconnect/setup/discovery/features/statusservice-itsm-agentic-setup-agentforce-studio-configureservice-itsm-agentic-setup-agentforce-studio-configureservice-itsm-agentic-setup-fulfiller-agent-configureconnect/setup/discovery/features/statusservice-itsm-agentic-setup-agentforce-studio-configureservice-itsm-agentic-setup-agentforce-studio-configureservice-itsm-agentic-setup-fulfiller-agent-configureAskUserQuestionsales-cloud-agent-studioservice-cloud-agentforce-for-itsmservice-cloud-it-fulfiller-agentsales-cloud-agent-studioservice-cloud-agentforce-for-itsmservice-cloud-requestor-agentservice-cloud-it-service-employee-agentAskUserQuestionsales-cloud-agent-studioservice-cloud-agentforce-for-itsmservice-cloud-it-fulfiller-agentsales-cloud-agent-studioservice-cloud-agentforce-for-itsmservice-cloud-requestor-agentservice-cloud-it-service-employee-agentsf401403404sfsf org display -o <alias>--target-org <alias>connect/setup/discoverynodesf401 Unauthorizedsf org login web403 Forbidden404 Not Foundsf401403404sfsf org display -o <alias>--target-org <alias>connect/setup/discoverynodesf401 Unauthorizedsf org login web403 Forbidden404 Not Found| Operation | Command | Returns |
|---|---|---|
| Read feature toggles | | |
.../feature/{apiName}/enableservice-itsm-agentic-setup-agentforce-studio-configuresf api request restreferences/cli-invocation.mdNever extract the access token. Usedirectly — it uses the CLI's stored session for the target org. Do not pull thesf api request restout ofaccessTokenand hand-build an HTTP request with it; that bypasses the CLI session and leaks a bearer token into shell context.sf org display
| 操作 | 命令 | 返回结果 |
|---|---|---|
| 读取功能开关 | | |
.../feature/{apiName}/enableservice-itsm-agentic-setup-agentforce-studio-configuresf api request restreferences/cli-invocation.md切勿提取访问令牌。直接使用——它会使用CLI为目标组织存储的会话。请勿从sf api request rest中提取sf org display并手动构建HTTP请求;这会绕过CLI会话并将Bearer令牌泄露到Shell环境中。accessToken
| Step | What happens | Tool used |
|---|---|---|
| Pick path | Determine fulfiller vs employee (ask if unclear) | |
| Read toggles | POST the feature-status batch for all toggles the path needs, capture to a file | |
| Classify | Run | |
| Report | Render the classifier's verdict into the Output Format | — |
| Hand off | On NOT-READY, name each disabled toggle and hand off to | — |
| 步骤 | 操作内容 | 使用工具 |
|---|---|---|
| 选择路径 | 确定是fulfiller还是employee路径(若不明确则询问) | |
| 读取开关 | 批量POST所选路径所需的所有开关状态,将结果捕获到文件中 | |
| 归类 | 运行 | |
| 报告 | 将归类脚本的判定结果转换为输出格式 | — |
| 移交任务 | 当判定为NOT-READY时,列出每个禁用的开关并移交任务给 | — |
<alias>sf config<agentType>fulfilleremployee<alias>sf config<agentType>fulfilleremployee--jsonsf api request rest "/services/data/v67.0/connect/setup/discovery/features/status" \
--method POST \
--body '{"featureApiNames":["sales-cloud-agent-studio","service-cloud-agentforce-for-itsm","service-cloud-it-fulfiller-agent","service-cloud-requestor-agent","service-cloud-it-service-employee-agent"]}' \
--target-org <alias> > /tmp/features-status.json 2>/tmp/features-status.err
echo $? > /tmp/features-status.exit$?|| true--jsonsf api request rest "/services/data/v67.0/connect/setup/discovery/features/status" \
--method POST \
--body '{"featureApiNames":["sales-cloud-agent-studio","service-cloud-agentforce-for-itsm","service-cloud-it-fulfiller-agent","service-cloud-requestor-agent","service-cloud-it-service-employee-agent"]}' \
--target-org <alias> > /tmp/features-status.json 2>/tmp/features-status.err
echo $? > /tmp/features-status.exit$?|| truenode "<skill_dir>/scripts/classify-readiness.mjs" /tmp/features-status.json <agentType> "$(cat /tmp/features-status.exit)"{ agentType, readState, features, verdict, notEnabled, enableable, reasons, rawError }PASS | FAIL | CANNOT-CONFIRM | ERRORverdictREADY | NOT-READY | CANNOT-CONFIRM | ERRORnotEnabledenableableenableBlockedReasonsnode "<skill_dir>/scripts/classify-readiness.mjs" /tmp/features-status.json <agentType> "$(cat /tmp/features-status.exit)"{ agentType, readState, features, verdict, notEnabled, enableable, reasons, rawError }PASS | FAIL | CANNOT-CONFIRM | ERRORverdictREADY | NOT-READY | CANNOT-CONFIRM | ERRORnotEnabledenableableenableBlockedReasonsservice-itsm-agentic-setup-fulfiller-agent-configureservice-itsm-agentic-setup-employee-agent-configurenotEnabledenableableservice-itsm-agentic-setup-agentforce-studio-configureAskUserQuestionnotEnabledenableableenableBlockedReasonsrawErrorservice-itsm-agentic-setup-fulfiller-agent-configureservice-itsm-agentic-setup-employee-agent-configurenotEnabledenableableservice-itsm-agentic-setup-agentforce-studio-configureAskUserQuestionnotEnabledenableableenableBlockedReasonsrawErrorservice-itsm-agentic-setup-agentforce-studio-configureservice-itsm-agentic-setup-agentforce-studio-configure| Constraint | Rationale |
|---|---|
| This skill is read-only — it never POSTs a feature enable | Turning toggles on is a separate write-capable skill ( |
On NOT-READY, hand off to | That skill owns the |
The read goes through | |
Classification lives in | The verdict is a deterministic decision table over fixed feature statuses; a script is reliable, prose interpretation is not (authoring standard A9) |
| The required-toggle set depends on the agent path | Fulfiller and Employee agents gate on different template toggles; the classifier encodes both paths |
| These are Connect API features — use SF CLI, not Headless360 | A Connect/Tooling equivalent exists, so SF CLI is preferred (avoids the Headless360HostedMcpServer org-perm gate) |
| A blocked toggle can't be turned on even by the configure skill until the unmet dependency / purchase gate clears |
Do not pass | It is unsupported on some Connect endpoints; the raw stdout body is already JSON |
| 约束 | 理由 |
|---|---|
| 本技能为只读——绝不会发送功能启用请求 | 开启开关是另一项具备写入权限的技能( |
当判定为NOT-READY时,移交任务给 | 该技能负责 |
读取操作通过 | |
归类逻辑定义在 | 判定结果是基于固定功能状态的确定性决策表;脚本更可靠,自然语言解释不可靠(创作标准A9) |
| 必需开关集取决于代理路径 | Fulfiller和Employee代理依赖不同的模板开关;归类脚本已编码两种路径的逻辑 |
| 这些是Connect API功能——使用SF CLI,而非Headless360 | 存在Connect/Tooling等效接口,因此优先使用SF CLI(避免Headless360HostedMcpServer组织权限限制) |
| 被阻止的开关即使通过配置技能也无法开启,直到未满足的依赖项/购买限制消除 |
请勿向 | 部分Connect端点不支持该参数;原始标准输出体已经是JSON格式 |
sf api request restscripts/classify-readiness.mjs{verdict, notEnabled, enableable, rawError}enableableenableBlockedReasonsservice-itsm-agentic-setup-agentforce-studio-configuresf api request restscripts/classify-readiness.mjs{verdict, notEnabled, enableable, rawError}enableableenableBlockedReasonsservice-itsm-agentic-setup-agentforce-studio-configureAgentforce for IT Service — Prerequisite Check (via service-itsm-agentic-setup-agentforce-studio-validate)
Org: <org-alias> (API v67.0)
Agent path: fulfiller | employee
[PASS|FAIL] Agentforce Studio ......................... ENABLED | NOT_ENABLED (sales-cloud-agent-studio)
[PASS|FAIL] Agentforce for IT Service (parent) ........ ENABLED | NOT_ENABLED (service-cloud-agentforce-for-itsm)
[PASS|FAIL] <path-specific toggle(s)> ................. ENABLED | NOT_ENABLED (<featureApiName>)
Verdict: READY | NOT-READY | CANNOT-CONFIRM | ERROR
Next steps:
- <If READY: "Org satisfies the prerequisites for the <path> agent. Create it via service-itsm-agentic-setup-fulfiller-agent-configure (fulfiller) / the employee-agent skill.">
- <If NOT-READY: list each disabled toggle; for the enableable ones, hand off to service-itsm-agentic-setup-agentforce-studio-configure to turn them on; for blocked ones, report the enableBlockedReasons.>
- <If CANNOT-CONFIRM: state which toggle(s) returned no status and that the feature-discovery surface may not be wired on this org.>Agentforce for IT Service — 前置条件检查(通过service-itsm-agentic-setup-agentforce-studio-validate)
组织: <org-alias>(API v67.0)
代理路径: fulfiller | employee
[PASS|FAIL] Agentforce Studio ......................... ENABLED | NOT_ENABLED (sales-cloud-agent-studio)
[PASS|FAIL] Agentforce for IT Service(父级) ........ ENABLED | NOT_ENABLED (service-cloud-agentforce-for-itsm)
[PASS|FAIL] <路径专属开关> ................. ENABLED | NOT_ENABLED (<featureApiName>)
判定结果: READY | NOT-READY | CANNOT-CONFIRM | ERROR
下一步操作:
- <如果为READY: "组织已满足<路径>代理的前置条件。通过service-itsm-agentic-setup-fulfiller-agent-configure(fulfiller路径)/ employee代理技能创建代理。">
- <如果为NOT-READY: 列出每个禁用的开关;对于可启用的开关,移交任务给service-itsm-agentic-setup-agentforce-studio-configure来开启;对于被阻止的开关,报告enableBlockedReasons。>
- <如果为CANNOT-CONFIRM: 说明哪些开关未返回状态,并指出该组织可能未接入功能发现接口。>| File | When to read |
|---|---|
| Every phase — exact |
| 文件 | 阅读时机 |
|---|---|
| 所有阶段——精确的 |