语义层与工作流
ERP 永远只读;数据源写在对象类型的定义里;写入走受控、留痕的 Action;工作流是 Semantic 的自动化。

本课目标
读完这一课,你将能够
- 说出语义层的三个概念:对象类型、链接、Action
- 解释数据为什么只从数据源单向流进来、数据源为什么写在对象类型的定义里,改数据为什么只走 Action
- 描述工作流(Semantic 的自动化)如何把各部门已发布应用的能力组合成一条流程
ERP 永远只读
应用和智能体不直连 ERP。数据源旁边装一个发布端,只读地把变化推上来,成为一条数据流。这条数据流接到哪个对象类型、哪一列对哪个属性,写在对象类型的定义里(datasources)。应用和智能体读的是语义层,改的也是语义层。
- 01数据源ERP、MES 等,只被读取
- 02发布端装在数据源旁边,有变化才推送
- 03数据流按序落账;接到哪个对象类型,写在定义里
- 04语义层应用与智能体在这里读写
发布端手里只有一把只能往一条数据流发布的 Key,永远不会写回数据源。改数据源就是改本体:开发者直接定义;智能体在分支上改、开提案,由人审核合并。人在语义层做的修改单独存放,数据源下一次同步只更新自己那一层,不会冲掉人改过的值。
aidc semantic datasource set production.work_order --stream wo-progress --map order_no=order_no --map line_code=line
aidc semantic datasource list
对象、链接、Action
对象类型
一类业务对象,例如工单:主键加属性。属性带显示名、单位和同义词,要么从数据源同步而来,要么只在语义层维护,例如备注、负责人。
链接
对象之间的关系,例如工单指向它所在的产线。最常见的写法,是一个属性引用另一类对象的主键。
Action
受控的写操作:参数怎么校验、改哪些属性、谁能做,以及记进日志的一句话。
改数据只走 Action:校验、权限与留痕都由平台来做,应用和智能体都一样。旧的数据 SDK 可以直接改对象,这条路只留给开发者做管理,新的 SDK 和文档里不再有它。改动都落在语义层。
语义层还会生成一份给大模型读的说明书:有哪些对象、属性叫什么、能做哪些 Action。智能体先读它再干活。定义本身就是 JSON,用命令行提交,先加 --dry-run 检查引用是否闭合。
aidc semantic describe --markdown
aidc semantic define ontology/ --dry-run
aidc semantic act production.flag_issue --object "WO-1001|L05" --param issue="material late"
Action:受控、留痕的写
- 参数先校验:不合法直接拒绝,并写明是哪一项。
- 谁能做,看两处:应用清单登记了这个 Action,访客的角色也在 Action 允许的角色里。只读访客永远不能写。
- 不怕同时改:带上对象当前的修订号,别人刚改过就会冲突,刷新后再改。
- 可以预演:只校验并返回计划,不真的写入。
- 每次执行都进日志:参数、改前改后和一句话摘要,事后查得到。
工作流:Semantic 的自动化
工作流就是 Semantic 的自动化(Automate):一组条件加一组效果。条件是对象新建或修改、到了时间,或者有人手动运行;效果是执行 Action、做模型分析、发通知。触发读的是 Semantic 的变化记录,不轮询、不写 cron。
每个部门的应用发布之后,就成了公司能力目录里的一组能力:它愿意对外提供的查询、读取、聚合或 Action。能力可以在清单的 exports 里写明;没写的,也会按登记的类型和 Action 自动提取。工作流把这些能力、计算和 AI 分析连成一条流程。
以报价为例:营业询价、设计出材料清单、采购给行情与物流、制造给工艺、财务核价,然后 AI 分析,最后生成报价草稿。每一步用了谁的能力、产出了什么,画布上都看得见。
- 正式运行:Action 真的写进语义层。
- 预演:读取、计算、AI 分析都真的跑,Action 只返回将要写入的计划。
- 数据一变自动运行:语义层里某类对象新建或修改时触发,发布到正式通道后生效。
aidc semantic automate capabilities
aidc app deploy quote-workflow --dry-run
aidc semantic automate run quote-workflow --param rfq_no=RFQ-001 --preview
要点
- ERP 永远只读:发布端只读地推送变化,数据源写在对象类型的定义里,应用与智能体只读写语义层。
- 语义层有三个概念:对象类型、链接、Action。
- 改数据只走 Action,校验、权限、留痕由平台做;人改过的值不会被同步冲掉。
- 工作流是 Semantic 的自动化:把已发布应用的能力、计算与 AI 分析连成流程,可以正式运行、预演,或在数据一变时自动运行。
练一练
从一张单据到一条流程
用你熟悉的业务,把这节课的概念落一遍。
运行 aidc semantic describe --markdown,找一个对象类型,记下它的属性、同义词和可以执行的 Action;再用 aidc semantic datasource list 看它的数据来自哪条数据流。
为你部门常做的一次修改(例如登记异常、指定负责人)写出一个 Action:要哪些参数、改哪些属性、哪些角色能做。
选一件跨部门的事,例如报价或对账,列出每一步由哪个部门的应用提供能力、哪一步需要 AI 分析。再打开样板应用文档里的报价工作流演示,预演一次。
小测
选一个答案,马上看解析。
Q1应用里的一位成员要把一张工单标成「异常」,正确的做法是?
ERP 永远只读,Nexus 应用也不自己存数据;成员改数据只走 Action,由平台校验、授权、留痕。
Q2智能体想把一条新的数据流接到「工单」对象类型上,正确的做法是?
数据源是对象类型定义的一部分,改数据源就是改本体:智能体在分支上改、开提案,人审核合并;合并后平台自己同步,不用写定时任务,ERP 也永远只读。
Q3工作流里的一步用了采购部应用的能力,它以什么身份执行?
能力以「提供方应用 × 成员角色」执行:工作流不会越过提供方的权限,成员触发的运行也不会变成开发者权限。