先看成品:什么叫「会执行」

第 1 课 · 共 7 课 约 8 分钟

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

本课目标

读完这一课,你将能够

  • 说出一次 Action 执行时,平台依次做的五件事
  • 认出本课程里座位申请的对象、Action、应用和自动化
  • 装好命令行、登录,并确认自己是这家公司的 developer

一次点击,平台做五件事

在 Semantic 里,人和智能体改数据走的是一条路:执行 Action(开发者另有旧数据层的直接写,是管理用的)。所谓「会执行」,就是你点下按钮的那一刻,平台替你把下面五件事依次做完,而且做在一起。

  1. 01校验参数类型、必填、取值范围,被引用的对象要存在
  2. 02核对提交条件逐条核对,不满足就返回你事先写好的那句话
  3. 03调外部系统可选:writeback webhook,失败则整个不生效
  4. 04一个事务里改新建、修改、删除对象和关系,要么全成,要么都不改
  5. 05留下记录Action Log 与编辑历史,共用一个操作编号

「只校验」跑到第二步就停,什么都不写;第三步是可选的,第 7 课再讲。

同一个 Action,五个入口

CLI

命令行

aidc semantic apply:人在终端里用,智能体也用它。

SDK

SDK

applyAction:脚本和应用里的代码调用。

APP

界面按钮

应用把 Action 接给不写代码的人。

AGENT

智能体

通过应用的 API 和 Skills 执行,写入先预演。

AUTO

自动化

数据一变,自动化替你执行。

五个入口走的是同一份校验、同一份记录。规则写在 Action 里,写一次就够,不用在每个入口里各写一遍判断。

我们要做的:座位申请

客户公司想把座位数提到新的数目:先提交申请,有权限的人批准或拒绝,批准的同时公司的座位数一起改;座位数在 50 以内的申请,交给自动化去批。一共六步,每一课多一样能跑的东西:

  1. 第 2 课 · 打地基

    客户公司和座位申请两个对象类型,一条链接。

  2. 第 3 课 · 第一个 Action

    登记客户:先校验,再执行,到 Action Log 里找到这一次。

  3. 第 4 课 · 守规矩

    提交、批准、拒绝:提交条件把关,批准时一个事务改两个对象。

  4. 第 5 课 · 从代码里调

    命令行、SDK、REST,以及出错时的样子。

  5. 第 6 课 · 做成应用

    界面给人点,Skills 给智能体用。

  6. 第 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?

小测

选一个答案,马上看解析。

Q1只校验(--validate-only)会做到哪一步?

Q2为什么规则要写在 Action 的定义里,而不是写在应用的界面代码里?

Q3让智能体替你用命令行时,AIDC 账号的密码该怎么处理?

延伸阅读