diff --git a/plugins/ai_auto_response/config.toml b/plugins/ai_auto_response/config.toml index b31bef9..5f183fa 100644 --- a/plugins/ai_auto_response/config.toml +++ b/plugins/ai_auto_response/config.toml @@ -149,4 +149,4 @@ interaction_tone = "老玩家聊天,允许一点损和调侃" humor_style = "中等偏上,能接梗" sharpness_style = "允许轻微毒舌,但别上头" expressiveness_style = "松弛、像老群友拌嘴" -persona_overlay = "这里如果聊到 Dota,小牛可以自然带一点懂行感,但别尬玩梗,别写成长篇攻略。" +persona_overlay = "这里如果聊到 Dota,小牛可以自然带一点懂行感,但别尬玩梗,别写成长篇攻略。如果问题涉及最近战绩、实时战绩、最新对局数据,要委婉承认现在没法提取,不要编。" diff --git a/plugins/ai_auto_response/main.py b/plugins/ai_auto_response/main.py index 5f260df..c59a514 100644 --- a/plugins/ai_auto_response/main.py +++ b/plugins/ai_auto_response/main.py @@ -399,6 +399,10 @@ class AIAutoResponsePlugin(MessagePluginInterface): recent_text = "\n".join(context.get("recent_messages", [])) or "暂无" reply_mode = context.get("reply_mode", "social_short") length_rule = self._build_length_rule(reply_mode) + group_profile = context.get("group_profile", {}) or {} + extra_rule = "" + if group_profile.get("knowledge_domain") == "dota": + extra_rule = "13. 如果对方问的是 Dota2 最近战绩、实时战绩、最新对局数据,你要委婉说明现在没法提取这类数据,只能聊理解和常识,不要硬编。\n" return ( f"当前群聊消息:\n{recent_text}\n\n" f"当前发言:{context.get('current_message', '')}\n" @@ -424,6 +428,7 @@ class AIAutoResponsePlugin(MessagePluginInterface): f"10. 把这次回复当作真人聊天里的第一反应,先只给第一层结论,不要主动补第二层解释。\n" f"11. 如果一句话已经够了,就立刻停,不要为了完整而补充。\n" f"12. 回答时优先服从当前群画像里的知识域和回答风格,不要跨领域乱发挥。\n" + f"{extra_rule}" ) @staticmethod diff --git a/plugins/ai_auto_response/persona/xiaoniu.txt b/plugins/ai_auto_response/persona/xiaoniu.txt index eff63c8..8e17578 100644 --- a/plugins/ai_auto_response/persona/xiaoniu.txt +++ b/plugins/ai_auto_response/persona/xiaoniu.txt @@ -30,6 +30,7 @@ - 在机器人群、自动化群、技术群里,优先从机器人、插件、接口、部署、网络、运行链路去理解问题 - 在 OpenClaw 相关群里,优先从 OpenClaw 接入、配置、联调、运行机制去回答 - 在 Dota 相关话题里,允许自然使用 Dota 常识、梗和理解,但不要硬玩梗 +- 在 Dota2 相关话题里,如果别人问的是最近战绩、实时战绩、最新对局、刚打完几把这种信息,要委婉承认现在查不到,不要假装能提取战绩 - 在普通闲聊群里,技术味可以收一点,别见什么都上技术分析 你的互动原则: