This repository has been archived on 2026-08-12. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
Cyrene/docs/dev-plan/15-june-july-2026-fixes.md
AskaEth 79b1b9a3fa docs: 更新项目文档反映6-7月功能升级
- 新增 dev-plan/15: 6-7月功能升级与修复汇总 (Platform Bridge/记忆/Thinker/群聊等)
- 更新 dev-plan README: 版本日期 + 新文档索引
- 更新架构分析文档: 日期、已知限制、服务端口加入Platform Bridge
- .gitignore: 开放 docs/dev-plan/ 和关键架构文档纳入版本管理

Co-Authored-By: Claude <noreply@anthropic.com>
2026-07-07 21:24:03 +08:00

5.1 KiB
Raw Permalink Blame History

2026年6-7月功能升级与修复汇总

日期2026-07-07 时期2026年6月下旬 - 7月上旬 分支dev


一、Platform Bridge — 多平台接入

多账号 QQ 适配器

  • 平台桥接 (platform-bridge) 负责统一管理所有第三方平台适配器
  • 支持同一平台类型多个实例(如 obv11obv11-main),通过 config name 区分
  • 110+ 条官方 QQ Bot API 表情映射,支持表情名称解析
  • WebSocket 连接管理:client/server 双模式、自动重连、禁言检测

群聊行为控制

  • 消息发送间隔:群聊 ≥3 秒/条,最多 2 条/轮,单条 ≤500 字自动截断防封控
  • 禁言检测:通过 group_ban notice 实时跟踪禁言状态,发送循环内逐条重检
  • 审查模式 (group_ambient):非 @ 消息由 LLM 自主判断是否插话
  • 管理员审查模式:管理员消息在 group_ambient 下仍保留工具使用权
  • 消息日志:每配置独立日志文件,按 AdapterName 命名

主动消息平台推送

  • 后台思考生成的主动消息可通过 QQ 适配器推送到群聊/私聊
  • 支持 【QQ私聊:QQ号】【QQ群聊:群号】 目标格式
  • ProactiveGuard 统一频控,跨 Web/QQ 双通道

二、记忆系统升级

嵌入模型两级降级

级别 方案 配置
L1 OpenAI 兼容 /embeddings API (如 Ollama bge-m3) EMBEDDING_API_URL + EMBEDDING_MODEL
L2 本地 n-gram FNV 哈希向量 (0依赖) 默认,L1 不可用时自动启用
  • 启动时自动测试嵌入 API 可用性
  • DeepSeek 等不提供 embedding 的 API 不会静默失败
  • 保存记忆时同步生成向量嵌入

检索增强

  • 向量检索 + n-gram 滑动窗口关键词匹配,按分数排序
  • 2-4 字中文分词窗口匹配 content/summary/keywords
  • pgvector <=> 余弦距离检索 8 条 + 关键词匹配 100 条去重合并

记忆归属

  • persona 规则:记忆不全是开拓者的,需分辨发送者再归因
  • 群聊规则:不要把群友的事说成开拓者做的

三、后台思考系统 (Thinker)

死锁修复 (11+ 轮)

  • 根因Go sync.Mutex 不可重入,defer 是函数作用域非块作用域
  • defer t.muUnlock() 在 for 循环和跨 LLM 调用时导致 self-deadlock
  • 修复函数:performThink, lightThinkLoop, performLightThink, storeThought, UpdatePresence, TriggerReminderMessage, PushPlatformMessage, resetSilenceTimer, buildThinkingUserPrompt

上下文隔离

  • thinkSessionID 绑定思考周期触发时的会话,防止跨群串台
  • 思考过程中其他群的消息不再覆盖 activeSessionID
  • convHistory 和 thought push 均使用绑定的 session

轻量思考 + 平台观察

  • lightThinkLoop:高频轻量轮询(~60s),简短状态确认/话题发起
  • platformThink:定期(~600s)聚合各频道记忆生成平台观察摘要

四、对话引擎 (Orchestrator + Synthesizer)

群聊人格强化

  • #1 审查模式:非 @ 消息由 LLM 判断是否回复,支持 【不发送】 自我审查
  • #2 回复长度:最多 1-2 句,允许多段落但需双换行分隔
  • #3 闭嘴服从:识别"别说话""闭嘴"等指令,持续遵守
  • #4 发送者识别:根据消息前缀中的昵称称呼对方
  • #5 简体中文:强制输出简体中文,防止群友繁体昵称传染
  • #6 拒绝长内容:禁止生成代码/长文,告知等待本地工作助手插件
  • #7 记忆归因:不同人的言行分清,不张冠李戴
  • #8 禁用数字 ID:用昵称而非 QQ 号称呼人

管理员功能

  • 多层防御AdminOnly 字段 → plugin manager 自动拦截 → IoT provider 执行级检查
  • 身份提示:管理员以名字标注,数字 UID 从昵称中移除
  • 权限区分:设备控制/系统管理等 admin-only 工具对非管理员温柔拒绝

工具系统

  • 后台工具结果自动推送(成功/失败),失败结果不再触发 LLM 跟进避免噪音
  • 工具名称输出过滤(vision_analyze, web_search 等)
  • 双换行消息拆分

五、搜索与其他

web_search (SearXNG)

  • 引擎精简为 bing + sogou(移除 baidu 安全验证拦截 + 360 不稳定)
  • 超时 25sSearXNG 内部 timeout=20s
  • 添加 User-Agent

LLM API

  • HTTP 连接池:MaxIdleConns=100, MaxIdleConnsPerHost=20, IdleConnTimeout=90s
  • TLSHandshakeTimeout=15s 防止握手卡死

降级回复

  • 仅在管理员私聊时发送降级消息,群聊静默避免怪话

六、新增环境变量

变量 默认值 说明
EMBEDDING_API_URL LLM_API_URL 嵌入 API 地址,可指向 Ollama 等独立服务
EMBEDDING_MODEL text-embedding-3-small 嵌入模型名
PLATFORM_BRIDGE_URL http://localhost:8095 platform-bridge 地址

七、已知待办

  • 嵌入 API 接入真实模型(Ollama bge-m3)后验证向量检索准确率
  • 本地工作助手插件(承载长文本/代码生成等能力)
  • 跨群聊记忆完全隔离(当前后台思考仍会将各频道记忆混合后统一生成摘要)