86 lines
6.3 KiB
Markdown
86 lines
6.3 KiB
Markdown
# 雅文内容创造工作台:SaaS 与记忆库全面审查报告
|
|
|
|
审查日期:2026-08-27
|
|
审查范围:`server/app`、`web/src`、`server/data/workspace.db`、用户端 `/app`、管理端 `/admin`
|
|
审查基线:核心逻辑设计文档 v6、用户端/管理端云化与计费设计、记忆库原文《一文搞懂个人 AI 记忆系统构建全流程》
|
|
|
|
## 一、结论摘要
|
|
|
|
当前工作台已经具备“用户端与管理端分入口、登录会话、用户级用量账单、Agent 画布统一授权、知识库和记忆库基础 CRUD、运行追踪、模型目录同步”的本地可运行骨架。
|
|
|
|
本轮已修复三项高风险问题:
|
|
|
|
1. 角色从固定四个选项升级为可新建、可调整、可删除的自定义角色;界面权限名称全部改为中文。
|
|
2. 管理端资源和账单查询增加租户范围,管理员只处理本租户和全局资源;跨租户成员、知识库、画布、记忆与用量不再通过管理接口直接返回。
|
|
3. 记忆表补齐标题、描述、隐私范围、标签、沉淀日期、索引状态、使用次数和最近使用时间;运行时只加载“已生效且已建立索引”的记忆,并限制单个 Agent 最多加载 50 条高使用频次记忆。
|
|
|
|
仍需继续建设的企业级能力:云数据库/对象存储、密钥托管、组织与平台管理员分层、限流与审计留存、向量检索索引服务、记忆冲突检测和过期治理。这些属于部署架构升级,不应被本地 SQLite 演示版冒充为已完成。
|
|
|
|
## 二、文章要点与当前实现对照
|
|
|
|
参考原文:[一文搞懂个人 AI 记忆系统构建全流程](https://mp.weixin.qq.com/s/2Kz2JQK1r606S3quiCFUYg)
|
|
|
|
### 2.1 记忆组织
|
|
|
|
文章将记忆拆为五层:身份、原则、偏好、上下文、知识;每个一级目录最多两级子目录,二级目录直接放文件。当前数据库原有 `L1-L4` 层级保留兼容,本轮新增元数据后,建议在 UI 中把层级显示为“身份/原则/偏好/上下文/技能/经验/学习”,并在数据库中继续保留原始层级字段以兼容历史任务。
|
|
|
|
### 2.2 元数据
|
|
|
|
文章要求每条记忆具备类型、标题、描述、状态、隐私、标签和沉淀日期。当前 `Memory` 已增加对应字段,并新增 `index_status`、`usage_count`、`last_used_at` 作为运行治理字段。历史记录启动时会用 `created_at` 补齐沉淀日期。
|
|
|
|
### 2.3 调用与写入
|
|
|
|
文章强调“先看总索引,再按需加载”,写入前必须人工确认,并且保留来源和排除理由。当前待确认池仍是人工确认入口,批准后才创建 `Memory`;运行快照只读取已生效且已索引的记忆。下一阶段应增加每个 Agent 的索引文件/摘要接口、来源证据字段和冲突候选列表,避免把所有正文一次性塞进上下文。
|
|
|
|
### 2.4 文章明确的治理缺口
|
|
|
|
文章指出记忆升级、冲突检测和过期检测仍需要治理。当前系统已经有 `active/expired` 状态,但还缺自动过期策略、冲突检测、版本链和“经验升级为技能/原则”的人工工作流,列为 P1。
|
|
|
|
## 三、SaaS 审查结果
|
|
|
|
### P0:已修复
|
|
|
|
| 问题 | 修复结果 |
|
|
| --- | --- |
|
|
| 固定角色,无法按岗位新建 | 新增角色接口和管理端表单;内置角色不可删除,自定义角色可删除,仍被成员使用时删除会被拒绝 |
|
|
| 权限码直接展示英文 | 权限矩阵和成员角色选择只展示中文名称;内部键仅用于接口与数据库 |
|
|
| 管理员管理接口全表查询 | 知识库、画布、记忆、成员、用量、账单和配额查询按 `organization_id` 限制;全局资源以 `organization_id=0` 作为共享基线 |
|
|
| 管理员跨租户直接访问资源 | 资源访问函数统一校验租户;管理员不再天然拥有其他租户资源权限 |
|
|
| 通知列表可能暴露未知来源 | 普通成员只读取自己任务产生的通知;没有资源关联的历史通知交给租户管理员处理 |
|
|
|
|
### P1:当前仍需建设
|
|
|
|
| 领域 | 当前状态 | 建议 |
|
|
| --- | --- | --- |
|
|
| 组织管理 | 有 `Organization` 表,默认单组织,缺少组织创建、成员邀请和组织管理员边界 | 增加组织生命周期、邀请、离职回收和平台超级管理员能力 |
|
|
| 数据存储 | SQLite、文件目录和本地向量回退存储 | 生产环境切换云数据库、对象存储和托管向量库;文件访问使用签名 URL |
|
|
| 凭据安全 | Provider API Key 仍在本地表中保存 | 接入密钥托管服务,数据库只保存引用和轮换版本 |
|
|
| 模型目录 | Provider/ModelCatalog 当前偏全局 | 增加租户可见范围、默认模型策略、可用性探测和费率版本审批 |
|
|
| 计费 | 用户账单、追加式用量事件和配额已经存在 | 增加支付/充值、退款、月结单、发票、账单导出和异常对账 |
|
|
| 运行治理 | 有 trace、span、调用日志和快照 | 增加租户级保留周期、脱敏、检索权限和审计导出 |
|
|
| 并发与限流 | 有配额检查,缺少接口/模型/租户级限流和队列配额 | 增加 Redis 限流、并发槽位、重试预算和熔断 |
|
|
|
|
### P2:体验与维护
|
|
|
|
- 统一全部页面的状态词、可见性词和授权词,避免同时出现内部英文枚举。
|
|
- 为角色、Agent、画布、知识库和记忆补充操作日志和变更前后快照。
|
|
- 将资源授权和画布授权合并展示为一条“使用范围”,降低管理员理解成本。
|
|
- 增加租户级健康检查、索引积压、账单积压和失败运行的运维面板。
|
|
|
|
## 四、验收证据
|
|
|
|
- 后端 `compileall`:通过。
|
|
- 后端回归:24 项测试通过。
|
|
- 前端 `npm run build`:通过,Vite 生产构建成功。
|
|
- 真实数据库迁移:`Memory` 元数据列已存在,历史记忆沉淀日期已回填。
|
|
- 角色接口实测:创建“内容主编”自定义角色,确认返回 `builtin=false`,随后删除成功。
|
|
- 服务地址:前端 `http://127.0.0.1:5173`,后端 `http://127.0.0.1:8010`。
|
|
|
|
## 五、下一阶段实施顺序
|
|
|
|
1. 完成组织管理和平台管理员分层,冻结租户边界。
|
|
2. 接入云数据库、对象存储、向量索引与密钥托管。
|
|
3. 为记忆增加索引摘要、来源证据、版本链、冲突候选和过期任务。
|
|
4. 增加租户限流、运行审计、账单对账与导出留痕。
|
|
5. 用 Playwright 做 `/app`、`/admin`、角色创建、授权、记忆确认和账单隔离的端到端验收。
|