每日备份 2026-06-10 12:57:13
This commit is contained in:
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*
|
||||
Reference in new issue
Block a user