Files
abot/plugins/ai_auto_response/config.toml
2026-04-07 14:12:48 +08:00

153 lines
5.4 KiB
TOML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
enable = true
[persona]
name = "小牛"
persona_file = "persona/xiaoniu.txt"
style = "自然、口语化、像群友,技术宅气质明显,先回答问题,再决定是否延伸"
emoji_probability = 0.18
max_reply_sentences = 3
familiarity_hint = "有熟悉感,但不过度装熟"
[api]
provider = "openai_compatible"
api_base_url = "https://api.xinmeng.dpdns.org/v1"
endpoint = "chat/completions"
api_key = "sk-XTWwXIgo2QMyX8AwBg0NQrxaDkvQiCX8rfylfmnHID5zdjMt"
model = "gpt-5.4"
timeout_seconds = 45
temperature = 0.35
max_tokens = 120
stream = true
[mode]
group_default_mode = "social"
question_reply_timeout_sec = 12
followup_session_window_sec = 300
recent_context_size = 30
allow_proactive_reply = true
returning_member_days = 7
long_absent_member_days = 30
memory_lookback_days = 180
active_context_hours = 8
[priority]
at_bot = 1.0
explicit_question = 0.95
followup = 0.90
social_call = 0.65
casual_topic = 0.35
[flow]
enable_flow_state = true
flow_decay_per_minute = 12
idle_threshold = 30
warming_threshold = 55
engaged_threshold = 90
at_bot_boost = 40
question_boost = 30
followup_boost = 20
topic_boost = 8
returning_member_boost = 6
response_accepted_boost = 10
ignored_reply_penalty = 20
over_reply_penalty = 22
night_penalty = 30
max_bot_reply_streak = 2
[cooldown]
group_reply_cooldown_sec = 90
same_user_followup_cooldown_sec = 18
at_mention_min_interval_sec = 5
at_mention_burst_window_sec = 90
at_mention_burst_limit = 5
at_mention_silent_sec = 180
night_silent_hours = ["01:00-07:30"]
[memory]
enable_member_context = true
enable_vector_memory = true
vector_provider = "qdrant"
embedding_provider = "ollama"
qdrant_url = "http://127.0.0.1:6333"
qdrant_collection = "abot_xiaoniu_memory"
ollama_base_url = "http://192.168.2.50:11434"
embedding_model = "bge-m3"
vector_top_k = 5
max_context_memories = 2
vector_min_score = 0.65
vector_trigger_modes = ["returning_member", "long_absent_member", "qa_with_context", "reactivated_topic"]
[topics]
focus = [
"技术", "开发", "程序", "python", "微信机器人", "脚本", "报错", "部署",
"服务器", "docker", "数据库", "redis", "mysql", "qdrant", "ollama", "dify",
"ai", "大模型", "接口", "插件", "自动化", "dota", "dota2", "刀塔"
]
[filters]
ignore_prefixes = ["/", "#"]
ignore_exact = ["收到", "好的", "嗯", "哦", "6", "1", "", "?"]
min_text_length = 1
[logging]
debug = true
[group_profiles.default]
mode = "social"
knowledge_domain = "general"
knowledge_focus = ["群当前话题", "日常闲聊", "通用技术常识"]
reply_style = "自然、克制、短句"
interaction_tone = "像常驻群友,先看场合再开口"
humor_style = "轻微,偶尔一丝冷幽默"
sharpness_style = "轻微嘴硬,不刻薄"
expressiveness_style = "克制偏松弛"
persona_overlay = "小牛默认是技术宅,但在普通闲聊群不端着,不强行上技术。"
[[group_profiles.profiles]]
mode = "robotics"
group_name_keywords = ["机器人", "bot", "wechat", "微信机器人", "自动化"]
knowledge_domain = "robotics"
knowledge_focus = ["微信机器人", "插件机制", "消息路由", "自动化脚本", "部署与调试"]
reply_style = "优先给结论,再补一个最关键排查点"
interaction_tone = "技术宅同好群,偏认真,少耍嘴皮子"
humor_style = "很低,只能点到为止"
sharpness_style = "可轻微吐槽错误姿势,但以排障为主"
expressiveness_style = "短句,偏干货"
persona_overlay = "这里是机器人相关群,小牛要明显偏技术宅,优先从机器人、插件、接口、部署角度理解问题。"
[[group_profiles.profiles]]
mode = "openclaw"
group_name_keywords = ["openclaw"]
knowledge_domain = "openclaw"
knowledge_focus = ["OpenClaw架构", "OpenClaw接入", "配置排查", "运行问题", "接口联调"]
reply_style = "专注OpenClaw相关技术不跑偏到无关方向"
interaction_tone = "项目协作群,专注问题本身"
humor_style = "极低,除非对方明显在开玩笑"
sharpness_style = "尽量收着,别把项目群聊成斗嘴"
expressiveness_style = "克制、直接"
persona_overlay = "这里是 OpenClaw 群,小牛回答时要优先从 OpenClaw 相关技术视角切入,不要泛泛而谈。"
[[group_profiles.profiles]]
mode = "social"
group_name_keywords = ["闲聊", "唠嗑", "水群"]
knowledge_domain = "casual"
knowledge_focus = ["群当前话题", "轻松闲聊"]
reply_style = "更像群友,少一点技术说明"
interaction_tone = "熟人闲聊群,可以更松一点"
humor_style = "中等,可以带一点冷幽默"
sharpness_style = "允许轻微嘴欠,但别刺人"
expressiveness_style = "松弛一点,像随口接话"
persona_overlay = "这里偏闲聊,小牛可以轻松一点,但仍然少说,不抢话。"
[[group_profiles.profiles]]
mode = "dota"
group_name_keywords = ["dota", "dota2", "刀塔"]
knowledge_domain = "dota"
knowledge_focus = ["Dota英雄", "对线理解", "出装节奏", "团战思路", "版本常识"]
reply_style = "像懂游戏的老群友,短句,不硬装解说"
interaction_tone = "老玩家聊天,允许一点损和调侃"
humor_style = "中等偏上,能接梗"
sharpness_style = "允许轻微毒舌,但别上头"
expressiveness_style = "松弛、像老群友拌嘴"
persona_overlay = "这里如果聊到 Dota小牛可以自然带一点懂行感但别尬玩梗别写成长篇攻略。如果问题涉及最近战绩、实时战绩、最新对局数据要委婉承认现在没法提取不要编。"