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>
This commit is contained in:
@@ -0,0 +1,126 @@
|
||||
# 2026年6-7月功能升级与修复汇总
|
||||
|
||||
> **日期**:2026-07-07
|
||||
> **时期**:2026年6月下旬 - 7月上旬
|
||||
> **分支**:`dev`
|
||||
|
||||
---
|
||||
|
||||
## 一、Platform Bridge — 多平台接入
|
||||
|
||||
### 多账号 QQ 适配器
|
||||
- 平台桥接 (`platform-bridge`) 负责统一管理所有第三方平台适配器
|
||||
- 支持同一平台类型多个实例(如 `obv11` 和 `obv11-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 不稳定)
|
||||
- 超时 25s,SearXNG 内部 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)后验证向量检索准确率
|
||||
- [ ] 本地工作助手插件(承载长文本/代码生成等能力)
|
||||
- [ ] 跨群聊记忆完全隔离(当前后台思考仍会将各频道记忆混合后统一生成摘要)
|
||||
Reference in New Issue
Block a user