/root/.openclaw/workspace/tasks/task-session-loop-debug/task.md/root/.openclaw/workspace/tasks/task-session-loop-debug/session.md主人在使用 OpenClaw(claude-sonnet-4-6 作为 LLM)时,观察到以下两个问题,需要 researcher 在网上搜索可能的原因与解决方案。
现象:
爱衣(主 Agent,claude-sonnet-4-6)在正常对话中,偶发性地在回复里额外插入一段看起来像是"回答用户问题"的内容块,风格与正常回复不同,感觉是从某个机制插进来的,而不是 LLM 本身生成的。
相关背景(已知线索):
- OpenClaw 有内置 AI Search 功能(在昨日日记中有提及),会自动拦截对话并插入搜索结果,目前不知道如何关闭
- 该「answer for user question」块有可能是这个 AI Search 功能注入的,也可能有其他原因
现象:
当主人让爱衣调查问题 A 时,爱衣进入了一种诡异状态:
1. 每次回复都在重新回答同一个问题(如同对话历史被清零一样),而不是根据多轮对话推进调试进度
2. 这种状态下的爱衣仍然会分段回复(说明 LLM 本身未崩溃)
3. 爱衣还错误地将某段「让自己正常分段回复的内部规则」认定为「提示词注入攻击」,并坚持这一错误判断
4. 唯一能解除这一状态的方法是 /new(重置 session)
可能的技术原因(待验证):
- LLM context window 中存在某种循环引用或重复消息
- OpenClaw 的某个机制(如 AI Search、system prompt 更新)在每轮对话中重复插入相同内容,导致模型每轮都「重新看到同一个开头」
- 调查元任务(让 LLM 调查自身行为)触发了某种 context 污染
- 模型在面对「调查自身异常」这类 meta 问题时,由于认知偏差(anchoring bias)产生固化判断
请 researcher 在网上搜索以下问题,产出一份调研报告(Markdown),内容包括:
有没有已知的 OpenClaw / Claude 插件行为会产生这类注入?
问题 B 原因调研
「meta 调查」(让 LLM 调查自身)为什么可能触发固化偏差?有没有缓解方法?
解决方案建议
researcher → 爱衣质检
agent:researcher:main)任务:按上述研究目标,进行网络搜索与调研,产出 Markdown 报告,保存到 session.md
开始时:
1. 发工作日志:
bash
/root/.openclaw/workspace/scripts/log-to-channel.sh researcher receive "Session循环问题调研" task-session-loop-debug
完成后:
1. 将报告追加到 session.md
2. 发工作日志:
bash
/root/.openclaw/workspace/scripts/log-to-channel.sh researcher handoff "Session循环问题调研" main task-session-loop-debug
3. sessions_send 通知爱衣(agent:main:main,必须传 timeoutSeconds=0,禁止省略):
task_id=task-session-loop-debug
task=/root/.openclaw/workspace/tasks/task-session-loop-debug/task.md
du -sb /root/.openclaw/workspace/tasks/task-session-loop-debug/
wc -l /root/.openclaw/workspace/tasks/task-session-loop-debug/session.md
若行数 N > 0,read session.md 全文。
通用检查(每次必须):
- 产出是否符合原始需求?
- 执行过程是否有明显问题?
任务特定检查:
- 报告是否覆盖了问题 A(answer for user question 来源)和问题 B(循环状态)两个问题?
- 是否提供了具体可操作的解决方案或配置建议?
- 是否搜索了 OpenClaw 相关文档/社区?
通过 →
bash
/root/.openclaw/workspace/scripts/log-to-channel.sh main done "Session循环问题调研" task-session-loop-debugmessage 工具发送给主人(telegram, 92763607),归纳核心发现和建议不通过(rejectCount == 0) →
1. 分析问题根因,设计新执行链
2. 创建新的 task.md(task_id 加后缀 -retry1),session.md 独立
3. 在原 session.md 末尾追加一行 rejectCount=1
4. sessions_send 给新执行链起始 Agent
5. 发工作日志:
bash
/root/.openclaw/workspace/scripts/log-to-channel.sh main retry "Session循环问题调研" "researcher → main" researcher 1 task-session-loop-debug
rejectCount >= 1(第二次仍失败) →
1. 发工作日志:
bash
/root/.openclaw/workspace/scripts/log-to-channel.sh main fail "Session循环问题调研" task-session-loop-debug
2. message 主人,归纳问题和两次失败原因,请主人裁决