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月前
|
人工智能 IDE API
Salesforce Headless 360 入门指南
Salesforce Headless 360 完整入门指南:了解什么是 Headless、Headless Experience Layer (HXL)、MCP、API、ADLC Skills、元数据目录等核心概念。探索四大业务驱动力、五大核心挑战,以及三大架构能力——用任何编码代理构建、用任何 UI 框架构建、部署到任何界面。包含 Claude Code 集成示例与跨云 MCP 详解。
123 0
Salesforce Headless 360 入门指南
|
2月前
|
存储 人工智能 Apache
从向量存储到 Agentic 数据基础设施:Paimon × Milvus 如何构建 AI 原生多模态数据湖
本文整理自李钰在 Apache Flink Forward Asia 2026 的演讲,讨论 AI 与 Agent 进入生产环境后,数据湖与向量数据库“双系统”架构暴露出的结构性问题,以及 Apache Paimon 与 Milvus 围绕同一份湖数据协同的技术路径。
从向量存储到 Agentic 数据基础设施:Paimon × Milvus 如何构建 AI 原生多模态数据湖
|
2月前
|
数据采集 人工智能 搜索推荐
AI搜索引擎爬虫收录机制分析:品牌内容不可见的三个技术瓶颈
本文剖析品牌内容在AI搜索中“搜不到”的三大技术瓶颈:爬虫可访问性、内容可信度评估、问答匹配覆盖率,并结合Princeton大学GEO论文数据,提供可验证的逐层诊断方法与修复路径,助力开发者与运营者提升AI搜索可见性。
221 1
|
2月前
|
人工智能 Linux 网络性能优化
AgenticFS 重磅发布
AgenticFS是阿里云专为AI Agent设计的新型文件系统,支持百万级Workspace管理,提供容量、权限及性能隔离,解决传统NAS在文件数、目录配额和接入点规模上的瓶颈,具备弹性扩展、QoS保障与租户级故障域隔离能力。
282 3
|
2月前
|
人工智能 关系型数据库 分布式数据库
记忆张量MemOS + 阿里云PolarDB一站式记忆管理方案发布:给AI装上不断片的记忆
AI智能体需长期记忆支撑持续服务,但面临跨会话丢失、多模态数据(结构化/向量/图)分散管理等挑战。阿里云PolarDB-PG与MemOS协同构建云原生记忆系统:前者提供关系+向量+图一站式检索底座,后者作为记忆操作系统实现提取、调度与治理,分层解耦、弹性扩展,助力企业高效落地可规模化AI记忆能力。
|
2月前
|
存储 人工智能 JSON
大模型幻觉治理:从机理到生产级缓解方案
本文深入剖析大模型“幻觉”本质,指出其是架构性问题而非能力不足,并系统提出分层治理方案:从幻觉分类、根因分析(训练目标、知识存储、解码随机性),到评测方法、Prompt约束、受限解码、RAG增强、Guardrail兜底及训练优化,强调多层防御与人机协同。
354 2
|
2月前
|
数据采集 人工智能 数据管理
数据治理平台技术架构深度解析:基于DCMM 2.0的数据质量评估模型设计路径
本次选型揭示:数据质量管理非功能堆砌,而取决于标准关联、监测链路、血缘追溯与反馈闭环四大架构深度。DCMM管流程成熟度,GB/T 36344管六维指标(规范性、完整性、准确性、一致性、时效性、可访问性),平台须双轨对齐、闭环验证。
|
2月前
|
人工智能 自然语言处理 安全
龙虾AI企业数字员工平台推荐:2026年主流智能体深度评测与选型指南
本文系统评测国内主流“龙虾AI”企业数字员工平台(基于OpenClaw框架,支持AI直接操控电脑),从任务执行、部署灵活度、安全可控性等5维度评分,覆盖AionClaw、通智AI等7款产品,助力企业按场景精准选型。(239字)
|
2月前
|
人工智能 自然语言处理 语音技术
阿里云百炼Token Plan支持哪些模型?共11款AI模型,通义千问、DeepSeek、万相及GLM等模型云厂商
阿里云Token Plan提供个人版(39元/月)与团队版(150元起),支持通义千问、DeepSeek、Kimi、GLM等数十款文本、多模态、图像、视频及语音模型。含qwen3.8-max-preview预览模型1折优惠、qwen3.7系列夜间2折等限时权益,大幅降低AI调用成本。在阿里云百炼官网:https://t.aliyun.com/U/fPVHqY 免费领取千万Tokens
|
2月前
|
弹性计算 运维 安全
【新版】阿里云企业级云服务器 4核8G/4核16G/8核32G 配置价格及测评说明
在企业数字化转型、业务云端部署常态化的2026年,企业级云服务器的稳定性、算力性能、性价比、适配性直接决定线上业务的运行质量。对于中小微企业、初创团队、政企分支机构而言,4核8G、4核16G、8核32G是**企业商用最主流、适配场景最广、性价比最高**的三档ECS配置,覆盖企业官网、办公系统、业务后台、数据库部署、小程序服务、轻量化集群等绝大多数商用场景。
183 1