一、认识 Headless 对话(Discover Headless Conversations)
学完本单元,你将能够:解释 headless 在 Salesforce Platform 语境中的含义;识别与 Salesforce 进行无头交互的用例;描述用户可以用哪些工具在 Salesforce Platform 上无头构建。
一个平台,随处可用(One Platform Anywhere You and Agents Work)
欢迎来到 AIforce——一个让人和代理能够在任何界面(Slack、Teams、ChatGPT)、工具或环境中协同工作的平台。它建立在开放生态之上,让开发者自由地在 Salesforce 上构建并分享他们的成果。
Salesforce 内部的业务逻辑、数据、工作流、权限和治理,现在可以从任何地方访问,无需任何人打开你的 Salesforce org。关键在于:代理不仅获得数据访问权限,还继承了安全与治理。你的客户花多年构建的每一条权限、每一条合规规则、每一级审批链,都会随平台一起、无论在何处被访问。
简单说:headless 功能让 Salesforce 到你已经在的地方与你(和代理)会合,而不是要求你来 Salesforce。你不必改变工作方式——Salesforce 出现在你每天已经在使用的工具和界面中。
什么是 Headless(What Does Headless Mean?)
为什么叫 headless?这个术语来自技术领域。在那个世界里,headless 是把后端逻辑(body,身体)与前端展示层(head,头)分离的系统。Headless 简单地说,就是无需直接登录 Salesforce org,就能使用 Salesforce 提供的一切。如果你是开发者,你可以用你已经在用的工具与 Salesforce 后端(身体)交互;其他所有人则可以在他们通常工作的界面上与 Salesforce 交互。这一分工正是整个理念:平台保持完整,而你触达它的方式成倍增加。
从一开始,使用 Salesforce 就意味着登录并在 Salesforce 内部工作——客服代表打开控制台、点进某个 case、手动更新其状态,这是一个人在导航一个平台来完成工作。但在 agentic enterprise(代理型企业)中,导航的不只是人,代理也在导航,而且它们不会打开浏览器或点击用户界面(UI),而是直接调用应用程序接口(API)、Model Context Protocol(MCP)工具、运行命令行界面(CLI)命令。
现在 Salesforce 也是为代理而建的了。平台带着可信的上下文暴露给代理,可从任何地方编程和访问。AI 代理路由请求、汇总信息,并一次性跨每个系统采取行动。这就是向 agentic enterprise 的转变——代理横跨每个系统和工作流,工作自主推进,客户需求在任何人拿起电话之前就被预判。
人和代理需要的是同样的东西:数据、工作流、信任层。界面变了,平台没变。
增加灵活性、速度与可扩展性(Add Flexibility, Speed, and Scalability)
Headless 不是要取代已有的东西——Salesforce UI 不会消失,你可以继续照原样使用 Salesforce。这是在增加灵活性、速度与可扩展性,而不是移除任何东西。
这样想:如果你的团队生活在 Slack 里,你的代理可以直接在 Slack 中呈现 Salesforce 数据;如果开发者偏爱 Cursor 或 Claude Code,他们现在可以直接从这些工具构建由 Salesforce 驱动的体验;如果业务用户需要自定义门户,它可以在他们选择的任何 UI 框架下、由 Salesforce 在底层驱动。更多界面,更多灵活性,底层是同样可信的平台、治理和业务逻辑。
Headless 交互驱动四个核心价值支柱:
- 采用(Adoption):许多组织难以让用户持续登录 Salesforce。把工作流直接带到用户所在之处,完全消除了这种摩擦。
- 触达(Reach):传统上从未拥有 Salesforce 访问权的员工——如一线员工、现场团队或外部合作伙伴——现在可以通过 Slack 或 Teams 参与 Salesforce 驱动的工作流。
- 速度(Speed):消除频繁切换应用的需求,真正提升了日常生产力。
- AI 代理战略(AI agent strategy):构建 agentic AI 的企业需要其代理可靠地行动,并能访问真实业务数据、受治理的工作流和问责机制。Headless 体验给代理提供了从试点走向生产所需的企业级基础设施。
Headless 入门(Introduction to Headless)
开发者进入 Salesforce 生态的学习曲线可能很陡,但它正在下降。如果你用的是 Claude Code、Cursor 或 Windsurf,你现在可以原生地连接到 Salesforce API 和 MCP 服务器,而无需从头学习新的集成开发环境(IDE)或平台。今天已有 30+ 预构建编码技能、60+ MCP 工具,未来还会更多——你可以用你已喜爱的工具来构建、测试和部署由 Salesforce 驱动的代理和应用。你会自动继承 Salesforce 的安全性、权限和工作流,无需脆弱的 DIY 集成。
这为任何人解锁了与 Salesforce 交互的新方式。无论你在 Slack、Microsoft Teams、WhatsApp 还是 ChatGPT 中,Salesforce 现在都可以直接在这些环境中呈现数据、触发工作流和采取行动。这得益于 Headless Experience Layer(HXL)——它把你的业务逻辑原生地渲染到你正在工作的任何地方,带来无缝体验:无需打开 Salesforce UI,就能获得 Salesforce Platform 的力量。
现在,创建代码的 AI 代理被称为 coding agent(编码代理)。它们可以构建 Salesforce 交互和自动化——你可以用 coding agent 为你编写 Salesforce 代码,并用日常、对话式的自然语言与它交互。你会在下一单元做这件事。
但仅仅用 coding agent 从 LLM 获得智能推理还不够。Coding agent 需要上下文、工作流、信任,以及合适的参与层,才能真正做事情。
一个连接到原始数据库的 coding agent 不知道某位客户有未决升级、30 天后到期的续约、已被突破的支持 SLA,以及一位与 CFO 有私人交情的关系负责人。这些上下文花了很多年积累,它们住在 Salesforce 里。而现在 Data 360 被暴露为 API、MCP 工具和 CLI 命令,让你的 coding agent 能从任何地方触达它、无需碰 UI。这正是「写代码的 coding agent」与「理解你业务的 coding agent」之间的区别。
除此之外,Agentforce 代理还继承安全与治理:你花多年构建的所有权限、合规规则和审批链,都会随平台访问的任何地方一同生效。
注册带 Agentforce 的自定义 Playground(Sign Up for a Custom Playground)
要完成本模块,你需要一个包含 Agentforce 的自定义 playground:
- 选择 Create Playground。
- 你的新 org 会自动关联到你的 Trailhead 账户。
记下你 org 的到期日期,并在此之前完成本模块——这些 playground 是限时的,中途到期是常见的挫折。org 准备好后,你就为下一单元做好了准备,那里你将使用 Trailhead headless IDE,通过与代理对话来构建代理。
二、通过对话构建代理(Build an Agent Through Conversation)
本单元是交互式动手学习,请把浏览器窗口调整到至少 900px 宽,否则工作区无法正常渲染。学完本单元,你将能够:只用自然语言构建一个可用的服务代理;使用 headless 功能配置或调整代理;使用 Builder IDE 创建、迭代和部署代理。
用自然语言构建代理(Build an Agent Using Natural Language)
在这个动手单元中,你在新的 headless 构建工作区体验里,用自然语言——而非点击——在 Agentforce 中构建你的第一个 coding agent。
许多客户构建的第一个代理用于客户服务场景,因此本练习你将构建一个 Agentforce Help Agent,可以跨服务渠道部署来解决客户问题。
传统上,想构建应用,你必须学习该应用所需的工具和语言、以及它将被使用的环境。现在你可以用一个 AI coding agent 为你生成代码、查询和配置文件——只需用通俗的自然语言与 AI 对话,让 coding agent 完成耗时的重活。这种来回对话可以基于现有系统构建,也可以从零创建一个全新系统。
(本模块是 Trailhead headless builder 的 beta 版本,体验可能随时间变化。)
用 Salesforce 无头方式能做什么(What You Can Do with Salesforce Headlessly)
在这个体验中,你在单元说明与 headless 构建工作区之间来回切换,亲手使用 Agentforce。完成以下步骤时,即使 coding agent 问你澄清性问题,也务必回到这里查看。
先问 agent 它能构建什么样的服务代理。
- 在标有 Describe the help agent you want to build 的聊天框中,输入:
What kind of service agents can you build?
刚才发生了什么?技术上,你输入的是一个所谓的 prompt(提示词)。agent 用它来推理你想知道什么,然后回复它找到的内容,可能还会问一些澄清性问题。
这不是模拟——agent 使用真实工具(Claude 模型),作用域限定在一个聚焦的环境(Salesforce)中,类似于在单个 Claude Code 项目中工作。
那么你能做什么?
- 无需 UI 即可自动化工作流。
- 通过 API 与外部系统集成。
- 为 Agentforce Sales 和 Agentforce Service 运行代理驱动的流程。
继续对话(Continue the Conversation)
基于你最初的问题,coding agent 很可能问了你的行业。在本例中,假设你在酒店业工作,想找一个服务代理,让客户能从你的帮助站点提问、管理预订和提交问题。
- 在聊天框中输入:
What kind of service agents are good to build for a hospitality company?
如果 agent 几秒后没响应,只需重新输入你的 prompt。对话已经开始,每次交互都会不同。agent 会提供建议,甚至可能问更多澄清性问题——这就是 agent 帮你确定「什么是可能的」的力量,尤其是在你还不完全确定自己想要什么的时候。
- 在聊天框中输入:
Good suggestions, let's go with an agent named 'Bookings Help Agent', and set the agent API name to 'bookings_help_agent'. Add a subagent Reservation Agent, named 'Reservation Management' with actions 'FinalizeReservation' and 'GetReservationTimeSlots'. Then add another subagent Guest Complaint Agent, named 'Guest Complaints' with action 'CreateCase'.
这条 prompt 做了真正的工作:它给代理及其 API 名称命名,然后指定两个子代理及其动作——一个带 FinalizeReservation 和 GetReservationTimeSlots 的 Reservation Management 子代理,一个带 CreateCase 的 Guest Complaints 子代理。
注意:在本例中,你为代理提供了名称和 API 名称,因为该名称会在本模块后面被引用。如果你创建另一个代理且不提供名称,agent 会为你创建一个。
- 如果 agent 问它应该有什么「人格」,输入:
Go with 'warm' and 'gracious'。如果它没问,就继续下一步。
coding agent 构建出服务代理,你可以查看代理脚本,它还会问你是否要部署到环境。如果审查脚本后发现设置不如你意,你可以让 agent 修改——这种来回正是无头构建的意义所在。本例中,你告诉 agent 直接部署。
- 在聊天框中输入:
Deploy it. - 你的代理现已部署。选择 View in Agents list 链接查看你的新代理。
注意:View in Agents list 链接可能需要一会儿才生效。在下一单元,你会在 playground 中打开代理——记住,与代理协作的方式总是不止一种。
三、探索这个代理(Explore the Agent)
学完本单元,你将能够:在 Agentforce Studio 中导航,查看已部署的代理及其底层子代理;预览新代理和子代理。
检查新代理(Check the New Agent)
在检查代理之前,如果 Agentforce Studio 中有错误消息,选择 Take me there。测试代理时可以忽略关于内容安全策略(content security policies)的错误消息——这是此环境的预期现象。
现在代理已部署,检查它为你构建了什么。
- 选择 Launch 按钮,这会在新标签页中打开你的环境。
- 选择 App Launcher 图标,搜索并选择 Agentforce Studio。
- 选择 bookings_help_agent(你的代理命名可能略有不同,但应类似)。
- 选择 Subagents 打开它,查看 coding agent 添加的不同子代理:Finalize Reservation 和 Get Reservation Time Slots。
- 选择 Guest Complaints 子代理展开它,查看 Create Case 动作。
reservation_management 子代理为客户获取预订并展示详情,它还能创建预订——你接下来在 Preview 中做这件事。
预览新代理(Preview the New Agent)
恭喜!你用自然语言构建了一个 Salesforce Agent,更新了它,并部署了它。现在看看它表现如何。
- 在 Builder 中,选择 Preview。
- 在标有 Describe your task or ask a question 的聊天框中,输入:
What times do you have for the fine dining restaurant tomorrow?(你可能需要问不止一次。) - agent 会给你可用时间。输入:
Will you book the latest one for me? - agent 会问你的姓名、邮箱或电话。输入:
My name is Sofia Rodriguez. My email is sofia@example.com. - agent 可能问你用餐人数。输入
2。 - agent 随后给你最终信息并请你确认。输入
Yes。
注意这多轮对话中发生了什么:agent 在多轮预订中保持了状态,通过对话收集输入,最后才确认。
更进一步(Level Up)
现在你已经用 Salesforce 无头方式构建了第一个 Agentforce 代理,接下来往哪走?你为这个代理使用的相同 prompt,同样适用于构建其他代理——只需针对你想构建的代理类型修改即可。你也可以用相同的 prompt 工具给当前代理添加功能。关于 prompt 的更多信息,请查看资源:Prompt Engineering Techniques、Prompt Fundamentals,以及 Salesforce 的 prompt 工程指南。
文章来源:Trailhead - Headless Use Case: Use a Conversation to Build an Agent























