用 AI 完成第一个可运行应用
这一课从一个真正的空白项目开始。你负责创建项目壳、确认 AI 的修改并启动验收;AI 负责创建第一张操作员页面和多语言文案。
完成后,你会得到一个名为“包装工作站”的应用。它能在运行页显示工作站名称、模拟模式、当前状态和包装计数,但还不会控制任何设备。
本节目标
- 在应用中心创建空白项目
- 用 AI 创建并校验第一张
.qxpage页面 - 看懂 AI 修改了哪些资源
- 人工把页面设为首页
- 启动应用并从运行页验收
只需要先懂三个概念
| 概念 | 现在只需知道 |
|---|---|
| App | 一个独立的 Theseus 工程,包含页面、对象、Graph 和配置。 |
| Page | 操作员在运行终端看到的 HMI 画面,文件扩展名是 .qxpage。 |
| Widget | 页面上的标题、状态文字、数字和按钮等可视元素。 |
AI Command Center 只能修改当前已打开的 App,不能替你在应用中心创建、导入或注册项目。因此第一步必须由你完成。
开始前
- 使用 Theseus 桌面端;应用创建和 AI 工程工具不在 runtime-only 浏览器中提供。
- AI 输入区已经能选择模型。如果没有可用模型,先完成 AI 提供方设置。
- 准备并选择一个内容为空的项目目录作为工作区。
第 1 步:创建“包装工作站”
- 在应用中心点击 创建。
- 选择 空白项目。
- App 名称填写
包装工作站。 - 在工作区路径中选择刚才准备的空项目目录。不要留空,也不要选择已有文件的目录。
- 点击 保存。创建成功后会自动进入编辑器。
空白项目只创建基础配置,不自带页面。左侧 资源(Resources)→ 页面(Pages) 为空是正常现象。
第 2 步:把目标交给 AI
点击标题栏的 AI 图标,或按 Cmd+I(macOS)/ Ctrl+I(Windows、Linux),打开 AI Command Center。新建对话,在输入区输入 @ 并选择 qxpage skill,然后粘贴下面的指令:
目标:为当前“包装工作站”App 创建第一张可运行的操作员首页。
页面内容:
- 页面标题“包装工作站”
- 明确显示“模拟模式”
- 状态显示“未启动”
- 包装计数显示 0
- 使用清晰、克制、便于现场扫读的布局
范围:
- 新增 pages/packaging-station.qxpage
- 为页面可见文案补充当前 app 的 i18n.json 中文和英文翻译
- 不修改 manifest.json、objects.json、variables.json、Graph、自定义 C#、PLC、Pulsar 或 Safety
要求:
- 使用当前编辑器支持的原生控件,并保持结构可在属性面板中检查
- 不生成物理设备动作,也不放置看似能启动真实设备的按钮
- 完成后校验页面和 i18n.json
- 最后列出修改的文件、页面中的主要 Widget,以及校验结果
这条指令把目标、范围、禁止项和验收结果都说清楚了。以后交给 AI 的工程任务也尽量保持这个结构。
本节的主要工程产物
发送任务前,先打开 Git 面板或任务详情,记下工作区已经存在的改动。任务详情显示的是整个当前工作区,不是本轮 AI 任务的独占清单。
这一步的主要工程产物是:
pages/packaging-station.qxpagei18n.json
AI 可能读取其他配置来理解当前 App;会话结束后,AGENTS.md 的自动管理区也可能记录稳定的设计信息。完成后打开全屏 AI Command Center 右上角的任务详情,将当前文件清单与刚才记录的基线比较。
如果出现 objects.json、.qxgraph、.cs、pulsar.json 或 PLC 文件,先不要运行。先让 AI 解释每项改动的来源;只有确认某项是本轮任务产生且超出范围时,才恢复那一项。不要删除或覆盖任务开始前已经存在、来源不明或属于他人的改动。
第 3 步:在编辑器中检查
AI 保存文件后,资源视图会自动刷新。按下面顺序检查:
- 左侧 资源 → 页面 出现
packaging-station。 - 双击页面,确认画布上有标题、模拟模式、状态和计数。
- 点击画布中的 Widget,右侧属性面板应显示可理解的 ID 和内容字段。
- 打开底部问题(Problems),确认该页面和
i18n.json没有错误。 - 在 AI 最终回复中核对文件清单与编辑器看到的内容一致。
如果你在 AI 修改前已经打开并手工改过同一个页面,编辑器会保留未保存草稿并提示磁盘冲突。先决定保留哪一份,不要直接覆盖。
人工微调:把页面设为首页
AI 工程工具不负责 App 的创建和注册元数据。由你完成这个小但关键的决定:
- 在资源 → 页面中右键
packaging-station。 - 选择 设为首页。
- 确认页面名称旁出现灰色的“首页”标记。
首页决定应用中心的 打开运行页 和 Player 最终打开哪一页。Theseus 不会在未配置首页时随便选择第一页。
第 4 步:启动并验收
- 确认页面已保存;Tab 标题不再显示未保存圆点。
- 在标题栏运行控制组点击 开始(Start 图标)。
- 等待状态变为 运行中。
- 打开左上角 App 菜单,选择 返回应用中心。
- 在“包装工作站”的应用卡片上点击 打开运行页。
验收结果应同时满足:
- 运行页直接打开
packaging-station首页 - 标题、模拟模式、未启动状态和计数 0 都能看到
- 页面没有真实设备控制入口
- 刷新运行页后仍能正常加载
安全边界
这一课只做静态模拟画面。不要把“未启动”改成真实设备状态,也不要让 AI 猜测 PLC 地址、轴、IO、相机或联锁含义。物理设备和业务语义必须由工程人员明确提供后,才能进入对象和 Graph 设计。
页面看起来正确不代表设备逻辑正确。运行前仍要人工确认 AI 没有创建隐藏动作或越界文件。
出问题时怎么恢复
| 症状 | 处理 |
|---|---|
| 没有可用模型 | 打开 设置(Settings) 中的 AI 提供方设置,完成认证或模型刷新。 |
| 资源中没出现新页面 | 在 文件(Files) 视图确认文件是否存在;若当前页面有未保存冲突,先处理冲突,再使用当前 Tab 的刷新操作。 |
| 问题中出现页面错误 | 在 AI 输入区 @ 引用 pages/packaging-station.qxpage,要求“只修复当前诊断,不增加功能”,然后再次检查问题。 |
| 打开运行页提示未配置首页 | 回到资源,右键目标页面并选择设为首页。 |
| AI 似乎修改了对象、Graph 或脚本 | 不要启动。先和任务开始前的基线比较并让 AI 解释;只恢复确认由本轮任务产生的越界改动,保留原有和来源不明的改动。 |
下一步
下一课会在这张页面上加入页面变量、按钮和 Page Method,并让你亲手完成一次小修改:页面变量、按钮与 Page Method。