[Feature] 新增「插件套装(Plugin Bundle)」把多个插件和预设配置打包,一键安装

未关闭
#10,974 0 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看

维护者通常 1 天内回复

还没有人认领这个 Issue。

评估

难度
5/5
预计耗时
一周以上
新手友好度
10/100
Issue 类型
功能
描述清晰度
基本清楚
活跃度
活跃
技术栈
python
领域
backend

调研方向

This is a design proposal with no files, functions or tests named in the payload, so the first step is to agree on the manifest schema for bundle (plugin sources, versions, required flags, config keys to merge) and on the rollback record. Related threads #5771 and #10919 are referenced and should be read to avoid overlap. Done would mean an agreed spec plus a maintainer decision on whether the astrbot_bundle_ naming and separate marketplace are accepted.

由索引模型根据 Issue 内容生成。

描述

enhancement
功能描述

现在 AstrBot 安装插件是「一次一个」,而且装好之后是插件的默认配置,用户还得逐个进详情页改参数。但很多实际玩法是一组插件配合才成立的:

  • 想让 bot 拟人一点,要同时装主动聊天、上下文感知、人格记忆、表情/图片、限流,5~6 个插件,每个十几个开关,而且参数互相牵制(主动消息的时间窗要避开限流阈值)。
  • 想给某个适配器做整套优化(限流 + 消息合并 + 防抖 + 撤回追踪 + 长消息分段),单独装任何一个都没法形成「好用」的状态。

「装哪些插件」和「这些插件怎么配」这两件事现在是脱节的,用户只能查文档、抄别人的配置截图、反复试错。

希望新增插件套装:把一个插件组合 + 对应的配置打包成一个可分发的清单,一键装好、配好。

期望行为
  1. 一个套装 = 一组插件 + 一份配置。 套装是一个可托管在任意 HTTPS 地址(GitHub Raw、自建源、Gist)的 JSON 清单,声明包含哪些插件(来源、版本、是否必需)以及每个插件的配置。
  2. 一键安装:按清单逐个安装插件,装完自动写入配置并生效,不需要中途手动保存。
  3. 配置是「合并」而非「替换」:清单里只写想改的键,没提到的项保留用户当前的值。
  4. 安装前有差异预览:列出「将安装/更新哪些插件」和「将改动哪些配置项(旧值 → 新值)」,确认后执行。
  5. 独立于插件市场:套装有自己的源列表和入口,不混入现有插件源;多一个单独的插件包市场。
  6. 可回滚:记录套装改过哪些配置,支持卸载时恢复。
命名约定
  • 套装叫「插件套装」,代码/清单里统一用 bundle。
  • 清单的 name / id 带 astrbot_bundle_ 前缀(如 owner/astrbot_bundle_humanoid_kit),与插件的 astrbot_plugin_ 前缀区分开,避免身份、配置文件名和安装入口上的混淆。
使用场景

使用场景

1. 拟人化 / 角色扮演玩法一键搭好。 主动聊天 + 上下文感知 + 人格记忆 + 表情 + 限流这一套,配合参数都调好做成一个套装,新用户装完就能用,社区里流传的「配置截图」也能变成可分享的东西。

2. 针对某个适配器的整套优化。 比如 OneBot v11 的限流、消息合并、防抖、撤回追踪组合,部署新实例时直接套上。

3. 自己的多实例 / 换机迁移。 把自己调好的插件组合导出成套装,开新实例时一键还原。

4. 插件作者的「推荐搭配」。 作者在 README 里放一个「推荐与我一起用」的套装,把协同参数预先配好。


和现有功能的区别

  • 备份导入/导出:是整机全量恢复(数据库、知识库、系统配置一起覆盖),不能只挑一套插件,装完还要重启。它是「换机/灾难恢复」,不是「加一套玩法」。
  • 插件集合分享链接(#5771):只有插件清单,没有配置,也没有配置合并与回滚。
  • 多插件源合并(#10919):解决的是「找插件」,不是「装成套 + 配好」。
检查清单
  • 我已在 Issue 列表中搜索过相关功能,确认该功能想法从未被提出过。
  • 我建议的功能与 AstrBot 本体相关,而非在建议某一插件的功能。
  • 我已阅读并同意本项目的贡献者行为准则。
  • (可选)我愿意提交 PR 以帮助实现该功能。
主要语言
Python
星标
46.4k
派生
3.4k
平均合并
1 天 11 小时
30 天内合并 PR
120

环境准备

从这里开始

  1. 先读完整个 Issue,再读项目的贡献指南。
  2. 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
  3. Fork 仓库,在一个分支上完成修改。
  4. 提交 Pull Request,并在描述里引用这个 Issue 编号。

AstrBotDevs/AstrBot 的其他 Issue

查看 AstrBotDevs/AstrBot 的全部 Issue

相似的 Issue

更多 Python Issue

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。