先看成品:什么叫「会执行」
一次点击,平台做哪五件事;我们要做的座位申请长什么样;先去 Demo Company 看成品,再把命令行准备好。

本课目标
读完这一课,你将能够
- 说出一次 Action 执行时,平台依次做的五件事
- 认出本课程里座位申请的对象、Action、应用和自动化
- 装好命令行、登录,并确认自己是这家公司的 developer
一次点击,平台做五件事
在 Semantic 里,人和智能体改数据走的是一条路:执行 Action(开发者另有旧数据层的直接写,是管理用的)。所谓「会执行」,就是你点下按钮的那一刻,平台替你把下面五件事依次做完,而且做在一起。
- 01校验参数类型、必填、取值范围,被引用的对象要存在
- 02核对提交条件逐条核对,不满足就返回你事先写好的那句话
- 03调外部系统可选:writeback webhook,失败则整个不生效
- 04一个事务里改新建、修改、删除对象和关系,要么全成,要么都不改
- 05留下记录Action Log 与编辑历史,共用一个操作编号
「只校验」跑到第二步就停,什么都不写;第三步是可选的,第 7 课再讲。
同一个 Action,五个入口
命令行
aidc semantic apply:人在终端里用,智能体也用它。
SDK
applyAction:脚本和应用里的代码调用。
界面按钮
应用把 Action 接给不写代码的人。
智能体
通过应用的 API 和 Skills 执行,写入先预演。
自动化
数据一变,自动化替你执行。
五个入口走的是同一份校验、同一份记录。规则写在 Action 里,写一次就够,不用在每个入口里各写一遍判断。
我们要做的:座位申请
客户公司想把座位数提到新的数目:先提交申请,有权限的人批准或拒绝,批准的同时公司的座位数一起改;座位数在 50 以内的申请,交给自动化去批。一共六步,每一课多一样能跑的东西:
- 第 2 课 · 打地基
客户公司和座位申请两个对象类型,一条链接。
- 第 3 课 · 第一个 Action
登记客户:先校验,再执行,到 Action Log 里找到这一次。
- 第 4 课 · 守规矩
提交、批准、拒绝:提交条件把关,批准时一个事务改两个对象。
- 第 5 课 · 从代码里调
命令行、SDK、REST,以及出错时的样子。
- 第 6 课 · 做成应用
界面给人点,Skills 给智能体用。
- 第 7 课 · 自己动
自动化替你批小申请;要改外部系统,用 writeback webhook。
先看成品,再动手
成品放在 Demo Company 里(数据全部虚构)。打开它要先登录 AIDC 账号;不属于 Demo Company 的账号是只读访客:能看申请、公司和 Action Log,校验和执行需要这家公司的成员身份。所以动手的部分,在你自己的公司里做。
然后把命令行准备好。下面的公司代码用 cell-acme 代替,换成你自己的(aidc whoami 里看得到)。
curl -fsSL https://www.ai-dc.ai/developer/cli/install.sh | sh
aidc login # 账号和密码只在你自己的终端里输入
aidc whoami --json
{
"account": { "username": "zhang.san", "displayName": "张三" },
"company": { "cellId": "cell-acme", "name": "示例公司" },
"role": "developer",
"namespaces": ["cell-acme"]
}
要点
- 「会执行」= 校验参数、核对提交条件、(调外部系统)、在一个事务里改、留下记录,五件事一次做完。
- 只校验跑到提交条件为止,什么都不写。
- 命令行、SDK、界面、智能体和自动化调的是同一个 Action,规则只写一次。
- 动手需要这家公司的 developer 角色;外来账号在 Demo Company 里只读。
练一练
装好、登录、看一眼成品
十分钟内做完;后面每一课都接着这里。
装命令行,aidc login,再跑 aidc whoami --json:你的公司代码是什么,role 是不是 developer?
跑 aidc semantic ontology --json:新公司的对象类型和 Action 都是空的,后面几课一样一样往里加。
打开 Demo 里的座位申请台,在申请列表里找一张自动批准的:是谁批的?它在 Action Log 里对应的那条记录,改了哪两个对象?
小测
选一个答案,马上看解析。
Q1只校验(--validate-only)会做到哪一步?
只校验把前两步都做了:参数、提交条件,逐项给出结果;一个字也不写,所以也不会有 Action Log。
Q2为什么规则要写在 Action 的定义里,而不是写在应用的界面代码里?
入口不止一个。判断写在界面里,别的入口就绕过去了;写在 Action 里,所有入口走的是同一份。
Q3让智能体替你用命令行时,AIDC 账号的密码该怎么处理?
密码只由人本人输入,智能体不索要、不转述、不保存。身边没有终端时,用 aidc login --browser 把链接交给人批准;无人值守用开发者 Key。