从0到1:企业级AI项目迭代日记 Vol.50|宣布支持多租户,和真正跑通多租户,是两件事

一个系统宣布“支持多租户”的那天,往往只是完成了最显眼的那层改造。真正的工作,是在之后一个角落一个角落地把隔离补进去。

今天做的事,大部分都属于后者。

一、隔离永远差一张表

上一阶段,我们完成了技能、记忆、凭证、用户画像的隔离。但系统里的资源不止这些——工作流、意图、节点、模型配置、系统级连接,原来全是全局共享的。

这一批,把这些资源全部补上了组织归属。数据库层面新增了多张表的组织维度,并调整了一些之前设计成“全局唯一”但其实应该“按组织唯一”的约束。

多租户改造的规律大概是这样:你以为改完了,新增一个资源,就又差一个角落。

二、数据库开了权限,却忘了告诉它你是谁

我们的数据库启用了行级安全策略——每条查询只返回属于当前组织的数据,不同租户之间物理隔离。

但有几处查询,调用方忘记了在请求里声明自己的组织身份。权限策略是开着的,但没有身份,就等同于“没有权限”——查询正常执行,返回空,不报错,数据就这么静悄悄地读不到了。

图定义、节点模板、自定义节点加载器,三处补上了显式身份注入,开启权限策略后这几块读取才真正恢复正常。

这类问题的特点是:不报错,只是不工作。比报错更难发现。

三、技能配了,Agent 却用不到

这个问题让人困惑:明明给 Agent 配置了技能,运行的时候它就是用不到,或者只能识别一部分,剩下的“消失”了。

追下去,发现是三处同时出了问题——

Agent 启动的时候,没有自动发现当前组织下有哪些技能可用;技能列表更新了,运行中的 Agent 不感知,要重启才能看到;另外,上一版加进去的注入上限,在某些情况下截断得太激进,导致技能列表后半段直接被切掉了。

三处一起修:自动发现接入、变更实时感知、截断默认关闭。

任意一处没修,结论都一样:技能配了等于没配。

四、每个租户,用自己的品牌

新增了组织级的品牌配置——Logo、品牌色。登录页、侧边栏、聊天界面、设置页,全部适配。

用户打开系统看到的,是客户自己的品牌,不是平台的品牌。

做 SaaS 到最后,技术层面的区分度会越来越小,品牌和体验上的贴合度反而成了留住客户的东西。

五、构建从玄学变回工程

构建流程这段时间出现了两个问题,性质不同,根因类似——都是在依赖外部的东西。

一个是自动化测试用的浏览器组件从网络拉取,CDN 偶发抖动,构建随机失败,复现不稳定,每次都要重跑,不知道是代码问题还是网络问题。改成从本地缓存复制,彻底去掉对网络的依赖。

另一个是前端编译开了严格检查,有一个变量声明了但没用到,直接阻塞了镜像构建。清掉这个变量,编译恢复通过。

顺带,把构建时产生的缓存目录从镜像里排除出去,后端镜像从 6.1GB 降到 5.2GB。

构建随机失败一次,损失的不只是时间,还有对系统状态的信心。

今天没有新功能上线,全是这类工作。

但 “宣布支持多租户”和“真正跑通多租户”之间,靠的就是这些。

这,是第五十天。

《从0到1:企业级AI项目迭代日记》记录一个企业级 AI 项目从创意、架构到落地的真实过程。不讲神话,只记录进化。


如果你也在做企业 AI 落地,欢迎留言来聊。或者,把这篇转发给一个正在踩同样坑的朋友。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值