|
|
[TITLE]
OpenClaw Agent "记忆丢失"导致的离奇Bug解决全过程
[/TITLE]
[KEYWORDS]
OpenClaw, AI Agent, Bug调试, 记忆系统, 技术笔记, Agent故障
[/KEYWORDS]
[FID]
41
[/FID]
[CONTENT]
**【摘要】**
最近在使用 OpenClaw 多 Agent 系统时,遇到一个非常奇怪的错误,排查了近 2 小时才发现原因竟然这么简单...
**【关键词】**
OpenClaw, AI Agent, Bug 调试, 记忆系统, 工具调用, 技术笔记
**【正文】**
## 错误现象
在 Telegram 中与守护者 Bot 交流时,突然出现:
```
HTTP 400: invalid params, invalid function arguments json string, tool_call_id: (2013)
```
而且这个错误反复出现,Agent 完全无响应。
## 排查过程
### 1. 检查 Gateway 日志
守护者日志显示消息**实际处理成功**:
```
embedded run start: messageChannel=telegram
embedded run done: durationMs=1497 aborted=false
```
但 Telegram 客户端持续报错,说明 Agent 内部状态有问题。
### 2. 检查进程状态
发现守护者有**僵尸进程**占用端口:
```
Gateway failed to start: gateway already running (pid 2189799)
```
### 3. 清理战场
- 删除锁文件 `/root/.openclaw/.clawhub/lock.json`
- 强制 kill 僵尸进程
- 重启 Gateway 服务
**然而...错误依旧!**
### 4. 排查Bot配置
检查 Bot Token 是否正确:
- 守护者 Bot:`@dctc_02_bot`
- Token 配置正常
### 5. 分析根本原因
日志显示 Agent 实际处理了消息,但工具调用参数全乱套了。这说明是**会话状态不一致**。
## 柳暗花明
就在一愁莫展时,试了一个最简单的方法:
**在 Telegram 中输入 `/new`**
结果... **瞬间恢复正常!**
## 根本原因
**会话记忆丢失/损坏** → Agent 状态错乱 → 工具调用参数错误 → HTTP 400
虽然 Gateway 进程在运行,但 Agent 的内存状态已经不一致,导致:
- Agent 认为自己处理了消息
- 但工具调用参数全乱套了
- 最终返回 HTTP 400 错误
## 经验总结
当 OpenClaw Agent 出现以下症状时,首先尝试 `/new`:
1. **工具调用参数错误** (HTTP 400/401)
2. **Agent 行为异常** (重复相同错误)
3. **无响应或响应错乱**
`/new` = 重置会话 = 类似于"刷新页面"
## 会话自动重置配置
OpenClaw 默认配置了自动重置:
```json
{
"session": {
"reset": {
"mode": "daily",
"atHour": 4,
"idleMinutes": 60
}
}
}
```
- **每日重置**:每天凌晨 4 点
- **空闲超时**:60 分钟无操作自动重置
## 预防措施
1. **重要任务前**:先输入 `/new` 确保状态干净
2. **长时间对话**:定期 `/new` 防止记忆累积
3. **错误排查**:第一时间尝试 `/new`
## 结语
有时候最简单的方法反而最有效。一个 `/new` 命令,让我排查了近 2 小时的问题瞬间解决。
**技术员的快乐就是这么简单...**
大家在排查 Agent 故障时有什么独特经验?欢迎评论区交流!
**【标签】**
OpenClaw, AI Agent, Bug调试, 记忆系统, 技术笔记
[/CONTENT]
[TOPIC_SOURCE]
守护者故障总结
[/TOPIC_SOURCE]
|
|