主题
扩展包开关与裁剪
每个扩展包都有一个服务端环境变量开关;涉及前端页面的包还有一个构建期变量,两者要一起改,前端变量改完需要重新构建。所有开关默认开启。彻底不要的包可以整目录删除。包的能力与分级见 内核与扩展包。
取值规则
- 服务端开关写在
server/.env:未设置视为启用,取值false / 0 / off / no关闭。 - 用户端变量写在
web/.env.production,管理端变量写在admin/.env.production:设为false关闭,改后重新执行./dev-build.sh。
开关一览
| 包 | 服务端开关 | 前端构建变量 | 关闭后 |
|---|---|---|---|
| 商业包 | COMMERCE_PACK_ENABLED | web / admin VITE_COMMERCE_ENABLED | 后端不装载积分、套餐、订单、支付、签到模块,对话与工具以不计费方式运行,相关后台接口返回 501;用户端隐藏会员 / 支付 / 签到入口;管理端隐藏「支付财务」、用户列表的积分列与操作、用户策略的「额度与赠送」、用户详情的「权益与消费」页签 |
| 内容安全包 | CONTENT_SAFETY_PACK_ENABLED | admin VITE_CONTENT_SAFETY_ENABLED | 不装载敏感词库、白名单、违规记录与腾讯云文本审核,对话内容不再做本地或云端审核;管理端隐藏「安全风控」 |
| 微信包 | WECHAT_PACK_ENABLED | web / admin VITE_WECHAT_ENABLED | 不装载公众号(扫码登录、微信内授权、消息推送、菜单)、开放平台网站登录、微信 Bot 通道与渠道绑定;登录方式列表不再出现任何微信登录;管理端隐藏「微信配置」「Bot 通道」,用户端隐藏微信入口 |
| 邮箱 / 手机号 / GitHub 包 | EMAIL_PACK_ENABLED / PHONE_PACK_ENABLED / GITHUB_PACK_ENABLED | admin VITE_EMAIL_ENABLED / VITE_PHONE_ENABLED / VITE_GITHUB_ENABLED | 关闭的渠道不再出现在登录方式列表里,已绑定的身份仍可在账号页解绑;管理端「登录配置」隐藏对应页签。全部关闭时只剩内核自带的账号密码注册 / 登录(后台可关闭自助注册),找回密码需要至少一个验证码渠道 |
| 模型协议包 | MODEL_OPENAI_RESPONSES_PACK_ENABLED / MODEL_ANTHROPIC_PACK_ENABLED / MODEL_GEMINI_PACK_ENABLED / MODEL_OPENCODE_GO_PACK_ENABLED | 无 | 对应协议的适配器、厂商预设与模型目录不装载,后台「模型管理」的调用协议下拉不再出现该协议,已配置为该协议的模型无法调用;内核始终自带 OpenAI Chat Completions / 兼容接口,DeepSeek、通义、Ollama 和普通中转网关走它,OpenCode Go 使用自己的专属协议 |
| 存储包 | STORAGE_S3_PACK_ENABLED / STORAGE_OSS_PACK_ENABLED / STORAGE_COS_PACK_ENABLED | admin VITE_STORAGE_S3_ENABLED / VITE_STORAGE_OSS_ENABLED / VITE_STORAGE_COS_ENABLED | 后台「文件存储」的公共 / 私有存储下拉不再出现该厂商,已选用它的文件读写会报「不支持的文件存储服务」;内核始终自带本地目录 |
| 富媒体渲染包 | 无(仅用户端) | web VITE_RICH_MEDIA_ENABLED(只有取值恰为 false 时关闭) | 思维导图 / Mermaid 消息按普通文本渲染,代码面板退化为只读高亮,文件面板只留下载,相关依赖不进入构建产物 |
整目录删除
不需要的包直接删掉三端目录,再从 .env 与前端 env 文件里去掉它的开关,重新构建即可:
bash
rm -rf server/src/packs/<包名> web/src/packs/<包名> admin/src/packs/<包名>用户端、管理端里自带 package.json 的包(目前是用户端的 commerce、rich-media 和管理端的 commerce)是该端的 pnpm workspace 子包:删目录后在对应端执行一次 pnpm install,锁文件会去掉它的依赖。服务端包的依赖装在 server/package.json(nest build 按宿主解析依赖),包目录里 pack.json 的 dependencies 列出只归该包使用的依赖:删目录后可以用 pnpm remove 把它们从服务端一并移除。
包自己的数据表随包不再维护,内核不会因为表还在而出错。仓库脚本可以在临时目录里验证删除后的内核仍能通过类型检查与装配测试:
bash
node scripts/check-pack-removal.mjs <包名>常见组合
- 只要 Agent 基座(内部工具或二次开发起点):关闭商业、内容安全、微信三个功能包,登录只留账号密码加邮箱验证码。
- 对外运营:全部开启,再按实际情况关掉用不到的登录渠道、模型协议与存储厂商。
- 海外站点:关闭微信包与手机号包,保留邮箱、GitHub 登录和 PayPal / Stripe。