Smart Displays 和已发布应用
本页内容
Smart Display 是显示由您的人工智能代理托管的应用的屏幕。由于应用由代理运行,代理可以随着屏幕周围情况的变化而更改屏幕显示的内容:柜台前的午餐高峰、访客打开前门、酒店大堂逐渐热闹、繁忙的候诊室、会员前来参加到访挑战。用日常语言描述您想要的内容。代理会构建应用并保持其最新状态,您可以像其他内容一样将其放到屏幕上。


图 1:健身房训练区的 Smart Display。代理每隔几分钟重新统计签到次数,并向刚到达的会员显示其排名。其中的俱乐部和会员均为虚构。
一切仍由您掌控:每个应用都在您的 Library 中,您可以在其中预览应用、查看其使用位置,以及更改或移除应用。
智能显示屏
Smart Display 使用 Agent: Published App:由您的人工智能代理构建、在您设施的人工智能代理设备上实时运行的 Web 应用。屏幕显示的是实时应用,因此当代理更改其显示内容时,屏幕也会随之变化。无需任何人重新发布。
代理通过以下两种方式之一使应用保持最新:
- 按计划。自动化在重要时段内每隔几分钟运行一次。代理通过其 Performance Hub 连接读取所需信息(例如签到、门禁事件或摄像头计数),并更新应用。每次运行都会产生 AI 费用,因此只需按需检查。
- **在事件发生时。**您场所发生的事件(例如访客的通行证打开前门)会促使代理更新应用。屏幕会在事件发生后很快变化,而代理在两次事件之间不做任何工作。请参阅办公室大堂欢迎屏。
Smart Display 只能使用代理可以读取的内容。其 MCP 访问权限必须包含该设施以及应用所需的功能,例如用于门禁事件的 Door & Gate Access,或用于签到和摄像头计数的 CCTV。请参阅连接到 Performance Hub。
应用到达屏幕的两种方式
| Agent: Published App(Smart Display) | On-Device Web App | |
|---|---|---|
| 由谁构建 | 您的人工智能代理 | 您、开发人员或任何通过 MCP 连接的 AI 代理 |
| 运行位置 | 在您的人工智能代理设备上运行,并实时显示在屏幕上 | 在每块屏幕上运行(屏幕会下载它) |
| 持续调整 | 是:代理会随着您场所情况的变化而更改它 | 否:在发布新版本之前,它会播放相同的文件 |
| 您设施的数据 | 是,代理可以读取的任何数据 | 否:仅限公开数据,例如天气 |
| 互联网或代理中断时 | 跳过,直到代理恢复 | 继续播放 |
| 版本和回滚 | 由代理管理 | 是,在 Library 中 |
| 所需模块 | Display Screens、人工智能代理和 Custom Apps | Display Screens |
您的代理也可以为您构建 On-Device Web App,但发布后它就无法持续调整。在有人发布新版本之前,它会在每块屏幕上播放相同的文件,并且无法使用您设施的数据。只有 Agent: Published App 才会随着屏幕周围发生的情况不断变化。
如果屏幕应对您的场所做出反应(谁已到达、有多繁忙或刚刚发生了什么),请选择 Smart Display。如果内容保持不变或只需要公开数据,并且必须在离线时继续播放,请选择 On-Device Web App。
Smart Display 示例
以下每个示例都是真实的设置:屏幕对什么做出反应、显示什么、代理如何使其保持最新,以及您需要什么。其中的企业和人员均为虚构。
在会员到达时向其问候的到访挑战排行榜
联合办公空间、校园图书馆或健身房举办为期一个月的到访挑战。其代理为会员经过的屏幕托管一个排行榜,按本月到访次数对会员进行排名,并在参加挑战的会员靠近屏幕时向其表示欢迎。图中示例为健身房在训练区屏幕上举办十月到访挑战。
- **反应依据:**谁在屏幕附近。代理通过 Performance Hub 的人脸识别、最近的签到记录或两者兼用来获知这一信息,具体取决于您场所的设置方式。每位靠近屏幕的挑战会员都会获得一个 Just in 标签和一张显示其排名的卡片。图中示例的健身房使用过去 30 分钟内的签到记录。
- **显示内容:**按到访次数排名靠前的会员(仅显示名字和姓氏首字母)、挑战剩余天数以及奖品。
- **保持最新:**在开放时间内,代理每 5 分钟使用
insights_checkins重新统计本月的签到次数,检查谁在屏幕附近,并更新应用。 - **您需要:**带有 AI Insights & People 的 CCTV,且屏幕附近的摄像头已开启人脸识别;或来自会员管理系统的签到记录;或两者兼有;以及参加挑战的会员的选择加入名单。


图 2:向您的人工智能代理请求排行榜。它会构建应用,在聊天旁边打开应用,并每 5 分钟重新统计签到次数。该对话仅为示例。


图 3:竖屏上的同一排行榜
**隐私。**仅包含已选择加入的会员,最多显示名字和姓氏首字母,绝不显示会籍或健康详情。
随午餐高峰变化的快餐菜单板
一家快餐店请其代理为柜台上方制作菜单板。菜单板会在一天中切换菜单,并在柜台繁忙时将制作最快的菜品移到顶部。
- **反应依据:**一天中的时间,以及柜台的繁忙程度:柜台摄像头在本小时内迄今统计的人数,与正常小时相比。
- **显示内容:**上午 11 点之前显示早餐,下午 3 点之前显示午餐,之后显示下午菜单。繁忙时,会显示带有快速制作菜品的 Ready in under 3 minutes 横幅,并在菜单中为这些菜品添加 Quick 标签。
- **保持最新:**代理每 5 分钟在 AI Insights & People 中检查当天的摄像头计数,并更新应用。价格和制作时间来自您提供给代理的菜单文件。
- **您需要:**带有 AI Insights & People 的 CCTV,并有一台覆盖柜台的摄像头。


图 4:代理构建菜单板并在聊天旁边打开它。它仅使用匿名计数。该对话仅为示例。


图 5:午餐高峰期间柜台上方的效果
为每位访客显示的办公室大堂欢迎屏
一家办公室为每位访客提供在其来访期间有效的 Door & Gate Access 通行证。当访客的通行证打开前门时,大堂屏幕会以名字问候访客,并显示其接待人、会议室和路线指引,一分钟后恢复为平常的欢迎画面。
- **反应依据:**访客的通行证打开前门。
- 显示内容:“Hi Priya, great to see you”、接待人的姓名和团队、会议室和时间,以及分步路线指引。
- **保持最新:**当访客的通行证打开前门时,工作流会触发问候。代理将门禁事件中的人员与当天的访客名单进行匹配,该名单由前台维护并提供给代理,其中包含每位访客的接待人、会议室和路线指引。门禁事件不包含姓名、接待人或会议室,因此始终需要该名单。
- **您需要:**Door & Gate Access 以及当天的访客名单。


图 6:代理构建欢迎屏并在聊天旁边打开它。该对话仅为示例。


图 7:大堂竖屏上的效果
同样的设置也可以欢迎您自己的团队。例如,它可以根据同意参与的人员生日名单,在团队成员生日当天到达时祝其生日快乐。出生日期属于个人信息:仅包含已同意的人员,并且最多显示名字。
**考虑谁能看到屏幕。**大堂里的任何人都能看到欢迎信息。最多显示名字,绝不显示健康、会籍或人事等私人信息。
显示实时等候时间的候诊室看板
诊所或服务中心显示当前的等候时长,让等候的人员心中有数。
- **反应依据:**大约有多少人在等候(来自覆盖候诊区的摄像头的匿名计数),以及您场所记录的签到到达情况。
- **显示内容:**大致的等候时间和大约等候人数、开放时间,以及繁忙时的安抚信息。
- **保持最新:**代理每隔几分钟读取最新的计数和到达情况,并根据您提供的每次就诊典型时长计算等候时间。
- **您需要:**带有 AI Insights & People 的 CCTV,并有一台覆盖候诊区的摄像头。
繁忙时屏幕显示内容的示例:
约 25 分钟
约 7 人在等候
今天上午比平时更繁忙。感谢您的耐心等待:我们准备好后会立即叫您。
**绝不显示患者或客户信息。**看板仅显示总数,绝不显示姓名或就诊原因。
随一天时间变化的酒店大堂看板
酒店或场馆向宾客展示当前活动,内容随一天中的时间和大堂的繁忙程度而变化。
- **反应依据:**一天中的时间,以及大堂的繁忙程度(来自大堂摄像头的匿名计数)。
- **显示内容:**下午显示入住信息和 Wi-Fi 详情,晚上显示当晚活动和餐厅空位情况,早上显示早餐时间和退房提醒。大堂繁忙时,入住和 Wi-Fi 详情会排在最前面,以便刚到达的宾客快速找到。
- **保持最新:**代理每隔几分钟读取大堂计数并更新应用。活动和餐厅空位情况来自您授权代理访问的名单或系统。
- **您需要:**用于大堂计数的带有 AI Insights & People 的 CCTV。没有 CCTV 时,看板仍会随一天中的时间变化。
晚上 6 点时屏幕显示内容的示例:
今晚在 Demo Harbour Hotel
大堂酒廊爵士乐演出,晚上 7 点至 10 点
Harbour Grill:晚上 8:30 起有空位。请在前台预订。
明天早餐从早上 6:30 起在 Harbour Grill 供应。
根据受众变化的购物中心标牌
一家购物中心请其代理制作中庭标牌,根据标牌附近购物者的年龄和性别构成选择促销内容。
- **反应依据:**过去 5 分钟内标牌附近购物者的年龄和性别构成,以匿名汇总计数的形式提供:按年龄段(18-24、25-34、35-44、45-54 和 55+)和性别统计的总数。绝不识别或追踪任何个人。
- **显示内容:**面向家庭、学生或老年人的促销,或通用促销,以及时钟和今日活动,不显示任何有关附近人员的信息。
- **保持最新:**代理每 5 分钟从 AI Insights & People 中设施的计算机视觉数据读取人口统计信息,并在需要更换促销内容时刷新应用。
- **您需要:**设施中带有 AI Insights & People 的 CCTV。


图 8:代理构建应用并在聊天旁边打开它。它仅使用匿名计数,绝不涉及个人。该对话仅为示例。


图 9:横屏上的效果。它显示促销内容,绝不显示有关附近人员的任何信息。


图 10:竖屏上的同一应用
**隐私。**仅使用汇总计数,遵守适用于您的隐私法律,并告知购物者正在使用摄像头和受众测量。
紧急情况下的安全指引
任何场所都可以让屏幕在紧急情况下切换为安全指引,并在紧急情况结束后恢复正常。
- **反应依据:**您场所选择的任何触发条件,例如您场所启动的封锁或疏散,以及该事件的结束。
- **显示内容:**您为该事件准备的指引,在您选择的屏幕上替代所有其他内容。事件结束后,屏幕会恢复其平常的内容。
- **保持最新:**当您选择的触发条件发生时,您选择的屏幕会切换为您的指引,并在事件结束时切换回来。您的代理可以帮助您编写指引并完成设置。
- **您需要:**Display Screens,以及与您场所安全负责人商定的指引。
请将指引准备为图片或 On-Device Web App,而不是 Agent: Published App,以便在代理离线时仍能显示。请与您场所的安全负责人商定屏幕显示的内容以及由哪些屏幕显示,并与其一起进行测试。
**不要在公共屏幕上显示静默警报。**胁迫警报是静默的,因此不应驱动面向公众的屏幕。仅在私密的非公共区域(例如后勤办公室)的屏幕上,因胁迫警报而触发接管才有意义。
智能代理:Published Apps
Agent: Published App 是由您的人工智能代理构建、在您设施的人工智能代理设备上实时运行的 Web 应用。由于它在代理上运行,因此可以拥有自己的服务器端并自行更新。屏幕从代理实时显示该应用。
在对话中构建应用
向您的人工智能代理描述您想要的屏幕,包括其放置位置以及应对什么做出反应。代理会构建应用并在聊天旁边打开它,以便您进行检查。例如:
- “根据签到记录为我们的十月到访挑战制作一个排行榜,并在开放时间内每隔几分钟更新一次。”
- “为柜台制作一个菜单板,在上午 11 点从早餐切换为午餐,并在繁忙时推荐快速制作的菜品。”
- “为大堂制作一个欢迎屏,在每位访客的通行证打开前门时向其问候。”
健身房训练区的训练屏幕
一家健身房请其代理为训练区制作一个竖屏训练屏幕。屏幕上下显示两个训练站:滑雪机基准测试和仰卧起坐,每个训练站都有训练目标和一段循环播放的简短示范视频。两者之间是一个大号轮次计时器,中间显示目标强度。


图 11:向您的人工智能代理请求训练屏幕。它会构建应用并在聊天旁边打开它。该对话仅为示例。


图 12:健身房训练区竖屏上的效果
从人工智能代理发布应用
在 人工智能代理 → Published apps 中,选择 Publish to Performance Hub 并填写:
| 设置 | 作用 |
|---|---|
| Name | 最多 60 个字符 |
| Icon 和 Description | 应用的列出方式。描述最多 300 个字符。 |
| Support email | 有关该应用的联系人 |
| Health checks & auto-repair | 默认开启。如果应用停止工作,代理会重启或修复应用。 |
| Allow on display screens | 默认关闭。开启后,应用即可在屏幕上显示。该设置会发出警告:“Anyone near those screens can see it, so only allow apps without private information.” |
| Audience | 谁可以使用该应用:Only me (testing)、Specific people、This facility(默认)、Selected facilities、Whole brand 或 Entire organisation。其范围不能超过您自己的访问权限,品牌或组织受众需要组织级访问权限。 |
在同一选项卡中,您可以执行 Pause 和 Resume、Edit、Unpublish、Transfer ownership 以及 Show on screens。
在屏幕上显示
- 在 Display Screens 中,打开 Library 并点击 Add content → Agent: Published App。
- 选择应用。每个符合条件的应用都会附带一张其画面列出;如果代理离线,还会显示 离线 标记。
- 为其设置 Name,以及(可选)Tags 和 Show for (seconds),然后点击 Add to library。
- 将其发布到屏幕,或添加到播放列表中。


图 13:将 Agent: Published App 添加到 Library。选择应用,为其命名,然后点击 Add to library。不属于本示例的应用画面已模糊处理。


图 14:Library 中的 Agent: Published App。预览是 Performance Hub 拍摄的实时应用画面。Where it is used 列出了显示该应用的屏幕和计划。其中的俱乐部和会员均为虚构。
Preview landscape、Preview portrait 和播放列表预览等预览无法显示实时应用,因此会显示占位文本“Shown live on the screen”。
要求
- 人工智能代理 模块,用于发布应用。
- 设施中的 Custom Apps(AI Agent: Published Apps)模块,用于在屏幕上显示应用。
- 应用必须处于活动状态,已开启 Allow on display screens,且其受众包含该设施。
屏幕何时会跳过代理应用
在以下情况下,屏幕会跳到下一个项目:代理应用
- 已暂停或已取消发布,
- 不允许在显示屏上显示,
- 其受众不包含该设施,
- 位于没有 Custom Apps 模块的设施,或
- 因代理离线而无法访问。
如果应用已永久取消发布,请将其从您的播放列表和计划中移除。
设备端 Web 应用
On-Device Web App 是由 HTML、CSS 和 JavaScript 组成的静态包。屏幕会下载它并从自身存储中播放,因此即使互联网中断也能继续播放。它适用于无需对您的场所做出反应的内容,例如:
- **任何设有前台的企业:**带有您的徽标、日期和时间以及新闻滚动条的前台欢迎标牌。办公室、诊所、健身房、酒店、学校和展厅都可以使用。请参阅示例:前台欢迎标牌。
- **餐饮住宿:**在设定时间从早餐切换到午餐再到晚餐的菜单板。
- **零售:**轮播本周特价商品的橱窗促销。
- **教育:**显示今日活动和提醒的校园公告板。


图 15:横屏上的 Reception Welcome Sign,这是一个 On-Device Web App。时钟、日期和问候语使用设施的时区。Preview 标记仅出现在预览中,不会出现在实际屏幕上。Acme Demo Co. 为虚构公司,此截图中的新闻标题仅为示例。


图 16:竖屏上的同一应用
示例:前台欢迎标牌
Reception Welcome Sign 用您的徽标、日期和时间以及新闻滚动条在前台迎接来客。它适用于任何设有前台或入口的企业。
- **从屏幕本地播放:**徽标、背景、字体、时钟、日期和问候语都是应用的一部分,因此无需互联网即可正常工作。时钟遵循设施的时区。
- **只有一部分使用互联网:**新闻滚动条。默认情况下,它显示来自 Wikipedia“In the news”的新闻标题,并在屏幕上注明来源。它也可以改为读取任何允许跨站请求的 RSS 源,例如通过您自己的中继获取的新闻源。
- **处理离线情况:**当屏幕离线或新闻标题无法加载时,滚动条会隐藏,并在屏幕恢复在线后重新出现。其他所有内容都从屏幕自身的副本播放。
- 个性化定制:从下方的开发人员参考中下载该标牌,替换
logo.svg和background.jpg,并在config.js中更改欢迎文字和新闻设置,或关闭滚动条。然后上传:Library → Add content → On-Device Web App → Choose ZIP → Publish app。


图 17:当新闻标题无法加载或屏幕离线时,标牌会隐藏滚动条,并继续显示其他所有内容。新闻标题重新加载后,滚动条会恢复显示。
开发人员参考:标牌的构建方式
下载 Reception Welcome Sign(ZIP,134 KB)
| 文件 | 作用 |
|---|---|
index.html | 页面。加载 Display App SDK、config.js 和 app.js。 |
config.js | 欢迎文字、问候语、备用时区和新闻设置 |
app.js | 采用设施时区的时钟、日期和问候语,以及新闻滚动条 |
style.css | 横屏和竖屏的布局 |
logo.svg、background.jpg、source-sans-3.woff2 | 存储在应用中的徽标、背景和字体 |
README.txt、OFL.txt | 如何个性化定制标牌,以及字体的许可证 |
应用从 PHDisplay.onInit(ctx) 读取设施的时区和区域设置。如果 SDK 无法加载(例如屏幕在离线状态下启动),它会使用 config.js 中的 timeZone 或屏幕自身的时区。
滚动条是唯一获取实时数据的部分。可选的 Display App SDK 从 Performance Hub 应用主机加载。屏幕离线时,滚动条不会发出请求并保持隐藏,浏览器的 online 事件会重新加载新闻标题:
function loadNews() {
clearTimeout(nextTimer);
if (navigator.onLine === false) {
hideTicker();
return; // the 'online' event loads it again
}
if (loading) return;
loading = true;
var load = news.source === 'rss' ? rssHeadlines : wikipediaHeadlines;
load()
.then(function (headlines) {
failures = 0;
showTicker(headlines.slice(0, news.maxHeadlines || 8));
schedule(news.refreshMinutes || 15);
})
.catch(function () {
hideTicker();
// ... schedules the next try
})
.then(function () { loading = false; });
}
window.addEventListener('offline', function () { clearTimeout(nextTimer); hideTicker(); });
window.addEventListener('online', function () { failures = 0; loadNews(); });
要使用其他新闻来源,请在 config.js 中将 source: 'rss' 和 rssUrl 设为允许跨站请求的源(它会发送 Access-Control-Allow-Origin 标头),例如通过您自己的中继获取的新闻源。请确认该源的条款允许在您的屏幕上显示其内容。要关闭滚动条,请在 news 下设置 enabled: false。
添加方式有两种:
- 让 AI 代理构建并发布。
- **自行添加:**Library → Add content → On-Device Web App,然后上传 ZIP、文件夹或文件。请参阅添加内容。


图 18:向您的人工智能代理请求一个屏幕。它会构建应用,在聊天旁边打开应用以便您检查,并将其作为 On-Device Web App 添加到您的 Display Screens Library,随时可以放到屏幕上。该对话仅为示例。
要发布 On-Device Web App,代理会:
- 阅读 Display Screens 应用指南,使应用适合屏幕并遵守以下规则。
- 将应用发布到您的 Library。在同一步骤中,它还可以将应用发布到屏幕或分组、安排播放时间或接管屏幕。
- 通过渲染后应用的截图检查其工作成果。
- 根据您的要求回滚到较早的版本。
任何通过 MCP 连接的 AI 代理(包括您的人工智能代理),只要其访问权限包含 Display Screens 功能,都可以执行此操作。请参阅 Display Screens MCP 工具和创建 MCP 密钥。在同时对多块屏幕执行操作之前,您的代理会请您确认。


图 19:按 On-Device Web Apps 筛选 Library,即可查看设施中的所有应用。不属于本示例的应用缩略图已模糊处理。
放到屏幕上
要自行将应用放到屏幕上,请在 Library 中打开应用并点击 发布。在 Show on screens 中,选择设施中的所有屏幕或单独的屏幕,然后选择 When:Always (default)、Scheduled 或 Take over now。请参阅发布内容。


图 20:在 Reception Lobby 屏幕上显示 Reception Welcome Sign
版本
每次发布都会创建一个永不更改的新版本。在 Library 中打开应用即可查看其 Versions:当前版本标记为 Live,在任何较早版本上点击 Make live 即可回滚到该版本。在 Publish a new version 下,拖入 ZIP、文件夹或文件即可自行上传新版本。
发布新版本后,Performance Hub 会显示“New version published. Screens update within a few seconds.”。点击 Make live 后,它会确认当前的实时版本,例如“Version 4 is now live”。更改会到达显示该应用的每块屏幕。


图 21:Library 中的 Reception Welcome Board:其预览、Preview landscape 和 Preview portrait,以及四个版本,其中 v4 为实时版本,较早版本上有 Make live
在将应用发布到屏幕之前,使用 Preview landscape 和 Preview portrait 以屏幕尺寸打开应用,检查其是否适合屏幕。
运行方式
- **离线:**屏幕会保存应用的副本,因此无需互联网即可继续播放。屏幕离线时,应用从互联网加载的任何内容都将不可用。
- **实时数据:**仅来自允许跨源请求的公开 HTTPS API。
- **隔离:**应用在沙盒中运行,与 Performance Hub 分离,无法访问您的 Performance Hub 会话。
限制
| 限制 | 值 |
|---|---|
| 总大小 | 10 MB |
| 文件数量 | 200 |
| 单个文件大小 | 5 MB |
| 文件路径长度 | 200 个字符 |
| 文件类型 | html, htm, css, js, mjs, json, svg, png, jpg, jpeg, webp, gif, woff, woff2, txt, map |
| 在播放列表中的屏幕显示时长 | 5 到 3,600 秒 |
设计指南
- **无需滚动即可占满屏幕:**横屏为 1920 × 1080,竖屏为 1080 × 1920。
- **大号文字:**正文至少 32 px,标题至少 64 px。
- 高对比度,确保从房间另一端也能看清屏幕。
- **无登录、表单或悬停效果。**没有人会与屏幕交互。
- 处理器负载低,确保在播放器上流畅运行。
- 处理离线情况,例如无法访问其使用的公开 API 时。
- 使用设施的时区显示时钟和时间。
这些指南同样适用于 Smart Displays。
开发人员参考:Display App SDK
应用可以选择使用 Display App SDK 来了解其所运行的屏幕并报告其状态。
| 调用 | 提供的内容 |
|---|---|
PHDisplay.onInit(ctx) | 在应用启动时运行。ctx 包括 screen(id、name、orientation、width、height)、facility(id、name、timezone)、locale、brand(name、logoUrl、primaryColor)、item(id、durationSec)以及是否为 preview |
onVisible、onHidden | 在应用于屏幕上显示或隐藏时运行 |
ready()、done()、error() | 向屏幕报告应用的状态 |
durationSec 是项目的屏幕显示时长,范围为 5 到 3,600 秒。
相关页面
- 添加内容:自行上传 On-Device Web App
- 发布内容:将应用放到屏幕上
- 人工智能代理功能:您的代理还能做什么
- 人工智能代理自动化:按计划使 Smart Display 保持最新
- Door & Gate Access 和 AI Insights & People:Smart Display 可以做出反应的到达情况、门禁事件和摄像头计数
- 故障排除:应用未在屏幕上显示