Files
2025-12-03 15:48:44 +08:00
..
2025-12-03 15:48:44 +08:00
2025-12-03 15:48:44 +08:00

AutoReply 插件

基于双LLM架构的智能自动回复插件让机器人能够智能判断并主动参与群聊。

功能特色

  • 双LLM架构:小模型快速判断 + 大模型生成高质量回复
  • 多维度评估从5个维度智能评估是否需要回复
  • 精力系统:自动控制回复频率,避免过度活跃
  • 群聊隔离:每个群聊独立状态管理
  • 白名单支持:可限制插件作用范围

工作原理

群聊消息 → 小模型判断(5维度评分) → 超过阈值 → 触发AIChat生成回复

判断维度

  1. 内容相关度 (0-10分):消息是否有趣、有价值、适合回复
  2. 回复意愿 (0-10分):基于当前精力状态的回复意愿
  3. 社交适宜性 (0-10分):回复是否符合群聊氛围
  4. 时机恰当性 (0-10分):考虑频率控制和时间间隔
  5. 对话连贯性 (0-10分):与上次回复的关联程度

配置说明

必要配置

  1. 启用插件enabled = true
  2. 配置判断模型API
    [basic]
    judge_api_url = "https://api.openai.com/v1/chat/completions"
    judge_api_key = "your-api-key-here"
    judge_model = "gpt-4o-mini"  # 建议使用小模型
    

推荐模型

  • OpenAI: gpt-4o-mini, gpt-3.5-turbo
  • 其他兼容API: 任何支持OpenAI格式的小参数模型

可选配置

[basic]
reply_threshold = 0.6  # 回复阈值,越高越严格

[energy]
decay_rate = 0.1       # 精力衰减速度
recovery_rate = 0.02   # 精力恢复速度

[context]
messages_count = 5     # 判断时考虑的历史消息数量

[rate_limit]
min_interval = 10      # 最小判断间隔(秒),避免高频判断
skip_if_judging = true # 如果正在判断中,跳过新消息

[whitelist]
enabled = false        # 是否启用白名单
chat_list = []         # 白名单群聊ID列表

[weights]
# 判断权重总和必须为1.0
relevance = 0.25
willingness = 0.20
social = 0.20
timing = 0.15
continuity = 0.20

使用指南

1. 安装配置

  1. 确保已安装AIChat插件
  2. 配置config.toml中的判断模型API
  3. 设置enabled = true启用插件
  4. 可选:配置白名单限制作用范围

2. 工作流程

  1. AutoReply插件priority=90先拦截群聊消息
  2. 使用小模型进行5维度评估
  3. 如果综合评分超过阈值,标记消息为_auto_reply_triggered
  4. AIChat插件识别标记生成并发送回复
  5. 更新精力系统和回复统计

3. 与AIChat的配合

  • AutoReply只负责判断是否需要回复
  • AIChat负责生成实际回复内容
  • 两者通过_auto_reply_triggered标记通信

精力系统

  • 精力范围0.1 - 1.0
  • 消耗机制:每次主动回复后精力下降
  • 恢复机制:不回复时精力缓慢恢复
  • 每日重置每天额外恢复0.2精力

精力值影响"回复意愿"维度的评分,从而自然控制回复频率。

性能优化

History监听模式推荐

插件采用智能监听模式不是监听每条消息而是监听history文件的变化

  1. 定时检查 (check_interval):

    • 默认每5秒检查一次history文件
    • 检测到有新的用户消息时,标记为"待判断"
  2. 批量处理:

    • 多条消息一起判断,而不是每条都判断
    • 只在有实际对话时才触发判断
    • 基于完整的对话上下文进行判断
  3. 工作流程:

    用户发消息 → AIChat写入history → 定时任务检测到变化 →
    标记"待判断" → 下一条消息触发判断 → 调用小模型
    

频率限制机制

为了避免高频消息导致API调用堆积插件内置了多重保护

  1. 最小判断间隔 (min_interval):

    • 默认10秒同一个群在10秒内只判断一次
    • 高频消息会被自动跳过避免API堆积
  2. 防抖机制 (skip_if_judging):

    • 如果正在判断中,跳过新消息
    • 避免并发调用小模型API
  3. 监听模式 (monitor_mode):

    • 默认启用只在检测到history变化时才判断
    • 避免每条消息都触发判断

调优建议

如果用户高频发消息导致处理不过来

  • 保持 monitor_mode = true(默认)
  • 增加 min_interval 到 15-30秒
  • 增加 check_interval 到 10秒
  • 确保 skip_if_judging = true

如果想更快响应

  • 减少 check_interval 到 3秒
  • 减少 min_interval 到 5秒
  • 但要注意API成本和性能

如果想禁用监听模式(不推荐)

  • 设置 monitor_mode = false
  • 每条消息都会尝试判断可能导致API堆积

调试建议

  1. 不回复任何消息

    • 检查enabled = true
    • 确认判断模型API配置正确
    • 查看日志中的评分信息
    • 尝试降低reply_threshold
  2. 回复过于频繁

    • 提高reply_threshold
    • 增加decay_rate(精力消耗更快)
    • 减少recovery_rate(精力恢复更慢)
    • 增加min_interval(判断间隔更长)
  3. 判断不准确

    • 调整权重配置
    • 增加messages_count获取更多上下文
    • 检查判断模型是否合适
  4. 高频消息处理不过来

    • 增加min_interval到15-30秒
    • 确保skip_if_judging = true
    • 查看日志中的"跳过消息"信息

日志说明

  • 🔥 AutoReply触发:判断通过,触发回复
  • AutoReply不触发:判断未通过,不回复
  • 日志中包含评分和理由,便于调试

注意事项

  1. 优先级设置AutoReply的priority(90)必须高于AIChat(50)
  2. API成本每条消息都会调用判断模型API注意成本控制
  3. 白名单模式:建议先在测试群启用,稳定后再扩展
  4. 与@消息的关系:被@的消息会跳过AutoReply直接由AIChat处理

许可证

本插件遵循项目主许可证。