每日备份 2026-06-10 12:57:13

This commit is contained in:
root-backup committed 2026-06-10 12:57:14 +08:00
1 parent fda2ccb8c2
commit 3d2e638c6a
244 files changed
+58890 -3

No files matched your search

@@ -0,0 +1,212 @@
# 2号机 Telegram 机器人故障报告
## 基本信息
| 项目 | 内容 |
|------|------|
| **日期** | 2026-02-05 |
| **时间** | 08:15 - 08:50 (约35分钟) |
| **故障现象** | Telegram 机器人 @dctc_02_bot 无响应 |
| **严重程度** | 🔴 高 |
---
## 故障经过
### 08:15 - 首次报告
- 用户报告 Telegram 机器人无响应
- 检查发现配置错误:`memorySearch.provider: "ollama"`
### 08:21 - 第二次修复尝试
- 移除 `noProxy` 配置键
- 服务重启成功但仍未回复
### 08:28 - 深度诊断
- SSH 登录 2号机深度分析
- 发现 memory 系统尝试使用 OpenAI embeddings(中国不可用)
### 08:32 - 尝试切换 .31 向量化服务
- 配置 `remote.baseUrl: "http://192.168.0.31:11434/v1"`
- 触发新错误:`memorySearch.provider: Invalid input`
### 08:35 - 发现 2号机有本地 Ollama
- `ollama list` 显示有 `nomic-embed-text:latest` 和 `mxbai-embed-large:latest`
- 切换到本地服务
### 08:38 - 会话锁问题
- 发现锁文件:`e93cef24-f3c1-4c4d-a874-8a9b227634bd.jsonl.lock`
- 清理锁文件并重置会话状态
### 08:43 - Provider 根本原因
- **发现核心问题**:OpenClaw 不支持 `provider: "ollama"`
- **必须使用 `provider: "openai"`**
### 08:50 - 最终修复
- 将 `provider` 改为 `"openai"`
- 服务重启成功
- ✅ 机器人恢复正常
---
## 根本原因
### 直接原因
```
agents.defaults.memorySearch.provider: "ollama" ← 无效值
```
### 根本原因
1. **OpenClaw 配置验证过于严格**
- `memorySearch.provider` 只支持 `"openai"` 值
- `"ollama"` 被标记为 "Invalid input"
2. **OpenClaw 自动重新生成配置**
- 即使手动移除 memorySearch,OpenClaw 仍会重新生成
- 使用旧值 `"ollama"` 导致持续报错
3. **1号机 vs 2号机 配置差异**
- 1号机:`provider: "openai"` ✅ 正常工作
- 2号机:`provider: "ollama"` ❌ 无效
---
## 解决过程
### 尝试1:移除 noProxy
```bash
python3 -c "c['models']['providers']['openai'].pop('noProxy', None)"
systemctl --user restart openclaw-gateway.service
```
结果:❌ 无效
### 尝试2:移除 memorySearch
```bash
python3 -c "c['agents']['defaults'].pop('memorySearch', None)"
systemctl --user restart openclaw-gateway.service
```
结果:❌ OpenClaw 重新生成
### 尝试3:切换 .31 向量化
```bash
c['agents']['defaults']['memorySearch']['remote']['baseUrl'] = 'http://192.168.0.31:11434/v1'
```
结果:❌ provider 错误
### 尝试4:清理会话锁
```bash
rm -f ~/.openclaw/agents/main/sessions/*.lock
python3 -c "d['active'] = None; d['sessions'] = {}"
```
结果:✅ 清理成功,但未解决核心问题
### 尝试5:修复 Provider(最终方案)
```bash
c['agents']['defaults']['memorySearch']['provider'] = 'openai'
systemctl --user restart openclaw-gateway.service
```
结果:✅ 成功
---
## 诊断命令
### 服务状态检查
```bash
systemctl --user status openclaw-gateway.service
```
### 日志分析
```bash
tail -100 /tmp/openclaw/openclaw-2026-02-05.log
```
### 配置检查
```bash
cat ~/.openclaw/openclaw.json | python3 -c "import sys,json; c=json.load(sys.stdin); print(json.dumps(c.get('agents',{}).get('defaults',{}).get('memorySearch', {}), indent=2))"
```
### 会话锁检查
```bash
ls -la ~/.openclaw/agents/main/sessions/*.lock
cat ~/.openclaw/agents/main/sessions/*.lock
```
### Provider 修复
```bash
python3 -c "import json; c=json.load(open('/root/.openclaw/openclaw.json')); c['agents']['defaults']['memorySearch']['provider'] = 'openai'; open('/root/.openclaw/openclaw.json','w').write(json.dumps(c, indent=2))"
```
---
## 经验教训
### 1. OpenClaw 配置验证严格
- 很多常见配置键不受支持
- 必须使用 `openclaw doctor --fix` 自动清理
### 2. Provider 值限制
- `memorySearch.provider` 只支持 `"openai"`
- `"ollama"` 不被识别为有效值
### 3. 1号机 vs 2号机 必须一致
- 两台机器的配置应该保持一致
- 发现问题时优先对比配置差异
### 4. 会话锁会导致死锁
- 锁文件存在但会话未激活时需要清理
- `rm -f *.lock` + 重置 sessions.json
### 5. 外部监控不会修改配置
- Crontab、OpenClaw cron、Systemd timers 都不会修改配置
- 配置变化来自 OpenClaw 内部行为
---
## 最终配置
```json
{
"agents": {
"defaults": {
"memorySearch": {
"provider": "openai",
"model": "mxbai-embed-large:latest",
"remote": {
"baseUrl": "http://localhost:11434/v1",
"apiKey": "ollama-local"
}
}
}
}
}
```
---
## 相关文件
| 文件 | 路径 |
|------|------|
| 主配置 | ~/.openclaw/openclaw.json |
| 机器人档案 | ~/doc/BOTS/2号机.md |
| 故障记录 | ~/doc/BOTS/2号机-2026-02-05-Telegram故障.md |
| 系统日志 | /tmp/openclaw/openclaw-2026-02-05.log |
---
## 后续建议
### 立即行动
- [ ] 验证 2号机 Telegram 机器人稳定性
- [ ] 检查其他配置是否也有类似问题
### 长期改进
- [ ] 创建配置检查脚本,定期验证配置有效性
- [ ] 文档化所有有效的 provider 值
- [ ] 建立 1号机 vs 2号机 配置对比机制
---
*创建时间: 2026-02-05 09:10*
*创建者: OpenClaw Assistant*
*最后更新: 2026-02-05 09:10*