← 返回信息流
Agent SkillLINUX DO · AI·1 小时前

Codex-Manager 管理器多账户维护切换优化版

原标题:Codex-Manager 管理器【多账户维护切换】

速览

该项目对CodexManager网关进行了大量性能优化,将CPU占用从50%降至5%。新增结构化主题预览、数据库空闲压缩、今日token统计等功能。修复了多个问题,优化了批量导入和分页性能,降低资源消耗。该工具主要用于多账户维护与切换,适合AI API用户。

AI 深度解读

背景

Codex-Manager 是一个用于管理和切换多个 AI 模型账户(如 OpenAI 等)的网关工具,支持多账户维护、轮转、统计等功能。原项目(CodexManager 网关)已开源,但存在一些性能和架构问题,尤其是 CPU 占用高(此前经常飙升到 50%),同时部分代码未经充分测试,导致资源消耗过大。此外,上游项目已经一个月未更新,部分功能体验和稳定性有待改进。

基于此,本分支版本在原项目基础上进行了大量优化,重点降低 CPU 和内存占用,同时修复已知缺陷,新增多项实用功能,并改进了 UI 和后台调度逻辑。

核心内容

本分支版本是在 CodexManager 开源项目的基础上进行的分支开发,核心目标是性能优化与功能增强。主要改进包括:

  1. 性能优化:针对原项目“vibe 代码”(即未经充分测试、架构不合理的代码)导致的高 CPU(可达 50%)和内存占用,进行了深度重构。以作者本人电脑为例,优化后 CPU 占用降至 5% 左右。优化涉及数据库操作、请求处理路径、前端渲染等多个层面。

  2. 新增功能

    • 设置页主题选择:改为结构化预览色卡,深色/浅色主题会展示对应界面的缩略预览,减少仅看单个圆点时的辨识成本。
    • 账号页分页增强:补齐后端分页能力,计划类型、状态、搜索和大号/小号优先排序均基于全量数据生效(原上游一次性输出全部数据,加重 CPU 和内存负担)。
    • 模型目录自动远端拉取开关:可关闭“本地目录为空时自动从远端拉取”的行为,但仍保留显式远端并入能力。
    • 平台密钥用量统计:新增今日 token 与费用估算字段,并沿用当前页 Key 限载和成员权限过滤。
    • 数据库空闲物理压缩保护:新增默认关闭的 VACUUM 功能,可在网关空闲、满足间隔和空闲页阈值时执行压缩,压缩期间新网关聊天请求返回 429(自动优化数据库,目前灰度测试,需手动开启)。
  3. 变更

    • Web 运行时超时配置:为批量导入、维护、刷新、插件安装等长耗时 RPC 配置独立超时并默认不重试,避免默认 10 秒超时或自动重试放大重操作。
    • 观测维护路径优化:将维护操作从请求写日志的热路径移回后台调度,降低 retention 清理和 WAL checkpoint 对网关请求的同步影响。
    • Dashboard 加载拆分:管理员概览与排行/趋势加载拆分,首页模型池容量改走轻量汇总接口,减少首屏和区间刷新时的全量聚合成本。
    • Token 日级 rollup:接入后台维护,Dashboard 趋势和排行使用日级汇总 + live mixed 查询,降低长期明细扫描成本。
    • 桌面端启动与渲染优化:减少 Next dev 重目录监听、拆分 Zustand store 订阅、跳过无变化状态写入,并使用轻量托盘预览快照。
    • task.md 文件收敛:仅记录仍在进行和待处理事项,版本更新摘要改由本文件维护。
  4. 修复

    • 修复 v0.3.10 发布产物仍可能使用旧 0.3.8 文件名的问题,Release workflow 会从 GitHub tag 注入构建版本,并在上传前清理同 tag 旧资产。
    • 修复账号计划类型被写死为 unknown 的问题,K12 等未来未知但非空的计划会保留原值并可参与筛选。
    • 修复请求未经过 CodexManager 本地网关时的统计提示歧义,明确只有经过本地网关的请求才能统计日志、Token 和费用,网关内部混合轮转仍可统计。
    • 修复大批量账号导入单个 RPC 过大导致卡死或超时的问题,Web、桌面端直接导入、文件导入和目录导入都会按最多 10 条或 4MB 分批调用。
    • 账号导入兼容更多 Token 中转工具常见 JSON 输出,包括 {accounts:[...]}cpa_batch.tokens[]、Sub2API credentials、9Router providerSpecificData、OpenAI session user/account 嵌套字段。
    • 修复账号页及平台密钥、聚合 API、请求日志、插件自定义源、环境变量设置页等工具栏在中等宽度下被挤出视口的问题。
    • 清理作者页、赞助、远程 author content、残留推广静态资源和 author.qxnm.top CSP 白名单,避免 CE 版重新引入上游个人推广内容。
    • 修复 Dialog 在部分窗口尺寸下的定位和滚动问题,内容区改为可滚动,按钮 class 合并顺序允许调用方覆写布局。
    • 修复轻量关闭后从托盘、单实例唤起或系统命令恢复时 debug 主窗口不导航到桌面开发服务根页的问题。

关键要点

  • CPU 占用从 50% 降至 5%:通过重构不合理架构、优化数据库操作和前端渲染,大幅降低资源消耗。
  • 账号页分页改为后端全量排序:避免前端一次性处理全部数据,减轻 CPU 和内存压力。
  • 新增数据库空闲物理压缩:VACUUM 功能默认关闭,可手动开启,压缩期间返回 429,防止压缩冲突。
  • 长耗时 RPC 独立超时且默认不重试:避免批量导入等操作因超时或重试导致问题放大。
  • 观测维护从请求写日志热路径移出:减少对网关请求的同步影响,提升响应性能。
  • Dashboard 加载拆分:首页模型池容量走轻量接口,减少全量聚合成本。
  • Token 统计改用日级汇总 + live mixed:降低长期明细扫描的开销。
  • 桌面端渲染优化:减少不必要的监听和状态写入,使用托盘预览快照。
  • 修复大量批量导入相关 bug:包括 RPC 过大导致卡死、兼容更多 JSON 格式、分页排序问题等。
  • 清理上游残留推广内容:移除个人推广链接和白名单,确保分支版本无推广。

意义与影响

本分支版本对原 CodexManager 进行了系统性的性能优化和功能完善,显著降低了资源占用(CPU 从 50% 降至 5%),使得工具在低配机器上也能流畅运行,提升了多账户管理场景下的实用性和稳定性。新增的分页后端化、数据库自动压缩、用量统计字段等功能,增强了管理员的日常运维能力。同时,修复了大量批量导入、兼容性和 UI 问题,降低了误操作风险,提高了用户体验。清理上游推广内容也使项目更加纯净。此分支采用了与原项目差异较大的架构优化,因此未直接并入上游,但为社区提供了即开即用的性能改进版,尤其适合需要稳定运行大量 AI 账户的个人或团队。

查看原文 →linux.do