Files
my-project/doc/BOTS/2号机-Telegram故障-2026-02-05.md
T

213 lines
5.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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*