更新记录
1.54.0 — 2026-10-08
加入我们:按任务加入:AIDC 不按岗位招人,只放任务。官网 /careers 写清每个开放任务的交付物、里程碑、KPI、周期与报酬;在 Ask Adis 里上传一份文件(简历、作品集、项目报告都可以,不必照模板),Adis 给出你和每个任务的匹配度、依据与缺口,陪你把任务想清楚,再起草申请邮件;你改好点「发送」,邮件发给 AIDC 官方。
新增
- API:
GET /api/v1/public/careers/tasks(开放任务、五种做事的方式、报酬规则与申请步骤,给智能体读);POST /api/v1/public/careers/applications(上传一份文件:抽文字、匹配四个任务;同一个文件再传返回已有结果;文件解开后太大回 413file_too_large,details.reason是expanded);POST /api/v1/public/careers/applications/{id}/draft(起草申请邮件,没说过的项写成【待补充】;每段对话每天 15 次);POST /api/v1/public/careers/applications/{id}/send(发送:dry-run;同一份申请只发一次;【待补充】没补完不发;同一份申请同时只有一个请求在发,另一个回 409idempotency_conflict)。 - 页面:
/careers与四个任务页/careers/tasks/<id>;Ask Adis 里的上传卡、匹配卡、申请邮件卡;上传过文件后,任务页显示你的匹配度。 - OpenAPI:文件上传登记为
multipart/form-data(文件是format: binary);返回文件的接口,成功响应登记为文件字节。
变更
- 旧的岗位页(FDE、全栈工程师、研究员)下线,跳到对应的任务页。
- Ask Adis 的一轮对话可以带
application(访客正在谈的那份申请);申请邮件卡显示的就是那一份。
1.53.0 — 2026-10-07
Space 用 Semantic 的界面;存储算上 Space:Space 不再是单独的一套外壳,在 Semantic 的侧栏里(「我 › Space」),页头、标签、表格、按钮、菜单、对话框都和 Semantic 的其他页一样。「我的」与「组织用量」的存储 = 我的文件 + Space(回收站里的单列:照样占存储,清空才释放);数字员工的存储 = 它名下的 Space。
新增
- API:
POST /api/v1/space/trash/empty——清空回收站:永久删除我回收站里的每一项(与逐项永久删除同一套判定与留痕,Project 连里面的项)。dryRun(或请求头x-aidc-dry-run: true)回 202,只算会删多少项、多少字节。重复调用安全。 - SDK:
semantic.space.emptyTrash({ dryRun })。 - CLI:
aidc space empty-trash [--dry-run];aidc me org --sort storage(按存储排)。 - 「我的」:存储卡分四行(我的文件、其中分身的文件夹、Space、回收站)与「最大的 5 样」(文件名只给本人看)。
- 「组织用量」:存储列算上 Space,悬停看分项(我的文件 · Space · 回收站),可以按存储排序。
- Space 首页:类型分段(All、Pages、Sites、Images、Files、Projects)与标签(Suggested、Favorites、Your files、Shared with you)在同一页;Project 与回收站有面包屑;回收站页可以一键清空。
变更
GET /api/v1/auth/workbench:storage多space(不在回收站里的页、文件、站点的字节与项数;回收站的字节与项数)、totalBytes(合计)、largest(最大的几样);aidc.storageGb= 合计。GET /api/v1/resourceManagement/usage:每行的storageBytes= 我的文件 + Space(含回收站),多一个storage分项(filesBytes、spaceBytes、trashBytes、spaceItems);数字员工的行也有存储;配额池的 GB 算上 Space。aidc me的存储一行改成合计,下面分我的文件、Space 与回收站。
1.52.2 — 2026-10-07
工作流通知:AIDC 自己组织(cell-aidc)的工作流可以发给客户组织的成员:notify 步骤的收件人,除了 AIDC 自己的账号和平台员工,还可以是持任何一家组织有效 License 的人。
变更
cell-aidc的工作流notify步骤:收件人可以是客户组织的成员(持有效 License、账号正常、邮箱已验证);收回的、没兑换的、组织套餐已过期的 License 不算。收件人照旧写死在清单里;正文由写清单的人负责,只放可以给收件人看的内容。- 不变:客户组织的工作流只发本组织的人,客户组织之间不互通;Action 通知、Automate、Data Health 的邮件照旧只发本组织的人。
1.52.1 — 2026-10-07
Loop 报告的「全屏打开」就是预览的那份报告:全屏链接(/semantic/<公司>/objects/loopReport/<slug>?embedded=true)打开的就是 Object View 里预览的这份报告,铺满整页,电视大屏直接用。
变更
- 撤销 1.41.0 的跳转:报告被已发布的应用替代(应用的
replaces写了这个 slug)时,全屏链接不再跳去那个应用。实时应用用它自己的链接。 - Ontology MCP 的
list_loops:报告的url打开的就是报告本身,loginRequired只看本组织的 Applications 开不开放;被应用替代的报告照旧带replacedBy(应用的标题与链接)。
1.52.0 — 2026-10-07
Engine:组织统一管理智能体的回复方式、模型与 skill:组织管理员在 Engine(www.ai-dc.ai/engine/<组织>)里给本组织的智能体定回复规范(规范正文 + 回复模板,有版本)、模型、推理强度和要预载的 skill。先在试运行里用草稿和真智能体聊一轮,满意了再应用到这个、几个或全部智能体;每次应用都记一条变更,可以撤销。内置五个模板:ASD-STE100 简化技术语言、简单明了、结构化汇报、客服答复、数据回答。
新增
- API:
/api/v1/engine/{cell}/**——agents(智能体与生效配置、每一项来自哪里、生效状态)、agents/{agentId}(加下一轮带给它的回复规范全文)、apply(应用:点名的智能体或组织默认;dry-run 回计划;同一个请求重复发结果相同;别人期间改过同一行回 409)、prompts、prompts/{id}、prompts/{id}/versions(保存新版本,过期的 baseVersion 回 409)、prompts/{id}/versions/{n}、templates、skills、models、changes、changes/{id}、changes/{id}/revert、test(试运行,事件流)。认网页登录与开发者 Key,要这家公司的 developer。 - CLI:
aidc engine——agents、show、test、apply、prompts、prompt create|save|rename|archive|unarchive、templates、skills、models、changes、change、revert。 - 界面:Engine 六页——试运行、智能体、回复规范、Skills、模型、变更记录;组织切换器的「产品」一组加了 Engine。
规则
- 回复规范从下一条消息起生效,不重启智能体;模型、推理强度、skill 写进智能体的配置,下一条消息前它的沙箱重起一次(平台先预热)。
- 每一项按「这个智能体自己 → 组织默认 → 运行时原值」取;组织默认改了,没有自己设置的智能体都跟着变。
- 模型只能换到智能体现在通道里的模型(凭证已经在它的凭证包里);通道不同的跳过,计划里写明。
- 试运行的草稿只对试运行的那一轮生效,不改配置;试运行是你自己的会话,不进智能体的 IM 与网页对话。
- 只管共享池上的智能体;箱子上原生运行的只列名字。
1.51.0 — 2026-10-07
交互界面:在终端里直接敲 aidc,和智能体对话:aidc 原来只有开发者命令(给智能体用:JSON、不交互)。现在人在自己的终端里直接敲 aidc(或 aidc chat)进入交互界面:首屏是 AIDC 标志与字标(按品牌标志的几何现算的方块字)、账号、运行时与目录;没登录先在界面里登录;说过的话按顺序留在终端自己的滚动历史里,底部只有正在生成的部分、输入框和一行状态。界面归 AIDC,干活的是运行时,五选一:AIDH(本机 Harness 引擎,经 ACP)、Codex(codex app-server)、Pi(pi --mode rpc)、Engine(AIDC 模型,只聊天)、数字员工(云端 Agent API);--runtime acp -- <命令> 还能接任何 ACP 智能体。管道里、智能体调用时行为不变(打印用法)。
新增
aidc/aidc chat ["开场"] [--runtime …] [--profile …] [--model …] [--resume [id] | --continue] [--cwd …]:交互界面。流式回答按 Markdown 排版(表格、代码高亮、列表、引用),中日韩与 emoji 按两格;思考过程收成一行(/thinking展开);工具调用是卡片(动作、对象、用时、输出末尾几行或改动摘要);计划、上下文用量、每轮用时与用量。- 智能体要执行命令、改文件等有风险的操作时,输入框的位置换成确认面板(
1–9直接选、esc拒绝)。 - 命令:
/help/new/resume/runtime/model/profile/status/copy/thinking/theme/clear/login/logout/exit,运行时自己的命令(如 AIDH 的/compress、/steer)接在后面;输入/补全命令、@补全文件。 - 输入框:多行(
⌥⏎/⇧⏎/ctrl+j/ 行尾\)、历史(~/.aidc/history)、按词移动与删除、剪切粘回、撤销、长粘贴折叠;esc中断、ctrl+c两次退出、ctrl+z挂起。 aidc chat -p "<提示>" [--yes] [--json]:同一能力的非交互形态,跑一轮就退出;stdout 不是终端时输出{runtime, model, sessionId, text, stopReason, usage, tools, denied};要确认的操作缺省拒绝,--yes才允许;运行时出错退出码 8。aidc runtimes:本机能用哪些运行时、缺什么。aidc update [--check] [--dry-run] [--force]:把安装脚本装的 aidc 换成线上最新版(先跑一次--version核对再整体换上,旧的留成aidc.mjs.prev);--check只看版本。与安装脚本一样不用登录。- AIDH 档案(
--profile//profile):引擎的命名档案,或这台电脑上开出来的数字员工(<公司>/<智能体>)。 - 浅色 / 深色按终端背景自动判断(
AIDC_THEME、/theme固定;NO_COLOR、AIDC_REDUCED_MOTION=1照常生效);颜色取自界面 SDK 的设计令牌。
变更
aidc不带参数、在交互终端里时进入交互界面(原来打印用法);aidc help/--help与非终端照旧打印用法。~/.aidc/config.json多一个tui字段(运行时、档案、模型、配色、最近的会话),aidc logout保留它。
修复
- 安装脚本:UTF-8 区域设置下,PATH 前面已有别的 aidc 时最后一句提示报
unbound variable退出(文件已装好,提示没打全);以前装的指向~/.aidc/bin/aidc的链接被当成「另一个 aidc」。
1.50.0 — 2026-10-07
Space:每个人与智能体自己的空间:本组织的每个人、每个智能体都有自己的 Space(www.ai-dc.ai/semantic/<组织>/space)。可以写页(Markdown)、上传文件、部署站点(HTML 自动部署成网页,有托管地址),用 Project 把相关的东西放在一起。人与智能体在分享里是一样的:可以分享给人、智能体、组,开放程度 Private / Group / Public / Open to Internet。
新增
- API:
/api/v1/space/**——items(列表:Suggested / Favorites / Your files / Shared with you,页 / 站点 / 图片 / 文件 / Project / 回收站;建页、站点、Project;取、改名、移动、改页、换站点内容;放进回收站)、items/{id}/content、items/{id}/share(取:给了谁、哪个智能体因为 owner 看不到而读不到;分享:给人、智能体〈agentId〉、组,tier一步设开放程度,alsoOwner同时分享给智能体的 owner)、items/{id}/favorite、items/{id}/restore、items/{id}/permanentlyDelete、uploads与uploads/{id}/complete(直传到公司自己的 S3;.html完成后自动部署成站点)、recent、principals(分享的候选:本组织的人、智能体、组)。认网页登录、开发者 Key 与 Agent Key。 - SDK:
semantic.space(list、recent、get、createPage、deploySite、createProject、update、upload、readPage、download、share、access、principals、favorite、trash、restore、permanentlyDelete)。 - CLI:
aidc space(同aidc semantic space):ls、show、get、page、edit、deploy、upload、project、mv、rename、share、access、people、fav、trash、restore、rm。 - Agent Key 的 restrictions 新 operation:
api:use-filesystem-read、api:use-filesystem-write(受限 Key 用 Space 要点名;不受限的 Key 照常)。
规则
- 只有 Owner 能分享、放进回收站、恢复、永久删除;Editor 改名、改内容、移动;Viewer 查看。Your files 里的东西只有本人看得到,组织开发者也看不到,除非分享。
- 智能体读的不超过它的 owner:owner 看不到的,智能体也读不到。智能体建的东西,它的 owner(已核验)也是 Owner。智能体不能把东西开到 Public 或 Open to Internet。
- 站点放进回收站后托管页不再服务;永久删除只对回收站里的,字节、站点、分享一起删。
- 页按版本保存:带上次读到的版本,过期的保存回 409
version_conflict。
1.49.0 — 2026-10-07
每个人有自己的工作台:身份、席位、分身、用量(计算秒)与存储;组织管理员看每个人、每个数字员工的用量:组织里的每个人有一个「我的」,看自己在这家组织的身份核验、席位与配额、分身、这段时间的计算秒(模型费按厂商价 1 : 1 折算,不加价)与存储。每个被组织准入的人都有一个分身:他自己的智能体,身份就是他的账号,权限与他相同,不另占席位;它的文件夹是我的文件里的 agent/,槽位照 eve 的 agent 目录。席位只按人数:一个人一个席位(分身含在里面);数字员工不占席位,它们的用量(计算秒)计入组织的配额池。组织开发者多一个「组织用量」:人与数字员工在同一张表里。
新增
- API:
GET /api/v1/auth/workbench?organization=cell-…&period=month|30d|YYYY-MM(本人在这家组织的工作台:身份核验、席位与配额、分身的槽位与设备、用量按来源 / 模型 / 天、负责的智能体、我的文件的字节数;不是这家的人 403);GET /api/v1/resourceManagement/usage?organization=…&period=…(组织用量:席位、配额池、每个人与每个数字员工一行;只给组织开发者)。 - Semantic:
/semantic/<cell>/me「我的」(用量 · 分身 · 存储 · 我负责的智能体),/semantic/<cell>/usage「组织用量」;侧栏最上面一组「我」。页底写明组织管理员看得到什么、看不到什么。 - CLI:
aidc me [--period]、aidc me org [--period]。 - 账号文件夹标准:会做事的账号(人的分身、数字员工)各有一个
agent/目录,槽位与 eve 的 agent 目录同名(agent.ts、instructions.md、skills/、tools/、connections/、channels/、memory/、schedules/、sandbox/、subagents/,evals/在旁边);写了哪个槽位就换掉哪个缺省。
变更
- 一把 Key 的用量算谁的:设备 Key 算兑换 License 的人(分身 · Adis),挂在某人会话上的 Key 算拿着它的人,账号签的 Key 算这个人,平台签给智能体的 Key 算这个智能体;应用票据与数据流发布单列。没有价目的调用只记 token、标「未计价」,不当成 0。
1.48.0 — 2026-10-07
智能体有负责的人(owner),能读的不超过他;云盘按 Project、文件夹、文件算访问,每人有自己的 Your files:每个智能体可以指派一个负责的人(owner)。智能体用自己的凭证读数据时,能读的不超过 owner;owner 停用、邮箱未验证或不再是本组织的人时,智能体暂停读数据,直到指派新 owner。云盘与数据基座的访问沿 Project → 文件夹 → 文件逐级算;每人一个只有自己看得到的 Your files;数据基座里的路径可以挂 Marking。
新增
- API:
GET /api/v1/control-plane/companies/{cell}/agents/{agentId}/identity(owner 与核验状态、谁能用、挂着的 Marking、它的服务用户与组、从 owner 继承的与没给的、Key 前缀;组织成员 403);PUT …/agents/{agentId}/owner({ ownerId, reason },组织管理员;新 owner 要是本组织在用、邮箱已验证的人,否则 422owner_not_eligible;本机智能体的 owner 是设备的主人,409local_agent_owner_fixed)。 - Semantic:智能体对象类型多了
ownerId、owner、identityStatus;Actionset-agent-owner(各组织里是aidc-set-agent-owner)。改可见性、授予、收回、换 owner 这四个 Action 只能由人执行。 - 云盘:
POST …/shares收kind(file|folder|project);文件夹与 Project 有 RID(ri.compass.aidc.folder.<id>),可以用访问接口(/api/v1/filesystem/resources/{rid}/roles/add|remove)授予人与组;数据基座里的文件、文件夹、Project 可以挂 Marking(…/addMarkings、…/removeMarkings)。GET …/drive?view=roots:自己的 Your files 与分享给自己的入口。 - CLI:
aidc semantic filesystem list --type folder。
变更
- 智能体的 Key 读 Semantic:有已核验的 owner 时,服务用户再继承 owner 的组织身份与组(只继承能用这个智能体的人都在的组),判定时 owner 也要通过(类型、对象行、属性、媒体集、Ontology SQL);Marking 只给挂在智能体上、owner 是成员的。接了 IM 机器人的智能体不继承。人持有的 Key 也不超过 owner。没有 owner 的智能体与 1.46.0 相同。
- 云盘接口:组织成员(含持 member License 的账号)可以用,只看得到自己的 Your files 与分享给自己的;目录、平铺清单、搜索只列读得到的;读不到的路径回 404。Project 不继承公司云盘的缺省角色;Your files 只有本人看得到,组织开发者也看不到。
- 建、改、撤分享要这个路径的 Owner;挂着 Marking 的访问设置要先去掉 Marking 才能撤(409
markings_present)。/s/链接的读判定算上级的访问设置与 Marking。 - 智能体导出媒体:有单独访问设置的路径不生成公开链接。
- 云盘的改名、移动、删除带着下面的全部东西:下面每个带访问设置的都要有角色(文件 Editor,文件夹与 Project Owner),否则 403;改名、移动到已经有访问设置的路径上回 409
file_exists(details.reason = settings_at_destination),不动盘。 - 数据基座不再造出同名的文件与文件夹(建文件夹、写、改名、移动、上传选名都算占用);已经有的、带访问设置的,改名、移动、删除回 409(
details.reason = name_collision)。 - 工作区的软链接:跟随会改变访问判定时不跟随——读回 404、写回 403;
/s/链接读工作区文件不跟随。?agent=按它解析到的箱子与挂载根判访问设置。 - 改名、移动到已有的名字上(文件、目录、软链接)回 409
file_exists,不再搬进同名的目录;存储没有真的动成时不搬访问设置。改名、移动期间目标位置先挂上与源相同的限制。只完成了一部分(details.reason=partial_copy/partial_move)回 503:两处都留着、都受保护,原处的访问设置不动。 - 数据基座的直传上传:一片也走 multipart,完成时名字已被占回 409
file_exists(不覆盖);完成时连落位的路径一起判权限。 - 访问面板往下调一档时,旧受众(公开链接、本组织、部门)改成只按授予,链接地址不变(以前回 409)。
修复
- FIX-0211:组织成员经云盘接口能列、读整个公司云盘。
- FIX-0212:建分享不看路径的 Owner;
/s/读判定不看上级与 Marking;本机节点的数据通道与媒体导出绕过访问设置。 - FIX-0213:同组织的人能续传、取消、完成别人的上传。
- FIX-0214:持 member License 的人在工作台看得到全部私有智能体。
- FIX-0215:成员能读写同一个智能体上别人的会话;全组织的会话记录对成员开放。
- FIX-0216:控制台的 Agent Keys 页对非管理员列出全部 Key。
- FIX-0217:云盘请求带任意
?agent=就丢掉工作区的访问设置。 - FIX-0218:改名、移动、删除文件夹不看下面的访问设置;目标位置上的访问设置在动盘之后才处理。
- FIX-0219:数据基座里同名的文件与文件夹,删文件会连带删掉文件夹下面的访问设置。
- FIX-0220:工作区的软链接绕过路径判定。
- FIX-0222:改名、移动期间目标位置没有保护;对象存储复制、删除出错时报成功或留下没人管的副本。
- FIX-0223:数据基座直传:迟到的完成能盖掉开会话之后别人放在这个名字上的文件。
- FIX-0239:改名、移动落进已有的目录或被静默跳过,访问设置照样搬。
1.47.0 — 2026-10-06
审批策略:review 与 yolo:每个组织有一个审批策略,管 Ontology 提案的批准、合并与 Semantic 应用的发布。review(缺省,和以前一样)= 本组织开发者在网页上批准、合并、发布;yolo = 能改这个本体的 Key 也能做,作者能改这个本体时自己的批准就算数,检查通过自动合并。两种策略下 Marking 与 merge checks 照样是硬闸;每一次批准、驳回、合并、发布、改策略都记进审计日志(谁、经网页还是 Key、结果)。
新增
- API:
GET /api/v1/ontologies/{ns}/approval-policy(看策略:eligibleReviewers、approvalsRequired、contributorApproval、autoMerge);PUT …/approval-policy{ "policy": "review" | "yolo" }(只给本组织开发者本人:网页登录,或没有声明智能体身份的开发者 Key;同一策略再设不写;x-aidc-dry-run: true只返回会被重新判定的提案)。改成 yolo 时打开的提案按作者重新判定(作者能改这个本体 = 批准,合并在下次改动或调用合并时发生);改回 review 时智能体给的批准作废。 - CLI:
aidc semantic approval-policy [get] | set review|yolo [--dry-run];aidc semantic proposal approve <id> [task …] [--note …] [--confirm-breaking](不写 task = 全部待审核的;有破坏性改动要--confirm-breaking,先核对完再写)、proposal reject <id> <task>、proposal merge <id>。 - SDK:
semantic.ontology().approvalPolicy.get()/.set(policy, { dryRun });类型ApprovalPolicyView。
变更
POST …/proposals/{id}/tasks/{apiName}/review与…/merge:审批策略是 yolo 时也收 Bearer——开发者 Key(含x-aidc-author声明的智能体),或代表的主体在 Ontology 上是 Editor / Owner 的 Agent Key;只读的 Agent Key、受限 Key、运行令牌、应用票据回 403。审批策略是 review 时和以前一样只收网页登录。- 开提案、改分支:yolo 下作者能改这个本体,就以作者的身份批准并在检查通过后合并(同一个请求里返回
status: "MERGED");破坏性改动自动确认资源名;安全策略的改动作者满足不了 Marking 时留给别的审核人(Changelog 记held)。aidc semantic branch propose的输出跟着变:合并了就直接报语义版本。 - 发布应用(
POST /api/v1/workshop/modules/{rid}/versions/{v}/publish、保存时publish: true):yolo 下作者是智能体的版本,开发者 Key 也能发布。 - 贡献者只批自己改的资源:别人在同一个分支上改的资源,等它们自己的审核人。
- 批准绑在分支版本上:批准之后分支又改了,旧批准不算数(合并回 409,要重新批准)。合并先认领:认领期间审核、改分支、关闭提案、再合并都回 409,同一个提案同时合并两次只有一个成功;合并中断时认领 10 分钟后过期,重试时 main 上已经一样的定义不算冲突。
- 同一个分支同时开两个提案只有一个成功;改分支时打开提案的资源清单在同一步里对齐。
- 审核可以带
branchVersion(提案返回的分支版本):分支在你看过之后又改了就回 409;网页与aidc semantic proposal approve都会带。 - 一个组织同一时间只合并一个提案:别的提案正在合并时回 409,稍后再合。
- 几个提案同时合并时,语义版本号冲突会重读重来,最新的语义版本包含全部已合并的定义。
1.46.0 — 2026-10-06
智能体在 Semantic 上有自己的身份(服务用户):智能体的 Agent Key 代表这个智能体的服务用户(svc.<组织>.<智能体>)。服务用户不能登录、默认没有任何角色;组织管理员把它加进组、给组授予 Ontology(或某些 Object Type)上的 Viewer,它才读得到——和人用同一套授予、组、到期与 Markings。人持有的 Key(账号认领、桌面兑换的)按这个人自己的权限判。
变化
- 智能体的 Key 读 Semantic(Ontology MCP、Ontology API、Ontology SQL):能读什么 = 服务用户(或持有人)的授予 ∩ Key 的 restrictions。没有任何角色时回 403,信息里写着是哪个服务用户。组成员可以带到期时间:到期后立刻读不到,续上立刻恢复。
- 只读的受限 Key(
api:use-ontologies-read)能用读对象的全部接口:按类型查 / 聚合 / 计数、对象集取数 / 聚合 / 链接、列对象、链接、媒体与附件、时间序列、对象类型与 Action 类型的元数据——只读列出的类型(*= 全部公司级类型)。整个本体的元数据只给*。临时对象集要读写两个 scope。 - 新 operation
api:use-sql-queries-execute:受限 Key 查 Ontology SQL 要它和api:use-ontologies-read,且只给*的 Key;只授予了部分类型的智能体不能用 SQL。 POST /api/v1/control-plane/companies/{cell}/agent-keys的响应多了serviceUser(这把 Key 代表的服务用户;签发时建好,拿去加进组)。- 箱上的 Python 库
aidc_semantic:读平台给系统用户发的 Key(/etc/aidc/semantic/<用户>.key,与aidc-semantic命令同一个文件),智能体不用配凭证;读不到时提示请管理员开通,不再让智能体去找 Key。
1.45.0 — 2026-10-06
数据边界覆盖箱上还没迁的智能体,下发前先查依赖:运维可以把箱子上还没迁进运行池的智能体也纳入数据边界——按注册表给它们所在的多路复用单元生成合并围栏。下发前先查这些智能体的脚本与定时任务有没有读写别的 private 智能体的数据:有就报出来、整次不下发,不让脚本静默失败。
变更
- API:
POST /api/v1/harness/fences收native(plan|apply,可选)。action=plan时多回每个多路复用单元的目标围栏、在跑的围栏、要不要重启与依赖(native.<单元>.dependencies:被拒的智能体 → 引用它的文件数);action=apply时native=plan只写单元配置、不重启,native=apply同时重启跑着别的围栏的单元;action=verify带native时再从每个单元里面核(回native.checked、passed、failed)。有依赖 → 502fence_failed,details.detail里是native_dependency:<单元>:<智能体>;扫不全(文件太多、读不了)→ 同样 502,native_scan_incomplete:<单元>:<原因>。
修复
- 生成的围栏放行根目录本身:原来在围栏里
ls /、find /会被拒。
1.44.1 — 2026-10-06
申请加入组织、组织管理员审批;License 席位不限:账号登录后搜索组织,选 Developer 或 Member、写备注(必填)提交申请;组织管理员(本组织 Developer)在控制台「组织 › 加入申请」批准或拒绝,批准即成为成员,不用再逐个签发、发送 License 码。License 码照常可用。
新增
- API:
GET /api/v1/auth/organizations?q=(搜索可加入的组织:至少 2 个字、最多 8 家、只列开通了 License 额度的组织,带调用者的成员关系与待审批的申请);GET|POST /api/v1/auth/intake-requests(我的申请;提交,同一组织再提交 = 重新提交那一条,同时最多 5 条待审批);DELETE /api/v1/auth/intake-requests/{requestId}(撤回)。 - API:
GET /api/v1/control-plane/companies/{cell}/intake-requests(待审批 + 最近 100 条审批记录);POST …/intake-requests/{requestId}/approve({ role?, comment? },审批人可以改角色);POST …/intake-requests/{requestId}/reject({ comment? })。只给本组织的组织管理员与平台员工,不能审批自己的申请。 PATCH /api/v1/control-plane/companies/{cell}/licenses/{licenseId}收role:把成员调成 Developer 或 Member(已兑换的码只能改角色);不能改、不能收回自己的 License(409self_modification_forbidden);组织里最后一个 Developer 不能降级、不能收回(409last_admin_protected)。- 一家组织的批准、
aidc members import、签发、改角色、收回在同一把锁里串行:并发时不会给同一个人建两张 License,也不会一起超过登记的席位数。
变更
- License 额度的席位数可以是
null(不限):PUT …/license-plan收seats: null;GET …/license-plan的seats、remaining不限时为null;签发、批准申请、aidc members import都不再数席位。aidc members import的seats.limit不限时为null,输出写「不限」。
修复
- FIX-0207:
PUT …/license-plan只给 AIDC 平台管理员。原来只看账号有没有挂公司,License developer 的账号不挂公司,所以客户能改自己组织的席位与到期日。
1.44.0 — 2026-10-06
池上智能体的定时任务能发回 IM 了:智能体在运行池里时,它的定时任务到点照样执行(有在排的任务就不冻结),结果经平台交给这个智能体的 IM 机器人主动发出(钉钉:群发或单聊)。智能体自己的 send_message 同样能用。
变更
- API:
POST /api/v1/gateway/messages/send有了出站后端:经这个智能体的接收器,用机器人的主动发送接口发出,成功回{ delivered, chatId, via, chat, parts }。只认只能发消息的受限 Agent Key(restrictions.operations含api:use-messages-write):普通 Agent Key → 403forbidden;每把 Key 每分钟 30 条(rate_limited)。新字段chat_type(group|dm)与user(单聊发给谁);附件(/s分享链接)追加在正文后面。机器人不在共享入口上、或通道还不支持主动发送(企业微信)→ 503delivery_not_configured(details.reason说明原因);通道拒了 → 502delivery_failed。 - 受限 Agent Key 的 operation 新增
api:use-messages-write:只有它的 Key 不能用聊天网关,在 Semantic 上什么都读不到。
1.43.0 — 2026-10-06
智能体读 Semantic 的 MCP 入口(Ontology MCP):每家公司的 Semantic 有一个只读的 MCP 服务器,智能体不用终端、不用写代码就能查对象类型、按条件查对象、聚合,并拿到本公司 Loop(应用与 Loop 报告)可以直接发给人的链接。
新增
POST /api/v1/ontologies/{ontology}/mcp(Streamable HTTP,无状态、只回 JSON):工具list_object_types、search_objects、aggregate_objects、get_object、list_loops,全部只读。读之前按数据源的新鲜度要求按需同步(fresh: true最多等 20 秒)。凭证:本公司的 Agent Key(含只读的受限 Key)或开发者 Key;网页会话与应用票据不认。- 受限 Agent Key 的
objectTypes可以写["*"]:本组织全部公司级的类型,只读(只能单独出现,不能配api:use-ontologies-write、不能列 Action)。
1.42.0 — 2026-10-06
智能体注册表与数据边界:一行一个智能体——可见性、哪些组能用、脑在哪、工具在哪台机器上执行、IM 机器人、数据边界是否核验通过。private 智能体的数据只归它自己:别的智能体在执行工具时读不到、写不到,由平台按注册表生成的围栏保证,并逐个核验。可见性与授权在 Semantic 里用 Action 改,改动写回注册表,数据边界随后重算并核验。
新增
- API:
GET /api/v1/harness/agents?cell=<组织>(注册表视图,只读)。 - API:
POST /api/v1/harness/fences({ cell, action: plan | apply | verify }):plan 只算、不改;apply 下发围栏(平台管理员,需要确认);verify 以每个智能体自己的身份逐条核验,回传只有计数与状态。 - Semantic:各组织的平台对象类型新增
aidcAgent(只给本组织开发者)与三个 Action:aidc-set-agent-visibility、aidc-grant-agent-access、aidc-revoke-agent-access;数据源新增平台目录里的aidc(注册表)与三个 webhook:aidc/agent-set-visibility、aidc/agent-grant-access、aidc/agent-revoke-access。只能改本组织的智能体。
1.41.0 — 2026-10-06
应用与 Loop 报告可以对外公开(Open to Internet),看板默认实时:应用(Workshop 模块)与本组织的 Applications 成了访问设置里的资源,可以设成 Open to Internet——拿到链接的人不用登录就能只读看应用的发布版,嵌在应用里的 widget set 一起放行(只读);本组织的 Applications 设成 Open to Internet 时,Loop 报告的全屏链接也不用登录。改回 Group,同一个链接就要登录。所有应用缺省打开 Auto-refresh:开着的页面跟着数据走,不用再定时重算整页。
新增
- 访问资源:本组织的 Applications(
ri.workshop.aidc.applications.<公司>,从 Ontology 继承)与应用(ri.workshop.aidc.module.<id>,从本组织的 Applications 继承)。都没有 Private 这一档;可以设 Public 或 Open to Internet(只有 Owner,界面二次确认)。应用页与 Applications 页有 Share 面板;CLIaidc resources access <rid> --tier internet|public|group。 - 不登录的访客:只看发布版,只读得到这个应用用到的、公司级的类型;不能执行 Action、不能直接写、不能查 SQL;挂了 Marking 的类型与对象看不见。按来源 IP 限流。
- Loop 报告的全屏链接(
/semantic/<公司>/objects/loopReport/<slug>?embedded=true):旧 Loop 已经迁成已发布的应用时,直接去那个应用(能对上页面就带?page=)。 GET /api/v1/workshop/modules的每个应用多了access(internet= 链接不用登录 ·public= 登录的 AIDC 账号都能看 ·group= 本组织的人与被分享的人)与accessRid。
变更
- Auto-refresh 缺省打开:模块设置里
settings.autoRefresh.enabled: false才关(原来要写enabled: true才开)。 - 访问判定:Public(Everyone)只匹配登录的账号,不匹配不登录的访客。
1.40.1 — 2026-10-06
安全修复:经 SSM 就地装 agent proxy 只给平台运维:平台是用自己的云凭证、以 root 在 agent 登记的主机上执行安装的,所以这一步与改 agent 的主机都只给平台运维;组织开发者照三步手动装 agent proxy(不受影响)。
变更
POST /api/v1/connectivity/agents/{agent}/upgrade:只收平台运维的开发者 Key,其余 403;一次性登记码有效期 15 分钟 → 5 分钟;下发失败当场作废登记码、回 502;安装命令只走 https。POST /api/v1/connectivity/agents(旧版 agent 的登记):组织开发者只能改显示名,改主机要平台运维(403)。POST /api/v1/connectivity/agent/enroll:过期判断与兑换在同一次更新里完成。- agent proxy 1.1.1:安装脚本要求安装目录、
bin、etc归 root、别人写不了、不是软链;configure先建好配置的临时文件再去换凭证,写不了盘就不换;平台返回非预期的错误体时不再抛异常回溯。 - SQL Server 的文本取值:列没有代码页信息时不再做 GBK 还原(此时按 UTF-8 解出的就是正确的字)。
1.40.0 — 2026-10-06
平台管的箱子一条命令装上 agent proxy,凭证不经人手:原来经平台叫醒执行的旧版 agent 所在的箱子,现在由平台直接装 agent proxy——平台给这台箱子发一个一次性登记码,箱子上的安装程序拿它向平台换 agent 凭证,凭证只写进箱子上的配置,不显示给任何人。装好后就能走迁移向导,把这台箱子上的连接换成平台执行。
新增
- API:
POST /api/v1/connectivity/agents/{agent}/upgrade({ "via": "awsSsm" },本组织开发者;?dryRun=true只回目标箱子):只给登记了托管主机的旧版 agent;发一个一次性登记码(15 分钟内、只用一次,库里只存哈希)并下发固定的安装命令,返回命令 id 与登记码的有效期,不返回登记码与凭证。没有托管主机的 agent → 409(照三步手动装)。 - API:
POST /api/v1/connectivity/agent/enroll({ agent, code }):箱子上的安装程序拿登记码换 agent 凭证,只换一次;换了之后这个 agent 原来的凭证作废;响应不缓存。登记码不对、用过或过期 → 401;按来源限流。 - agent proxy 1.1.0:
aidc-agent-proxy configure --enroll(登记码从标准输入读,换来的凭证只写进本机配置、不打印);install-agent-proxy.sh --enroll;重装时重启服务,让常驻的进程用上新凭证。 - CLI:
aidc semantic connectivity agent upgrade <agent RID|apiName> --ontology <cell-…> [--wait] [--dry-run](--wait等它以新凭证连上平台,最多 3 分钟)。
1.39.0 — 2026-10-05
指标从底层重算:加工层(Transforms):原始数据经同步进 dataset 只读一次,指标由 Transform 从 dataset 算成新的 dataset,再作对象的数据源。输入一有新数据就自动构建,增量时只重算受新数据影响的那些键;改了口径从已有的原始数据重算,不再回源系统。
新增
- Transform:输入(别名 → dataset 的名字或 RID)+ 一条 DuckDB 的 SELECT + 增量设置(
semanticVersion、snapshotInputs、requireIncremental、output: append | mergeAndReplace、key),产出同名的 dataset。三种写法:非增量(整份)、append(只算新行、追加)、mergeAndReplace(受影响的键从输入的全部行重算,与上一份产出按键合并)。 - 自动构建:输入提交了新事务就构建(非增量看全部输入,增量只看非 snapshot 输入);在跑时又被触发就跑完再跑一次;输入与定义都没变时不跑。Object Type 的 dataset 数据源可以是加工的产出:读的时候过期,执行的是上游的同步,跑完一路算到对象;新绑定整份索引一次产出现在的内容。
- 安全:只执行一条 SELECT,只能读这次构建的输入文件;不能读别的文件、连网、装扩展、改设置。一次构建读 ≤ 384 MB、产出 ≤ 500 万行、300 秒。
- API:
/api/v1/transforms(列出、新建或整体替换,?dryRun=true预演)、/api/v1/transforms/{transform}(读、删:还有 Object Type 用它的产出时 409,产出的 dataset 留着);POST /api/v2/orchestration/builds/create(构建一个目标 dataset:加工的产出跑加工,同步的产出跑同步;forceBuild无视「没变化不跑」);GET /api/v1/orchestration/builds/{rid}与 v2Builds.get也查得到加工的构建(增量还是整份、受影响的键、读写行数)。 - CLI:
aidc semantic transforms list|put|show|build|delete(build --force --wait)。 - Data Health 的
buildStatus检查也看加工的构建;同步不能再写加工的产出(409)。
1.38.0 — 2026-10-04
建 sync 之前先探索源(Source exploration):在 source 页点 Explore,就能看到源里有哪些表和视图、每张表的列与主外键、表和表之间的关系,直连的源还能取几行样本;勾选要的表,一次建好 batch sync。
新增
- Explore 页:按表名搜索、浏览表与视图(最多 2,000 张);一张表的列(类型、可空)、主键、外键与引用它的表(点关系跳过去);直连的 source 取 1–50 行样本;右栏勾选的表一次建好 batch sync(每张一条
SELECT *、SNAPSHOT,名字自动避开已有的 sync),之后在 sync 页改增量、挑列。只给本组织开发者;只读会话;样本行不落库。 - 经 agent proxy 的 source 也能看表与结构:查询经 agent 的隧道在平台里执行,agent proxy 程序不用升级;样本行只在直连的 source 上取。
- API:
POST /api/v1/connectivity/connections/{connection}/explore(listTables/describeTable/previewTable);经 agent proxy 的最多等 20 秒,没等到回 202,用GET /api/v1/connectivity/explorations/{rid}取结果。 - CLI:
aidc semantic connectivity explore <connectionRid> [--search <字>] | --table <schema.表名> [--preview --rows 20](经 agent proxy 的自动等结果)。 - 建 batch sync 的接口加
?createOnly=true:只建新的——同名已存在(或同时被别人建了)回 409,不替换已有 sync 的查询。Explore 页用它,撞名自动换下一个名字。
1.37.0 — 2026-10-04
Data Connection 改成平台执行:用 SQL 直接读业务库,不另开备份库:新客户上了 Semantic 不用另开一个备份库——平台的 worker 用只读账号直接查 ERP / MES,客户内网里的库经装在客户网络里的 agent proxy(只出站、只转发字节)连;每次执行写成 dataset 的一个事务,再只把变了的行写成对象。外部通知改成 Action 的 side effect webhook,Loop 脚本改成函数;接口、命名与订阅按标准形状收齐。
新增
- 平台执行(Foundry worker):Connection 的
configuration是jdbc(url、driverClass:PostgreSQL / SQL Server、只读账号)或rest(domains、认证、附加秘密),worker是{ "type": "foundryWorker", "networkEgressPolicyRids": […] }。口令写一次{ "type": "asPlaintextValue" },平台加密保存(AES-256-GCM),之后只回秘密名;getConfiguration、updateSecrets、updateExportSettings。 - 出口策略(Network egress policy):direct / agentProxy;域名(最左一段可通配)/ IP / CIDR + 端口;建了不能改,只能吊销。Console 新增 Network egress 页。
- agent proxy:装在客户网络里的 Python 标准库程序(
/developer/agent-proxy/aidc-agent-proxy与install-agent-proxy.sh,装成 systemd 服务),只出站连平台;查询在平台里执行,它只为每次执行开一条隧道、只连这次的主机:端口(本机白名单文件可再收窄)。登记POST /api/v1/connectivity/agents/register,凭证只给一次;装法三步:下载安装脚本 →sudo sh运行(问凭证、不回显)→systemctl status。 - Dataset:每个 TableImport 写一个同名 dataset;SNAPSHOT / APPEND 事务、Parquet 分片(snappy,每片 ≤ 50,000 行;一列的值都合它的类型就用对应的 Parquet 类型,null 与空串分开),字节在公司自己的桶里;
/api/v2/datasets/**(getSchema、readTable(CSV)、transactions、branches、files(Parquet 原字节))。查询结果里有重名的列这次执行就失败。 - 增量导入每周对一次账:APPEND + 增量列的导入,7 天没有快照、最近 7 天用过的,北京时间夜里(01:00–04:59)执行一次 SNAPSHOT:
?绑初始值读全部行,源头删掉的行标「源头已消失」,之后的视图从这个快照起、旧的增量文件按保留策略删掉。 - Data Health:
/api/v2/dataHealth/checks(create、get、replace、delete)与…/checkReports(get、getLatest)。检查挂在 dataset 的分支上,支持buildStatus(最近一次执行成功与否,连续失败可升级 CRITICAL)、timeSinceLastUpdated(距上次有数据的更新多久,timeBounds)、schemaComparison(四种比法)、primaryKey(非空、不重复);平台每 5 分钟评估,变成失败、升级、恢复时给建检查的人发邮件;每个检查留最近 200 份报告。dataset 页右侧显示每个检查的最近结果。 - 只写变了的对象:与上一份行摘要比差,只写变了的行;SNAPSHOT 里没有的标「源头已消失」,APPEND 只增改;
allowSchemaChanges: false时列变了这次执行就失败。 - 迁移向导:旧版 agent(客户箱上被叫醒、箱上比差)的连接换成平台执行:
POST …/connections/{rid}/migrate(确认口令会存进平台;agent 把本机登记的口令交给平台加密保存),30 天内revertMigration退回。 - 标准接口:
/api/v2/connectivity/connections/**(create、get、getConfiguration、getConfigurationBatch、updateSecrets、updateExportSettings;tableImports 的增删改查与 execute)、/api/v2/orchestration/builds/{buildRid}:裸响应体,错误是 Conjure 信封。 - Data Connection 应用:Sources / Agents、source 页、batch sync 页(Runs)、dataset 页(事务历史)、New source 向导(先 Validate 再建)、迁移与退回。
- CLI:
aidc semantic connectivity agent register、egress list|create|show|revoke、config、secret(值从标准输入或--from-env读,不进命令行)、migrate/revert-migration、dataset、health create|show|replace|delete|reports。 - webhook(挂在 REST API 数据源上):带类型的输入(Boolean、Integer、Long、Double、String(可限定取值)、Date、Timestamp、List、Record、Optional);一个或多个请求(方法、domain、相对路径、查询参数、请求头、JSON / 表单 / 文本请求体);模板
{{名字}}、{{json 名字}}、{{secrets.名}},JSON pointer 抽取,后面的请求可以用前面请求的值;输出参数;时间缺省 20 秒、最多 180 秒,速率、并发、可重试状态码。数据源的认证自动加上,秘密只在发送时解开、回显里打码。API/api/v1/connectivity/webhooks、/{webhookRid}、/{webhookRid}/execute(dryRun只渲染);CLIaidc semantic connectivity webhooks、webhook put|get|delete|test。 - Action 的 side effect webhook(
webhooks.sideEffects,≤ 10):提交之后执行,可以多个、不保证顺序;失败不回滚、不报给执行人,结果记进执行记录。发钉钉 / 企业微信 = 一个配了 side effect webhook 的 Action。 - Automate 的 Action 效果与 Function 效果:Action(以 automation 拥有者的身份、按他现在的权限执行 Action Type)、Function(在平台的隔离运行时里执行已发布的函数版本,只记结果摘要,返回的 Ontology 编辑不生效);效果输入
$effectInput(objects、object、primaryKey、property:<属性>、failureMessage、automationRid、eventId);executionMode、executionSettings.batchSize;每个效果的重试retryConfig(constantBackoff / exponentialBackoff,jitterFactor / jitterDurationMillis);失败效果fallbackEffects。函数发布POST|GET /api/v1/ontologies/{ns}/functions,aidc semantic functions publish | list。 - 对象集订阅走 WebSocket:
wss://<host>/api/v2/ontologySubscriptions/ontologies/<本体>/streamSubscriptions(本体写 RID 或公司命名空间),子协议Bearer-<token>;消息 subscribeResponses / objectSetChanged / refreshObjectSet / subscriptionClosed。约 280 秒以 1001 关闭(客户端重连、重新订阅),没有订阅满 60 秒以 1000 关闭;连接时长计入应用的计算分钟。
变更
- 新建 Connection 只收平台执行(jdbc / rest + 出口策略);旧版 agent 的连接照常运行,只能改、不能新建,迁移向导换过来。
- Data Connection 的配置、查询与 dataset 只给本组织开发者看(成员 / Agent Key:v1 403,v2 NotFound);其他人经 Object Type 读对象。
/api/v1/ontologies/**、/api/v1/ontologySubscriptions/**、/api/v1/connectivity/**、/api/v1/orchestration/**里在/api/v2有同名接口的请求带Deprecation: true与Link(successor-version),OpenAPI 标 deprecated;v1 响应不变。- Automate:保存时校验 Action / 函数、参数、效果输入与拥有者权限;新建 automation 用钉钉 / 企业微信通知或
agentScript返回 422automate_legacy_effect(已有的照常运行,替换时可原样保留;迁移表见「闭环」)。 - 命名:新建的 Object Type 恰好一个主键属性;新的属性与 Action 参数 API name 用 camelCase;Object Type 的 API name 用 PascalCase(保留字与只差大小写的新名字拒收,其余旧写法给警告)。不合规时 define 整批 422
invalid_schema,分支校验primary_keys/api_names失败、挡合并;已有的照收,返回警告。 - 工作流:调自动提取的 Action 能力时
with收 camelCase 参数名;导出与计算步骤的sort收 camelCase 属性名。样板(报价演示、云费用监控)改 camelCase,demo.bom_line改单主键lineKey。 - Webhook:Action 的
webhook引用可以写本组织的<数据源>/<webhook>或 webhook 的 RID;还有 Action 在用的 webhook 改输入 / 输出或删除返回 409。
修复
- 同一张 TableImport 几乎同时的两次执行会建出两个 Build;暂停的导入经手动执行照样会跑(FIX-0196)。
- 受限 Agent Key 在
/api/v2/ontologies/**上与 v1 同一张白名单(函数与订阅不在里面);经/api/v2读由数据集供数的类型,与 v1 一样按 maxAge 按需同步(FIX-0192)。 - 工作流与能力收 camelCase 的属性 / 参数名(FIX-0193)。
aidc semantic automations pause | resume原样带回fallbackEffects与expiresAt(原来会丢到期时间)。
破坏性变更
- 新定义里的复合主键、snake_case 属性 / 参数、Object Type 的保留字名被拒收(存量不受影响)。
- 新建 Connection 不再收旧版 agent 的形状;新的 automation 不再收钉钉 / 企业微信通知与
agentScript。
1.36.0 — 2026-10-04
Semantic 里的 Automate 应用:automation 原来只有 API,Semantic 里只在 Data Connection 页列一张只读表。现在有完整的应用:Overview(能看到的、我拥有的、我是收件人的、暂停的;最近触发、近四周失败、最近改过)、Automations(左边筛选)、History(全组织的运行);New automation 向导三步 Condition → Effect → Summary,每一步都能 Preview;每条 automation 有 Overview / History / Execute / Code 四个页签,能编辑、暂停 / 恢复、手动运行、删除。界面只调 /api/v1/automate/**,网页能做的智能体和 CLI 都能做。
新增
- 预演(
POST /api/v1/automate/automations?dryRun=true、PUT …/{rid}?dryRun=true)多返回preview:对象集里现在有几个对象(数到 100,000)、最新的几个对象、每个效果用这些对象渲染出的消息(与运行时同一个渲染函数)、时间条件接下来 5 次触发。不写任何表。 GET /api/v1/automate/runs?ontology=<组织>:History,全组织所有 automation 的运行,新的在前,按automation(rid 或 apiName)、status、since(日期或带时区的时刻)筛,pageToken翻页;触发对象只给键(类型 + 主键)不给属性,受保护类型(Markings、安全策略)的连键也不给、只给个数;只给本组织的开发者、成员与不受限的 Agent Key。CLI:aidc semantic automations runs --ontology <组织> [--automation …] [--status failed] [--since …]。POST /api/v1/automate/automations/{rid}/pause、…/resume:只改状态(不整体替换定义、不接过所有权、到期时间不动),?dryRun=true只说会怎样;到期的不能恢复。界面的 Pause / Resume 用它们。- 预演对象集超过 100,000 个对象(新增 / 修改 / 移出要记成员的上限)时直接 422,不再等到保存时才失败。
- 样板
developer/apps/dingtalk:钉钉用户、钉钉群两个对象类型和「登记钉钉用户 / 登记钉钉群」两个 Action;tools/recipients-from-automations.ts把现有 automation 里写死的收件人收集成登记参数(去重、编号稳定)。
新建的效果只有标准的:Notification(发给 AIDC 账号,邮件);Action、Function 列出来,接入后可选。钉钉 / 企业微信当 Notification 的渠道、在客户箱上跑脚本(agentScript)是旧写法:已有的 automation 照常运行、在界面里能改能去掉,但不能再新建;发钉钉以后走 Action 效果(Action 的 side effect 调 webhook),脚本改成 Function 效果。
变更
- Data Connection 页不再列 automation,改为指向 Automate。
1.35.2 — 2026-10-01
修复:源查询改写器新增共享 AST 处理,将 SQL Server 的 varchar(max) / nvarchar(max) 转为 PostgreSQL text,保留有限长度、聚合 MAX()、字符串和注释。箱上改写器需按发布说明接入;不会自动修改已安装模块。
修复:Python Semantic 客户端的 AIDC_SEMANTIC_CATALOG 复用环境变量与 profile 配置优先级;切换目录路径后不再沿用上一次加载的目录。显式路径不可读时仍报错;未配置时固定读取 /opt/aidc-semantic/state/erp-catalog.json,避免 SDK 副本在自己的目录寻找不存在的文件。
1.35.1 — 2026-10-01
文档与 CLI 帮助只写标准的构件名,不再注明出处(Owner 10-01):Object Type、Action、Workshop、OSDK、Media sets、Automate 这些构件名照旧;原来括号里写的出处、和外部产品的对照删掉了,句子的技术含义不变。没有接口、SDK 行为或数据结构上的变化。
变更
- 文档:语义、CLI、API、访问与账号、闭环、自动化、总览、样板、智能体各页,以及本页较早的版本记录。语义页的对照列改叫「标准名」;「组织、用户与组」「Ontology」「本体由智能体构建」几个标题变短,访问与账号页指向「组织、用户与组」的锚点跟着改。
- CLI 帮助:
aidc --help里 Ontology、Semantic 数据库、Media sets、Data Connection、Automations、Applications、组织与组几节的说明,以及 Ontology 命令的用法说明。 - 给客户智能体的 Skill(
/developer/skills/aidc-sdk/SKILL.md):描述与命名规则各一句。 - 新增守卫
src/lib/public-brand.test.ts:公开内容(public/**)里再写出外部产品的品牌对照,CI 会变红;没有例外(Owner 10-01:网站上不出现这个名字),首页的市场定位图与/pricing/compare的价格对比也已去掉这一家。
1.35.0 — 2026-10-01
Developer Console:在网页上做应用、测试、发布到 Nexus:Developer 负责做和测,Nexus 负责发布和使用。此前 Developer 只有 API、CLI 与一张 test 版本目录;现在登录后有一套完整的开发界面,应用可以按电脑、手机、智能体、后台四个端来做。界面只调现有接口(Creator 的会话入口、晋升接口、Key 接口),网页能做的智能体和 CLI 都能做。
新增
- Developer Console(
/developer/console→/developer/<公司>,只给这家公司的 developer):首页(应用数、在 Nexus 上、在测、7 天发布 / 打开 / 错误,四种做应用的路,最近的应用与发布记录,工具链);Applications(按端筛选,Custom application 与 Semantic 里的 Workshop 模块一起列);New application(新建向导:Basic information → Application type 与 device type → Resources(从公司 Ontology 里选 Object Type 与 Action)→ Review & create,第一版直接进 test 通道;另给一段「让智能体来做」的说明);每个应用的 Overview / Resources / API documentation / Web hosting / Metrics / MCP;Releases(所有应用的发布记录);Tokens(我的开发者 Key 与吊销)。 - Web hosting 预览:test 版本放进电脑(1440×900)/ 平板(820×1180)/ 手机(390×844)三种框里看;「发布到 Nexus」「回滚到这个版本」先给计划(从哪个版本到哪个版本)再确认。
- 清单
deviceType(Workshop 的 device type):"mobile"= 按手机设计;不写 = 电脑。不带默认值,存量应用的版本指纹不变。 - Nexus 手机入口(Mobile application launcher):
/nexus/m登录后到/nexus/<公司>/m,只列已发布的手机应用,大按钮、可搜索、点进去就是应用。 aidc app init加--device-type desktop|mobile、--object-type、--action-type;Creator 的scaffold_app加同名参数deviceType、objectType、actionType(semantic 模板绑定公司 Ontology 里真实的类型与 Action)。
变更
/developer/<公司>/ontology/proposals[/<id>]转到 Semantic 的提案页(/semantic/<公司>/proposals[/<id>]):Ontology 的分支与提案属于 Semantic;CLI、SDK 给的 reviewUrl 照旧能用。- 应用目录与应用页标出手机应用(目录每行「手机」、Information「设备」一行)。
1.34.0 — 2026-10-01
Python 客户端照 OSDK:客户箱上的智能体自己就能用 Semantic:Loop 迁进 Semantic 由各部门的智能体自己做(读数据、改脚本、发布看板),平台验收。为此把箱上已经在用的 aidc_semantic.py 收回仓库,并照 OSDK 补上对象集、聚合与 Action。写法与 JS SDK 的 semantic.ontology() 一一对应。
新增
aidc_semantic.ontology():objects(类型).where({...})(OSDK 的 WhereClause)、pivot_to/union/intersect/subtract、fetch_page(page_size, order_by, select)、iterate()、fetch_one(主键)、aggregate({"$select", "$groupBy"})(exact、$exactWithLimit、$fixedWidth、$ranges、$duration)、count();action(名).apply(参数, validate_only=…)/apply_batch;object_types()、action_types()。aidc_semantic.publish_loop_report(html, slug, title, …):整页看板发布进 Semantic(对象loopReport,Actionpublish-loop-report;内容没变就不发)。- 凭证:环境变量没有就读
$HERMES_HOME/.env(智能体自己的 profile;不读~/.env、./.env)。读数据AIDC_API_KEY(智能体的只读 Agent Key),发布另用受限 KeyAIDC_AGENT_KEY。 - 仓库里的
aidc_semantic.py与客户箱上运行的版本一致:connect()(DB-API 2.0,source=库名时把原 T-SQL 改写到原表镜像、shadow=原连接影子对照)、sql()、objects()。
变更
- Key 只发给
https://www.ai-dc.ai(调试可用 localhost),不跟随重定向(原来任意AIDC_SEMANTIC_API都会带 Key、会跟随 302)。
1.32.0 — 2026-10-01
应用的 Auto-refresh:看着的看板实时跟着数据走(Workshop Auto-refresh):Loop 看板迁进 Semantic 之后,原来「每 5 分钟整页重算、整页上传」的 cron 不再需要,但页面打开着也不会自己更新。补上 Auto-refresh:应用设置里打开,打开着的页面注册它要看的对象集,Ontology 里的数据一变(上游同步、Action、数据 SDK 写入)就自己重新取数。设计:aidc-cloud docs/semantic-applications.md §8。
新增
- Workshop Auto-refresh:模块定义
settings.autoRefresh: { enabled, minimumSecondsBetweenRefresh(≥ 10,照官方), objectSets?(注册的 Object set 变量;缺省 = 当前页读到的全部类型) }。页面右上角显示「自动刷新」;页面在后台时不刷新,后台超过 1 分钟断开,回到前台补一次。 GET /api/v1/workshop/modules/{module}/autoRefresh?page=&version=&after=(text/event-stream):ready→refresh({ seq, objectTypes: 变了的类型 },只推「要刷新」,不推对象内容)→ 约 280 秒reconnect(带after续传)。没开 Auto-refresh 的应用回 409。- 看着的页面算一直在读:数据源是按需同步的(有人读、比 TableImport 的
freshness.maxAgeSeconds旧才叫醒客户箱)。开着自动刷新的页面每 30 秒按同一条规则核一次——数据比 maxAge 旧才同步,同步带来了变化才刷新;页面关掉就不再同步(闲时为零)。对象集订阅(SDKsubscribe)同样:订阅着就按 maxAge 同步它依赖的类型。 - Custom widget(Custom widgets 嵌进 Workshop):组件
{ type: "customWidget", widgetSet: "<应用 slug>", height }把本组织托管的应用(widget set)嵌进模块,显示它 production 的版本。应用照旧在沙箱里、凭应用票据按看的人的权限读本体。原样保留的 Loop 大屏用这个迁进 Semantic:页面代码不改,数据改从 Semantic 读、订阅变化实时重画。
修复
- 对象集
in过滤带上千个值时很慢(1,000 个值 11 秒,FIX-0172):值多时编成一次= ANY,同一个查询 1 秒内。
1.31.0 — 2026-10-01
组织、用户与组(Organization / User / Group,Owner 10-01):原来的「组织五层模型」(集团 › 公司 › 部门 › 岗位 › 场景,C-suite、≤10 个中枢部门、组织编码树、数字员工挂在部门 / 岗位上)是 AIDC 自己发明的,不是标准做法。标准的组织架构是平台预置的:组织 → 用户(带属性)→ 组(可以嵌套),访问授给组。旧的组织数据清空,按标准重做,先在 AIDC 自己的组织上试。设计与对照:aidc-cloud docs/organizations.md。
新增
- 组:
/api/v1/admin/groups(List / Create)、/{groupId}(Get / Replace / Delete)、/getBatch、/search、/listCurrent、/{groupId}/groupMembers(transitive、includeExpirations)、/groupMembers/add | remove、/membershipExpirationPolicy。成员是账号或组(嵌套、不能成环),可带到期时间;组可以规定新成员多久内到期。建组、改组、加减成员:组织管理员(本组织开发者)。 - 用户:
/api/v1/admin/users(List)、/getCurrent、/{userId}、/getBatch、/search、/{userId}/groupMemberships;主组织恰好一个(挂的公司,或最早兑换的 License),别家的 License = 访客;multipass:开头的保留属性由平台从账号算出。AIDC 扩展PUT /{userId}/attributes:身份源属性(department、jobTitle…),主组织的组织管理员维护。 - 组织:
GET /api/v1/admin/organizations/{rid}(RID = cellId)。 - 组接到访问判定上:资源分享、Marking 成员与角色、Semantic 对象安全策略的
group条件都认组(id 或组名);用户属性进安全策略的用户属性。 - SDK:
semantic.admin.groups / group / searchGroups / currentGroups / createGroup / replaceGroup / deleteGroup / groupMembers / addGroupMembers / removeGroupMembers / groupMembershipExpirationPolicy / replaceGroupMembershipExpirationPolicy / users / user / searchUsers / groupMemberships / replaceUserAttributes / organization。 - CLI:
aidc semantic admin groups …、aidc semantic admin users …、aidc semantic admin organization。 - 控制台:组织 › 用户、组织 › 组(照 Platform Settings 的 Users / Groups)。
- 新错误码:
group_not_found、group_name_exists、principal_not_found、invalid_group_membership_expiration、attributes_not_editable、user_not_found、organization_not_found。
变更
- 成员账号只要属于一家公司,不再需要部门;没有部门的成员在工作台看得见的智能体 = 公开的 + 授给本人或所在组的(访问判定)。还挂着旧部门的账号照旧按部门。
- 自助注册、新建智能体不再要求部门;
cell-x:dept:<部门>只剩旧部门的组织在用,新分享一律写组 id。
1.30.0 — 2026-10-01
开发工作进 Semantic:AIDC 自己当 Semantic 的用户(Owner 10-01):需求、开发任务、指派、PR、智能体开发会话、文件都是 Ontology 里的对象;派任务、接受、提交验收、验收都是 Action(Action Log 记着谁在什么时候做的);该让人知道的 Action 会发邮件,逾期和超过一天没接受的任务每天提醒;开发工作台看每个人的响应速度与交付。为此平台补上两块:Action 的通知、Automate 的 Run on all objects 与取自对象属性的收件人。设计与对照:aidc-cloud docs/semantic-dev-work.md。
新增
- Action 的通知(Action 的 Notification side effect):Action 定义里的
notifications——收件人取自参数、对象参数的属性(对象上存的账号 ID)、执行人或固定账号;subject/body模板写{{{参数}}}、{{{对象参数.属性}}}、{{{actionTriggerer}}},按改动之前渲染,渲染后超长截断(标题 250 字、正文 1,000 字);link指对象参数、这次新建的对象或一个 URL。所有改动提交之后每人一封,经平台唯一的外发出口(外发账 NotifyMessage,app = action:<Action>)。缺省有一个收件人不合格(不是本组织的人、账号停用、看不到这次引用的数据)整个 Action 不执行;notificationSettings.renderingSettings: anyNotificationRenderingCanFail只发给合格的人。预演返回会发给谁与渲染后的内容。定义时校验收件人、模板引用与 link。 - Automate · Run on all objects:条件
runOnAllObjects(对象集 + 时间表 every / at / weekdays),到点对集合里现在的全部对象跑效果——「逾期」「超过一天没处理」这种因为时间过去才进集合的提醒(变化账里没有记录,Objects added 看不到)。 - Automate · 取自对象属性的收件人与每个对象一次:邮件通知的收件人
{ type: "propertyBacked", property }(触发对象上存的账号 ID 或账号邮箱);executionMode: { type: "perObject" }每个对象一封,标题也按这个对象渲染。 - 样板
developer/apps/dev-work:六个 Object Type(员工、需求、开发任务、合并请求、开发会话、文件——文件本身是附件,用 1.28.0 的 Attachments)、十一个 Link Type、十八个 Action(九个带通知)、两条数据流、三个提醒(任务超过一天没接受、任务逾期、开发周报)、开发工作台(Workshop 模块:总览里每个人的响应时间与周期用 Ontology SQL 算、任务、需求、交付、会话与文件)、采集端(读 GitHub 的 PR 与智能体会话的导出,发到数据流)。
修复
- date 属性的相对日期过滤在东八区早了一天(FIX-0170):
relativeDateRange把「北京的今天零点」那一刻的 UTC 日期拿去比date属性,「早于今天」实际成了「早于昨天」——逾期要晚一天才算。现在date属性比时区里的日历日,timestamp属性照旧比那一刻;对象集、Automate 条件、Workshop 变量都走同一处。
1.29.0 — 2026-10-01
发布车道:客户箱上的整页报表直接进 Semantic:两家客户站点的 Loop 页面(每天上万次整页 HTML 上传、两万多次回读)是站点费用的大头。改成标准做法:报表 = 对象(loopReport,主键 slug),整页 HTML = 它的媒体引用属性(背后是公司自己 S3 里的「Loop reports」媒体集,同路径覆盖、有版本历史),发布 = 执行一个 Action;字节从箱子直传 S3,不经过平台,内容没变就不发,发完不回读。设计:aidc-cloud docs/semantic-media.md §11。
新增
- 受限 Agent Key(Developer Console 的 application restrictions):签发时带
restrictions: { operations: ["api:use-ontologies-read", "api:use-ontologies-write"], objectTypes, actionTypes }。只能读列出的类型、往它们的媒体属性直传、执行列出的 Action;别的 Semantic 接口一律 403,聊天网关、文件、设备、成员认领都不认它;没有媒体集角色(经本体的属性读写)。原来的 Agent Key 不变(只读)。 - 属性上传的直传会话(Upload Media Content 的直传形态,AIDC 补充):
POST /api/v1/ontologies/{o}/objectTypes/{t}/media/{p}/uploads→ 按预签名 URL 直传 →…/uploads/{id}/complete(带分片清单)拿 MediaReference(DELETE …/uploads/{id}取消)。一律分片上传(哪怕一片),完成后 URL 作废;重试已成功的完成原样返回同一个引用。受限 Key 单项最大 64 MiB,只能上传整页 HTML 与图片、PDF、音视频这类不会执行的类型。 - SDK:
client.uploadMediaContent(类型, 属性, 文件, { mediaItemPath, contentType })。CLI:aidc semantic upload-media <类型> <属性> <文件>。 - 箱上发布脚本
developer/semantic-agent/publish_loop_report.py(Python 标准库):Key 只从环境变量或$HERMES_HOME/.env读、只发给 www.ai-dc.ai;内容按 sha256 去重(24 小时向服务端核对一次);同一 slug 加锁;429 / 5xx 退避重试;输出与旧 helper 兼容。 - Object View:PROMINENT 的整页 HTML 媒体属性放进沙箱 iframe 显示(不带 allow-same-origin);
?embedded=true全屏(链接、电视大屏用);/semantic/<组织>/…的深链先登录再回到原页。
变更
- Action 提交时,对象改引用与媒体项转 LIVE、附件关联在同一个写库事务里(之前在提交之后另做一步:并发或重试时对象可能指向一个被覆盖的版本)。引用这个属性媒体集里一个被覆盖的旧版本 = 回滚:拷成同路径的新版本。自己上传的媒体项总能被自己引用(重试同一个请求)。
- 同一个直传会话被并发完成两次,只有一个成功(之前第二个会 500)。
- 读内容:UTF-8 的
text/*补charset=utf-8(文件自己声明了别的字符集就不补);浏览器在地址栏直接打开会执行的类型(白名单以外的一律算:HTML、SVG、各种 XML、脚本、没见过的类型)时,不在存储的源上顶层运行(本体属性去 Object View 全屏视图,媒体集接口按附件下载);302 带Vary: Sec-Fetch-Dest。 - 同一次提交里同一个源媒体项被引用多次只拷一份;临时媒体拷贝失败时还给调用方。直传会话多了 COMPLETING 状态(函数中途被杀的由清理任务收掉);清理时 S3 没删成的键不标 PURGED、下轮再删。
- 上传时声明的类型只看 type/subtype(
text/html; charset=utf-8不再被当成application/octet-stream);没声明时按扩展名猜。 - 清理任务按公司批量删(一次最多 1,000 个键),PURGED 30 天后、结束的直传会话 7 天后连记录一起删;Agent Key 的 lastUsedAt 最多 5 分钟写一次。
待 Owner 拍板:直传会话这一类补充接口(docs/semantic-media.md §10 第 1 项扩到属性上传);受限 Key 的签发与每个 box profile 一把的做法;报表对象类型与 Action 的名字(loopReport / publish-loop-report,经提案由人合并)。
1.28.0 — 2026-10-01
非结构化数据:Media sets 与 Attachments:Owner 要 Semantic 除了结构化数据,也管文件、图片、文档、音视频,文件放在客户自己的存储里、智能体读得到,设计用标准的媒体集与附件、存储用 S3。补上这一块:字节在这家公司自己的 S3 桶里,Semantic 只存元数据和媒体引用。设计与对照:aidc-cloud docs/semantic-media.md。
新增
- Media sets(MediaSetsV2):schema(IMAGERY / DOCUMENT / AUDIO / VIDEO / SPREADSHEET / EMAIL / DICOM / MULTIMODAL…)、additional input formats、transactionless / transactional(一个分支一个事务、提交后可读、放弃全删、一个事务最多 10,000 项)、同路径覆盖与版本历史、软删、保留策略(缩短立即生效)、虚拟媒体集(登记公司存储里已有的文件,不拷贝)。按文件头认格式;第一次读时抽类型化元数据(尺寸、页数、时长、表名、邮件头)。API
/api/v1/mediasets/**(Get Media Set、Put / Register / Info / Read / Metadata / Reference / Clear、Transactions、Transform、Upload Media)。 - 本体里的媒体:媒体引用属性配 media source(定义的
datasources里{ type: "media", mediaSourceRids, properties },对外报mediaSetView);Attachment 属性(单值 / 多值);Action 参数用临时上传的媒体和附件,提交成功后才进属性的 Upload destination / 关联到对象;附件一小时内要用上、一生最多关联 10 个对象、最大 200MB。API:Upload Attachment、Get Attachment(Content)、List Property Attachments、Get Attachment Property(By Rid / Content)、Read Media Content、Get Media Metadata、Upload Media Content。 - 访问:媒体集是统一访问模型里的资源(
ri.mio.aidc.media-set.<uuid>),沿 Ontology 继承、可分享;把媒体集加进本体 = 访问控制交给本体(看得见对象属性就能读它的媒体);Agent Key 只读。 - 智能体读文件:
documentToText · extractAllText(PDF 全文、TXT)。 - 大文件:直传会话(预签名 URL,16 MiB 分片),单项最大 50 GB;读内容 302 到预签名 S3 地址,字节不经过平台。
- /semantic 界面:Media sets 列表与详情(上传、拖拽、预览、Metadata、Version history、Extract text、删除、保留策略、分享、虚拟同步);Object View 直接预览媒体引用属性,附件可下载。
- SDK:
semantic.mediaSets.create / list / get / update / remove / upload / uploadLarge / register / sync / items / getRidByPath / info / metadata / reference / read / readOriginal / clear / transactions / transform / extractText / uploadMedia;client.media(类型, 主键, 属性).fetchMetadata() / fetchContents()、client.attachments(…)、client.uploadMedia(…)、client.uploadAttachment(…)(照 OSDK);请求可带文件字节(body),204 返回 undefined。 - CLI:
aidc semantic media-sets list | show | create | items | upload | sync | metadata | download | text | clear | retention | transaction。 - 新错误码:
media_set_not_found、media_item_not_found、invalid_media_item_schema、missing_media_item_path、media_item_path_invalid、media_item_rid_already_exists、media_set_open_transaction_already_exists、conflicting_media_set_identifiers、transformation_unavailable、transformation_not_found、transformation_input_too_large、transformed_media_item_not_found、attachment_not_found、attachment_size_exceeded_limit、media_upload_destination_not_configured。
待 Owner 拍板(docs/semantic-media.md §10):补的 REST 接口(建 / 列 / 改 / 删媒体集、列媒体项)、大文件直传会话、302 读内容、Upload destination = 第一个 media source;虚拟媒体集的下一步源;下一批变换。
1.27.0 — 2026-10-01
Applications:日历区间用 Date / Timestamp 变量(照 Workshop 的 Variable transformation):生产核对时发现,用 relativeDateRange 写的「当月」「本年度」「上月」只在月初碰巧对——官方语义是「相对今天前后几天 / 几个月」,不对齐日历。
新增
- Date / Timestamp 变量:
transformation: { startOf: day | week | month | quarter | year, offset, timeZoneId }(周一起;按时区取零点)。 - 对象集过滤绑定变量:值写
"{{变量}}",可加格式:date(YYYY-MM-DD)/:month(YYYY-MM)/:year/:timestamp(UTC 时刻);保存时校验绑定的变量存在且是 Date / Timestamp。 - SQL query 变量的参数也能绑 Date / Timestamp 变量。
1.26.0 — 2026-10-01
Applications:用 Workshop 在 Semantic 上建应用(Owner 10-01):看板、报表不再写成一份 HTML 整页上传到客户站点——在 Semantic 里建一个 Application(Workshop 模块),只存定义(页面、分区、组件、变量),数据每次打开时按看的人的权限从 Ontology 现算,没人打开就不计算、不同步、不叫醒客户箱。设计与对照:aidc-cloud docs/semantic-applications.md。
新增
- Workshop 模块:Header、Pages、Sections(columns / rows / flow / loop,Flex 比例);组件 Metric Card、Object Table(翻页、点行进 Object View)、Chart: XY(柱 / 横向柱 / 折线,Segment by,按时区分桶)、Chart: Pie、Pivot Table(行 × 列、合计)、Filter List(输出 Object set filter,状态在 URL)、Markdown、Data Freshness、Object Set Title;变量 Object set(REST API v2 的 ObjectSet,可套筛选)、Numeric(Object set aggregation / SQL query / Static)、String、Object set filter、Struct array(SQL query:对象集绑成表、变量绑成参数,走 Ontology SQL,< 10,000 行),Loop layout 遍历 Struct array。
- 只算当前页(lazy variable loading);读前按数据源新鲜度按需同步(「立即同步」最多等 20 秒);一个组件出错只影响它自己;读不到的类型组件显示无权限。
- 版本与发布:保存 = 新版本(只增);用户看到发布的版本;智能体可以保存版本,发布只能由人(作者是智能体的版本要在网页上发布)。
- API:
GET|POST /api/v1/workshop/modules?ontology=(?dryRun=true只校验)、GET|DELETE /api/v1/workshop/modules/{rid}、GET …/versions、POST …/versions/{n}/publish、POST …/evaluate(智能体用应用:每个组件一份数据)。 - CLI:
aidc semantic applications list | save [--dry-run] [--publish] [--as-agent] | show | versions | publish | evaluate。 - 页面:
/semantic/<组织>/applications(侧栏新增 Applications)。 - 新错误码:
workshop_module_not_found、workshop_version_not_found。 - 聚合按时间分桶可按时区(内部参数;REST API 照官方仍按 UTC)。
1.25.0 — 2026-10-01
Vercel 与 Supabase 的资源进了 Semantic:静态 + 动态 + 可省判定(Owner 10-01):以前 Semantic 里只有这两家的账单(cloud.account / cloud.cost,只有金额)。现在有哪些项目 / 库、什么规格、在做什么、能不能省钱,也是对象。设计:aidc-cloud docs/semantic-cloud-resources.md。
新增
- 样板
developer/apps/cloud-resources:Object TypevercelTeam/vercelProject/supabaseOrg/supabaseProject(每个对象三层:静态、动态、判定),InterfaceCloudSavingTarget(三个类型实现它,一个查询看全部「每月可省多少」,AWS 以后实现同一个),四个 Link Type(团队 / 组织 → 项目;到cloud.account的 billing,本月实账沿链接读),两个只写语义层的 Action(set-vercel-project-policy/set-supabase-project-policy:负责人、用途、重要程度、先留着到哪天),四条数据流,边缘采集端(一次跑完,把每个资源的判定打印出来)。 - 判定是派生的、证据不够只到「待核实」:
verdict(ok / watch / verify / reduce / retire)、savingKind、savingUsd(每月可省的上限,口径写在savingBasis)、reasons(带数字的依据)、blockers。Vercel:预览构建占大头、Fluid 内存占大头(长连接特征)、回源流量、闲置项目;Supabase:库放得进更小的规格(差额按组织账单算,已扣自带的 $10 额度)、内存吃紧、连接快满、付费套餐却没有项目在跑。没有 CPU 指标就不说「可省」。 - 动态层不多调 API:Vercel 项目的用量(构建、Fluid 内存、回源流量、函数调用)从团队账单明细里派生——就是云账单采集每天已经取的那批行;Supabase 用管理 API 的
analytics与库里三条固定的只读查询(read_only: true,只碰系统视图与auth.users的个数,不读业务表)。时序属性:costSeries(每日费用)、apiRequestsSeries、dbSizeSeries(逐日累积)。 - 云端采集接在每天一次的云账单采集后面(
cloud-resources.collect.ts),也随「立即同步」(aidc semantic datasource sync)在后台跑一次;不新增 cron、不轮询、不挂连接;没声明那四条流、没有令牌就什么也不做;一个团队 / 组织取不到就沿用上次的行,不让 mirror 当成消失。 - 测试:纯函数(
cloud-resources.normalize.test.ts,形状取自真实盘点)、定义自检(引用闭合;流字段 = 属性映射 = 采集端的行)、带库的采集(只发只读请求;沿用上次的事务累计;失败的团队沿用旧行)、端到端流程(定义 → 灌流 → 对象 / 派生实账 / 时序 / 链接 / Interface 汇总 / Action 写回不被同步冲掉;CLOUD_RESOURCES_EVENTS_DIR可改灌真实取数)。
1.24.0 — 2026-09-30
数据安全:Markings + 对象 / 属性安全策略:财务、薪资、采购价、技术配方这类数据也要进 Semantic,但要管住谁能看。补上这一块:Markings 管「这类数据只有谁能碰」,对象安全策略管行,属性安全策略管列,所有读写路径统一按读的人判定。设计与对照:aidc-cloud docs/semantic-security.md。
新增
- Markings(AdminV2 / FilesystemV2):类别(CONJUNCTIVE / DISJUNCTIVE,Visible / Hidden)、Marking、成员(人或组,组里新来的人自动是成员)、角色 ADMINISTER / DECLASSIFY / USE;建了不能删。挂在 Ontology、Object Type、数据流、TableImport 上:满足全部才看得见,不看角色(Owner、开发者也一样),只限制、不授予,沿层级(Object Type ← Ontology)和数据依赖(数据流 / TableImport → 用它的类型的对象)传播。API
/api/v1/admin/markingCategories、/api/v1/admin/markings/**、/api/v1/admin/users/{userId}/getMarkings、/api/v1/filesystem/resources/{rid}/markings | addMarkings | removeMarkings。 - 对象安全策略、属性安全策略、
marking类型的属性(Object / Property security policies、mandatory control property):写在 Object Type 定义里(objectSecurityPolicy、propertySecurityGroups、dataSecurity.markingConstraint);条件支持 and / or / not、组、用户属性、属性比较(EQUAL / INTERSECTS / SUBSET_OF / SUPERSET_OF)、行上的 Marking、常量 Marking;照官方上限(10 个比较、权重 10,000、不能对组或 Marking 成员取反)。看不见的行不出现,看不见的属性读到 null,也不能拿来筛选、排序、聚合。 - 所有读写路径按读的人判定:Ontology API(对象、对象集、聚合、计数、链接、时序)、对象集订阅(离开只通知原来看得见的人)、编辑历史、旧数据 API、/semantic 页面、自动化、工作流。Action 照官方四条:能新建自己看不见的对象;改属性要看得见它现在的值;删要看得见整个对象;链接两端都要看得见;Action Log 类型带着被改类型的全部 Marking。自动化按拥有者的权限,邮件通知按每个收件人过滤。Ontology SQL 不含受保护的类型。
- 改安全策略要有权限(OMS 的规则):改的人要满足改前改后涉及的全部 Marking,新加要 USE,去掉或停止继承要 DECLASSIFY + USE;智能体在分支上改、开提案,带安全改动的 task 在审核页标出来,由满足条件的人批准、合并。定义的
--dry-run自测时权限不够照样给出结果,「要谁来批」写在 warnings 里。 - 试策略:
POST /api/v1/ontologies/{ns}/objectTypes/{type}/security/test(照 Ontology Manager 的 Test security policies;只给开发者,结果不带属性值);读对象带loadPropertySecurities(官方)拿属性的安全标记。 - SDK:
semantic.admin.markingCategories / createMarkingCategory / markings / createMarking / markingMembers / addMarkingMembers / markingRoleAssignments / addMarkingRoleAssignments / userMarkings …、semantic.filesystem.resourceMarkings / addMarkings / removeMarkings、client.testSecurity(类型, {…})、fetchPage({ $loadPropertySecurityMetadata: true })(照 OSDK)。 - CLI:
aidc semantic admin marking-categories …、aidc semantic admin markings …(成员、角色、mine)、aidc semantic filesystem markings | mark | unmark <rid>、aidc semantic security test <类型>。 - 新错误码:
marking_not_found、marking_category_not_found、marking_name_exists、last_admin_protected(至少要留一个 ADMINISTER)。
修复
- 分支预览(
--branch)能放宽读权限(FIX-0162):以前按分支上的定义判读权限,分支把部门级类型改成全公司、或放宽安全策略,预览就能读到 main 上读不到的数据。现在 main 上已有的类型按 main 与分支里更严的那份判定。
待 Owner 拍板(docs/semantic-security.md §8):开发者与平台员工也受 Markings 约束;Ontology SQL 暂不含受保护类型;Action Log 取最严;服务用户;文件与数字员工的 Markings;平台后台只读 SQL 不走受保护视图。
1.23.1 — 2026-09-30
修复
- 定义列表(
aidc semantic types/GET /api/v1/developer/semantic/{ns}/types)里用rules写的 Action 看不到规则、提交条件与 writeback webhook(FIX-0159):AWS 本体上生产后核对「关机」Action 时发现,列表只给旧写法的几项(operation还缺省成modify),护栏看起来像丢了(库里其实完整)。现在原样带出rules、submissionCriteria、webhooks、actionLog、toolDescription,没有 operation 的报rules。
1.23.0 — 2026-09-30
Action 能真的改源系统了:writeback webhook;AIDC 的 AWS 服务器进了 Semantic(Owner 09-30):Owner 要在 AIDC 的 Semantic Ontology 里给 AWS 服务器建模,用 Semantic SDK 开发、边用边修,并把 Action 设好、实测能不能真的自动关机。设计与对照:aidc-cloud docs/semantic-aws.md。
新增
- Action 的 writeback webhook(Action 调 Data Connection 的 webhook):定义里
schema.webhooks.writeback: { webhook: "<数据源>/<名字>", inputs: { 输入: 取值表达式 } }。校验通过之后、规则之前调用源系统;失败(源系统拒绝 / 超时 / 限流)整个 Action 不生效、语义层一条都不改,返回webhook_failed(新错误码);输出在规则里用$writeback.<输出>;事件留痕里有 webhook 的输入、输出与耗时。只校验与预演不调用;有 writeback 的 Action 不收 applyBatch。定义时校验 webhook、必填输入、输出引用与数据源可用性(分支合并多一项 merge checkwebhooks)。 - AIDC 平台的 AWS 数据源(Data Connection · Source
aws,只给 AIDC 组织):只读同步 EC2 实例、EBS 卷、账号汇总到数据流aws-instances/aws-volumes/aws-accounts(每小时一次、点「立即同步」、webhook 成功之后);webhookaws/ec2-stop-instances(已经停了就不调用;同步之后重启过就不关)、aws/ec2-start-instances、aws/ec2-set-tag(只改aidc:开头的标签)。 - 样板
developer/apps/aws-servers:本体awsAccount/ec2Instance/ebsVolume(Value Typeec2InstanceState,派生属性沿链接读 Cost Explorer 实账)、四个 Action(关机、开机、设置自动关机、到时自动关机)、自动关机工作流aws-auto-stop(实例一变就判断,到时执行 Action,再发通知)、边缘采集端。 - CLI
aidc semantic datasource sync:平台数据源立即同步(与 /semantic 的「立即同步」同一个接口);SDKdata.sync.platform()。
修复
- 标准写法的 Action / Object Type 在工作流与应用 API 里调不到(FIX-0158):能力引用与应用 API 名收 camelCase / kebab-case(
aws-auto-stop/auto-stop-ec2-instance、…/apis/ec2Instance/execute)。 - 只有清单的应用部署不了(FIX-0158):没有界面、能力与工作流都写在清单里的纯自动化应用不再被当成空包。
- 定义里拼错的字段被悄悄丢掉:比如把
submissionCriteria写成submissionCriterias,以前照样定义成功、Action 却没了提交条件;现在直接拒收并给出路径(schema.submissionCriterias)。样板quote-demo三列一直写成description的说明改为comment。 - CLI 的输出接管道时在 64 KiB 处被截断(
aidc semantic object-types | jq拿到半截 JSON):退出前等输出写完。 - 定义时多一条设计提醒:Action 的规则改了从数据源同步来的属性(语义层的改动会一直盖住之后同步来的值;改源系统用 writeback webhook)。
1.22.0 — 2026-09-30
自提升并进自进化,一个 SDK,名字叫自进化(evolve):自提升(improve,证据 → 提案)与自进化(evolve,用户在应用里直接改)本来就是同一件事的两半——界面改不了的改动就是一条应用类提案,用户在应用里做过的改进就是证据;文档里还专门写着一张「分工」表。现在是一个 SDK、一页文档、一个命令组。SDK 从十个变成九个(界面、视觉、语音、视频、模型、建模、语义、自进化、发布)。
新增
- 浏览器 SDK
evolve多了证据与提案那一半:evidence/suggest/propose/proposals/decideProposal/apply(应用里的改进的decide不变——decide管应用里的改进,decideProposal管提案)。 - CLI
aidc evolve多了evidence/suggest/proposals/propose --spec/accept/reject/apply;propose、reject两边都有:带<slug> <id>两个参数的是应用里的改进,其余是提案。 - API:提案那一半在
/api/v1/developer/evolve/{命名空间}/evidence | suggest | proposals[/{id}[/apply]];应用里的改进挪到/api/v1/developer/evolve/{命名空间}/apps/{slug}/overlay | compile | improvements[/{id}]——多的apps/一段让它们不会和名叫proposals/evidence/suggest的应用撞路径。 - OpenAPI 契约多了
deprecated:旧路径在openapi.json里标成已弃用,摘要里写着新路径。
变更
APP_SDKS/SDK_NAMES去掉improve;improve进LEGACY_EVOLVE_SDKS,和 1.20.0 并进 Semantic 的六个旧名走同一套:清单sdk照收、解析时归一成evolve,部署分析把import { improve }算作用了evolve,登记表读存量版本时归一,显示「自提升 → 自进化」。- 文档:
/developer/docs/evolve是合并后的一页(两半 + 旧名一节),/developer/docs/improve永久重定向到它;总览、Skill、llms.txt、官网 /developer、Academy(四语)都改成九个 SDK。 - 服务端
developer-improve.ts改名developer-proposals.ts(ImprovementProposal/AppImprovement两张表不动,没有迁移)。
兼容(v1 不破坏)
import { improve } from "/developer/sdk/v1/aidc.js"照旧:improve.evidence / suggest / propose / proposals / apply就是evolve的同名函数,improve.decide(id, "accept" | "reject")就是evolve.decideProposal(…)。aidc improve …照旧能用(子命令不变),stderr 提示改用aidc evolve …,stdout 的 JSON 不受影响。/api/v1/developer/improve/{命名空间}/…与 1.12–1.20 的/api/v1/developer/evolve/{命名空间}/{slug}/…原样转发到新路由,响应带Deprecation与指向新路径的Link。- 清单
"sdk": ["improve"]照收;库里存量版本清单里的improve读出来当evolve(入口页照样内联覆盖层)。
1.21.0 — 2026-09-30
Semantic Data Connection 与 Automate:客户箱上的定时任务换成「ERP 只被读一次 + 数据一变 / 到点才做事」(ConnectivityV2 / Orchestration / Automate,docs/semantic-data-connection.md)。
新增
- Connection / TableImport / Build(
/api/v1/connectivity/**、/api/v1/orchestration/builds/**;aidc semantic connectivity …):Connection 只写主机、端口、库名与客户箱上的凭证名(口令永不离开客户箱);TableImport = 一条只读查询(SELECT / WITH,SNAPSHOT 窗口或 APPEND 增量)→ 一个 dataset。执行时云端经 AWS SSM 叫醒客户箱上的 agent(不常驻、不轮询),agent 与本机上次的行哈希比,只回传变了的行。 - dataset 数据源:Object Type 定义的
datasources多一种{ "type": "dataset", "dataset": "<TableImport>", "propertyMapping": {…}, "mode": "mirror" }(与stream并列;改它 = 改本体)。还被定义用着的 TableImport 删不掉(409)。 - 自动连接:读由 TableImport 供数的类型(Ontology API、对象集、Ontology SQL)时,比
freshness.maxAgeSeconds旧就按需同步一次;?fresh=true/ SQL 的fresh: true等结果。没人读 = 不同步 = 不花钱。 - Automations(
/api/v1/automate/automations/**;aidc semantic automations …):条件 = Objects added / modified / removed(对象集,同步带来变化后评估)或时间条件(北京时间);效果 = 通知(钉钉 / 企业微信经客户箱上对应数字员工的凭证发出;AIDC 账号发邮件;静默时段顺延)、Loop 脚本(agentScript);replaces记下替掉了哪些 cron;expiresAt到期自动停(Automation expiration,最长 6 个月)。 - Python 客户端
aidc_semantic(随 agent 装在客户箱):Loop 脚本用sql()/objects()从 Semantic 读,由 Automate 运行时自带一次性只读令牌。 /semantic/<组织>/connections:agent、Connection、TableImport(新鲜度、上次执行、行数)、Automation(替掉的 cron、每天原来跑多少次)、最近的执行;开发者可立即执行。
1.20.3 — 2026-09-30
Demo Company 的示例数据里,连虚构的「客户」也不再用像真实公司的名字(Owner 09-30):6 家示例客户改称 Demo Customer A–F,联系人改称 Contact A–E,智能体名跟着改(如「小采·A」),ID 随之改为 cell-demo-a … f、demo-a-purchasing 这样的形式。接口、SDK 行为与数据结构不变。
变更
- 示例种子数据(
developer/apps/ontology-demo-data)、样板应用、文档与 Academy 里的命令示例同步;用到旧 ID 的地方(aidc semantic apply adjust-seats --param customer=…)改为cell-demo-a。 - 生产里 Demo Company 已有的数据由迁移
20260930030000_demo_customers_anonymous改名(只动cell-demo命名空间:语义层对象、变化账、Action 留痕;一一对应、不撞主键、重跑不改任何东西)。迁移在生产数据快照上验证过:结果与新种子数据逐字段一致。
1.20.2 — 2026-09-30
修复
- 还被 Object Type 用作数据源的数据流删不掉了(FIX-0157):原来删流会把同步进度一起删掉,定义里却留下接不上的数据源,之后重新定义这个类型被「流不存在」拒收。现在
aidc stream delete(aidc semantic streams delete)/DELETE /api/v1/developer/streams/{namespace}/{name}回 409stream_in_use,列出在用的类型(dry-run 同样判):先从定义里去掉数据源(改本体),再删流。
文档
- 「闭环」按 Semantic 重写:数据流 → Ontology → 数据源(写在定义里)→ 应用(对象集、订阅、Action)→ 访问 → 留痕 → 自提升 → 自动化。
- 智能体(
model.agent)的说明搬到模型 SDK页;API 参考按 Semantic 分组,补上 Ontology、对象集订阅、数据流、Ontology SQL、访问(Filesystem)的端点;其他页面里指向连接 / 数据 / 权限 / 工作流 / 日志 / 账单 SDK 的链接改成 Semantic 的对应部分。 - 样板
cloud-costs:两个类型的数据源写进定义(与生产一致),部署步骤改成先建流、再定义。
1.20.1 — 2026-09-30
对外公开的文档、示例、CLI 帮助、安装脚本与官网页面不再出现任何真实客户名(Owner 09-30):需要一家公司时只用 Demo Company;需要占位名时用中性的(old-portal、example.com、ACME)。没有接口、SDK 行为或数据结构上的变化。
变更
- 文档与示例:权限 SDK「导入成员」的示例来源与邮箱、闭环 / 语义 / 数据 / 日志 / 自提升 / 自进化文档里的示例应用(
production-live)、数据流(production-progress)、工单与线体号,全部换成中性示例;应用卡片与工作流示例里的智能体团队名改为「营业智能体-报价」这类叫法。更新记录里的现场实测记录改称「某客户」。 - CLI 帮助:
aidc members import的来源名、aidc stream发布端--label的示例文字改为中性说法。 - 官网 Harness 页、安装脚本(
install.sh/install.ps1)与/pair输入框:示例公司码改为占位ACME(不存在的公司码,照抄也不会绑到任何真实公司),与 Academy 的 Harness 课一致。 - 示例公司
cell-demo的对外名字改为 Demo Company(中英文一致):迁移20260930010000_demo_company_name只改显示名与 /semantic/public 目录里的资源名,数据与访问档位不变。Semantic · Ontology 示例应用只对登录的 AIDC 账号开放,清单里的auth.publicLink由open改为signin(与 1.17.0 起的实际行为一致),不对互联网匿名开放。 - 新增守卫
src/lib/public-names.test.ts:公开文档、官网页面、安装脚本、CLI 与 SDK 产物里再出现客户名,CI 会变红。
1.20.0 — 2026-09-30
Developer SDK 以 Semantic 为核心(Owner 09-30):Semantic 是 AIDC 的数据平台——数据从哪来、对象与 Action、谁能看、变了自动做什么、日志与用量都在 semantic 里。原来并列的连接、数据、权限、工作流、日志、账单六个 SDK 并进 Semantic,SDK 从十六个变成十个:界面、视觉、语音、视频、模型、建模、语义、自提升、自进化、发布。旧名照样能用(见「兼容」)。设计:aidc-cloud docs/semantic-sdk.md。
新增
- 数据源是 Object Type 定义的一部分(Ontology Manager 的 Datasources 页):定义里的
schema.datasources: [{ type: "stream", stream, propertyMapping: { 属性: 列 }, mode: "mirror" | "upsert" }]。定义时校验(流存在、列在流里、主键要映射、writeback/ 派生属性不映射);重新定义时没写datasources沿用现有的(去掉全部写[]);改数据源 = 改本体(智能体在分支上改、开提案,提案的 merge checks 多一项datasources);定义落了之后按定义建 / 改 / 删同步并全量同步一次。迁移20260930020000_object_type_datasources把已有的同步绑定写进对应类型的定义。CLIaidc semantic datasource list | set | remove | resync。 - 对象集订阅(照 OSDK
objectSet.subscribe):semantic.ontology().objects(t).where(…).subscribe({ onChange({ object, state }), onSuccessfulSubscription, onOutOfDate, onError }, { properties }),state=ADDED_OR_UPDATED/REMOVED;断线带序号续传、页面隐藏 1 分钟断开、刚连上就断按失败退避。POST /api/v1/ontologySubscriptions/ontologies/{ns}/streamSubscriptions(SSE;消息subscribeResponses、objectSetChanged、refreshObjectSet、subscriptionClosed照官方)。CLIaidc semantic subscribe <类型> [--where …]。 - Semantic 的子模块(名字照 Platform SDK 的命名空间):
semantic.stream()/semantic.streams(Data Connection · Streams:list、create、remove、issueKey、keys、revokeKey)、semantic.filesystem(访问与应用分享)、semantic.admin(getCurrentUser、viewer、signIn、can、members、importMembers)、semantic.automate(工作流)、semantic.observability(应用日志)、semantic.usage(用量与账单)。智能体的客户端connect.agent搬到model.agent。 - CLI
aidc semantic <子命令>:streams、datasource、subscribe、filesystem、admin、automate、observability、usage;aidc help按 Semantic 重排。 - AIDC 平台对象类型:
aidcApplication、aidcModelUsage(按天 × 应用 / Key × 模型的用量台账)、aidcAppEvent(应用日志)、aidcAutomationRun(自动化运行)可以作为只读的 Object Type 进组织自己的 Ontology——本组织开发者打开 /semantic 时智能体(数据库小艾)开提案,审核合并后才出现(关掉的同一批定义不再提);合并后、点同步、超过 1 小时有人看时按需同步;用量、日志、自动化运行只给本组织开发者(R-LEVEL group)。POST /api/v1/ontologies/{ns}/datasources/platform/sync对所有组织开放(本组织开发者)。 aidc app init --template semantic | workflow生成的代码改用semantic.ontology()、subscribe、applyAction与semantic.automate;清单只登记semantic。
变更
SDK_NAMES只剩十个;清单sdk里的旧名(data、connect、workflow、auth、log、billing)照收、解析时归一成semantic;部署时的静态分析把import { data }这类旧名算作用了semantic。- 工作流清单要求
sdk登记semantic(旧名workflow照收)。 - Ontology API 的
datasources视图改读定义(带propertyMapping、mode与同步进度);/semantic 的 Object Type 页的「Datasources」列出映射。 - 文档:语义 SDK 页按「Semantic 是数据平台」重写;连接、数据、权限、工作流、日志、账单六页地址不变,标题改为 Semantic 的对应部分。
修复
aidc resources …(1.18.0 起)报「未知命令」:命令组没登记。现在aidc resources与新写法aidc semantic filesystem都能用;加了守卫(CLI 分发里的每个命令组都要登记)。- 智能体作者经自提升
aidc improve apply能把语义补丁直接写进 main(绕过分支与提案):现在返回 409branch_required,和别处一样走分支与提案。
兼容
/developer/sdk/v1/aidc.js照样导出data、connect、auth、log、billing、workflow,和semantic.*是同一份实现(auth.me === semantic.admin.getCurrentUser、workflow.run === semantic.automate.run、connect.stream === semantic.stream…),已上线的应用不用改。- 旧的 API 路径、CLI 命令组(
aidc data / stream / connect / resources / members / log / billing / workflow)不变;旧的直接写对象(data.table().create / update / remove)只给开发者,文档不再推荐——改数据请用 Action。
1.19.0 — 2026-09-29
权限系统定名并补全(Owner 09-29 定稿):开放程度四档 Private / Group / Public / Open to Internet,角色 Owner / Editor / Viewer,只有 Owner 能改分享。
组织是默认的边界,Group 里最常用的分享对象是「整个本组织」。1.18.0 的三档 Private / Organization / Public 改名:organization → group,数据库里的授予不变,不需要迁移。
新增
- 一步设档位:
POST /api/v1/filesystem/resources/{rid}/access({"tier":"private|group|public|internet"},Owner);SDKauth.setResourceAccess(rid, tier);CLIaidc resources access <rid> --tier …。private撤掉所有分享,只剩 Owner;group撤掉 Public 与 Internet,还没分享给任何人时加整个本组织 Viewer;public加 Everyone Viewer;internet加 Internet Viewer。 - 部门作为分享对象:主体
cell-<公司>:dept:<部门 ID>;成员的部门取自账号的部门归属;分享面板里直接选部门。 - Open to Internet:新的授予主体
internet(任何人,不用登录,只读)。目前只有文件(/s/<组织>/<slug>的匿名只读入口);文件原有的 public 受众映射为这一档,行为不变;其他资源返回 422。它只管读:不登录不能调用 SDK、不能执行 Action、不能查 SQL。 - Owner 可以有多个:创建人是第一个,再加别人为 Owner 即「把所有权交给别人」。
- 界面:分享面板改成四档阶梯(
SharePanel),加分享给谁的快捷项(整个本组织、开发者、各部门)、授予行上的角色下拉、Open to Internet 二次确认;Semantic 侧栏「Share」改叫「Access」。
变更
- 只有 Owner 能改分享:授予、撤销、设档位、建邀请链接都要 Owner。原来的「只能授予同级或更低的角色」「扩大访问要 Owner」由这一条取代;Editor 与 Viewer 都不能改分享。
- Public 与 Open to Internet 只能给 Viewer(原来 Public 也允许 Discoverer)。
- 不再有 Discoverer:角色只有 Owner / Editor / Viewer;接口不再接受
discoverer。 - 「共享链接」改叫「邀请链接」(属于 Group;只给 Viewer):
aidc resources link去掉--role,SDKauth.resourceLink去掉roleId。 generalAccess的取值改为private | group | public | internet;GET /api/v1/filesystem/resources?scope=public也列出 Open to Internet 的资源。- 文件的
/s/读判定走统一的decideAccess:授予给本组织、部门、具体账号、Public 都认;智能体自带的可见性、文件自带的受众是档位的下限,调得更窄返回 409。
1.18.0 — 2026-09-29
AIDC Semantic 平台上线(www.ai-dc.ai/semantic):面向 AI 的企业数据平台,登录进去就是自己组织的 Ontology——图、Object Explorer、Action、SQL Console、提案审核、Share;用标准的 Ontology 构件与名字,底层是每个组织一个 Postgres schema。同时落下 AIDC Cloud 统一的 Public / Private / Share。
新增
- Semantic 数据库(Ontology SQL):每个组织按需建一个 schema,每个 Object Type / 多对多 Link Type / Interface 一个只读视图(表名 = API name,列名 = 属性 API name);两个只读登录角色(本组织
reader、只看 Public 类型的public);一条 SELECT、≤ 10,000 行、20 秒、位置参数、EXPLAIN。POST /api/v1/sqlQueries/executeOntology、GET /api/v1/ontologies/{ns}/database、…/database/sync、…/database/credentials(开发者轮换口令拿只读直连串)。SDKsemantic.sql()、semantic.database()、semantic.syncDatabase()、semantic.rotateDatabaseCredentials();CLIaidc semantic sql、aidc semantic database [--sync | --rotate]。 - Public / Private / Share(FilesystemV2 Resources / ResourceRoles):Ontology、Object Type、数字员工、文件共用一套访问设置——一般访问 Private / Organization / Public(Everyone = 所有登录的 AIDC 账号)、角色 Owner / Editor / Viewer / Discoverer、只能授予同级或更低、扩大访问只有 Owner、Ontology → Object Type 继承、共享链接(登录后兑换)。
/api/v1/filesystem/resources[/{rid}[/roles[/add|remove]|/links]]、/api/v1/filesystem/links/redeem、/api/v1/filesystem/principals。SDKauth.resources()、auth.resourceRoles()、auth.addResourceRoles()/removeResourceRoles()、auth.shareResource()、auth.resourceLink();CLIaidc resources list | show | roles | share | unshare | link。 - Ontology API 认网页会话:
/api/v1/ontologies/**除了开发者 Key、Agent Key、应用票据,也认 /semantic 里登录的人;角色由 Public / Private / Share 决定(本组织开发者 = developer、成员 = member、别的组织按授予 editor / viewer);会话的写要过同源守卫。 - AIDC 自己的 Ontology:组织、数字员工、应用、服务器、模型用量、客户跟进;公开目录(产品、方案、SDK、模型、课程,授予 Everyone);客户成功的五个 Action。定义是代码,由智能体「数据库小艾」开分支与提案,人在 /semantic 审核合并;AIDC 平台数据源按需只读同步(合并后、开发者点同步、超过 1 小时有人看时)。
POST /api/v1/ontologies/cell-aidc/datasources/platform/sync。 - Demo Company(
cell-demo)的 Ontology 设为 Public(所有登录的 AIDC 账号,不含匿名)。
变更
- 公开文件:云盘文件在统一访问设置里授予了 Everyone / 某个账号后,经
/s/<cell>/<slug>也能读(包括还没加入组织的账号);原来的受众与指定账号不变。 - 提案审核页可以一次批准全部非破坏性的 task(仍是逐个提交审核)。
1.17.0 — 2026-09-29
一律登录(Owner 定,照 Google):用 AIDC Developer SDK 或 AIDC 应用做任何事都要先登录 AIDC 账号,member 起步。文档、目录、应用页、about.md、Skill 原文谁都能看;每一次调用都带凭证,落到「人 · 公司 · 角色」上,计量记在这家公司名下。
新增
- member 也能登录:
aidc login(终端账号 + 密码)、aidc login --browser、在 Codex / 聊天宿主里连接 AIDC 账号(OAuth)都向公司成员开放,拿到 member 的 Key(aidc keys标 member)。member 能调用本公司已发布的应用(aidc app call、应用的 MCP),身份就是「这个人在浏览器里打开这个应用」:只到正式通道,清单auth.access=restricted的要先分享给他;能在本机开发(app init / check / dev / export)、看自己(aidc whoami显示角色)。部署、发布、数据流 / 数据集 / 模型 / 语义层直连与管理接口仍只给 developer,member 的 Key 调这些回 403 并说明。 - SDK 找凭证照 Google ADC:
configure({ apiKey })→ 环境变量AIDC_API_KEY→ 本机aidc login留下的登录(Node)→ 平台注入的应用票据。
破坏性变更
- CLI:除
aidc login / logout / help / --version外,每条命令都要先登录(没登录退出码 3)——包括只在本机跑的app init / check / export / dev、ui、data profile / group、modeling estimate、evolve slots、billing prices、models。自带凭证的stream pipe(发布 Key)与connect send(Agent Key)照旧。 - SDK:找不到凭证不再发匿名请求,报
not_logged_in(401,提示aidc login);只有模型目录、价目这类公开目录接口不带凭证。 - 官方应用(
/nexus/apps/<slug>、/developer/apps/<slug>)的界面要登录,且至少是一家公司的 member;说明页、about.md、SKILL.md照旧公开。 - 公开链接(
/nexus/s/<令牌>)要先登录:清单auth.publicLink缺省改为signin,旧值open按signin执行,members不变。 - 应用票据一律带访客账号;不带账号的旧票据(匿名票据)不再被接受、也不能续期——刷新页面、登录后重新拿。
- 应用的 MCP:没有凭证回 401 +
WWW-Authenticate(宿主据此走 AIDC OAuth),官方应用也一样;登录后能读官方应用的工具与 Skills。AIDC Apps Creator 的scaffold_app、validate_app也要登录,get_sdk_docs与show_creator(登录入口)不用;list_apps、deploy_app、publish_app要 developer。 - 建模 SDK:
public的世界也要带凭证读(没有匿名调用方了)。
变更
- 登录接口:
password-tokens、device-tokens返回role;账号不属于任何公司时回 403「至少要是一家公司的 member」(原先是「还不是开发者」)。批准页(CLI 授权、连接 AIDC 账号)列出这个人至少是 member 的公司并标出角色。 GET /api/v1/developer/me(aidc whoami)接受 member 的 Key,返回role;member 的namespaces为空(不能发布)。GET /api/v1/developer/keys每把 Key 带role。
1.16.0 — 2026-09-29
- Apps 使用 Agent Plugins 1.0 标准包;CLI 新建、读取、检查、导出 ZIP;保留旧清单兼容。
- AIDC Apps Creator:SDK 文档、脚手架、校验、测试部署、指定版本发布与对话 UI。
- 默认 AIDC 账号登录;外部 MCP OAuth + PKCE 可选,AIDC 始终是身份与权限来源。
- MCP Apps UI、完整 Skills 资源与摘要、协议错误及工具名规范;发布权限继续走现有服务。
AIDC Developer 的 SDK、CLI 与 API 同步发版(SemVer)。版本号唯一真源:developer/version.ts。浏览器 SDK 的路径带大版本(/developer/sdk/v1/),破坏性变更才升大版本,旧版继续可用。
1.15.0 — 2026-09-29
新增
- 应用(Apps)标准(
/developer/docs/apps):AIDC 的应用就是智能体时代的插件——照 OpenAI Plugin 的定义,一组 Skills 加一组 APIs,界面可选。智能体照 Skills 调 APIs,程序直接调 APIs,人要看和确认时才打开界面。四种形态(只有 Skills / 只有 APIs / Skills + APIs / APIs + 界面)、包结构、清单字段与 Plugin 的对应、Skill 写法与测法、上架前的检查清单。 - Skills:版本包根目录
skills/<名字>/SKILL.md(Agent Skills 格式,可附references/)。部署时逐条校验:目录名、name与目录一致、description≤ 1024 字符(有「: 」要加引号)、正文不空、单个 ≤ 32 KB、最多 12 条;不合规整个版本拒收(aidc app check本地同一份规则)。没写 Skill 的应用,平台按清单生成一条「使用这个应用」的 Skill。 - 清单新字段
description(应用页「介绍」,≤ 2000 字)与examples(示例说法,≤ 6 条);entry可以是null——没有界面的应用只有 Skills 与 APIs,打开地址直接转到应用页。 - 应用页
<应用地址>/about(照 Codex Plugins 的详情页):调用方法(示例说法点一下就复制;对智能体说 / CLI / HTTP / MCP)· 介绍(做什么、执行什么任务、输入输出、触发)· Skills & APIs(Skill 全文、API 参数与返回、依赖的能力、用到的 AIDC 能力、连接)· Information(应用卡片)。复制给智能体:一句「帮我用 AIDC 应用「…」:<应用地址>/about.md」,贴给 Adis、Claude Code、Codex 就能用,不用安装。 - 给智能体的说明
<应用地址>/about.md(公司应用要凭证:会话,或Authorization: Bearer开发者 Key)与线上版本的 Skill 原文<应用地址>/skills/<名字>/SKILL.md。 - 应用目录重做:
/nexus/apps(AIDC 官方)、新增/nexus/<公司>/apps(登录后:本公司的应用 + AIDC 官方,受限应用只给看得见的人);每行 Skills 与 APIs 数、「复制给智能体」、打开。 - 一个调用口调应用的任何 API:
POST /api/v1/developer/apps/{命名空间}/{slug}/apis/{名字}/execute——显式导出、自动提取的类型查询与 Action、工作流的run/get_run/list_runs;以「应用 × 调用人角色」执行,留痕记调用人;preview预演写入,x-aidc-dry-run只校验输入,run带Idempotency-Key重放同一次运行。开发者 Key 调本公司任何应用,应用票据只能调它自己。 GET …/apis(全部 API:名字、说明、输入 JSON Schema、返回、调用口、CLI;Skills;示例说法)与GET …/about(说明 Markdown + 复制的那一句)。- 每个公司应用一个 MCP 服务器
POST …/apps/{命名空间}/{slug}/mcp(Streamable HTTP,无状态、只回 JSON):工具 = APIs(名字里的「.」换成「__」,写的工具带preview),prompts = Skills;凭证是开发者 Key。 - CLI:
aidc app about、aidc app apis、aidc app call <应用> <API> [--param …] [--preview] [--dry-run];aidc app init的每个模板都带一条 Skill 与示例说法,新增没有界面的--template skills。 - 官方样板与 AIDC 自己的演示应用都补上了 Skills、示例说法与介绍(瑕疵检测、会议纪要、ERP 数据自动分析、世界模型、物体检测、实时监控、企业数据、报价演示六个应用、云计算费用监控)。
变更
- 快速开始改成做一个「只有一条 Skill 的应用」:写 Skill → 部署 → 复制给智能体试用 → 加 API 或界面 → 发布。
- 文档页右上角加「复制本页」(复制这一页的 Markdown,交给智能体)与「查看 Markdown」。
修复
- 09-27 以前发布的应用版本清单里没有
cameras(更早的还没有exports),读出来按当前 schema 补默认值,应用页与about.md不再 500。
1.14.0 — 2026-09-29
新增:语义层完全对齐标准 Ontology(设计 docs/semantic-ontology.md,文档 语义 SDK · Ontology)
- 建模语言:语义部分(名词)Object Type、Property(全部 base types:long / decimal 编成字符串、geopoint 是 GeoJSON、struct、array、vector、timeseries…)、Derived Property(沿链接最多 3 跳)、Link Type(两端各有名字;1:N 用外键,N:M 每条链接单独存)、Interface(可继承)、Shared Property、Value Type(enum / range / length / regex… 约束,写入时校验);动力部分(动词)Action Type(rules:createObject、modifyObject、createOrModifyObject、deleteObject、createLink、deleteLink;参数可以是对象、对象集、数组;submission criteria;Action Log)。旧写法(
object/link/enum/action、text/real/numeric)原样可用,对外一律用标准的名字和形状。 - API
/api/v1/ontologies/**(照 REST API v2):Ontology 全貌、各类型的 List / Get、对象 List / Get / Search / Aggregate / Count、Linked Objects、Time Series、Object Set(filter、union、intersect、subtract、searchAround、interfaceBase、withProperties、nearestNeighbors…;临时对象集 24 小时)、Edits History、Apply Action(VALIDATE_ONLY / VALIDATE_AND_EXECUTE,returnEdits)与 applyBatch(最多 20 个、一个事务)。 - SDK
semantic.ontology()(照 OSDK):objects(t).where({...}).pivotTo(link).fetchPage()、fetchOne、aggregate({ $select, $groupBy })、withProperties、interface("Billable")、action(a).applyAction(params, { $validateOnly, $returnEdits })、batchApplyAction。 - CLI
aidc semantic ontology | object-types | objects | object | links | aggregate | object-set | apply | apply-batch | edits-history | branch … | proposals | proposal。 - 本体由智能体构建:智能体作者(Agent Key,或开发者 Key 加
x-aidc-author: agent:<id>;CLI 在AIDC_AGENT_ID存在时自动带上)不能直接改 main(409branch_required),在分支上改(Global Branching:modify / validate / conflicts / rebase / discard / lock,读接口带?branch=预览)、开提案(Ontology proposal:按资源分 task,自动附上改动、校验、30 天影响面、破坏性改动)。批准、拒绝、合并只接受人的网页登录(/developer/<公司>/ontology/proposals/<id>),任何 Key 都不行;破坏性改动要输入资源名确认。分支 35 天无活动转 INACTIVE,再 7 天删除。 - 示例应用:应用
developer/apps/ontology-demo,定义、示例数据与灌数脚本developer/apps/ontology-demo-data,命名空间cell-demo(Demo Company,数据全部虚构,不进任何真实公司)。
修复
aidc:HTTP 422(定义不闭合、Action 参数校验不通过)的退出码从 1 改成文档写的 2(参数错误 / 校验不通过)。
仍待补(差距见 docs/semantic-ontology.md §7):Function(需要隔离运行时)、Agent Key 执行 Action 的 restrictions、Writeback(数据源只读,默认关)、Attachment / Media / Cipher 服务、Markings 与安全策略。
1.13.1 — 2026-09-28
新增
- 给智能体的上手说明
/developer/agent-ready.md(照 Fly.io 的 agent-ready 做法):人只要把一句帮我接入 AIDC Developer:https://ai-dc.ai/developer/agent-ready.md交给 Adis 或任何能跑终端命令的智能体,它就照着装aidc、按人的处境登录(人在终端前就请人自己运行aidc login;否则aidc login --browser --no-wait把链接交给人批准,智能体不碰密码)、装 Skill、做出第一个应用,先给人看 Developer 预览,人同意了再发布到 Nexus。源文件developer/agent-ready.md,npm run developer:build原样发布;llms.txt第一条指向它。 - 官网
/developer首屏新增「Copy to Adis」:复制上面那句话(en / ja / de 各自的说法,链接相同);「智能体接入」一节也列出 agent-ready.md。
修复
- Skill(
/developer/skills/aidc-sdk/SKILL.md)不是合格的 Agent Skill:description有 2,025 个字符(规范上限 1,024,Adis 装技能时直接拒绝),值里还有「冒号 + 空格」,按 YAML 读 frontmatter 的运行时解析失败。压缩到 877 个字符、改成合法的 YAML。新守卫developer/agent-ready.test.ts同时核对上手说明里写到的命令、旗标与地址。 - 官网
/developer在手机上:不换行的安装命令把首屏撑到 587px,三个按钮右侧被裁掉。现在首屏等于屏幕宽,命令在行内横向滚动;桌面布局不变。
1.13.0 — 2026-09-28
变更
aidc login改成在终端里输入 AIDC 账号和密码:用户名或邮箱 + 密码(密码不回显),换一把开发者 Key 存进~/.aidc/config.json(0600)。Key 只签给输入密码的这个账号——原来的浏览器批准,是浏览器里恰好登录着的那个账号替终端签发,还可以在下拉框里任选它能代表的公司。账号能代表几家公司(AIDC 平台员工)时在终端里选一家,或aidc login -n <cellId>直接指定;--user预先给账号。开头打印注册入口:还没有账号,在https://www.ai-dc.ai/login点「注册」;开发公司应用还需要公司发的 developer 授权码(没有时登录会明确告诉你去哪里输入)。- 密码核对与网页登录是同一套:同一个失败计数(连续 5 次锁 15 分钟,终端和网页互通)、同一组限流、锁定与密码错对外同一个回答;终端里输错可以再输,三次后放弃。临时密码、邮箱没验证时说明先去网页处理。
- 密码只在交互终端的提示处输入:不收命令行参数、环境变量或 stdin。stdin 不是终端(智能体、CI、管道)时
aidc login立即以退出码 2 报错并说明该怎么做,绝不挂着等输入。 - 浏览器批准移到
aidc login --browser(--no-wait/--continue照旧,只属于这一种),留给身边没有终端的智能体:把链接交给人批准。无人值守照旧用AIDC_API_KEY或aidc login --with-key。
新增
- API
POST /api/v1/developer/password-tokens:账号 + 密码(+cellId)→ 开发者 Key(明文只出现在这一次响应里,形状与设备授权换 Key 相同);支持 dry-run(只核对、返回将代表的公司)。错误码:invalid_credentials、email_verification_required、password_change_required、company_required(details.companies列出可选公司)、forbidden(没有 developer 权限 / 不能代表指定的公司)。
1.12.2 — 2026-09-27
修复
- 视觉 SDK · 摄像头:忙的 NVR 上连得更快、更稳。某客户现场的 NVR 实测一次连接只有约 44% 能在 20 秒内拿到回应(其余连上不回话、或几秒后被关掉)。现在平台先不带凭证发 OPTIONS(不算登录尝试),3 秒没回话就错开再开一条(同时最多 3 条、总共最多 6 条),谁先回话用谁、其余立刻关掉;拿到的认证挑战只在胜出的那条上用——并发不会让 NVR 的失败登录计数变多。全都不回话时报
camera_timeout并写明连了几次。 vision.live暂时故障的重连间隔封顶 30 → 15 秒。
1.12.1 — 2026-09-27
修复
- 视觉 SDK
vision.live:摄像头暂时连不上(camera_unreachable/camera_timeout/ 断流 / 满员)时,页面开着就一直自动重试(间隔封顶 30 秒),NVR 一恢复画面自己回来;原来试 6 次就停在「出错」要人点重试。页面隐藏 1 分钟照样断开,待重试也一并取消,不在后台空转。onStatus多给attempt(第几次重连)。 - 摄像头 TCP 建连超时 10 → 15 秒、每个 RTSP 请求等响应 12 → 20 秒:跨境链路上 SYN 丢包要等第 4 次重传(约 15 秒);客户现场的 NVR 忙的时候建连 19 秒、OPTIONS 18 秒才回。截图接口时长上限 60 → 120 秒、探测 120 → 300 秒。
- 样板
camera-live1.0.1:还没登记口令时写明「还没有登记摄像头口令」并告诉开发者去哪里填(原来显示成「摄像头拒绝了口令」);重试中显示第几次与原因。
1.12.0 — 2026-09-27
新增
- 自进化 SDK(
evolve,第十六个 SDK):应用的用户直接在应用里改进它。evolve.mount()在右下角挂上「// 改进」面板:说一句「对话框变大」「隐藏侧边栏」「标题改成客服工作台」,页面马上变(预览只有自己看得到);「只给我保留」立即对自己生效,「提交给所有人」由开发者采纳(开发者提交直接生效);界面改不了的(加功能、改逻辑)一键交给开发者,成为自提升 SDK 的应用类提案。每一次改进是一个改进工程:对话、改进指令、作用范围、状态,可撤销、可审计。 - 改进落成白名单改进指令(
token/style/text/attr/reset),不是代码:值走文法白名单、没有定位类属性、文字按纯文本写入;应用在页面上用data-evolve="名"标出能改的区域,在清单evolve里给它们起名字、声明带范围的可调参数(CSS 变量)。常见说法走快速意图(浏览器里 2 ms,不调模型),其余交给模型(缺省 DeepSeek Flash,约 1.6–2 秒,按应用计费、计入计算分钟)。 - 覆盖层由服务端内联进入口页(样式排在应用样式表之后,唯一槽位的文字直接写进 HTML):打开页面首屏就是改进后的样子,不多一次请求;预览与保存后的结果由同一个折叠函数算出。
- 固化:
aidc evolve bake把对所有人生效的改进写进源码(evolve.css+ 静态 HTML 的文字 + 清单evolve.baked,版本 patch +1),发新版本后这些改进不再叠加;改版去掉的槽位上的改进自动失效、不报错。每应用叠加的全员改进上限 40、每人个人改进 20。 - API
/api/v1/developer/evolve/{命名空间}/{slug}/overlay | compile | improvements[/{id}];CLIaidc evolve slots | list | show | compile | save | propose | adopt | reject | revert | overlay | bake。 - 新增官方样板
evolve-demo(智能问答台,cell-aidc)。
修复
- FIX-0151:Developer API 的 CORS 预检不放行 PATCH,沙箱里的应用调不了自提升的
improve.decide()(自进化的采纳 / 撤销同样用 PATCH)。
1.11.0 — 2026-09-27
新增
- 视觉 SDK · 网络摄像机 / NVR:在浏览器里看公司 NVR(大华 / 海康 / 任意 RTSP)上各路摄像头的实时画面与高清截图。平台只在有人打开画面时去拉流(RTSP over TCP + Digest),码流原样转发(H.264 / H.265,不转码),浏览器用 WebCodecs 硬解;一条连接约 4 分 40 秒,提前开好下一条再切,画面不断;页面隐藏 1 分钟自动断开。
- SDK:
vision.cameras()/camera()/saveCamera()/probeCamera()/removeCamera()、vision.live(canvas, { camera, channel, stream })(snapshot()、switchTo()、retry()、stop())、vision.cameraSnapshot()(主码流高清截图,直接喂给vision.detect)、vision.cameraKeyframe()、vision.liveSupport()。 - API:
GET /api/v1/developer/vision/{命名空间}/cameras、GET | PUT | DELETE …/cameras/{名字}(登记幂等、dry-run)、POST …/probe、GET …/live(流式application/vnd.aidc.live)、GET …/keyframe。 - CLI:
aidc vision camera list | show | add | probe | snapshot | remove;口令只从AIDC_CAMERA_PASSWORD或--password-stdin读;截图用本机 ffmpeg 转 JPEG。 - 清单新字段
cameras:应用只看得到这里登记的摄像头。 - 官方样板
camera-live(实时监控:通道切换、子 / 主码流、高清截图、一键识别;开发者在应用里登记摄像头)。
- SDK:
- 安全与成本:口令只存 AES-256-GCM 密文、任何接口都不回显;只给本公司 developer / member 看(分享与公开链接的访客看不了);主机必须是公网地址;同一组凭证被拒一次就停并冷却 10 分钟(NVR 会按失败次数锁账号),没登记口令不去试;同一摄像头同时拉流 ≤
maxViewers(缺省 4);画面时长计入应用计算分钟(新类别video);主码流实时缺省关闭。
变更
aidc app dev:浏览器断开时一并断开上游的长连接(摄像头画面、SSE 不再白挂到服务端收尾)。appUsage()/aidc app usage的计算分钟多一类video(摄像头画面)。
1.10.0 — 2026-09-27
这一版来自一次可用性测试:让客户现场的智能体照着 Skill 从零做一个「治具验收拍照留证」应用,卡在哪里就改哪里。
新增
- 界面 SDK
ui.download(文件名, 内容, { type, bom }):把字符串或 Blob 存成文件,类型按扩展名推断;CSV 缺省在开头加 UTF-8 BOM——Windows 上的 Excel 靠它认出中文。智能体自己写的导出没加,验收表在 Excel 里是乱码。
变更
- 安装脚本:
~/.aidc/bin不在 PATH 上时,在 PATH 里第一个$HOME下、可写的目录(~/.local/bin、~/bin、npm 全局 bin…)放一个aidc链接,装完就能直接敲;没有合适的目录就在最后一行给完整路径。不改 shell 配置文件;PATH 前面已经有别的aidc时不链接。三轮测试都卡在「aidc找不到」。 - 版本包校验:包里带 SDK 副本(路径含
developer/sdk/的文件)直接拒收,aidc app check同一条规则。智能体没登录时照/developer/sdk/v1/伪造了一份aidc.js做本地预览,放在应用目录里,差一点跟着上线。 - Skill 与文档:安装输出的最后一行就是能用的命令;等人批准登录时先写代码、
aidc app check,每做完一步查一次,一条终端命令里别循环超过一两分钟;给人看的预览 =aidc app deploy返回的 Developer 预览链接(远程机器上的 localhost 人打不开),不要伪造 SDK 或起本地服务器;凭证只来自人批准的登录或人交给的 Key,不翻.env找别人的。数据 SDK「解析与导出」写明给 Excel 的导出 =data.toCsv+ui.download。 - 应用登记表与应用卡片:用了视觉 / 语音 / 视频的应用,登记的
model不再标成「登记了没用到」——视觉文档一直让这样登记("sdk": ["vision", "model"]),智能体照做后卡片上反而多一条提示。 - Academy:Developer 课改成十五个 SDK(「一张图」补上建模、账单两张卡片,ja / de 译文同步);SDK 数的守卫测试管到 Academy。
1.9.0 — 2026-09-27
新增
- 应用卡片带上花费(
card.cost,只给本公司开发者,与账单 SDK 同口径):本月 / 今天 / 累计的模型花费(美元标价、次数、tokens)、月底预测、预算、各模型本月花费、未计价的调用数——来自账单 SDK 的台账,应用不用埋点。appCard()、aidc app card、应用顶栏「卡片」都显示;成员与公开应用的匿名读者看到的卡片不含花费。
变更
- 企业数据浏览器 1.1.1、工作流画布:卡片弹窗加「花费」一行。
- 新增官方样板
object-detect(物体检测 + 登录绑定,清单auth.publicLink: "members")。
修复
- 智能体轮询登录会把授权码等过期:
aidc login --continue会一直等到批准或过期(最长 10 分钟),而智能体的终端命令通常 2–3 分钟就超时(客户现场的智能体实测:每 15 秒一次的轮询变成了一次长等待,第一个授权码没人批准就过期了)。新增aidc login --continue --no-wait:只查一次,没批准返回{"event":"authorization_pending"}、退出码 3;Agent Skill、CLI 与智能体接入文档改成这种轮询。
1.8.1 — 2026-09-27
变更
- 数据变化触发:输入不取自对象(
trigger.change.input为空)的工作流,同一批变化只开一次运行——一次快照改了 N 个对象,不再跑 N 遍同样的检查。 - 《云计算费用监控》:云账单改在云端每天采一次(平台调度心跳,UTC 00:40 之后第一拍;不新增 cron)。凭证用平台已有的 AWS 部署凭证与
AIDC_COST_VERCEL_TOKEN/AIDC_COST_SUPABASE_TOKEN;没配的一家,以前绑定过的账号标「采集失败」并写明缺哪个变量。边缘采集端改为collector/collect.ts(手动补采,同一份取数与归一)。
修复
- 看板 1.0.1:聚合接口返回
{ rows },明细与月份读对了。
1.8.0 — 2026-09-27
新增
- 每个应用默认有资源上限:清单
limits新增computeMinutesPerMonth(计算分钟,缺省 2000 / 月:实时连接挂着、工作流运行、模型 / 转写调用的时长,UTC 自然月)与notificationsPerDay(缺省 20)。用满后这个应用的票据请求429 quota_exhausted,数据变化 / 定时触发不再开跑,下月 1 日恢复。用量:aidc app usage <slug>、GET /api/v1/developer/apps/{命名空间}/{slug}/usage。 - 工作流触发条件(触发都在工作流 SDK 里):
trigger.change.cooldown(同一对象多久内只跑一次);trigger.schedule(every5m–7d、按天的可写atUTC 时刻)——只给「时间本身就是条件」的事,由平台已有的调度心跳执行,不新增 cron,停机不补跑。 - 通知步骤
notify:发邮件(标题 / 正文可用{{ }});收件人必须是本公司账号、写死在清单里;去重键 + 冷却(缺省 6h)、每日上限;每一封都记外发账(发出 / 拦下 / 通道未配置 / 失败 + 原因)。aidc notify test/POST /api/v1/developer/notify/test验证邮件通道。画布认识通知步骤。 - 部署成本告警(不拦部署,
aidc app check/deploy打在 stderr,API 返回warnings):工作流定时 ≤ 1 小时一次(高频,带每月次数与预计计算分钟)、任何limits高于缺省、代码里setInterval拉数据(疑似轮询)。定时比每 5 分钟还密直接拒收。
变更
- 实时连接只在有人看的时候开:
data.live/data.watch/semantic订阅、connect.stream().subscribe、workflow.watch在页面隐藏超过 1 分钟时自动断开(状态paused),切回来带着序号续上,不丢不重。 - 订阅遇到
quota_exhausted不再每 30 秒重连(与 401 / 403 / 404 一样视为终止)。 - 平台调度心跳上的保留期清理从每分钟改为每天一次(UTC 03:07)。
- 开发规范加「成本与资源」「触发优先于定时」「产品自提升」三节。
1.7.0 — 2026-09-27
新增
- 物体检测(视觉 SDK):
vision.detect(photo, { labels?, prompt?, maxObjects? })→ 每个物体的类别、把握与归一化位置框[x0,y0,x1,y1],缺省模型gpt-6-luna;vision.annotate直接画objects。同一能力的 HTTP APIPOST /api/v1/models/vision/detect(开发者 Key 或应用票据,与 chat.completions 同一条模型通道:清单模型白名单、限流、每日额度、计费);CLIaidc vision detect <图片…> [--labels 人,叉车]。平台统一清洗模型输出:坐标夹到 0–1、摆正、去掉退化框、按调用方的类别名归一。 - 登录绑定(权限 SDK):公开链接的访客用 AIDC 账号(邮箱验证码)登录后,票据带上账号与公司身份——本公司的人按 member / developer 权限,其他人仍只读。
auth.me()新增signedIn、member;auth.signIn()整页去登录并回到当前链接。清单auth.publicLink:open(缺省)/signin(先登录)/members(只给本公司的人,平台在打开前把关)。 - 成员导入(权限 SDK):
aidc members import <名单.json|.csv> --source <来源> [--dry-run]、auth.importMembers()、POST /api/v1/developer/members/import——把公司在别的系统里已注册的名单导入 AIDC:没有账号的建待激活账号(本人用这个邮箱收验证码登录即认领),都成为本公司 member;已经是 developer 的不动、不降级;占席位、整批事务、重复导入幂等。aidc members list/auth.members()/GET /api/v1/developer/members看本公司成员与激活状态。
修复
- 自助注册(self_registered)账号从 Nexus / Developer 应用或公开链接被带去登录后,一律被送去
/account,回不到应用:现在应用路径(/nexus/s/…、/nexus/…/apps/…、/developer/…/apps/…)登录后回到应用,其他页面照旧(FIX-0150)。
1.6.0 — 2026-09-27
新增
- 账单 SDK(
billing):每个应用、每把开发者 Key、每个模型花了多少——平台在模型通道里给每次调用自动记账,账单 SDK 把台账累计成今日 / 本月 / 累计,按应用、Key、模型、天(带累计)拆开,给出月底预测(最近 7 天日均 × 剩余天数)、预算、未计价的调用(写明原因,实时转写另给上限,绝不当成 0 元)。金额是美元标价、六位小数的字符串,各维度相加与总额逐位相等;账期是 UTC 自然月。billing.summary / records / allRecords / check / prices / estimate / usd,aidc billing summary|records|check|prices|estimate(--fx同时显示人民币、--csv导出明细),GET /api/v1/developer/billing/{命名空间}/summary|records|check、GET /api/v1/developer/billing/prices、POST /api/v1/developer/billing/estimate。文档 账单。 - 对账:账单的每个数都能从台账复核——按应用 + Key、按模型、按天相加 = 本月;另一条路(逐行读台账、精确求和)独立重算;成本列直接相加 = 本月金额;逐行按现行价目复算(按旧价记的行只提示)。
aidc billing check对不上退出码 1。 - 估算(规划):上线前按现行价目算每次 / 每天 / 每月多少钱、放不放得下预算;支持命中缓存的输入、DeepSeek 非峰时占比、按分钟计的转写与实时转写时长。
- 预算:清单
limits.monthlyBudgetUsd(美元 / 月,可选)——本月已计价的成本到了就拒绝新的模型调用(429 quota_exhausted,details.spentUsd),下月 1 日(UTC)恢复;工作流的模型步骤同样受限。清单sdk可登记billing。
变更
- 模型通道照厂商的计费规则记账:命中缓存的输入按缓存价(OpenAI
prompt_tokens_details.cached_tokens、DeepSeekprompt_cache_hit_tokens,流式从收尾 chunk 读);DeepSeek 按调用时刻分峰时 / 非峰时(半价);gpt-transcribe按分钟价;实时转写只知道场次,成本记为空(未计价)而不是 0 元;价目里没有的模型记为空,不再落到「缺省价」上。原来一律按「全部未命中、按当时价目表」估,且实时转写记 0 元(FIX-0149)。 - 价目核对(2026-09-27 读厂商价目页):
deepseek-flash= DeepSeek V4.1 Flash(峰时 输入 0.006 / 输出 0.15 / 0.042)进厂商价表;gpt-transcribe0.017 / 分钟(运营方可用AIDC_AUDIO_PRICING覆盖)。 - 账单把建模 SDK 的花费一起算进来:生成世界 / HQ 网格导出按上游实收 credits 记的行(计量方式「按次」),价目与估算复用建模价目(按最坏情况,与预留同口径);结果还没定的预留单独列出、不进总额。
1.5.0 — 2026-09-27
新增
- 建模 SDK(
modeling):用世界模型(World Labs Marble · World API)把文字、单张照片、360° 全景、同一空间的多张照片或一段视频变成可以走进去的 3D 世界(高斯溅射 SPZ 100k / 150k / 500k / 完整精度、碰撞网格 GLB、全景、缩略图),数字孪生的地基。- 费用控制在平台这一侧(World Labs 不按单次成本拦截、超额月底补扣):最坏情况估价 → 策略(开放的模型、单次上限、调用方
maxCredits)→ 同样的请求复用已有世界(不花钱)→Idempotency-Key必填 → 每公司每小时次数 → 同时在跑上限 → 月度额度(全平台总闸 + 公司额度 + 应用每日额度)在同一把事务锁里判完并按最坏情况预留 → 上游明确失败释放、结果不明不释放 → 按上游实收结账并记进用量台账。缺省只开试稿与 1.1、单次 1,600 credits、全平台每月 US$5、只有 AIDC 有额度;envAIDC_MODELING_POLICY写坏了就停止一切花费。官方公开应用永远不能生成、上传、导出或改锚点。 - AIDC 空间坐标系:米、Y 向上、地面 y = 0(按每个世界的尺度信息换算);
frameOf / toMetric / fromMetric / distance。碰撞网格与 SPZ 同一套原始坐标。 - 锚点:世界里的位置(米)+ 名称 / 类型 / 静态属性,可绑本公司语义层对象(
object: { type, pk },类型必须存在);整组替换、ifRev乐观并发、verified标明是否人工核验。 - 查看器
modeling.viewer(el, world):Spark 2.2.0(World Labs 维护的高斯溅射渲染器)+ three.js 0.180.0,钉版本、从 jsDelivr 加载(modeling.importMap());预设视角、飞到锚点、碰撞网格拾取pick()(屏幕 → 米)、换精度、截图;滚轮缩放要先点一下画面,页面滚动不被吃掉。 - 输入媒体
modeling.upload():换 World Labs 签名地址、字节直传(不经过 AIDC),mediaId按命名空间隔离;导出 PLY(免费)/ HQ 网格(3,500 credits,缺省关闭);登记已有世界(AIDC 平台账号);删除(purge同时删 World Labs 原件)。 - API
/api/v1/developer/modeling/**(目录、额度、世界、锚点、导出、媒体、登记);CLIaidc modeling models|estimate|budget|generate|list|get|wait|upload|anchors|export|download|import|delete(estimate本机算、不用登录);模板aidc app init --template modeling。 - 清单:
sdk可登记modeling(平台据此给应用的 CSP 放行 World Labs 资产 CDN 与 WebAssembly 编译);limits.worldCreditsPerDay(应用每天最多花多少世界模型 credits,不写 = 0 = 只看)。 - 公开展示
/nexus/apps/world-model:已生成的世界、坐标系、锚点(模拟读数)、按当前策略的报价——只看,不接受生成请求。
- 费用控制在平台这一侧(World Labs 不按单次成本拦截、超额月底补扣):最坏情况估价 → 策略(开放的模型、单次上限、调用方
变更
- 界面 SDK:顶栏标题在窄屏上不再被右侧徽标挤成一字一行(单行省略)。
1.4.1 — 2026-09-26
修复(1.4.0 上线后用匿名浏览器核对公开演示时发现)
- 工作流运行的实时进度(SSE)没带 CORS 头:Nexus 沙箱里的画布收不到进度,点「预演」一直显示「排队中」(运行其实两秒就跑完了)。路由补上 CORS;
workflow.watch在实时流连不上时用一次普通请求补上当前状态,运行已结束就直接收尾(FIX-0148)。
变更
- 报价演示工作流 1.0.3:与客户目标价的比较(高还是低、差多少)由核价步骤算成文字交给 AI,AI 照抄,不再自己判断方向(1.0.2 在一次正式运行里把「比目标价低 6.7%」写成了「高于目标价」)。
- 官网
/developer的样板区加上「跨部门报价工作流」公开演示;开发规范加「每个应用一张应用卡片」。 - 应用卡片:AIDC 官方公开样板(
public命名空间)的访问范围报public(原来照清单报成company)。
1.4.0 — 2026-09-26
新增
- 工作流 SDK(
workflow):把已发布应用的能力组合成完整流程。- 能力:应用清单
exports显式导出(query / get / aggregate / action,带参数与说明);已发布应用登记的语义类型、Action 自动提取成能力,不用改一行。能力以提供方应用 × 成员身份执行,不越权。workflow.capabilities()、aidc workflow capabilities、GET /api/v1/developer/capabilities/{命名空间}。 - 工作流:清单
workflow——use(调能力)/compute(逐行 + 关联 + 汇总)/model(AI 分析,按声明字段返回)三种步骤,when条件、lane泳道;依赖从表达式自动推出,按层并发;=开头的安全表达式(白名单函数、无副作用、计算量有上限)。部署时对照公司能力目录校验。 - 运行:手动运行、预演(Action 只给计划)、语义层数据一变自动运行(
trigger.change,发布即生效、每条变化只触发一次、可链式);每一步的状态 / 耗时 / 输出实时推送(SSE)。workflow.run / watch / wait / runs / getRun,aidc workflow run|runs|status|watch,aidc app init --template workflow。 - 画布:官方样板
workflow-canvas——部门泳道、数据流连线(线上是传过去的参数)、点开看能力 / 公式 / 输出 / 提供方卡片、实时运行与回放;部门比步骤层数少时竖排。 - 公开演示:跨部门报价(营业询价 → 设计 BOM → 采购行情与物流 → 制造工艺 → 财务核价 → AI 分析 → 营业报价草稿),五个部门应用 + 报价工作流,公开分享链接可预演。
- 能力:应用清单
- 应用卡片(App Card):每个应用一张,平台按清单与部署分析自动生成——负责部门、版本、SDK(登记 / 实际)、是否连数据库与读写哪些数据、数据流状态、对外能力与依赖、访问范围、近 7 天使用。
appCard()、aidc app card、GET /api/v1/developer/apps/{命名空间}/{slug}/card;企业数据浏览器 / 部门看板 / 画布都有「卡片」按钮。 - 清单新字段:
owner(部门 / 岗位 / 负责人)、exports、workflow;sdk可登记workflow。应用登记表每行带负责部门、对外能力、依赖与工作流摘要。
变更
- 企业数据浏览器 1.1.0:标题取应用自己的(同一份代码做部门看板),加「卡片」。
- 公开分享的访客看运行记录时不显示是谁跑的(显示「公司成员 / 访客 / 数据变化」);文档写明公开分享一个工作流会让访客看到每一步的输出。
1.3.1 — 2026-09-26
修复(1.3.0 上线后在生产核对时发现)
- 界面 SDK 的加载动效示例只列了五种,补齐八种(
/developer/ui、ui.json、aidc ui components loader);测试核对示例与loaderHtml()逐字一致。 - 组件样例页
/developer/ui发版后几分钟内交互报错(does not provide an export named 'ui'):浏览器缓存里还是上一版aidc.js(缓存 5 分钟)。样例页自己引用 SDK 时带上版本号。
1.3.0 — 2026-09-26
新增
- 界面 SDK(
ui):所有应用共用一套 AIDC 界面。样式表/developer/sdk/v1/ui.css:顶栏、页面容器、按钮(六种样式、三种尺寸)、输入框、多行输入、下拉、复选、单选、开关、字段、卡片、徽标、提示条、表格、标签页、对话框、消息提示、加载动效、标识、骨架、分隔线、键帽、头像、进度条、空状态,类名aidc-<组件>[__<部分>][--<变体>],放在 CSS 层aidc.components,应用自己的样式永远盖得住。aidc.js的ui:toast、confirm、prompt、tabs、loader、logo、theme、ensureStyles,基于原生<dialog>与aria-live,没有依赖。主题aidc(主按钮实心黑,缺省)/signal(信号橙),浅色 / 深色 / 跟随系统;八种//加载动效(含刻度轮)。 - 机器可读登记表
/developer/sdk/v1/ui.json(组件、类名、示例标记、令牌、主题、加载动效),样例页/developer/ui,文档 界面。React 项目用 AIDC UI 的@aidc注册表,令牌同一套。 - CLI:
aidc ui components [组件]、aidc ui tokens [--mode light|dark] [--theme aidc|signal] [--css]、aidc ui add [目录] [--dry-run](给已有应用接上界面 SDK:插入样式表链接、清单登记ui;幂等)。本机完成,不需要登录。 - 清单
sdk可登记ui;部署时静态分析同时认import { ui }与页面 / CSS 里对ui.css的引用,用了没登记的拒收。
变更
aidc app init的所有模板默认接好界面 SDK(顶栏、页面容器、卡片、按钮;拍照模板用消息提示给结论,数据模板用加载动效,语义模板用ui.prompt/ui.toast与表格样式);style.css只留应用自己的东西。- 文档新增「界面」分组;开发规范加「界面」与「一个 SDK 由什么组成」两节;总览、Agent Skill、CLI、智能体接入、发布、快速开始同步。
修复
- 官网
/developer数字带写着「7 个 SDK」、llms.txt写着「七个 SDK」(1.2.0 起实际已十一个):SDK 的个数与名单现在由同一份登记生成,文档、官网三种外语、llms.txt都有测试核对。 aidc app dev --sdk-dir <相对路径>从 1.0 起没有生效:请求被静默转给了 API,用的还是线上 SDK。现在相对路径按当前目录解析;SDK 目录里的文件按扩展名给类型(原来一律按 JavaScript 返回,浏览器的严格 MIME 检查会拒用ui.css)。
1.2.1 — 2026-09-26
修复(在两家客户生产上线语义层时发现)
aidc semantic define <目录> --dry-run误报「定义引用不闭合」:原来逐个文件 dry-run,前面的定义没真建,后面引用它的就报不闭合(真跑没问题)。现在一个目录整批提交(POST /api/v1/developer/semantic/{命名空间}/types、SDKsemantic.defineAll()):在整批改完之后的全体定义上一次校验,批内互相引用算数,dry-run 也一样;不闭合一条都不写。FIX-0147。- dry-run 不判
ifRev:Action / 数据修改 / 删除带了过期的ifRev,真调用 409,dry-run 却报成功;现在 dry-run 同样返回rev_mismatch。FIX-0147。 aidc app publish|rollback --version 1.1.0从 1.1.0 起没有生效:version被登记成了布尔旗标,子命令里的--version 1.1.0被当成「打印 CLI 版本号」,以退出码 0 结束——回滚静默没做(发布端只发测试版时不带--version,所以一直没暴露)。现在只有不带子命令的aidc --version/-v打印版本号;子命令里--version取值,只写--version不带值是用法错误(退出码 2)。aidc improve apply --version同理。- 企业数据浏览器 1.0.2:表格补基础样式(表头、间距、数字右对齐),单元格不再重复单位(表头已写)。
1.2.0 — 2026-09-26
新增
- 语义 SDK(
semantic):参照 Ontology 的语义层——对象类型(显示名、单位、同义词、writeback语义层属性)、链接、Action(受控写:参数校验、roles、$参数/$now/$userName取值、一句话摘要)、语义版本;describe()给应用与智能体的说明书(含给大模型的 markdown),search()按业务说法找属性,objects()链式查询 / 链接 / 聚合 / 实时,action().apply(),define / publish / releases。数据源(ERP / MES)永远只读。 - 数据 SDK 升级:数据层
table()——查询(条件 / 排序 / 分页)、取全、读(链接、变化记录)、新建 / 修改(setrevertifRev)/ 删除、批量导入(layermode)、聚合、live()(查询 + 实时合并);watch()语义层变化订阅(SSE,序号续传、reset);sync把连接 SDK 的数据流绑定到对象类型(ERP → 数据层)。原有分析小工具不变。 - 权限 SDK(
auth):viewer()/me()/can()、角色(developer / member / editor / viewer / anonymous)、login()、分享share / shares / revoke(全公司 / 指定账号 / 公开只读链接/nexus/s/…);清单auth.access: restricted。 - 日志 SDK(
log):track / feedback / error / captureErrors;开发者summary / events / setFeedbackStatus / versions。平台自动记打开、Action、数据写入、分享。 - 自提升 SDK(
improve):evidence / suggest(模型起草,整合文件 / 技能 / 对话)/ propose / proposals / decide / apply;语义补丁一键应用成新语义版本,被采纳的反馈自动标记已处理。 - 应用登记表:清单
sdk可登记semanticauthlogimprove;部署时静态分析包里对aidc.js的 import,用了没登记的 SDK 拒收;aidc app registry/GET /api/v1/developer/registry列出每个应用的 SDK、语义类型 / Action / 数据流 / 模型、访问范围、近 7 天使用。 - CLI:
aidc semantic、aidc data query|get|create|update|delete|import|aggregate|watch|bind|bindings|resync|unbind、aidc share、aidc log、aidc improve、aidc app registry。 - 清单新字段:
semantic(types / actions / write)、auth(access)。
变更
- 应用票据带访客(账号、显示名、角色、分享);入口页
aidc-app元信息多了viewer。 - 文档分组:感知与智能 / 数据与语义 / 治理与迭代;新增「闭环」入门页。
修复
- 沙箱里的客户应用续不了票据,实时看板开满 8 小时就断:SDK 续期时带上当前票据,服务端按账号 / 分享复核后换新(过期 24 小时内),FIX-0146。
- 语义版本:定义没变再发布不再占一个新版本号。
1.1.1 — 2026-09-26
修复
- 安装脚本在 Node 18 上装出来的
aidc跑不起来:CLI 是 ES 模块,原来存成没有扩展名的aidc,Node 20.19+ 会按内容识别、Node 18 不会(SyntaxError: Cannot use import statement outside a module)。现在存成aidc.mjs、aidc指向它;重装即修复。在客户机器(Node 18.19)装发布端时发现。 aidc stream pipe常驻时的监听器泄漏:发布循环每次空闲等待都在停止信号上挂一个监听器、被唤醒后不摘(心跳每 30 秒一次,一天近 3,000 个;客户机器 Node 20 上 6 分钟报MaxListenersExceededWarning)。改为只挂一个;退避等待结束即摘掉监听器。已在跑的发布端重装 CLI、重启服务即可。aidc app status / history / publish / rollback支持<命名空间>/<slug>(如cell-demo/production-live),与aidc stream的写法一致;原来只能用-n。
1.1.0 — 2026-09-26
新增
- 连接 SDK · 实时数据流:数据源一变,源头旁边的发布端推给 AIDC,AIDC 按序落账、保存最新状态,几秒内推给所有订阅端——不用 cron、不轮询 ERP、数据源断了订阅端看得见。
- SDK:
connect.stream(name).subscribe({ onUpdate, onNotice, onStatus })(先全量、后增量,断线带序号续传)、get()、publish()、publisher()(全表自动算差)。 - CLI:
aidc stream create / list / status / get / key / keys / revoke / publish / tail / pipe / delete;aidc stream pipe <流> -- <适配器>是边缘发布端(算差、幂等重试、心跳、全量校准、适配器崩溃重启并上报「连不上数据源」)。 - API:
/api/v1/developer/streams/**(声明带字段白名单、SSE 订阅?after=N续传、批量发布、发布 Keyaidc-pk-)。 - 应用清单新增
streams:应用只能订阅声明过的、同一命名空间的数据流。
- SDK:
- 版本号与更新状态:应用清单新增必填的
version(语义化版本号)。测试与发布都用版本号称呼一个版本(Developer 预览显示「Developer 预览 · v1.2.0」,Nexus 显示「v1.2.0」);每个版本有更新状态(已上线 / 测试中 / 已测未发 / 已被替换 / 已回滚 / 未测试);每次进测试、发布、回滚都记一条发布记录(谁、何时、从哪个版本到哪个版本、说明)。aidc app status看版本与状态,aidc app history看记录;publish/rollback的--version可写版本号,另可带--notes。
变更
- 版本号一号一内容:内容变了但
version没升,部署返回 409version_conflict。 - 清单进内容指纹:只改清单(额度、模型、数据流…)也算新内容。此前这种改动再部署会被当成「内容未变」、新清单不生效——已修。存量版本的版本号按
1.0.<构建序号-1>回填。 app()返回的version改为版本号字符串(如"1.2.0"),构建序号在新增的build里。aidc app init生成的清单从0.1.0起。
1.0.1 — 2026-09-26
修复
- 语音 SDK
voice.translate:数额按「万 / 亿」换算,不再把「预算 120 万」译成「120 千」(埃及阿拉伯语、孟加拉语:同一句翻 6 次,24 条译文错 5 条);非中文、日语的译文不再残留原文汉字(孟加拉语「…এটি负责।」:同一句翻 50 次,9 次残留);人名、地名改为按目标语言音译。改后两项在同样的测试里都是 0 次。会议纪要样板直接加载/developer/sdk/v1/aidc.js,随官网部署生效,不用重发应用。 - 会议纪要样板(v2):去掉写死的转写关键词
AIDC / Nexus / Developer——转写会偏向关键词,实测把会上说的「SAP」听成了「Nexus」;去掉后同一段录音 4 处「SAP」全部听对。文档补充:keywords只放会上真会出现的词。 - CLI
aidc --version:管道里也只打印版本号(此前非终端输出 JSON,安装脚本的「已安装」提示里会夹一段 JSON);要 JSON 用aidc --version --json。
1.0.0 — 2026-09-26
首个版本。
新增
- 七个 SDK:视觉(摄像头、拍照、选图、结构化质检、画框标注)、语音(实时转写、录音、音量、文件转写、多语翻译、会议纪要)、视频(带声录像、定时抽帧、视频分析)、模型(OpenAI 兼容:LLM / 视觉 / 转写 / 实时转写 / Jev,账单记调用方公司)、数据(解析、画像、聚合、透视、时间序列、异常、格式化、图表)、发布(清单、版本、双通道、回滚)、连接(数据集固定报告、智能体 Agent API)。
- aidc CLI:设备授权登录;
models/model/vision/voice/video(ffmpeg)/data/connect/app全套命令;--json、--dry-run、稳定退出码。 - API:
/api/v1/developer/**(登录、Key、应用、版本、通道、票据、数据集)与/api/v1/models/**(目录、chat.completions、audio.transcriptions、实时转写票据、Jev)。 - 托管:Developer 预览
/developer/apps/<slug>、Nexus 正式/nexus/apps/<slug>;客户应用挂在/developer/<cellId>/apps/<slug>与/nexus/<cellId>/apps/<slug>。 - 智能体接入:
/developer/llms.txt、每页 Markdown 原文、/developer/skills/aidc-sdk/SKILL.md、/developer/openapi.json、应用清单 JSON Schema。 - 样板应用:瑕疵检测、会议纪要、ERP 数据自动分析(公开)。
- 合成 ERP 演示库
demo_erp(虚构数据)。
本页由 developer/docs/../CHANGELOG.md 生成 · Markdown 原文 · llms.txt