功能落地和安全漏洞,有时候在同一天出现。
这不是意外,是规律。新能力越大,暴露的攻击面越大。过去 24 小时,主线是四件事。
一、底座硬化完成,正式发版
记忆系统的核心硬化在这一轮收尾:
中文检索回归正常:之前中文语义检索用的是英文模型,精度一直在漂。切回中文模型后,召回质量恢复到了该有的水平。
跨会话记忆不再硬隔离:之前历史记忆完全不参与当前评分,改成了软加分机制——旧记忆权重会衰减,但仍可参与召回,避免“一刀切”带来的信息断层。
消息队列升级:从基础版本升级为持久化版本,确保消息不丢、按序消费。
评测体系也同步改成和生产一致的“同构评测”——不用模拟环境,直接跑生产链路,确保线下测出来的问题就是线上实际发生的问题。
语音转写引入了新的优先引擎,补齐了转码、超限和回退链路。
这些改动合并后打了新版本。

二、平台使用助手上线,当天补上跨租户投毒漏洞
“平台使用助手”是这一期最大的产品动作:给平台自身配一个专属智能体,专门回答“这个系统能做什么、怎么用、接口怎么调”这类问题。背后挂一个只读的平台级知识库,包含使用手册、记忆系统说明、开放平台接入文档。
上线逻辑不复杂:给知识库加一个平台标记,标记为平台库的内容对所有租户只读可访问,不改数据库权限结构,只在读取层做过滤。
但上线后做对抗审查时发现了一个严重问题:写入和删除端点复用了读取的校验逻辑,没有区分“只读访问”和“写权限”。这意味着任何租户管理员理论上都能向全局平台库上传文件、重试嵌入、或者删除内容——既可以投毒,也可以删库。
修复方式是给访问校验补上写语义区分:平台库对普通租户只读,写入和删除操作只允许来自系统管理员。同时收窄了默认值回退逻辑,防止普通绑定污染平台助手的召回结果,让种子脚本的数据库错误真正能阻断部署,而不是被静默吞掉。
功能刚落地,漏洞当天补上。 这是我们现在能做到的节奏,也是“同一天”的代价。

三、检索质量:评测驱动,逐层拆解
知识库检索这一轮做了一套完整的评测驱动优化——不是凭感觉调参,而是先建评测集、跑基线、定位问题、改代码、再回测。
主要改动集中在四个层次:
片段粒度:对细粒度片段单独排序后再聚合回完整文档返回,解决精确片段被长文本淹没的问题。
标题可见性:把文件标题和路径拼进重排序的输入,不再只看正文内容,标题匹配的文档得分更高。
参数放开:去掉重排序输入的长度硬限制,关键参数改成可配置,支持不重新部署就灰度调整。
多样性召回:加入内容维度多样性选择,让“价格”“尺寸”“使用方法”这类不同维度的内容能同时进入结果,而不是被单一维度的高分内容全部占满。
这一轮结束后,检索从“容易偏单一维度”变成“标题更可见、片段更细、结果更多样、参数可灰度”。

四、三个产品补丁
其余三处改动相对独立,但都是真实用户需求:
删除智能体:智能体中心此前只能创建和编辑,没有删除入口。这次补上了删除功能,删除时会联动清理绑定关系和访问授权。
多会话并发流式:WebChat 原来只有全局单个流式状态,切换会话会打断正在输出的消息。改成按会话隔离后,多个会话可以同时输出,切换不中断,侧边栏显示“输出中”指示灯。
超管代入租户体验修复:平台超管切换到某个租户时,左上角品牌名和角色仍然显示自己的超管信息。修复后,代入状态下角色视为该租户管理员,前端权限逻辑正常工作。

24 小时,四条主线同时推进:记忆底座硬化、平台助手上线、检索质量优化、产品体验补齐——每一条都在往“可信赖”的方向走一步。
这,是第六十二天。
《从0到1:企业级AI项目迭代日记》记录一个企业级 AI 项目从创意、架构到落地的真实过程。不讲神话,只记录进化。
如果你也在做企业 AI 落地,欢迎留言来聊。或者,把这篇转发给一个正在踩同样坑的朋友。
夜雨聆风