更新记录
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