语义层与工作流
ERP 永远只读;写入走受控、留痕的 Action;各部门的应用组合成流程。

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