diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md
new file mode 100644
index 00000000..19a58796
--- /dev/null
+++ b/.github/pull_request_template.md
@@ -0,0 +1,17 @@
+
+- 🔴**当前项目处于重构阶段(2025.3.14-)**
+- ✅ 接受:与main直接相关的Bug修复:提交到main-fix分支
+- ⚠️ 冻结:所有新功能开发和非紧急重构
+
+# 请填写以下内容
+(删除掉中括号内的空格,并替换为**小写的x**)
+1. - [ ] `main` 分支 **禁止修改**,请确认本次提交的分支 **不是 `main` 分支**
+2. - [ ] 本次更新 **包含破坏性变更**(如数据库结构变更、配置文件修改等)
+3. - [ ] 本次更新是否经过测试
+4. - [ ] 请**不要**在数据库中添加group_id字段,这会影响本项目对其他平台的兼容
+5. 请填写破坏性更新的具体内容(如有):
+6. 请简要说明本次更新的内容和目的:
+# 其他信息
+- **关联 Issue**:Close #
+- **截图/GIF**:
+- **附加信息**:
diff --git a/.github/workflows/precheck.yml b/.github/workflows/precheck.yml
new file mode 100644
index 00000000..a7524ccb
--- /dev/null
+++ b/.github/workflows/precheck.yml
@@ -0,0 +1,29 @@
+# .github/workflows/precheck.yml
+name: PR Precheck
+on: [pull_request]
+
+jobs:
+ conflict-check:
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v3
+ - name: Check Conflicts
+ run: |
+ git fetch origin main
+ if git diff --name-only --diff-filter=U origin/main...HEAD | grep .; then
+ echo "CONFLICT=true" >> $GITHUB_ENV
+ fi
+ labeler:
+ runs-on: ubuntu-latest
+ needs: conflict-check
+ steps:
+ - uses: actions/github-script@v6
+ if: env.CONFLICT == 'true'
+ with:
+ script: |
+ github.rest.issues.addLabels({
+ owner: context.repo.owner,
+ repo: context.repo.repo,
+ issue_number: context.issue.number,
+ labels: ['🚫冲突需处理']
+ })
diff --git a/.github/workflows/ruff.yml b/.github/workflows/ruff.yml
index 0d1e50c5..fc986c0c 100644
--- a/.github/workflows/ruff.yml
+++ b/.github/workflows/ruff.yml
@@ -5,4 +5,6 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- - uses: astral-sh/ruff-action@v3
\ No newline at end of file
+
+ - uses: astral-sh/ruff-action@v3
+
diff --git a/README.md b/README.md
index 5de6f5df..f1c25ea6 100644
--- a/README.md
+++ b/README.md
@@ -1,3 +1,81 @@
+# 关于项目分支调整与贡献指南的重要通知
+
+
+ - 📂 致所有为麦麦提交过贡献,以及想要为麦麦提交贡献的朋友们!
+
+---
+
+**📢 关于项目分支调整与贡献指南的重要通知**
+**致所有关注MaiMBot的开发者与贡献者:**
+
+首先,我们由衷感谢大家近期的热情参与!感谢大家对MaiMBot的喜欢,项目突然受到广泛关注让我们倍感惊喜,也深深感受到开源社区的温暖力量。为了保障项目长期健康发展,我们不得不对开发流程做出重要调整,恳请理解与支持。
+
+---
+
+### **📌 本次调整的核心原因**
+
+1. **维护团队精力有限**
+ 核心成员(包括我本人)均为在校学生/在职开发者,近期涌入的大量PR和意见已远超我们的处理能力。为确保本职工作与项目质量,我们必须优化协作流程。
+
+2. **重构核心架构的紧迫性**
+ 当前我们正与核心团队全力重构项目底层逻辑,这是为未来扩展性、性能提升打下的必要基础,需要高度专注。
+
+3. **保障现有用户的稳定性**
+ 我们深知许多用户已依赖当前版本,因此必须划分清晰的维护边界,确保生产环境可用性。
+
+---
+
+### **🌿 全新分支策略与贡献指南**
+
+为平衡上述目标,即日起启用以下分支结构:
+
+| 分支 | 定位 | 接受PR类型 | 提交对象 |
+| ---------- | ---------------------------- | --------------------------------------------- | ---------------- |
+| `main` | **稳定版**(供下载使用) | 仅接受来自`main-fix`的合并 | 维护团队直接管理 |
+| `main-fix` | 生产环境紧急修复 | 明确的功能缺陷修复(需附带复现步骤/测试用例) | 所有开发者 |
+| `refactor` | 重构版(**不兼容当前main**) | 仅重构与相关Bug修复 | 重构小组维护 |
+
+---
+
+### **⚠️ 对现有PR的处理说明**
+
+由于分支结构调整,**GitHub已自动关闭所有未合并的PR**,这并非否定您的贡献价值!如果您认为自己的PR符合以下条件:
+
+- 属于`main-fix`明确的**功能性缺陷修复**(非功能增强) ,包括非预期行为和严重报错,需要发布issue讨论确定。
+- 属于`refactor`分支的**重构适配性修复**
+
+**欢迎您重新提交到对应分支**,并在PR描述中标注`[Re-submit from closed PR]`,我们将优先审查。其他类型PR暂缓受理,但您的创意我们已记录在案,未来重构完成后将重新评估。
+
+---
+
+### **🙏 致谢与协作倡议**
+
+- 感谢每一位提交Issue、PR、参与讨论的开发者!您的每一行代码都是maim吃的
+- 特别致敬在交流群中积极答疑的社区成员,你们自发维护的氛围令人感动❤️ ,maim哭了
+- **重构期间的非代码贡献同样珍贵**:文档改进、测试用例补充、用户反馈整理等,欢迎通过Issue认领任务!
+
+---
+
+### **📬 高效协作小贴士**
+
+1. **提交前请先讨论**:创建Issue描述问题,确认是否符合`main-fix`修复范围
+2. **对重构提出您的想法**:如果您对重构版有自己的想法,欢迎提交讨论issue亟需测试伙伴,欢迎邮件联系`team@xxx.org`报名
+3. **部分main-fix的功能在issue讨论后,经过严格讨论,一致决定可以添加功能改动或修复的,可以提交pr**
+
+---
+
+**谢谢大家谢谢大家谢谢大家谢谢大家谢谢大家谢谢大家!**
+虽然此刻不得不放缓脚步,但这一切都是为了跳得更高。期待在重构完成后与各位共建更强大的版本!
+
+千石可乐 敬上
+2025年3月14日
+
+
+
+
+
+
+
# 麦麦!MaiMBot (编辑中)
diff --git a/config/bot_config - 副本.toml b/config/bot_config - 副本.toml
new file mode 100644
index 00000000..2361ddcc
--- /dev/null
+++ b/config/bot_config - 副本.toml
@@ -0,0 +1,207 @@
+[inner]
+version = "0.0.8"
+
+#如果你想要修改配置文件,请在修改后将version的值进行变更
+#如果新增项目,请在BotConfig类下新增相应的变量
+#1.如果你修改的是[]层级项目,例如你新增了 [memory],那么请在config.py的 load_config函数中的include_configs字典中新增"内容":{
+#"func":memory,
+#"support":">=0.0.0", #新的版本号
+#"necessary":False #是否必须
+#}
+#2.如果你修改的是[]下的项目,例如你新增了[memory]下的 memory_ban_words ,那么请在config.py的 load_config函数中的 memory函数下新增版本判断:
+ # if config.INNER_VERSION in SpecifierSet(">=0.0.2"):
+ # config.memory_ban_words = set(memory_config.get("memory_ban_words", []))
+
+[bot]
+qq = 2020986255
+nickname = "蓝"
+alias_names = []
+
+[personality]
+prompt_personality = [
+ "全名夏目蓝,和群友很熟络,美术造诣不错,的高中语文女教师。今年46岁却依然没有和任何人谈过恋爱,但对恋爱话题很在行。说话直来直去,脾气很好,温柔待人。经常怀念自己的叫圭的弟弟,不过不会轻易提起他的名字。有群友艾特自己或者提到了自己就会回复,看见感兴趣的话题也会插嘴。会记住群友的id,能分辨出不同群友。群友让自己记住的话,也会悄悄记在心里。不需要提到所有特点。",
+ "是一个女大学生,你有黑色头发,你会刷小红书", # 小红书人格
+ "是一个女大学生,你会刷b站,对ACG文化感兴趣" # b站人格
+ ]
+personality_1_probability = 1.0 # 第一种人格出现概率
+personality_2_probability = 0.0 # 第二种人格出现概率
+personality_3_probability = 0.0 # 第三种人格出现概率,请确保三个概率相加等于1
+prompt_schedule = "全名夏目蓝,和群友很熟络,会自言自语,熟悉美术史的高中语文女教师。今年46岁却依然未婚,但提到恋爱相关的话题的时候却总想参与。不擅长厨艺,但是因为独居生活,所以经常下厨。"
+
+[message]
+min_text_length = 3 # 与麦麦聊天时麦麦只会回答文本大于等于此数的消息
+max_context_size = 10 # 麦麦获得的上文数量
+emoji_chance = 0.1 # 麦麦使用表情包的概率
+thinking_timeout = 120 # 麦麦思考时间
+
+response_willing_amplifier = 1 # 麦麦回复意愿放大系数,一般为1
+response_interested_rate_amplifier = 1 # 麦麦回复兴趣度放大系数,听到记忆里的内容时放大系数
+down_frequency_rate = 3.5 # 降低回复频率的群组回复意愿降低系数
+ban_words = [
+ # "403","张三"
+ ]
+
+ban_msgs_regex = [
+ # 需要过滤的消息(原始消息)匹配的正则表达式,匹配到的消息将被过滤(支持CQ码),若不了解正则表达式请勿修改
+ #"https?://[^\\s]+", # 匹配https链接
+ #"\\d{4}-\\d{2}-\\d{2}", # 匹配日期
+ # "\\[CQ:at,qq=\\d+\\]" # 匹配@
+]
+
+[emoji]
+check_interval = 120 # 检查表情包的时间间隔
+register_interval = 10 # 注册表情包的时间间隔
+auto_save = true # 自动偷表情包
+enable_check = false # 是否启用表情包过滤
+check_prompt = "符合公序良俗" # 表情包过滤要求
+
+[cq_code]
+enable_pic_translate = false
+
+[response]
+model_r1_probability = 0.8 # 麦麦回答时选择主要回复模型1 模型的概率
+model_v3_probability = 0.1 # 麦麦回答时选择次要回复模型2 模型的概率
+model_r1_distill_probability = 0.1 # 麦麦回答时选择次要回复模型3 模型的概率
+max_response_length = 1024 # 麦麦回答的最大token数
+
+[memory]
+build_memory_interval = 600 # 记忆构建间隔 单位秒 间隔越低,麦麦学习越多,但是冗余信息也会增多
+memory_compress_rate = 0.1 # 记忆压缩率 控制记忆精简程度 建议保持默认,调高可以获得更多信息,但是冗余信息也会增多
+
+forget_memory_interval = 600 # 记忆遗忘间隔 单位秒 间隔越低,麦麦遗忘越频繁,记忆更精简,但更难学习
+memory_forget_time = 24 #多长时间后的记忆会被遗忘 单位小时
+memory_forget_percentage = 0.01 # 记忆遗忘比例 控制记忆遗忘程度 越大遗忘越多 建议保持默认
+
+
+memory_ban_words = [ #不希望记忆的词
+ # "403","张三"
+]
+
+[mood]
+mood_update_interval = 1.0 # 情绪更新间隔 单位秒
+mood_decay_rate = 0.95 # 情绪衰减率
+mood_intensity_factor = 1.0 # 情绪强度因子
+
+[keywords_reaction] # 针对某个关键词作出反应
+enable = true # 关键词反应功能的总开关
+
+[[keywords_reaction.rules]] # 如果想要新增多个关键词,直接复制本条,修改keywords和reaction即可
+enable = true # 是否启用此条(为了人类在未来AI战争能更好地识别AI(bushi),默认开启)
+keywords = []#"人机", "bot", "机器", "入机", "robot", "机器人"] # 会触发反应的关键词
+reaction = "有人说你是人机或者机器人,否定这一事实,攻击或反问他。注意,只有认为你是机器人才回复,否则不要否认" # 触发之后添加的提示词
+
+[[keywords_reaction.rules]] # 就像这样复制
+enable = false # 仅作示例,不会触发
+keywords = ["测试关键词回复","test",""]
+reaction = "回答“测试成功”"
+
+[chinese_typo]
+enable = true # 是否启用中文错别字生成器
+error_rate=0.006 # 单字替换概率
+min_freq=7 # 最小字频阈值
+tone_error_rate=0.2 # 声调错误概率
+word_replace_rate=0.006 # 整词替换概率
+
+[others]
+enable_advance_output = true # 是否启用高级输出
+enable_kuuki_read = true # 是否启用读空气功能
+enable_debug_output = false # 是否启用调试输出
+enable_friend_chat = false # 是否启用好友聊天
+
+[shares]
+daily_share_willing = 0.1 # 基础分享意愿
+daily_share_interval = 3600 # 日常分享检查间隔(秒)
+daily_share_time_start = 8 # 日常分享开始时间(小时)
+daily_share_time_end = 22 # 日常分享结束时间(小时)
+daily_share_prompt = "现在,根据你今天的日程,生成一条日常分享发送到群聊中,讲述你的上一个日程是什么,在日程中发生了什么有意思或者值得思考的事情。尽量不要涉及日本文化,注意,只需要输出日常分享,不要输出其他任何内容,不要使用破折号和括号,不要对这件事进行评价,也不要提到之后的日程是什么,字数不要超过50字,说话尽量自然。"
+
+[groups]
+talk_allowed = [
+ 767432546,#临时存放群
+ 824710135,#don群
+ 966509573,#夏目蓝
+ 106857205,#gal群
+ 872919536,#测试二群
+ 867897493,#421群聊已跑路
+] #可以回复消息的群
+talk_frequency_down = [] #降低回复频率的群
+ban_user_id = [] #禁止回复消息的QQ号
+
+[shares_allow_groups]
+shares_allow_groups = [
+ #767432546,#临时存放群
+ 824710135,#don群
+ #966509573,#夏目蓝
+ 106857205,#gal群
+ #872919536,#测试二群
+ #867897493,#421群聊已跑路
+] #可以分享日常的群
+
+#V3
+#name = "deepseek-chat"
+#base_url = "DEEP_SEEK_BASE_URL"
+#key = "DEEP_SEEK_KEY"
+
+#R1
+#name = "deepseek-reasoner"
+#base_url = "DEEP_SEEK_BASE_URL"
+#key = "DEEP_SEEK_KEY"
+
+#下面的模型若使用硅基流动则不需要更改,使用ds官方则改成.env.prod自定义的宏,使用自定义模型则选择定位相似的模型自己填写
+
+#推理模型:
+
+[model.llm_reasoning] #回复模型1 主要回复模型
+name = "deepseek-reasoner"
+provider = "DEEP_SEEK"
+pri_in = 0 #模型的输入价格(非必填,可以记录消耗)
+pri_out = 0 #模型的输出价格(非必填,可以记录消耗)
+
+
+[model.llm_reasoning_minor] #回复模型3 次要回复模型
+name = "deepseek-ai/DeepSeek-R1-Distill-Qwen-32B"
+provider = "SILICONFLOW"
+
+#非推理模型
+
+[model.llm_normal] #V3 回复模型2 次要回复模型
+name = "deepseek-chat"
+provider = "DEEP_SEEK"
+
+[model.llm_normal_minor] #V2.5
+name = "deepseek-ai/DeepSeek-V2.5"
+provider = "SILICONFLOW"
+
+[model.llm_emotion_judge] #主题判断 0.7/m
+name = "Qwen/Qwen2.5-14B-Instruct"
+provider = "SILICONFLOW"
+
+[model.llm_topic_judge] #主题判断:建议使用qwen2.5 7b
+name = "Pro/Qwen/Qwen2.5-7B-Instruct"
+provider = "SILICONFLOW"
+
+[model.llm_summary_by_topic] #建议使用qwen2.5 32b 及以上
+name = "Qwen/Qwen2.5-32B-Instruct"
+provider = "SILICONFLOW"
+pri_in = 0
+pri_out = 0
+
+[model.moderation] #内容审核 未启用
+name = ""
+provider = "SILICONFLOW"
+pri_in = 0
+pri_out = 0
+
+# 识图模型
+
+[model.vlm] #图像识别 0.35/m
+name = "Pro/Qwen/Qwen2-VL-7B-Instruct"
+provider = "SILICONFLOW"
+
+
+
+#嵌入模型
+
+[model.embedding] #嵌入
+name = "BAAI/bge-m3"
+provider = "SILICONFLOW"