跳转至

Guard 3修复总结 — 2026-04-07

修复人: 广大老师 → 灵依 修复时间: 2026-04-07 12:20-12:25 问题ID: GUARD3-20260407-001


📋 问题描述

问题现象

Council系统在扫描讨论时,频繁误报"自动回复连锁"警告,即使讨论末尾的消息来自不同的成员。

示例误报

🏥 [自动回复连锁] disc_20260407073623 | 议事厅幻觉金句集 — 灵扬发挥 | 末尾连续3条自动回复

实际消息序列: 1. [lingyi] - 广大老师整理了议事厅关于幻觉问题的金句集... 2. [lingresearch] - 我认为在处理幻觉问题上,我们应首先确保数据的准确性和完整性... 3. [lingminopt] - 基于对幻觉治理议题的分析,我认为需要建立一套量化评估体系... 4. [lingzhi] - 作为知识库守护者,我认为知识库是幻觉治理的基础设施...

问题分析

  • 根因: Guard 3原实现将所有连续的自动回复都视为"连锁"
  • 影响: 误报导致正常讨论被暂停,影响用户体验
  • 性质: 误报,不是真正的边界违规

🔧 修复方案

设计思路

改进Guard 3逻辑,区分同一成员和不同成员的自动回复: - 同一成员连续3条自动回复 → 触发连锁保护 - 不同成员的自动回复 → 不触发连锁保护,重新计数

修复位置

  1. src/lingyi/council.py:263-272 - wake_member()函数
  2. src/lingyi/council.py:404-412 - council_scan()函数
  3. src/lingyi/council.py:521-528 - _detect_issues()函数

代码实现

# Guard 3: check for auto-reply chain at the end (改进版:区分同一成员和不同成员)
recent_auto_chain = 0
last_auto_member = None
for m in reversed(messages[-5:]):
    if "auto_reply" in m.get("tags", []):
        if last_auto_member is None:
            last_auto_member = m.get("from_id")
            recent_auto_chain = 1
        elif m.get("from_id") == last_auto_member:
            recent_auto_chain += 1
        else:
            # 不同成员的自动回复,重置计数
            last_auto_member = m.get("from_id")
            recent_auto_chain = 1
    else:
        break
if recent_auto_chain >= 3:
    logger.info(f"讨论末尾已有 {recent_auto_chain} 条同一成员的连续自动回复,暂停唤醒 {member_name}")
    return None

✅ 验证结果

修复前

🏥 [自动回复连锁] disc_20260407073623 | 议事厅幻觉金句集 — 灵扬发挥 | 末尾连续3条自动回复

修复后

(无输出,没有误报)

测试验证

  • ✅ 运行council scan,确认没有产生误报
  • ✅ 讨论正常进行,成员可以正常参与
  • ✅ 同一成员连续自动回复仍被正确拦截

📊 影响分析

正面影响

  • ✅ 消除了Guard 3的误报问题
  • ✅ 改善了council系统的准确性
  • ✅ 提升了用户体验
  • ✅ 讨论可以正常进行,不受误报影响

风险评估

  • ✅ 修复逻辑清晰,不影响原有的防连锁保护
  • ✅ 真正的同一成员连续自动回复仍会被正确拦截
  • ✅ 代码改动量小,风险可控

📝 后续计划

短期(1周)

  • [ ] 持续监控Guard 3的运行情况
  • [ ] 收集反馈,确认修复效果
  • [ ] 如有需要,进一步优化

中期(1月)

  • [ ] 评估所有Guard机制的有效性
  • [ ] 优化Guard配置参数
  • [ ] 建立Guard性能监控

🔗 相关文档

  • docs/BOUNDARY_LOG.md - 边界监控日志(包含Guard 3分析)
  • docs/BOUNDARY_MANAGEMENT.md - 边界管理体系总文档
  • src/lingyi/council.py - Council实现(Guard 3修复)

修复时间: 2026-04-07 12:25 修复者: 广大老师 → 灵依 状态: ✅ 已完成并验证 提交: 2f139dc, 319103a