# OwnDsh V1 产品功能清单 状态:`scope-frozen-implementation-in-progress` 更新日期:2026-09-04(Asia/Shanghai) 适用基线:DSH Desktop `2.0.3`、DeepSeek Harness `0.1.1-rc.2`。 ## 1. 文档定位 本文是 V1 产品功能真源,回答三个问题:平台向管理员和员工提供什么能力,当前实现距离交付还差什么,以及发布前必须验证什么。技术架构、接口和数据库细节继续由[治理平台 MVP 详细设计](owndsh-governance-mvp-design.md)与[第二阶段产品控制台设计](phase-2-product-console-design.md)负责;V1 全场景执行和证据统一记录在 [V1 E2E 验收](v1-e2e-acceptance.md),历史任务证据继续保留在各阶段验收文档中。 代码存在不等于 V1 已交付。本文使用以下状态: | 状态 | 含义 | |---|---| | `已实现,待 V1 验收` | 主链路已存在,但仍需完成本文规定的自动化和真实客户端测试 | | `待实现` | 已纳入 V1,但当前代码尚不能完整满足 | | `待调整` | 现有能力与 V1 语义不同,需要收口而不是重写 | | `隐藏停用` | 保留现有代码和数据,不作为 V1 产品能力,客户端不得执行 | | `V1 不做` | 不设计入口、不增加兼容层,出现真实需求后再评估 | | `待确认` | 当前事实已查清,但尚未获得产品范围决定 | ## 2. 产品定位与边界 OwnDsh 是 DSH Desktop 和 DeepSeek Harness 的企业控制面。员工仍在本机运行 Harness、保留本地工作区、工具、终端和会话;平台只负责企业身份、受管模型、访问授权、Token 配额、速率控制、插件分发、设备治理、用量与审计。 OwnDsh 不维护、复制或分叉官方 Web/Desktop UI。员工侧唯一交付物是标准 `owndsh-plugin`:安装后只填写 OwnDsh Server 地址,未配置、未登录、登录过期或设备撤销时由官方 `shell.overlay` 扩展点全屏阻断;认证可用后恢复官方原生界面。地址保存在 Harness 官方 settings 中,不要求员工修改 profile。 平台不实现第二套模型 SDK。消息转换、tools、reasoning、SSE 解析和模型请求重试由锁定的 Harness `dsh-llm-pi-ai` 与 `dsh-llm-retry` 负责;企业网关只做认证、授权、限流、配额、审计、受管模型替换和上游密钥注入。 V1 的两个使用面如下: | 使用面 | 用户 | 核心流程 | |---|---|---| | 产品控制台 | 企业管理员、模型管理员、插件管理员、审计员 | 配置身份源、成员、模型、策略和插件,查询用量、审计与运行异常 | | 官方 DSH Desktop / Harness Web + `owndsh-plugin` | 员工 | 填写 Server 地址、企业登录、获取受管模型和插件,通过企业网关调用模型 | 典型上线顺序固定为:身份源和成员 → 模型供应商和受管模型 → 用户组和模型集 → 模型授权 → Token/速率策略 → 插件分配 → 员工登录和调用 → 用量与审计。 ## 3. V1 功能地图 | 功能域 | V1 功能 | 当前状态 | |---|---|---| | 企业登录 | 控制台、Desktop 和 Web Harness 使用 Authorization Code + PKCE 企业登录 | 已实现,待 V1 验收 | | 客户端插件门禁 | 零配置安装、Server 地址持久化、全屏登录/失效门禁和显式整包卸载 | 已实现,待 V1 验收 | | 控制台会话 | HTTP(S) 自适应的 HttpOnly/SameSite=Strict host-only Cookie、写请求同源校验、新标签复用、服务端注销 | 已实现,待真实浏览器验收 | | 身份源 | LOCAL、LDAP、OIDC,显式字段/Claim 映射、连接测试、启停 | 已实现,待 V1 验收 | | 自动建号 | LDAP/OIDC 首次登录按稳定外部 subject JIT 建号 | 已实现,待 V1 验收 | | LDAP 导入 | 后台搜索 LDAP 目录并按需导入单个成员 | 已实现,待 V1 验收 | | LDAP 组发现与映射 | 按需搜索 LDAP 目录组并显式映射到产品用户组 | 已实现,待 V1 验收 | | 本地成员与密码 | 管理员创建 ACTIVE/employee LOCAL 成员、首次登录强制改密、独立用户中心凭旧密码改密 | 已实现,待真实登录验收 | | 成员治理 | 查询、状态、固定角色、多身份摘要、绑定和解绑、设备摘要 | 已实现,待 V1 验收 | | 用户组 | 扁平用户组和手工成员,只用于批量模型访问授权 | 已实现,待 V1 验收 | | 模型供应商 | DeepSeek 官方/自定义供应商、三种 API 协议、密钥、连接测试、模型发现和启停 | 已实现,待 V1 验收 | | 受管模型 | 模型 ID、显示名称、上下文、最大输出、reasoningEfforts、兼容配置和启停 | 已实现,待 V1 验收 | | 模型集 | 将多个受管模型组成扁平集合,供批量授权和策略范围复用 | 已实现,待 V1 验收 | | 模型授权 | 所有成员、用户组或成员访问模型集或单模型的 additive allow | 已实现,待 V1 验收 | | Token 配额 | 组织/成员 × 全部模型/模型集/单模型 × 5 小时/日/周/月 | 已实现,待 V1 验收 | | 消费侧限流 | 组织/成员 × 全部模型/模型集/单模型的 RPM 和并发 | 已实现,待 V1 验收 | | 供应商容量 | 每个供应商共享 RPM 和并发上限,超限快速返回 429 | 已实现,待 V1 验收 | | 默认成员并发 | 不增加隐式默认值;管理员按需配置 `MEMBER × ALL_MODELS` RATE 策略 | V1 不做 | | 模型网关 | OpenAI Chat Completions、OpenAI Responses、Anthropic Messages 三协议流式代理 | 已实现,待 V1 验收 | | 上游 429 | 保留限流/硬额度语义与合法 `Retry-After`,由 Harness 决定重试 | 已实现,待 V1 验收 | | 插件分发 | 安装配置登记、发布、分类、可见范围、Desktop/Web 安装、版本切换、卸载和设备库存 | 已实现,待 V1 验收 | | 设备治理 | 注册、心跳、状态查询、撤销和 bootstrap 刷新 | 已实现,待 V1 验收 | | 用量与审计 | Token ledger、策略用量、模型调用、管理操作和 request ID 关联查询 | 已实现,待 V1 验收 | | Session 同步 | 服务端休眠代码与数据保留,V1 不展示且客户端不执行同步 | 隐藏停用 | | 私有 MCP 专用入口 | 专用配置表单和下发流程 | V1 不做 | | Coding Rules 专用入口 | 专用配置表单和下发流程 | V1 不做 | ## 4. 身份、成员与用户组 ### 4.1 企业登录 - 产品控制台使用自身的 shadcn authentication 双栏登录页,在同页完成 LOCAL/LDAP 登录并按身份源显示 OIDC 跳转按钮;Desktop 和 Web Harness 仍跳转平台身份页。客户端都不保存企业密码。 - 平台支持 LOCAL 密码、LDAP/AD 用户绑定和 OIDC Authorization Code 登录,最终签发平台自己的会话。 - LOCAL 首次初始化密码必须修改;登录失败、验证码、PKCE、state、nonce 和 redirect URI 在服务端校验。 - 身份源停用只阻止该来源的新认证,不合并、覆盖或删除成员的其他登录身份。 ### 4.2 稳定成员身份 - 一个成员可以绑定多个 LOCAL、LDAP 或 OIDC 登录身份。 - 外部身份唯一键为 `identitySourceId + stableSubject`;用户名、显示名和邮箱相同不得自动合并。 - LDAP/OIDC 新 subject 在 `JIT` 模式下创建无管理权限成员;`LINK_ONLY` 只允许绑定既有成员。 - 成员停用后,其登录会话、设备和模型调用全部失效。 - 控制台显示身份来源摘要,但不展示原始 Token、密码、Claims 或 LDAP manager secret。 ### 4.3 LOCAL 成员与密码 - 没有 LDAP/OIDC 时,企业管理员可以在成员页创建 LOCAL 成员;用户名在平台内唯一,初始状态为 `ACTIVE`,固定角色为 `employee`。 - 管理员输入一次性初始密码,服务端按共享密码策略校验后只保存 BCrypt hash,并设置 `password_change_required=true`;API 响应、日志和审计不回显密码。 - 新成员第一次使用初始密码认证后必须完成现有一次性 `CHANGE_PASSWORD` challenge,成功前不签发平台会话;challenge 不重放用户名、初始密码或验证码。 - 工作区菜单在 `Sign out` 上方提供独立“用户中心”,`/account` 基本信息与 `/account/security` 安全设置分别承载只读事实和改密。当前用户必须提交正确旧密码,成功后服务端撤销该成员全部平台会话并删除管理端 Cookie;其他标签在下次请求或刷新时返回登录页。 - 控制台 Token 只存在于 HttpOnly/SameSite=Strict/host-only Cookie;HTTPS 使用 `__Host-enterprise-admin` 并设置 `Secure`,HTTP 使用 `enterprise-admin`。JavaScript 不读取、不写入 localStorage/sessionStorage,也不注入 Authorization;服务端通过 Origin/Referer 拒绝显式跨源写请求。新标签直接通过 Cookie 请求 bootstrap,注销与改密后其他标签的下次请求返回 401。Desktop 继续使用 Host 内存 Bearer Token。 - LDAP/OIDC-only 成员没有 LOCAL 密码时,用户中心返回明确错误,不擅自创建本地凭据。V1 不提供管理员重置他人密码或“忘记密码”旁路;需要恢复时先绑定可认证外部身份,或由后续经过身份核验的恢复流程承接。 ### 4.4 LDAP 单人导入 V1 只做按需单人导入,不做完整目录同步: - 管理员选择一个启用的 LDAP 身份源并输入账号、姓名或邮箱关键字。 - Server 使用该身份源已经配置的 base DN、过滤器和属性映射执行有界搜索。 - 管理员从结果中选择一人导入;平台按稳定 subject 创建成员,已存在时返回既有成员而不是重复建号。 - 导入成员默认只有 `employee` 角色,不自动获得模型访问和管理权限。 - 新建身份进入既有 `USER_LINKED` 审计;搜索条件、manager 密码、原始目录响应和失败正文不进入审计。 - OIDC 没有通用目录搜索标准,V1 继续只支持 JIT,不为不同厂商编写私有目录适配器。 ### 4.5 扁平用户组 - 用户组没有父子层级、路径继承、Owner 或嵌套成员。 - 用户组只作为模型访问授权主体,不承担角色、Token 配额、RPM、并发或组织结构语义。 - 外部组映射以 `identitySourceId + externalGroup` 区分来源,不能因组名相同跨身份源自动合并。 - 手工成员关系和各身份源同步的成员关系独立保存,一个来源不能删除另一个来源的关系。 ### 4.6 LDAP 组发现与映射 V1 补齐 LDAP 目录到产品用户组的可操作闭环,但不镜像 LDAP 组和成员目录: - 入口位于“成员 → 身份接入”的 LDAP 身份源操作栏。管理员从目标 LDAP 记录直接打开组映射,按关键字搜索目录组,再映射到既有产品用户组。 - LDAP 身份源增加可选 `groupBaseDn`、`groupFilter` 和 `groupNameAttribute`;搜索复用已保存的 manager 凭据、LDAPS/StartTLS、RFC 4515 转义、连接/读取超时和最多 50 条结果的硬上限。 - 搜索结果只返回显示名称与 Group DN,不返回成员列表或任意 LDAP 属性;Group DN 作为 `externalGroup` 映射键,避免同名组冲突和管理员手填错误。 - 一个 LDAP 组在同一身份源内只映射一个产品用户组;多个 LDAP 组可以映射到同一个产品用户组。映射不直接授予角色、配额或模型,只通过产品用户组的模型授权生效。 - LDAP 登录和单人导入读取现有 `groupAttribute` 并刷新该身份源贡献的成员关系;创建或删除映射立即按已保存的最近组信息重算已有成员。 - `groupAttribute` 未配置表示不启用 LDAP 组同步;已经配置但用户条目不再返回该属性时,必须解释为权威空集合并撤销该身份源贡献的旧组关系。 - LDAP 目录侧成员变化在下次登录或单人重新导入时生效。V1 不增加定时全量同步、LDAP 组成员镜像、反向 `member/memberUid` 查询或嵌套组递归展开。 - OIDC 没有通用目录搜索协议,V1 不提供 OIDC 组导入;已有通用映射存储可以保留,但不扩展厂商目录 API。 ## 5. 受管模型 ### 5.1 模型供应商 供应商类型固定为 DeepSeek 官方和自定义供应商。自定义供应商从三种 Harness 原生协议中选择一种: | 协议 | 网关路径 | 典型客户端 | |---|---|---| | OpenAI Chat Completions | `/v1/chat/completions` | OpenAI 兼容聊天模型 | | OpenAI Responses | `/v1/responses` | Codex/Responses 兼容模型 | | Anthropic Messages | `/v1/messages` | Anthropic Messages 兼容模型 | 供应商保存名称、稳定 provider key、类型、协议、base URL、加密 API Key、连接/读取超时、状态以及共享 RPM/并发。密钥只在服务端解密用于上游调用,不进入 bootstrap、控制台回读、客户端磁盘或日志。 连接测试验证 endpoint、认证和响应类别。模型发现只在供应商提供兼容模型列表接口时使用;不能发现时允许管理员手工填写模型 ID,不猜测不存在的模型。 ### 5.2 受管模型与模型集 - 受管模型由供应商和模型 ID 共同定位,不依赖跨供应商唯一的模型名称。 - 管理员可以配置员工显示名称、上下文窗口、最大输出 Token、排序、状态、reasoningEfforts 和协议兼容项。 - 容量展示采用 Harness 十进制语义:`256K = 256000`,`1M = 1000000`;Server 始终保存明确正整数。 - reasoningEfforts 忠实投影 Harness 的 `off/minimal/low/medium/high/xhigh/max` 到供应商 wire 值,不在网关发明推理等级。 - 模型集是扁平集合,同一模型可以进入多个模型集;集合成员变化只影响后续授权和策略匹配,不改写历史用量。 ## 6. 授权、Token 配额与速率控制 ### 6.1 模型访问授权 模型授权与管理角色分离:固定角色决定谁能管理平台,模型授权决定员工能否调用模型。 | 主体 | 资源 | 语义 | |---|---|---| | 所有成员 | 模型集、单模型 | 为全员批量开放模型 | | 用户组 | 模型集、单模型 | 为一组成员批量开放模型 | | 成员 | 模型集、单模型 | 为个人特批模型 | 授权只有 allow,没有 deny、优先级和条件表达式。一个请求只要命中任一有效授权即可访问;客户端模型列表只是展示,网关每次请求都会重新校验。 ### 6.2 Token 配额 Token 配额只限制 Token,不计算价格、余额或套餐: - 主体固定为 `ORGANIZATION | MEMBER`,不做用户组共享额度池。 - 资源固定为 `ALL_MODELS | MODEL_SET | MODEL`。 - 时间窗口固定为连续 5 小时、自然日、自然周和自然月,日/周/月使用部署冻结时区。 - 四个窗口独立可选,空值表示无限制,不使用百万或其他大数模拟无限。 - 一次请求命中的所有组织、成员和模型范围策略同时生效,任一策略不足都拒绝请求。 - 请求前按保守估算预留 Token,流式完成后按上游 usage 结算;异常终态按既有恢复规则释放或保守记账。 ### 6.3 RPM 与并发 RATE 策略与 Token 窗口分离,底层复用同一个 Redis 原子限流实现: | 层级 | 配置位置 | 计数语义 | |---|---|---| | 供应商容量 | 模型供应商表单 | 同一供应商下所有模型、所有成员共享 RPM/并发 | | 组织 RATE | 访问策略 → 速率限制 | 命中资源范围的全组织请求共享 RPM/并发 | | 成员 RATE | 访问策略 → 速率限制 | 指定成员在命中资源范围内共享 RPM/并发 | 所有命中规则都必须通过,不使用“更具体策略覆盖全局策略”的优先级。因此供应商和组织规则是不可放宽的共享上限,成员规则只能进一步收紧。 V1 不增加隐式的每成员默认并发配置。需要个人防霸占时,管理员使用现有 `MEMBER × ALL_MODELS` RATE 策略显式配置;未配置成员 RATE 时,只受供应商和组织共享上限约束。 ## 7. 模型网关与 Harness ### 7.1 请求处理 每次模型请求依次执行:设备和成员状态校验 → 受管模型解析 → 模型授权 → Token 预留 → RPM/并发租约 → 上游流式请求 → usage 结算和审计。 网关只修改治理必需字段:把企业模型 ID 替换为上游模型 ID,并在 OpenAI Chat Completions 流式请求中确保 `stream_options.include_usage=true`。其余消息、tools、reasoning 和供应商协议字段由 Harness 生成并透明传递。 网关不执行模型重试、协议降级、模型故障转移或内存排队。客户端网络差、上游 429/5xx、空响应和传输中断的重试由 Harness 官方策略决定;企业模型配置不覆盖 Harness 默认重试参数。 ### 7.2 429 分类 V1 必须区分三类 429: | 来源 | 返回语义 | Harness 行为 | |---|---|---| | 企业 Token/RPM/并发达到上限 | HTTP 429、`retryable=false`、`quota_exceeded` | 终态失败,不重试 | | 上游瞬时 rate limit | HTTP 429、`retryable=true`,保留合法 `Retry-After` | 分类为 `RATE_LIMIT`,按官方策略重试 | | 上游账号额度/余额耗尽 | HTTP 429,并保留安全的 quota code/type 事实 | 分类为 `QUOTA`,终态失败 | 平台不得把上游 429 改成 503,也不得无条件把所有 429 标记为可重试。只投影 Harness 分类需要的安全字段和 request ID,不把未经验证的上游原始正文、URL、响应头或凭据暴露给客户端。 ## 8. 插件与设备 ### 8.1 受管插件 - 管理员登记包名、精确版本与 npm / 固定 commit 的 GitHub / tgz URL,源码仓库独立填写。 - 卡片不使用图标,按名称、简介、作者和分类展示;支持搜索、分类筛选和固定版本详情确认。 - 插件版本经过发布后才能分配;支持全部成员和指定成员分配。 - Desktop 和 Web Harness 安装前重新验证授权,通过官方插件命令与宿主 pnpm 处理普通依赖、peer 和构建策略,安装后核对包名、版本和 bundle 入口。 - 升级、回滚和卸载都产生明确状态;需要重启时由客户端提示,不热替换未知运行时状态。 - 设备心跳上报安装库存,控制台显示期望版本、实际版本、失败码和最后活动时间。 私有包复用宿主 `.npmrc` 和 Git 凭据。平台不上传、存储或转发插件包;V34 删除旧目录、可见范围及库存,管理员需按新模式重新登记。 ### 8.2 设备治理 - Desktop/Web Harness 首次企业登录后登记设备和 installation。 - bootstrap 只返回当前成员可见模型、插件分配、设备状态和必要版本事实。 - 管理员可以查询和撤销设备;被撤销设备的 Token 和后续模型调用立即失效。 - 平台只管理客户端接入状态,不远程执行员工工具、命令或工作区操作。 ## 9. 控制台与角色 控制台使用静态 TanStack 路由和固定产品角色,不向客户暴露 原始服务端框架 菜单管理、权限树、部门、岗位、字典或系统参数后台。 | 页面 | 企业管理员 | 模型管理员 | 插件管理员 | 审计员 | |---|---|---|---|---| | 模型 | 管理 | 管理 | 无 | 无 | | 访问策略 | 管理 | 管理 | 无 | 无 | | 插件 | 管理 | 无 | 管理 | 无 | | 成员(含身份接入) | 管理 | 无 | 无 | 无 | | 活动记录 | 全部 | 模型相关 | 插件相关 | 全部只读 | `employee` 只使用 Desktop/Web Harness,不进入管理控制台。多角色用户取页面和权限并集;页面隐藏不代替 Server 权限检查。 控制台主入口固定为“模型、访问策略、插件、成员、活动记录”。Session 分段从活动记录隐藏;OIDC/LDAP/LOCAL 身份源归入“成员 → 身份接入”,LDAP 组映射归入对应 LDAP 记录的操作栏,不提供独立“设置”或“系统”页面。 ## 10. Session V1 处理 Session 同步不是 V1 产品功能,但现有代码和数据库不删除: - Desktop/Web 企业 bundle 不实例化 `EnterpriseSessionSyncService`。 - 客户端不构建 Session 同步服务,忽略休眠的 Session 事件端口,不扫描本地 Session,不上传、恢复或删除远端 Session。 - Desktop 企业设置隐藏“会话同步”标签;产品控制台隐藏 Session 列表、正文和删除入口。 - bootstrap 对客户端声明 Session 同步关闭,避免旧客户端误启动。 - 服务端 Session 表、接口、密文和既有副本保留,升级不清理用户数据。 - 自动测试必须证明登录和正常对话期间没有 Session API 请求。 以后只有在重新完成隐私、保留期、跨设备冲突和产品价值评审后,才允许把 Session 同步重新列入产品范围。 ## 11. 用量、审计与安全 - 用量账本记录成员、设备、受管模型、input/output/cache/total Token、结果、上游 request ID 和时间,不保存 prompt。 - 管理员按权限查询模型用量、配额窗口、审计事件、插件运行异常和 request ID 关联事实。 - 审计覆盖登录、身份源、成员、用户组、模型、授权、配额、插件、设备和模型调用的重要动作。 - API Key、平台 Token、密码、LDAP manager secret、OIDC client secret、模型请求正文和 Session 正文不得进入普通日志或审计 metadata。 - 管理写操作使用幂等键和 revision CAS;并发修改返回明确冲突,不以最后写入静默覆盖。 - PostgreSQL 保存业务与账本事实,Redis 保存短期登录状态、会话和限流租约;正式 Compose 提供 HTTP、健康检查、备份、恢复、升级和应用回滚,需要 TLS 时由部署方外层网关终止。 ## 12. V1 发布门禁 ### 12.1 自动化门禁 | 领域 | 必须证明 | |---|---| | 协议 | OpenAPI 生成物无漂移;Java/TypeScript schema 拒绝非法主体、资源、TOKEN/RATE 混填和未知协议 | | 数据升级 | 现有 PostgreSQL 数据卷原地迁移;成员、模型、授权、配额和账本不丢失;插件 V34 按确认的破坏性变更清空旧目录后重新登记 | | 身份 | LOCAL/LDAP/OIDC 登录、JIT、稳定 subject、多来源同名不合并、停用与解绑安全边界 | | LDAP 导入 | 有界搜索、字段映射、单人导入、重复导入幂等、默认无管理权限和审计 | | LDAP 组映射 | 有界组搜索、DN 映射、同名组隔离、映射增删重算、手工关系保留,以及空组撤销旧来源关系 | | 模型目录 | DeepSeek 官方/自定义、发现与手填、三协议、容量、reasoningEfforts 和模型集 | | 模型授权 | 所有成员/用户组/成员 × 模型集/模型,集合变化和多授权去重 | | Token 配额 | 四窗口边界、组织/成员、多资源重叠、预留/结算、无 usage 断流和恢复任务 | | RATE | 供应商共享、组织共享、成员隔离、全部模型/模型集/单模型重叠策略一次原子裁决 | | 429 | 上游 rate limit 触发 Harness 重试后成功;企业配额和上游硬 quota 都只请求一次;合法 `Retry-After` 生效 | | 插件 | 安装目标校验、包名/版本绑定、ALL/USER 可见范围、普通依赖、Desktop/Web 安装、版本切换、卸载和重启状态 | | Session 停用 | bundle 不创建同步服务,UI 无入口,登录和模型调用期间没有 Session API 请求 | | 权限与秘密 | 五角色页面/API 矩阵,越权拒绝,日志和响应不出现任何测试 secret 或请求正文 | | 控制台会话 | 登录后新标签直接进入;任一标签注销或改密后其他标签的后续 API 返回 401,刷新后进入登录页;浏览器存储和请求脚本不可读取平台 Token | RATE 和 429 必须使用真实 Redis、真实 Java Server 与锁定 Harness 组合验证,不能只靠 mock 单元测试宣称完成。各场景应保持独立,避免构造一个顺序依赖、失败后难定位的巨型 E2E。 ### 12.2 真实客户端验收 发布候选必须同时完成 Desktop 和普通 Web Harness 流程: 1. 在未修改的官方宿主安装 `owndsh-plugin`,不编辑 profile;只填写 Server 地址,重启后地址仍然存在。 2. 验证未配置、未登录、登录过期和设备撤销均全屏阻断,登录成功后恢复官方界面;显式卸载移除 OwnDsh 与受管插件,Desktop 自动重启、Web 提示重启。 3. 管理员通过企业身份登录产品控制台。 4. 创建 LOCAL 成员并验证首次登录强制改密和用户中心改密;或配置 LDAP/OIDC,通过 LDAP 有界搜索导入单个成员,并从 LDAP 目录选择组映射到产品用户组。 5. 配置 DeepSeek 官方和自定义供应商,发现或手工添加模型并组成模型集。 6. 使用全员、LDAP 映射用户组和成员授权,确认登录/重新导入会刷新组关系,空组会撤销旧授权,客户端只显示并只能调用被授权模型。 7. 分别通过 Chat Completions、Responses 和 Anthropic Messages 完成真实流式调用、usage 结算和推理档位验证。 8. 验证四种 Token 窗口、供应商/组织/成员 RPM 与并发,以及重叠策略。 9. 验证上游 429 自动重试、企业配额终态不重试,以及失败后租约和预留正确收敛。 10. 完成受管插件安装、升级、回滚和卸载,重启后库存与控制台一致。 11. 验证用量和审计能够用同一 request ID 关联一次模型请求,且没有正文和 secret。 12. 验证整个流程不产生 Session 同步请求,刷新和重启后仍不执行同步。 ## 13. V1 明确不做 - Session 同步、远端 Session 查看、恢复和删除。 - 多级产品用户组、LDAP 嵌套组递归展开、组级 Token 配额和组级共享限流池。 - SCIM 2.0、OIDC 厂商目录 API 和定时全量目录同步。 - Workspace、Project、应用凭证层级和标签化 ABAC。 - 金额、价格、倍率、余额、套餐、订阅和账单。 - 服务端模型重试、长连接排队、自动供应商限流探测、自动故障转移和负载均衡。 - MCP 配置与 Coding Rules 专用产品入口。 - 自定义角色、菜单管理、部门、岗位、权限树和通用 原始服务端框架 系统管理页面。 - 客户端工作区、源代码、终端进程和工具执行的远程控制。 ## 14. 已收口事项 V1 明确支持无 LDAP/OIDC 的完整 LOCAL 使用路径:企业管理员创建普通成员,成员首次登录强制轮换初始密码,之后在用户中心凭当前密码自助修改。停用、最后可用身份和会话撤销继续复用既有成员治理规则;管理员重置他人密码和无核验“忘记密码”流程不进入 V1。