0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

OpenClawが突然エラーで止まった → Claude Codeに「確認して」と言ったら3分で復旧した

0
Posted at

はじめに

OpenClawを日常的に使っていると、ある日突然チャットが応答しなくなることがあります。

画面には赤いエラーメッセージ。

LLM request rejected: messages.27.content.1: `thinking` or `redacted_thinking` blocks
in the latest assistant message cannot be modified.
These blocks must remain as they were in the original response.

何を送っても同じエラーが返ってくる。

意味がわからない。自分で調べようとしたが、エラーメッセージの意味すら掴めない。とりあえずClaude Codeを開いた。

環境

項目 バージョン・内容
OpenClaw 2026.3.2
OS macOS (Apple Silicon)
モデル claude-opus-4-6

やったこと:Claude Codeに「確認して」と伝えた

私:OPENCLAWなぜ動いていないか確認して

これだけです。正確な問題の言語化も、エラーの説明も、何もしていません。

ここからClaude Codeが勝手に調査を始めました。

Claude Codeとの対話ログ

プロセス・Gateway・cronの確認

Claude CodeはまずホームディレクトリからOpenClaw関連ファイルを探し、順番に確認していきました。

# Claude Codeが実行
$ ps aux | grep openclaw
sonia  1003  0.0  3.0  openclaw-gateway
$ openclaw gateway status

Runtime: running (pid 1003, state active)
RPC probe: ok
Listening: 127.0.0.1:18789
$ openclaw cron list
# 28ジョブ、ほぼokステータス

Claude Code: Gateway、cronジョブ、Discord Botはすべて正常です。問題はチャットのセッション側にある可能性が高いです。ローカルサーバーの状態を見せてもらえますか?

スクリーンショットを渡す

ここで私がローカルサーバーのエラー画面のスクリーンショットを1枚送りました。

Claude Code: 確認しました。セッション agent:main:main でcompaction(会話圧縮)が24回実行されています。会話履歴が7,961行まで膨らんだ結果、圧縮処理の過程で thinking ブロックが変質し、Claude APIが「改変された」と判定してリクエストを全拒否しています。

これがエラーの原因です。

原因の詳細

Claude APIのextended thinking機能では、AIの思考過程が thinking / redacted_thinking ブロックとして会話履歴に保存されます。APIの仕様として、これらのブロックは一切変更してはいけません。

OpenClawのセッションが長くなると自動でcompactionが実行されますが、この処理の過程でthinkingブロックが変更されることがあります。結果、次のリクエスト時に拒否されます。

messages.27.content.1 というのは「27番目のメッセージの2番目のコンテンツブロック」のことで、そこにあるthinkingブロックが元の応答と一致しなくなっていました。

修正の提案と実行

Claude Code: 修正方法を提案します。

  1. セッションファイルをバックアップにリネーム(データは残します)
  2. sessions.jsonから該当エントリを削除

実行してよいですか?

私: お願いします

Claude Code: 実行します。

mv ~/.openclaw/agents/main/sessions/89bd0c17-XXXX.jsonl \
   ~/.openclaw/agents/main/sessions/89bd0c17-XXXX.jsonl.backup
import json

path = '~/.openclaw/agents/main/sessions/sessions.json'
with open(path) as f:
    data = json.load(f)

del data['agent:main:main']

with open(path, 'w') as f:
    json.dump(data, f, ensure_ascii=False, indent=2)

完了しました。チャット画面を再読み込みしてください。


再読み込みすると新しいセッションが自動作成され、エラーは解消していました。

影響範囲

対象 影響
Gatewayプロセス なし(再起動不要)
Discord Bot なし(別セッション)
cronジョブ なし(isolatedモード)
過去の会話ログ .backupファイルに保持

壊れていたのは agent:main:main という1つのセッションだけで、他のすべては正常に動き続けていました。

まとめ

項目 内容
エラー thinking ブロック改変によるAPIリジェクト
根本原因 長期セッションのcompactionによるthinkingブロック変質
対処 セッションファイルのバックアップ+エントリ削除
所要時間 約3分

Claude Codeに「確認して」と言って、スクリーンショットを1枚渡しただけで、プロセス確認→Gateway診断→セッション解析→原因特定→修正実行まで一気に完了しました。

重要なのは、修正コードを自分で書いたわけではないという点です。Claude Codeが原因を特定し、修正方法を提案し、「実行してよいですか?」と確認を取ってから実行した。私がやったのは「確認して」と「お願いします」の2回だけです。

AIエージェントとの協働で大事なのは、問題を正確に言語化することではなく、「とりあえず聞く」ことです。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?