平台能力
「登录怎么做」「附件存哪儿」「权限怎么管」——在别的地方做应用,这些是你要先解决的事。在观思动,它们生成即具备:每个应用生成的那一刻就带着,不用申请、不用配置、更不用你提。
这一页把它们排成一张清单,当对照表用:提需求前扫一眼,你就知道哪些事说一句就有。每一项还讲了它在水面下是怎么实现的——不是要你懂技术,而是让你知道托付出去的东西站在什么结构上;跟自家 IT 或服务商讨论时,也能对得上话。已有专门章节的,细节看链接。
一个应用的构成
水面下,每个应用都是一套完整的真实软件工程,而不是平台里的一张「配置」:
- 一个独立的代码仓库。 AI 写的是真实的前后端代码,每一轮改动都有提交记录。要交给自己的工程师二开、要带走,一条
git clone就是全部,见本地开发。 - 独立的运行容器。 开发版、正式版各自在自己的容器里跑,带 CPU / 内存限额——一个应用崩了或吃满资源,影响不到任何别的应用。
- 独立的数据库。 见下文「独立数据库」。
- 平台锁定的门与门禁。 登录、权限校验这些模块由平台放进每个应用,并且每次构建都被平台原样覆盖回来;构建时还有一排自动检查:每条接口必须挂身份守卫、权限声明必须和代码一致、密钥不许写死在代码里。就算有人——AI 或工程师——想绕开登录,构建这一关就过不去。
- 统一的入口网关。 每个应用有自己的网址,HTTPS 证书自动签发续期;所有访问先过平台网关,再进应用自己的容器。
下面每项能力,都建立在这套结构上。
组织与消息
登录和身份
同事不注册账号、不记密码。接了企业微信的组织,同事在企微工作台点开应用就直接进来了;没接企微的组织,用手机验证码登录。
水面下:平台是统一身份源——应用把访问者交给平台登录,平台向企微验明身份再送回应用。每个应用有自己的一把签名密钥,登录后发出的令牌只在这个应用内有效,即使两个应用都是你建的,令牌也互不通用。应用每约 15 秒从平台刷新一次成员状态,所以管理员停用一个成员,约 15 秒内他在所有应用里的受限功能一起失效。登录模块本身是平台锁定的,AI 改不了它。
外部用户
供应商、经销商、客户——不在公司通讯录里的人,也能给他们开一扇门。他们用手机验证码登录,只能进你点名开放的应用;邀请和停用都在控制台的外部用户页,见成员、角色与负责人。
给每个经销商开个入口,他登录后只能看到自己的订单和对账单。
水面下:外部身份和员工身份是两套独立人群,在底层就分开,不会混淆;验证码登录由平台的统一门户完成,应用只拿到「这个人是谁、属于哪个外部角色」。「只能看到自己的」那半句属于数据范围,在对话里说清哪条数据属于谁(比如订单上有经销商字段),AI 会照着做。
同事目录
应用里要选人的地方——选审批人、指派负责人、按部门筛人——直接从公司通讯录选,带部门结构,不用你在应用里维护名单。
水面下:应用不复制通讯录,而是实时向平台查询——所以入职、离职、转部门都不需要任何「同步」动作,目录永远是当下的。唯一要知道的:企业微信不向第三方应用提供同事的明文姓名,名字要在平台里补一次,否则会显示成「企微成员1234」,见常见问题。
消息通知
「审批完了通知提交人」「有异常推到群里」「推给主管一张带按钮的卡片,他在企微里点通过就行」——推群和推个人是两条不同的通道,整整一章讲它:通知与定时任务。
水面下值得知道一点:企微的企业凭据只在平台手里,应用通过平台的消息网关发送——应用代码里没有任何企微密钥可以泄露;群机器人的 webhook 地址也被当作密钥保管,不进代码。
权限治理
功能权限
每个敏感功能(导出、看成本价、删除)做出来时默认谁都不能用,你在控制台按角色、部门、个人逐项开放——不改代码,改完约 15 秒生效。这是平台最核心的治理能力,有专门一章:功能权限;那一章还讲了档位、负责人、可见范围这四个权限面各管什么。
水面下:应用在一份声明文件里列出自己有哪些敏感功能,构建门禁校验声明与代码一一对应——代码里多一个没声明的、声明里多一个没实现的,都构建不过;运行时每一次点击,都由应用按你在控制台的配置实时判定,判定依据每约 15 秒从平台刷新。
云端运行
独立数据库
每个应用有自己独立的数据库:不同应用之间不串数据,一个应用出问题不连累其他的。开发版和正式版又是分开的两套,你在开发版怎么折腾都碰不到真实数据,见开发版与正式版。
水面下:数据库账号分三种权限——应用运行时用的账号只能读写数据、不能改表结构;改表走单独的迁移账号,且只在部署那一刻执行;AI 平时帮你查数据(「上周三那批数字对不对」)用的是第三个只读账号。权限最大的那把钥匙,恰恰不在天天跑着的代码手里。
附件和图片
「拍照上传回单」「上传 Excel 批量导入」「识别完的单据存档」——文件有地方放,跟着应用走,单个文件最大 25MB。
水面下:上传走一次性签名链接直达存储,签名里绑定了应用身份——一个应用永远碰不到另一个应用的文件。文件和数据库一起,每天夜里加密备份到异地,且备份历史不可被服务器侧删改。
定时任务
「每天早上九点推日报」这类到点自动跑的事,对话里说一句就行。它的规矩(开发版不自动跑、错过不补发、最短间隔 5 分钟)都在通知与定时任务里,设了定时任务的人应该把那一页读完。
水面下:时间表是应用里的一份声明文件,到点由平台的调度器调用应用内一个带签名令牌的内部接口——应用不用自己常驻等时间,每次触发的结果都记在平台台账里,问 AI 就能查。
回调接入
上面的能力都是「人来用应用」;回调反过来——外部系统把数据推进来。ERP 推库存变动、支付平台推付款结果、电商平台推新订单,这类「那边一有动静就通知你」的对接,跟 AI 说清对方是谁、推过来的是什么,它会开一个专门的接收地址,你去对方系统里填上就通了。
聚水潭的库存一变,把变动推过来,应用里的库存数跟着更新。
水面下:接收地址里的令牌由平台按应用推导出来——不存在任何数据库里、外人猜不到;回调也是声明文件的一部分,构建门禁校验声明、地址、守卫三者一致。对方推送的验签规则各家不一样,AI 会处理。前提只有一个:对方系统支持「往一个网址推送」(通常叫 webhook 或回调配置)。
版本与回滚
每次发布都记在版本历史里。发布出了问题,一键回滚到任何一个健康的历史版本——回滚退的是功能,数据不动,同事录的数据一直是最新的,所以敢放心回。见发布与回滚。
水面下:每次发布都会构建一个不可变的镜像(那一刻代码的完整封存)。发布到正式版时,新容器先起、健康检查通过了才把流量切过去,旧容器保留作回滚目标——所以发布本身不停机,回滚就是把当年那个镜像原样重新上线,不是「再改一次代码改回去」。
浏览器验证
每次改完,平台会派另一个只能看、不能改的 AI 打开真实浏览器,把开发版实际点一遍再汇报。它验什么、有哪些盲区、你自己该验什么,见验收。
水面下:验证跑在一个隔离沙箱里——用的是你开发版数据库的一次性克隆(验证造的测试数据不会留在你的库里),而且沙箱断外网,它既改不了你的东西,也带不走你的数据。验证 AI 和开发 AI 是分开的两个,前者手里只有只读工具。
闲置休眠
应用建多了也不用回头清理。长时间没人访问的应用会自动休眠(开发版约 7 天、正式版约 14 天无访问),不占资源;有人打开就自动唤醒。多建应用没有负担,试出来不满意的放着就是。
水面下:休眠只是停掉应用的容器,代码、数据、配置一切保留。有人访问时,网关发现应用在睡,由「唤醒器」先接住这次请求、启动容器、确认健康后放行——你看到的只是首次打开多等一两秒。
智能与连接
内置 AI 能力
应用自己也能用 AI——「上传手写单据识别成字段」「粘一段客户留言自动分类」「把这周的记录生成摘要」。模型和用量由平台代管,你不用去申请任何 AI 服务的账号;想换成自己的模型账号也行,把密钥给它就换。
水面下:应用的 AI 调用打到平台的模型网关,网关持有模型密钥、逐次计量、按组织设每日额度——应用代码里没有任何模型密钥,用了多少也算得清。日常的识别、分类、摘要额度足够;要一次性跑大批量(比如几千张历史单据),先在对话里说清量级再动手。
连接器
要连的外部系统,在平台内置清单里的(见总览「能接的外部系统」一节),AI 手上有现成的说明书,你只需提供账号密钥;清单之外的系统要有接口文档才能接。
水面下:凭据存在平台的密钥库里,部署时才注入应用的运行环境,不进代码仓库;你在对话里粘贴的密钥只会存入密钥库,之后不再回显。同一份凭据可以存在组织层,多个应用复用,换密钥只改一处。见对话中的往返的密钥一节。
这张清单的用法
提需求时,平台已经有的,点名就行:说「审批完推企微给主管」,不用解释什么是消息推送;说「只有财务能导出」,不用描述权限系统怎么设计;说「经销商登录只看自己的」,不用讲登录怎么做。点到名字,AI 就知道接哪个能力。
反过来,如果你在别处用通用 AI 工具生成过应用就会知道:上面每一项——登录、权限、数据库、备份、通知、定时、回调、版本——都得自己再造一遍,而且大多要造对了才敢给同事用。这张清单就是「本地能跑」和「公司能用」之间的距离;想再往下看一层(把代码交给自己的工程师),见本地开发。