Custom Lightning Types 实战:航班预订示例

简介: Custom Lightning Types 完整实战教程:航班预订 Agent Action 输入/输出 UI 自定义。涵盖 FlightAgent Apex 类设计、默认 UI 问题分析(输入过滤器缺失/输出原始 JSON)、flightResponse 输出 CLT(顶级 Renderer + LWC 航班卡片布局)、flightFilter 输入 CLT(Editor + handleInputChange 数据绑定)、改造前后对比和技术模式总结。

Custom Lightning Types — 航班预订示例

航班预订示例:自定义 Lightning Types 输入和输出

本示例展示如何使用自定义 Lightning Types 来覆盖 Agent Action 的默认输入和输出 UI。我们将使用 FlightAgent Apex 类查找可用航班,创建两个自定义 Lightning Type:flightResponse(输出渲染器——以精美的卡片布局展示航班)和 flightFilter(输入编辑器——带标签的表单字段收集价格和折扣输入)。

Apex 类设计

FlightAgent — 主 InvocableMethod

  • @InvocableMethod(label='Find Flights' description='Finds available flights')

  • 输入:FlightRequest(originCity、destinationCity、dateOfTravel、filters)

  • 输出:FlightResponse → AvailableFlight → List

数据类结构

类字段
FlightflightId (String), numLayovers (Integer), isPetAllowed (Boolean), price (Long), discountPercentage (Double), durationInMin (Integer)
AvailableFlightglobal List flights
FlightRequestFilterprice (Long), discountPercentage (Double) — 可选搜索过滤器
FlightRequestoriginCity, destinationCity, dateOfTravel, filters (FlightRequestFilter)

示例硬编码了四个航班(演示用,生产环境应从外部服务获取):IX 2814(1 次转机,$1000,20.2% 折扣,70 分钟)、6E 488(2 次转机,$2000,15.15% 折扣,120 分钟)、6E 523(1 次转机,$3000,13.14% 折扣,75 分钟)、6E 6166(2 次转机,$4000,14.14% 折扣,130 分钟)。

Apex 类

创建 Agent Action 和默认 UI 问题

使用 FlightAgent 类创建 Agent Action 后,默认 UI 存在严重问题:

默认输入 UI 问题

  • 只显示基本字段(出发城市、目的城市、旅行日期)

  • 过滤器字段(价格和折扣百分比)完全不可见——用户无法筛选航班

默认输出 UI 问题

  • 航班数据以原始 JSON 格式返回

  • 无标签、布局混乱、难以理解

  • 无视觉层次或样式 —— 用户必须手动解析 JSON 才能比较航班

// 默认输出 —— 原始 JSON {"aFlight": {"flights": [ {"flightId": "IX 2814", "price": 1000, "numLayovers": 1, ...}, {"flightId": "6E 488", "price": 2000, "numLayovers": 2, ...} ]}}


目标:创建两个自定义 Lightning Type —— flightResponse 将原始 JSON 转换为精美的航班卡片,flightFilter 显示带标签的价格和折扣输入字段。

![默认 UI 问题](https://sfdcvideotest.oss-cn-beijing.aliyuncs.com/media/ADG001/slide_234/image.png)

## 自定义输出 UI:flightResponse CLT

### 目录结构

`lightningTypes/
  flightResponse/
    schema.json
    lightningDesktopGenAi/
      renderer.json`

schema.json

引用 Apex 类类型,告诉系统这个自定义类型映射到哪个数据结构:

{ "title": "My Flight Response", "description": "My Flight Response", "lightning:type": "@apexClassType/c__AvailableFlight" }


### renderer.json — 用自定义 LWC 覆盖默认渲染

使用顶级 renderer(覆盖整个输出组件):

`{
  "renderer": {
    "componentOverrides": {
      "$": {
        "definition": "c/flightDetails"
      }
    }
  }
}`

LWC:flightDetails 组件

  • Target:lightning__AgentforceOutput(在 js-meta.xml 中)

  • sourceType:c__flightResponse

  • HTML 布局:lightning-card 展示每个航班——航班 ID + 折扣标签、价格(粗体)、持续时间、出发/到达时间线、转机次数、宠物政策

  • JS 逻辑:将持续时间从分钟格式化为 "X hr Y min"、计算到达时间、将 petAllowed 映射为 Yes/No

渠道支持:lightningDesktopGenAi 文件夹用于桌面 Agentforce 聊天,可额外配置 enhancedWebChat 文件夹用于 Web 聊天渠道。

集成步骤

  • 打开 Agent Action → 编辑 aFlight 的 Output Rendering

  • 选择 flightResponse 自定义 Lightning Type

  • 保存(忽略 "Unsupported Data Type" 提示——无害)

  • 测试前重新加载 Agent 页面

自定义输出 UI

自定义输入 UI:flightFilter CLT

目录结构

lightningTypes/ flightFilter/ schema.json lightningDesktopGenAi/ editor.json


### schema.json

`{
  "title": "Flight Filter",
  "description": "Flight Filter",
  "lightning:type": "@apexClassType/c__FlightRequestFilter"
}`

editor.json — 用自定义 LWC 覆盖默认输入表单

{ "editor": { "componentOverrides": { "$": { "definition": "c/flightRequestFilter" } } } }
```

LWC:flightRequestFilter 组件

  • Target:lightning__AgentforceInput

  • targetType:c__flightFilter

  • HTML:lightning-card "Price and Discount Percentage" 包含两个 lightning-input 字段——Price(数字,min 1000 / max 20000 / step 1)、Discount Percentage(数字,min 0 / max 100 / step 1)

关键模式 — handleInputChange()

这是输入数据绑定的核心:

  • connectedCallback() —— 加载已有值

  • handleInputChange() —— 捕获用户输入、更新组件状态、派发 valuechange CustomEvent(包含 {price, discountPercentage} detail)通知父 Planner 组件、使用 stopPropagation() 阻止不需要的事件传播

集成

  • 打开 Agent Action → 编辑 filters 的 Input Rendering

  • 选择 flightFilter 自定义 Lightning Type → 保存

  • 重新加载 Agent 页面后测试

  • 注意:确保子代理指令正确引导 LLM 使用 UI 表单输入,而非文本输入

自定义输入 UI

改造前后对比

输出改造

方面改造前(默认)改造后(flightResponse CLT)
展示方式原始 JSON 无格式精美卡片布局 + 航班图标
标签无航班 ID + 折扣标签、价格加粗、出发/到达时间线
可读性难以扫描和比较一目了然比较航班差异

输入改造

方面改造前(默认)改造后(flightFilter CLT)
可见字段仅基本字段(origin、destination、date)新增 Price 和 Discount Percentage 卡片
过滤器能力无法筛选航班带约束的数字输入(min/max/step)

核心技术模式总结

模式用途关键配置
顶级 Renderer覆盖整个输出显示"renderer": {"componentOverrides": {"$": {"definition": "c/xxx"}}}
顶级 Editor覆盖输入表单显示"editor": {"componentOverrides": {"$": {"definition": "c/xxx"}}}
schema.json映射 Apex 类类型"lightning:type": "@apexClassType/c__ClassName"
LWC Target输出组件lightning__AgentforceOutput
LWC Target输入组件lightning__AgentforceInput
输入数据绑定实时更新 PlannerhandleInputChange() + valuechange CustomEvent

改造前后对比

通过 schema.json 引用 Apex 类型、renderer.json 覆盖输出渲染、editor.json 覆盖输入表单,配合自定义 LWC 组件,你可以将 Agent Action 的默认原始 JSON UI 完全改造为品牌化、专业级的用户体验。

发布来源:https://www.salesforcecrm.cn/article/agentforce/custom-lightning-types-flight-booking.html

相关文章
|
2天前
|
人工智能 运维 数据挖掘
最新版通义千问(Qwen3.8-Max-Preview)功能介绍
2026年7月,阿里云通义千问正式对外开放**Qwen3.8-Max-Preview旗舰预览模型**,作为目前千问系列规格最高、综合性能最强的新一代万亿级AI模型,该模型搭载2.4T超大参数架构,是阿里云首款突破万亿参数的原生多模态旗舰模型,全面覆盖文本、图像、视频、文档多维度处理能力。相较于前代热门Qwen3.7-Max版本,本次预览版实现全方位跨越式升级,在真实工程开发、多智能体长周期任务、全链路办公自动化、海量数据分析等高阶场景中,综合能力已达到全球顶尖模型水准。现阶段该模型已正式开放抢先体验通道,依托阿里云百炼Token Plan、Qoder编码平台、QoderWork办公终端三大专属
1644 0
|
5天前
|
人工智能 安全 测试技术
|
7天前
|
云安全 人工智能 安全
阿里云 Agentic SOC 位居 IDC MarketScape安全运营智能体2026领导者类别
以 Agentic AI 重构安全运营闭环,阿里云云安全在产品能力与市场份额
1199 3
|
2天前
|
人工智能
Qwen3.8抢先体验!正式版即将发布并开源!
千问Qwen3.8即将开源,参数达2.4T,进化速度以“天”计,实力媲美Fable 5。预览版Qwen3.8-Max已上线阿里Token Plan等平台,限时优惠:日间Credits低至1折,夜间更优,个人/团队版月付仅35元起!
435 18
|
2天前
|
人工智能 自然语言处理 数据挖掘
Qwen3.8-Max 预览版全解析:2.4 万亿参数旗舰模型,Token Plan 限时优惠指南
Qwen3.8-Max-Preview是通义千问Qwen3系列旗舰MoE大模型,参数达2.4万亿,综合推理能力居行业第一梯队。支持思考/快速双模式,擅长大模型五大高难场景。现于阿里云百炼Token Plan、Qoder及QoderWork上线体验,个人版低至39元/月。在阿里云百炼官网:https://t.aliyun.com/U/fPVHqY 免费领取千万Tokens
369 1
Qwen3.8-Max 预览版全解析:2.4 万亿参数旗舰模型,Token Plan 限时优惠指南
|
8天前
|
缓存 UED 开发者
Codex109天重置23次,明天还要再送一次
Codex近109天完成23次额度重置,7月14日将迎来第24次。Tibo高频响应用户反馈:优化GPT-5.6高消耗问题、补发失效福利、调整重置时间——形成“反馈→回应→修复→补偿”正向闭环,彰显以用户为中心的产品哲学。(239字)
773 12
|
1天前
|
人工智能 测试技术 语音技术
Qwen-Audio-3.0-TTS 正式发布!AI 语音从 “能说话” 升级到 “会带情绪表达”
阿里云发布Qwen-Audio-3.0-TTS语音合成大模型,支持细粒度标签控制(如[gasp][angry])、freestyle自由风格、16种语言及20种方言,声学鲁棒性强。含Flash(首包延时300ms)和Plus(全球榜单冠军)双版本,已在百炼平台开放调用。在阿里云百炼官网:https://t.aliyun.com/U/fPVHqY 免费领取千万Tokens
354 0
|
11天前
|
存储 人工智能 JSON
Qwen 本地部署搭配 ComfyUI 生成 AI 漫剧完整实操指南(小白零基础可落地,零成本无限生成+角色一致性天花板)
2026全网最优本地漫剧流水线:零成本、离线运行、角色统一、低配(8G显卡)可跑。融合Qwen本地大模型+ComfyUI双引擎,实现剧本生成→分镜绘图→动态成片全自动,隐私安全、无审核限流,新手30分钟上手,日更无忧。(239字)
|
7天前
|
数据采集 机器学习/深度学习 人工智能
田间杂草定位与检测4200张YOLO智慧农业数据集分享
本数据集含4200张真实农田图像,YOLO格式,单类别(杂草)高质量标注,覆盖多作物、多光照、多生长阶段等复杂场景,专为智慧农业杂草检测与智能除草设备研发设计,支持YOLOv5/v8/v10等主流模型训练。
378 94