平台管理
本章分为两部分:平台管理(租户 owner/admin 的系统配置,路径 /platform)与平台管理员专区(平台运营方,路径 /admin)。
租户侧平台管理
路径:/platform
平台管理为租户管理角色(owner/admin)提供系统配置功能。
🔒 仅 owner 和 admin 可访问平台管理菜单。member 不显示该菜单分组;直接输入 URL 由路由守卫拦截显示"无权访问"页;后端每个端点另有 require_role 硬门 403 终裁——三防线独立生效,绕过前端也无法越权。
LLM 模型管理
路径:/platform/llm
管理租户可用的 LLM 模型配置。
操作步骤:
- 查看已配置的 LLM 提供商列表
- 点击 添加模型 新增配置
- 填写模型信息:提供商、模型名称、API Key、端点 URL
- 点击 测试连接 验证配置有效性
- 设置默认模型和参数(温度、最大 Token 等)
健康状态与自动容灾:
- 提供商列表新增 健康状态 列:
正常(绿色)/ 异常(红色)/ 未知(灰色)
- 鼠标悬停
异常 标签,可查看最近一次探测的失败原因与探测时间
- 系统每 5 分钟在后台自动探测各提供商可用性(探测不消耗 Token;连续 2 次失败才标记
异常;Azure 类型不参与探测,显示 未知)
- LLM 调用失败或平台服务商未向当前套餐开放时,系统自动按候选顺序切换下一个可用提供商(无权限切换为静默切换),正常情况下无需人工干预
连接器配置
路径:/platform/connectors
管理外部系统连接器(企业微信、钉钉、飞书、微信、Telegram、邮件、Webhook、通用 REST)。
操作步骤:
- 查看已配置的连接器列表(名称/模式/状态/上次测试)
- 点击 添加连接器 新增
- 选择连接器类型与接收模式
- 填写连接参数(凭据加密存储;编辑时凭据留空 = 保持原值)
- 点击 测试连接 验证连通性(微信连接器未绑定时会提示先扫码绑定)
- 启用/禁用连接器;展开行查看运行详情与绑定状态
微信连接器(ClawBot):
- 添加类型为 微信 的连接器并启用后,展开行出现绑定卡片
- 点击生成按钮显示绑定二维码(前端本地渲染),用需要接入的个人微信扫码完成绑定;同一时间仅支持绑定一个微信账号,重新绑定会使旧账号失效
- 绑定成功后,在该微信中发消息即可与 AI 双向对话;消息以
clawbot 渠道记录在会话管理
- 解绑后凭据清空,可重新扫码绑定
Telegram 连接器:
- 在 Telegram 中通过 @BotFather 创建 Bot 并获取 Bot Token
- 添加类型为 Telegram 的连接器,选择接收模式:
- 长轮询(默认):服务器主动拉取消息,无需公网回调,开箱即用
- Webhook:Telegram 主动推送,需后端具备 HTTPS 域名(Telegram 仅接受 443/80/88/8443 端口);保存后在展开行填入回调根地址并点击 注册;更换 Token 后需重新注册
- 可选配置:API 地址(使用自建 Telegram Bot API 服务或反向代理时填写)、代理地址(网络受限环境)
- 首个向 Bot 发消息的会话自动绑定为接收目标;AI 回复会引用原消息
- 凭据编辑时留空保存 = 保持原 Token 不变
💡 个人消息通道(member 亦可用)参见 AI 工作台 · 我的消息通道。
租户管理
路径:/platform/tenants
查看和编辑租户信息:租户名称、租户 Slug、成员数量、创建时间、租户设置(货币偏好等)。
用户权限管理
路径:/platform/users(菜单:用户与角色)
管理租户内的用户与角色(三角色 owner/admin/member)。
操作与所需角色:
| 操作 |
owner |
admin |
| 查看成员列表(姓名/邮箱/角色/状态) |
✅ 邮箱明文 |
✅ 邮箱明文 |
| 邀请新成员(角色仅 admin/member) |
✅ |
✅ |
| 重发邀请(未激活成员) |
✅ |
✅ |
| 修改用户角色 |
✅(仅可改为 admin/member) |
❌ 只读角色列 |
| 移除成员 |
✅ |
❌ |
操作步骤:
- 查看用户列表(姓名、邮箱、角色、状态)
- 邀请新成员:填写邮箱与角色(admin/member),系统发送含初始密码的邀请邮件(邮件发送失败时,初始密码会直接显示在页面上,请注意留存)
- 对未激活成员 重发邀请
- 修改用户角色(owner 专属;角色下拉可选 admin/member;owner 自身不可被改角色)
- 移除成员(owner 专属)
🔒 角色变更与移除收敛为 owner 专属(所有权级操作):防止 admin 自我提权或提权他人——admin 不能造 admin。后端 require_role("owner") 硬门,admin 调用直接 403。
🔒 member 可在协作场景看到成员列表,但其视角下邮箱脱敏显示(仅首字符 + *** + @域名);完整邮箱仅 owner/admin 可见。
邀请码管理(推荐码)
路径:/platform/invitations
管理本租户的推荐码。推荐码 不是成员邀请:被推荐人用码注册后,会以 owner 身份创建一个全新的入门版(starter)租户,不会加入本租户;系统自动记录推荐归属关系。
操作步骤:
- 查看推荐码列表(代码、已用/剩余次数、有效期、备注)
- 生成新的推荐码(每租户有生成数量配额)
- 复制推荐码分享给新用户
- 撤销(停用)不再使用的推荐码
💡 如需让成员 加入本租户,请使用「用户与角色」的邮件邀请功能,不要使用推荐码。
系统设置
路径:/platform/settings
设置分类:
- 货币设置(✅ 保存生效):选择显示货币(CNY/USD),汇率默认 7.2
- 安全设置:密码策略、会话超时(⚠️ 界面占位,保存不持久化)
- 邮件设置:由平台管理员统一配置(见下方邮件设置与邮件模板),租户无需自配 SMTP
- AI 设置:默认模型、Token 限制(⚠️ 界面占位,保存不持久化)
💡 货币设置存储在 tenants.settings JSONB 中,无需 schema 迁移。内部存储始终为 USD,仅显示层转换。
订阅管理
路径:/platform/subscription(菜单:订阅管理)
查看与升级租户订阅套餐:
- 套餐卡片:展示各可购套餐,支持月付/年付切换(未定价的周期不提供在线购买)
- 当前订阅:显示当前套餐、订阅状态与到期时间(永久套餐无到期时间)
- 在线升级(仅 owner):选择套餐与周期 → 下单 → 微信扫码 / 支付宝跳转支付 → 支付成功后套餐即时顺延生效
- 订单记录:仅展示本租户订单(待支付/已支付/已关闭);owner/admin 均可查看
🔒 下单与升级操作为 owner 专属(订阅是租户资产的所有权级操作);admin 仅可查看套餐与订单列表。
💡 支付成功后订阅状态即时更新;订阅到期后套餐权益回落 starter,可随时再次订阅恢复。
审计日志
路径:/platform/audit
查看租户所有操作的审计记录:操作人、操作类型、操作对象、操作时间、操作详情。
平台管理员专区
路径:/admin
平台管理员登录后自动进入管理员专区,菜单与租户用户完全不同。
管理员仪表盘
路径:/admin/dashboard
展示平台级统计:租户总数、用户总数、AI 交互总量、系统资源使用。
租户管理
路径:/admin/tenants
管理平台所有租户:
- 查看租户列表
- 点击租户进入详情
- 查看/编辑租户信息
- 分配/变更租户套餐(下拉仅列启用中的套餐)
- 启用/禁用租户
套餐管理(四层权益模型)
路径:/admin/plans(菜单:套餐管理)
统一管理租户套餐注册表——套餐决定该租户的四层权益(L1 中心授权 / L2 高级功能 / L3 额度 / L4 企业策略):
- 套餐列表:代码(
starter 带「默认」标签)/名称/权益矩阵摘要(中心 x/8 · 高级 y/31 · 渠道 z/7)/静态额度/邀请码配额/租户计数/启用状态
- 新建/编辑(注册表驱动,码表权威
GET /admin/plans/registry):
- L1 中心与独立能力授权(8 开关):评估/决策/规划/交付/知识/运营六中心 + AI 副驾驶(copilot.chat)+ 工单支持(support.tickets)
- 渠道授权(7 开关):邮件/Telegram/企业微信/微信(ClawBot)/钉钉/飞书/通用 REST——关闭后不可创建对应类型连接器
- L2 高级功能(31 开关,按中心分组):如评估中心下的 AI 评分与裁判、AI 访谈、AI 报告生成等;所属中心关闭时该组同步失效
- L3 额度:静态 7 项(用户数/转型项目数/知识库数/AI 应用数/渠道连接数/知识库存储 MB/邀请码配额)+ 月度 4 项(AI 调用次数/AI Token 用量/AI 费用 USD/评测次数)——留空=不限;月度 AI 费用(monthly_ai_cost_usd)存储与执法恒 USD,编辑弹窗与展开行按平台记账汇率附
≈¥ 参考值(仅参考,不改变存储值)
- L4 企业策略(5 项,预留):SSO/审计导出/数据保留/私有化部署/SLA——仅建模展示,当前版本不强制执行
- 模型策略:允许档位(free/standard/premium 多选)+ 模型白名单/黑名单(例外放行/拒绝,标签输入;键入时提示已添加服务商的模型候选并标注来源服务商,防错名——黑名单错名=该模型静默放行且无提示,亦可自由输入);三者均空 = 不限
- 删除:仅无租户使用、且无待支付订单的套餐可删除;
starter 为新租户默认套餐,不可删除。有租户在用或存在待支付(pending)订单时删除被拒,需先改派租户、等待订单支付或过期(订单 15 分钟超时)。删除套餐时同步清理平台 LLM 服务商「套餐访问」映射中的该套餐键——LLM 配置页对应开关随之消失,不产生指向已删套餐的悬空开关
- 停用:停用后不可分配给新租户,存量租户不受影响
- 展开行:月度额度 + L4 策略 + 模型策略 + LLM 访问汇总(按平台服务商显示该套餐是否允许访问:可用=已开放 / 不可用=已关闭,只读;编辑请前往「LLM 提供商管理」)
内置四套餐种子矩阵(free/starter(默认)/pro/enterprise):
- L1:六中心 + copilot.chat + support.tickets 四套餐全开
- L2:
pro/enterprise 开 21 项高级功能(AI 评分/访谈/报告生成、ROI 分析、AI 规划产物、RAG、AI 知识治理等);enterprise 独有 10 项(评估/规划/知识治理、组合分析、审批会签、PMO、知识图谱、经验复用、实验灰度、运营治理)
- 渠道:邮件=starter+;Telegram/企业微信/REST=pro+;微信(ClawBot)/钉钉/飞书=enterprise 专属
- L3 额度:
| 额度 |
free |
starter |
pro |
enterprise |
| 用户数上限 |
3 |
10 |
50 |
不限 |
| 转型项目数上限 |
1 |
3 |
20 |
不限 |
| 知识库数上限 |
1 |
2 |
10 |
不限 |
| AI 应用数上限 |
1 |
2 |
10 |
不限 |
| 渠道连接数上限 |
0 |
1 |
5 |
不限 |
| 知识库存储(MB) |
512 |
5,120 |
51,200 |
不限 |
| 邀请码配额 |
0 |
10 |
50 |
200 |
| 月度 AI 调用次数 |
100 |
500 |
5,000 |
不限 |
| 月度 Token 用量 |
500,000 |
2,000,000 |
20,000,000 |
不限 |
| 月度 AI 费用(USD) |
1 |
10 |
100 |
不限 |
| 月度评测次数 |
5 |
20 |
200 |
不限 |
门控语义(关闭某权益后,对该套餐下的租户生效):
- 前端:对应菜单入口自动隐藏;直接访问路由显示「功能未开通」提示页
- 后端:L1 模块 API 返回 403(
plan_feature_disabled),前端统一 toast 提示;L2 端点级强制(165 个高级功能端点挂 require_plan_feature)
- Agent 回落:意图路由命中的 Agent 若其所属中心未开通,自动回落
chat_agent,SSE metadata 携带 entitlement_fallback
- 渠道会话:渠道入站消息要求租户已开通 copilot.chat,未开通事件丢弃并记录日志(软执行);存量连接器不回溯删除
- AI 运营复评/经验回放等事件型入口为软执行(记录 warning 后跳过,不中断主流程)
- 额度强制:静态额度(7 项)超出时新增被拦截(403);月度额度超限统一返回 429(
plan_limit_exceeded),前端统一 toast;月度额度按自然月重置——其中 monthly_ai_calls/tokens/cost_usd(3 项)在 LLM 网关入口预检(含缓存命中),monthly_eval_runs 在评测创建入口按当月 run 计数拦截;额度值留空 = 不限(全码统一,含 invite_quota)
- 软执行:存量超额数据保留,仅拦截新增
模型策略:套餐可配置可用模型范围,仅约束平台服务商的模型(租户自建服务商不受限):
- 判定优先级:黑名单(denied_models)> 白名单(allowed_models)> 档位(allowed_tiers);三者均空 = 不限(存量套餐零行为变化)
- 档位在「LLM 提供商管理-模型价格目录」维护(free/standard/premium);未收录进价格目录的模型视为
standard 档
- 生效面:LLM 网关调用入口(含缓存命中补检——受限模型命中缓存按未命中处理,最终拒绝)、租户可见模型/服务商列表按策略过滤
- 指定受限模型的调用返回 403(
model_not_allowed),主对话流(SSE)以错误帧提示;未指定模型的调用自动改选首个允许的模型
- 套餐月度 AI 费用额度(monthly_ai_cost_usd)不受影响,仍按平台实际成本记账(详见 LLM 提供商管理计价链);租户侧「组织设置」中该额度按租户货币设置展示(与用量页同口径),额度本身仍以 USD 执法
租户级覆盖(overrides):超管可在租户详情为单个租户配置 entitlement_overrides(三 map 同构),优先级高于套餐值(部署后生效,用于临时扩容/收窄而不新建套餐)。
邀请配额迁移:原「品牌设置」页的邀请码配额已迁移至本页按套餐配置(品牌设置页保留跳转提示);free 档邀请配额从此可配置(历史版本不可配)。
品牌设置
路径:/admin/brand
配置平台品牌信息:平台名称、Logo、登录页文案、主题颜色。
邀请码管理
路径:/admin/invitations
平台级邀请码管理,可创建两类邀请码供新租户注册:
- PLATFORM 码:可指定目标套餐(
target_plan),注册的新租户直接开通对应套餐(未指定或套餐不可用时回落入门版)
- TENANT 码:推荐码语义,注册后创建新的入门版租户(平台创建的码无推荐归属)
⚠️ 页面为 TENANT 码提供的附加选项(如目标租户、成员类型)在当前注册流程中不生效——注册一律创建全新租户,不会加入指定租户。
用户管理
路径:/admin/users
管理平台所有用户:查看用户列表(跨租户)、查看用户详情、调整用户角色、禁用/启用用户。
LLM 提供商管理
路径:/admin/llm
管理平台级 LLM 提供商配置:
- 添加/编辑/删除 LLM 提供商
- 配置 API Key 和端点
- 设置全局默认模型
- 监控 API 调用量和成本
- 配置 套餐访问开关:逐套餐控制是否允许该套餐租户使用此平台服务商(新建服务商默认仅开放
enterprise);未开放的套餐调用时自动切换其他有权限的服务商,租户自建服务商不受影响
- 服务商级不再单独设置月度 Token 限额——套餐月度 AI 用量(调用次数/Token/费用)统一由「套餐管理」的月度额度控制
- 模型价格目录:维护模型目录价(输入/输出/缓存命中,按行计价币种 USD 或 CNY,每百万 tokens)与档位(free/standard/premium):
- 计价链(成本核算口径):价格目录行(输入+输出价均设置时激活)→ litellm 内置价目 → 网关兜底价 → 0;目录仅存例外(litellm 不认识的自定义模型/价目修正/缓存差价),未收录模型直接走 litellm
- 计价币种(每行 USD/CNY):国内服务商人民币牌价可直接录入 CNY 行(表格价格列显示
¥ 前缀、价格弹窗单位标签随币种切换);记账层恒 USD——CNY 行计价时按平台记账汇率换算成 USD 后进入记账链路(llm_calls.cost、月度账本、额度执法),USD 行原样入账
- 平台记账汇率(1 USD = X CNY,默认 7.2):价格目录卡片右上角「记账汇率」按钮查看,点击进入编辑(限 0.5–25,保存需超管权限并记审计日志);仅影响后续计价时点,不回写历史调用成本、月度账本或已存套餐额度
- 模型关联:新增价格时「模型」输入框自动提示已添加服务商的模型(选项标注来源服务商名,支持输入过滤),选中即可避免手输错模型名(错名永不命中目录、静默回退 litellm 价目);也可自由输入未配置的模型名前瞻定价
- 缓存感知:OpenAI 系
prompt_tokens_details.cached_tokens / Anthropic 系 cache_read_input_tokens 自动提取并记录到用量(llm_calls.cached_tokens);计价时命中部分按缓存价计(未设置按输入价)
- 档位供「套餐管理-模型策略」按档位圈定可用模型;未收录模型视为
standard 档;删除目录行后该模型成本回退 litellm 价目
- 查看各提供商 健康状态(正常/异常/未知;悬停
异常 标签显示失败原因与最近探测时间)
健康探测与容灾机制:
- 后台每 5 分钟自动健康探测(零 Token 成本;连续 2 次失败才标记
异常;Azure 类型不探测,保持 未知)
异常 提供商不会停用,仍作为末位候选参与调用(软降级);探测恢复后自动回归优先
- 调用失败时网关按候选序列自动切换:同模型其他提供商 → 默认提供商 → 回退模型
- 提供商级失败进入 60 秒冷却(冷却期内跳过,不占用尝试名额);套餐无访问权限不进入冷却(该状态为套餐级,避免影响其他租户)
工单管理
路径:/admin/tickets(菜单:工单管理,图标为客服耳机)
跨租户处理租户提交的工单反馈:
- 列表:全部租户工单(编号/租户/提交人/类型/标题/状态/提交时间),支持按状态、类型筛选
- 处理:点击「处理」打开详情抽屉——完整描述、截图放大预览、租户与提交人信息
- 流转:设置处理状态(已提交 → 处理中 → 已解决 / 已关闭)+ 填写处理回复(租户可见)
- 邮件通知:租户每提交一张新工单,所有活跃平台管理员自动收到邮件提醒(需平台管理员在「邮件设置」配置 SMTP;未配置时仅记录日志,不影响租户提交;文案可在「邮件模板」中定制
ticket_notify)
工单处理建议:收到邮件提醒后尽快将状态置为「处理中」;处理完成后填入结论回复并置「已解决」,租户可在其"我的工单"中实时看到处理结果。
支付管理
路径:/admin/payments(菜单:支付管理)
配置支付渠道并管理跨租户订阅订单:
- 支付设置:微信支付 V3(appid/商户号/APIv3 密钥/证书序列号/私钥/回调地址)与支付宝当面付(应用 ID/应用私钥/支付宝公钥/回调地址);密钥加密存储、回显脱敏;启用在线支付总开关(关闭后租户无法在线下单,套餐变更仅由超管手动执行)
- 订单管理:跨租户订单列表(租户/套餐/周期/金额/状态/创建时间),按状态筛选
- 人工核销:线下收款等未走渠道回调的订单,点击「人工核销」填写备注后标记已支付——操作者与备注随订单持久化(审计留痕),租户套餐即时生效
💡 渠道回调核销自动进行;人工核销用于银行转账/线下收款等场景,备注作为对账依据长期保留。
邮件设置
路径:/admin/email(菜单:邮件设置)
平台级 SMTP 运行时配置(无需修改服务器 .env):
- SMTP 配置:服务器地址 / 端口(默认 465)/ 账号 / 密码(加密存储,回显脱敏)/ 发件人 / 是否 TLS
- 前端地址:邀请邮件中登录链接的前缀(留空使用服务器默认
FRONTEND_URL)
- 发送测试邮件:配置后可直接向管理员邮箱发送测试邮件验证连通性
- 优先级:此处(平台设置)配置后整组生效;未配置时回退服务器
.env SMTP_*;发信失败不影响业务(best-effort)
邮件模板
路径:/admin/email-templates(菜单:邮件模板)
编辑系统邮件文案(自定义内容优先,恢复默认即回退内置模板):
| 模板 |
用途 |
必填变量 |
| member_invite |
成员邀请邮件(含登录地址与初始密码) |
email、password |
| ticket_notify |
新工单提醒邮件(发给全部活跃平台管理员) |
无(变量均可选) |
- 语法:
{{变量}} 占位符 + {{#if 变量}}...{{/if}} 条件块(变量为空时整块隐藏);点击变量标签可插入正文光标处
- 校验:必填变量缺失无法保存(防止邀请邮件丢失密码等静默失效);变量值由系统预先转义
- 恢复默认:删除自定义内容即回退内置模板