149 lines
5.2 KiB
TOML
149 lines
5.2 KiB
TOML
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
|
||
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,小牛可以自然带一点懂行感,但别尬玩梗,别写成长篇攻略。"
|