使用 Agentforce DX 构建 Agent
Agentforce DX 是 Salesforce DX 工具链的扩展,让 Agent 开发融入现代 DevOps 流程。它将 Agent 作为元数据管理,提供 CLI 命令和 VS Code 扩展来在 Agentforce Studio 之外创建、预览和测试 Agent,并在本地 DX 项目与 Scratch Org、Sandbox、生产环境之间迁移 Agent 元数据。
Agentforce Builder UI 和 Testing Center 让你通过点击而非代码来创建和测试 Agent。但现代 DevOps 流程要求将 Agent 源代码存储在版本控制系统(VCS)中作为生产环境的唯一真相源,Agentforce DX 使之成为可能。
什么是 Agentforce DX?
Agentforce DX 提供低代码工具(Agentforce Builder、Flow Builder)和专业代码工具(VS Code、Salesforce CLI)之间的灵活切换。典型的迭代开发流程:
- 本地创作:生成 Authoring Bundle(含 Agent Script 蓝图),编码脚本,预览 Agent
- 发布到 Org:发布 Bundle,在 Agentforce Builder UI 中继续编辑
- 拉取变更:将 Org 中的元数据变更拉回本地 DX 项目
- 编码自定义动作:用 VS Code + Vibes 创建 Apex 类,更新 Agent Script
- 部署:将本地更新部署回 Org
- 提交 VCS:定期将变更提交到 GitHub(真相源)
反馈与更新:通过 GitHub Issues 提交反馈,查看周发布说明了解最新变更。
设置开发环境
设置 Agentforce DX 环境与标准 Salesforce DX 环境类似,增加了一些 Agent 特定任务。
安装专业代码工具
- 下载安装 VS Code
- 从 VS Code Marketplace 安装 Salesforce Extension Pack(含 Agentforce DX、Agent Script Language Server、Apex、Vibes 等扩展)
- 安装 Salesforce CLI
- 在 VS Code 集成终端运行
sf search agent查看可用命令 - 使用
sf agent generate authoring-bundle --help查看命令详情
AI 工具选择:推荐使用 Agentforce Vibes Extension(安全 AI 模型)。也可使用 Cursor、Claude Code 等第三方 AI 工具,配合 sf-skills 仓库中的 Agentforce Skills。
两个 Vibes 产品:Agentforce Vibes Extension(VS Code 扩展,本地安装)和 Agentforce Vibes IDE(基于 Web 的 VS Code,预装 Salesforce Extension Pack + CLI)。
开发者环境选择
| 环境 | 特点 | 适用场景 |
|---|---|---|
| Sandbox | 生产 Org 的副本,含元数据。Developer/Developer Pro 可频繁刷新 | Agent 依赖 Data Library/Data 360 时;集成和用户测试 |
| Scratch Org | 空环境,快速创建,源驱动开发 | 不依赖 Data Library 的 Agent;全新功能开发 |
| Developer Edition | 免费,含 Agentforce + Data 360 | 学习和原型验证 |
推荐:Agent 依赖 Data Library 时使用 Sandbox。组合 Data 360 和 Agentforce 是创建成功 Agent 的最佳方式。
创建项目、授权 Org 与 Agent 用户
创建 Salesforce DX 项目(Agent 模板)
Agent 模板创建含示例 Agent(Local Info Agent)的 DX 项目,包含三种子代理类型(Apex/Prompt Template/Flow)和 Scratch Org 配置文件:
# VS Code: View > Command Palette > SFDX: Create Project > Agent 模板
# 或 CLI:
sf template generate project --name agentforcedx --template agent
cd agentforcedx
授权 Org
# VS Code: SFDX: Authorize an Org
# 或 CLI:
sf org login web --alias agentforce --set-default
# CI/CD 系统使用 JWT 授权流程
启用 Einstein 和 Agentforce
- 如需 Data 360:Setup > Data Cloud Setup Home > Turn On Data 360(最多 60 分钟)
- Setup > Einstein Setup > Turn on Einstein
- Setup > Agentforce Agents > 启用 Agentforce
系统权限
系统管理员自动拥有所有权限。非管理员需要:发布 Bundle(Modify All Data + Manage AI Agents)、预览 Agent(Agent Platform Builder)。生成/验证 Bundle 无需额外权限。
创建 Agent 用户
sf org create agent-user --target-org my-org
# 自定义名称:
sf org create agent-user --first-name Service --last-name Agent --base-username service-agent@corp.com --target-org my-org
命令自动:创建 Einstein Agent User 配置文件用户、分配必需权限集(AgentforceServiceAgentBase/AgentforceServiceAgentUser/EinsteinGPTPromptTemplateUser)、生成全局唯一用户名。Agent 用户无密码,不能登录 Salesforce。
使用 Agentforce DX 创作 Agent
创作 Agent 指生成和编码 Agent Script 文件,然后发布到开发 Org。Agent Script 是下一代 Agentforce Agent 的基础——结合自然语言的灵活性和程序化表达式的可靠性。
Agent 的 Agent Script 文件是 AiAuthoringBundle(Authoring Bundle)元数据组件的一部分。可以从零在 DX 项目中生成,也可以先在 Org 中创建然后拉取。
创作新 Agent 的工作流
- (可选但推荐)生成 Agent Spec:
sf agent generate agent-spec创建 YAML 文件 - 生成 Authoring Bundle:基于 Spec 文件生成含 Agent Script 的 Bundle
- 编码 Agent Script:在 VS Code 中编辑 .agent 文件(语法高亮/linting/验证)
- 预览 Agent:交互式测试,模拟或 Live 模式
- 发布 Bundle:发布到 Org,同步元数据
拉取并修改已有 Agent 的工作流
- 在 Agentforce Builder 中创建 Agent(使用新版 Builder,非 Legacy)
- 拉取所有 Authoring Bundle:
sf project retrieve start --metadata AiAuthoringBundle --metadata Agent --target-org <org> - 在 VS Code 中编码 Agent Script 文件
- 预览 → 发布
生成 Agent Spec 文件
Agent Spec 是 YAML 格式文件,包含 Agent 基本信息和 LLM 生成的子代理列表。虽然可选,但强烈推荐——它让后续生成的 Agent Script 文件更贴合你的特定需求。
生成与迭代优化
# 交互式生成
sf agent generate agent-spec --target-org my-org
# 使用 Flag 跳过提示
sf agent generate agent-spec --type customer \
--company-name "Coral Cloud Resorts" \
--company-description "Provide a luxury experience." \
--max-topics 4 --tone formal
# 迭代改进:传入已有 Spec 文件 + 优化属性
sf agent generate agent-spec --spec specs/agentSpec.yaml \
--role "Manage luxury resort concierge services including bookings, dining, spa, and activities"
迭代策略:Spec 文件上部是你提供的 Agent 属性,下部是 LLM 生成的子代理列表。反复运行命令,每次传入最新 Spec + 优化属性,LLM 生成的子代理列表逐步改进。
Flags:--type(customer/internal)、--company-name、--company-description、--role、--max-topics、--tone。使用 --help 查看完整列表。
生成 Authoring Bundle
Authoring Bundle 包含 Agent 的蓝图——Agent Script 文件(.agent)。可以从 Agent Spec 文件或直接从模板生成。
VS Code 与 CLI 生成
# 基于 Spec 文件生成
sf agent generate authoring-bundle --spec specs/agentSpec.yaml
# 不基于 Spec(生成样板 Agent Script)
sf agent generate authoring-bundle --agent-name MyAgent
# VS Code: Command Palette > SFDX: Generate Agent Authoring Bundle
生成的 Bundle 在 aiAuthoringbundles/ 目录下。每个 Bundle 包含 Agent Script 文件(.agent)和相关配置。可以先发布空 Bundle 在 Org 中创建 Agent 元数据(不推荐——基于 Agent Script 的 Agent 更灵活易维护)。
编码 Agent Script 文件
Agent Script 文件(.agent)是 Agent 的完整蓝图。Agentforce DX 在 VS Code 中完全支持 Agent Script 语言:语法高亮、linting、内部验证。
Agent Script 概览与编码工作流
Agent Script 文件结构:system(指令+消息)、config(developer_name/default_agent_user/description)、variables(全局变量)、start_agent(入口+路由)、subagent(子代理+动作)。
编码循环:编辑 .agent 文件 → 保存 → sf agent validate 验证编译 → 预览测试 → 再编辑。Agent Script 是编译型语言,保存版本时编译为底层元数据。
# 验证 Agent Script 文件
sf agent validate authoring-bundle --file aiAuthoringbundles/MyAgent/MyAgent.agent
Vibe Coding + Sample Prompts + 验证
Agentforce Vibes 辅助编码:用自然语言描述需求(如"如果订单总额超 $100 则免运费"),Vibes 自动生成对应的 Agent Script 代码。Vibes 也支持自动代码补全。
Sample Prompts(示例提示词):在 Agent Script 中添加 sample_prompts 属性,定义 Agent 能处理的示例用户问题。有助于测试和文档化。
编码提示:Agent Script 中指定 default_agent_user 为之前创建的 Agent 用户名。使用 sf agent validate 频繁验证确保编译通过。
发布 Authoring Bundle 到 Org
发布工作流
# 发布到默认 Org
sf agent publish authoring-bundle --file aiAuthoringbundles/MyAgent/MyAgent.agent
# VS Code: Command Palette > SFDX: Publish Agent Authoring Bundle
发布过程:自动创建底层 Agent 元数据(AiAuthoringBundle + Agent 类型)→ 同步元数据到 Org → Agent 可在 Agentforce Builder 中打开编辑 → 可 Commit Version + Activate。
发布后 Agent 进入"Ready to Test"状态。可在 Org 的 Testing Center 中测试,也可继续在 VS Code 中编码和重新发布。
同步开发 Org 与 DX 项目
拉取、部署与删除 Agent 元数据
# 拉取所有 Authoring Bundle 和 Agent 元数据
sf project retrieve start --metadata AiAuthoringBundle --metadata Agent --target-org my-org
# 拉取特定 Bundle 及其所有版本
sf project retrieve start --metadata "AiAuthoringBundle:Local_Info_Agent*" --target-org my-org
# 部署本地元数据到 Org
sf project deploy start --target-org my-org
# 删除 Agent(需先停用)
sf agent delete --target-org my-org --agent-name MyAgent
同步原则:VCS(GitHub)是真相源。在 Org 中做的任何变更都应拉回本地 DX 项目并提交到 VCS。在本地做的变更都应部署到 Org。
Agent 元数据:浅析
元数据类型:Bundle 与 Agent
| 元数据类型 | 说明 |
|---|---|
AiAuthoringBundle | 包含 Agent Script 文件(.agent)的 Authoring Bundle。每个 Agent 一个 Bundle,支持版本管理 |
Agent | Agent 实例元数据。引用 Authoring Bundle + 版本号 + 激活状态 + 连接配置(Messaging/Voice 等) |
Bundle 文件在 aiAuthoringbundles/<AgentName>/ 下,含 <AgentName>.agent(Agent Script)和版本子目录。Agent 元数据在 agents/ 下。
预览和调试 Agent
预览类型与模式
| 维度 | 选项 |
|---|---|
| 预览类型 | Simulated(模拟):动作返回 mock 数据(未实现真实动作时) Live:动作调用真实 Flow/Apex/Prompt |
| 预览位置 | VS Code 内置面板 / CLI 命令 / Agentforce Builder UI |
| Trace | 开启后输出每个推理步骤的详细日志(响应时间、工具选择、Prompt 内容) |
VS Code 交互式预览
# CLI 预览
sf agent preview authoring-bundle --file aiAuthoringbundles/MyAgent/MyAgent.agent
# VS Code: 右键 .agent 文件 > SFDX: Preview Agent
# 或 Command Palette > SFDX: Preview Agent Authoring Bundle
VS Code 预览面板支持:输入 utterance(用户发言)、查看 Agent 响应、切换 Simulated/Live 模式、开启 Trace 查看推理细节、配合 Apex Replay Debugger 断点调试。
程序化预览与会话 Trace 文件
# 带 Trace 的 CLI 预览
sf agent preview authoring-bundle --file aiAuthoringbundles/MyAgent/MyAgent.agent --trace
# 生成会话 Trace 文件(JSON 格式,含完整推理链)
# Trace 文件可用于分析 Agent 行为、排查问题、回归测试
Trace 文件包含:每次客户发言的完整推理过程、选择的工具和原因、LLM 输入/输出 Prompt、每个步骤的时间戳。适合深度调试和 CI/CD 自动化测试。
Agentforce DX 将 Agent 开发完全融入现代 Salesforce DevOps 流程。建议配合 Agent Script 开发指南、Agent 测试 和 Agent 管理 章节形成完整的开发-测试-部署知识体系。

























