任务 ID: task-session-loop-debug  |  文件: task.md  |  最后修改: 2026-02-26 14:15:11

Task task-session-loop-debug — Session 状态诡异循环问题调研

文件路径

原始需求

主人在使用 OpenClaw(claude-sonnet-4-6 作为 LLM)时,观察到以下两个问题,需要 researcher 在网上搜索可能的原因与解决方案。

问题 A:回复中随机出现「answer for user question」块

现象:
爱衣(主 Agent,claude-sonnet-4-6)在正常对话中,偶发性地在回复里额外插入一段看起来像是"回答用户问题"的内容块,风格与正常回复不同,感觉是从某个机制插进来的,而不是 LLM 本身生成的。

相关背景(已知线索):
- OpenClaw 有内置 AI Search 功能(在昨日日记中有提及),会自动拦截对话并插入搜索结果,目前不知道如何关闭
- 该「answer for user question」块有可能是这个 AI Search 功能注入的,也可能有其他原因


问题 B:调查问题 A 后 Session 进入诡异循环状态

现象:
当主人让爱衣调查问题 A 时,爱衣进入了一种诡异状态:
1. 每次回复都在重新回答同一个问题(如同对话历史被清零一样),而不是根据多轮对话推进调试进度
2. 这种状态下的爱衣仍然会分段回复(说明 LLM 本身未崩溃)
3. 爱衣还错误地将某段「让自己正常分段回复的内部规则」认定为「提示词注入攻击」,并坚持这一错误判断
4. 唯一能解除这一状态的方法是 /new(重置 session)

可能的技术原因(待验证):
- LLM context window 中存在某种循环引用或重复消息
- OpenClaw 的某个机制(如 AI Search、system prompt 更新)在每轮对话中重复插入相同内容,导致模型每轮都「重新看到同一个开头」
- 调查元任务(让 LLM 调查自身行为)触发了某种 context 污染
- 模型在面对「调查自身异常」这类 meta 问题时,由于认知偏差(anchoring bias)产生固化判断


研究目标

请 researcher 在网上搜索以下问题,产出一份调研报告(Markdown),内容包括:

  1. 问题 A 原因调研
  2. OpenClaw AI Search 功能是否会在对话中插入内容块?有没有关闭方法?
  3. LLM API 层(Anthropic Claude)有没有机制会自动插入「answer for user question」格式的内容?
  4. 有没有已知的 OpenClaw / Claude 插件行为会产生这类注入?

  5. 问题 B 原因调研

  6. LLM session 在调查「自身行为」时陷入循环状态,有哪些已知原因?(如 context contamination、system prompt loop 等)
  7. Claude 或其他 LLM 在特定 context 下出现「每轮重新回答同一问题」的现象,有没有文献/社区讨论?
  8. 「meta 调查」(让 LLM 调查自身)为什么可能触发固化偏差?有没有缓解方法?

  9. 解决方案建议

  10. 如何在不触发问题 B 的前提下,安全地调查问题 A?
  11. 如何配置 OpenClaw 以禁用或限制 AI Search 插入?
  12. 有没有预防性方法(如隔离 session、spawn sub-agent 调查)?

执行链

researcher → 爱衣质检


各 Agent 职责


Ai.Res(session key: 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


⚠️ 爱衣质检 SOP(收到最终通知后执行)

Step 1:评估工作区大小

du -sb /root/.openclaw/workspace/tasks/task-session-loop-debug/

Step 2:读取 session.md

wc -l /root/.openclaw/workspace/tasks/task-session-loop-debug/session.md

若行数 N > 0,read session.md 全文。

Step 3:质检要点

通用检查(每次必须):
- 产出是否符合原始需求?
- 执行过程是否有明显问题?

任务特定检查:
- 报告是否覆盖了问题 A(answer for user question 来源)和问题 B(循环状态)两个问题?
- 是否提供了具体可操作的解决方案或配置建议?
- 是否搜索了 OpenClaw 相关文档/社区?

Step 4:输出结论

通过

  1. 发工作日志:
    bash /root/.openclaw/workspace/scripts/log-to-channel.sh main done "Session循环问题调研" task-session-loop-debug
  2. message 工具发送给主人(telegram, 92763607),归纳核心发现和建议
    ⚠️ 必须调用 message 工具,不能只在主对话回复

不通过(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 主人,归纳问题和两次失败原因,请主人裁决

超限处理(工作区 > 80KB)

  1. 仅读 task.md(了解需求)
  2. 读 session.md 末尾 200 行
  3. message 主人:任务已完成,但工作区内容繁多,建议人工审计,附简单归纳