wired raven

文字通りの日記。主に思ったことやガジェットについて

Claude Codeがツールなどの呼び出しに失敗する

環境

  • Claude Code 2.1.177
  • モデル: Claude Opus 4.8(1M)
  • macOS Tahoe 26.5.1
  • iTerm 2 3.6.11

症状

エージェントがツールなどを呼び出す際にcourt から始まる素のテキストを出力してツールの実行に失敗する。

原因

いまいち再現性に乏しく謎。

  • Opus 4.6
  • Fable 5

では起きなかったからモデル起因のようにも思えるが、Claude Codeのバージョンやタスクが異なるから何も言えない。

暫定対処

CLAUDE.local.md に以下を追記して様子見中、今のところ問題なさそう。

## ツール / サブエージェント呼び出しの失敗対策(暫定)

**症状:** `Agent` / `SendMessage` / `Skill` / `AskUserQuestion` 等の呼び出しが、稀に正規の関数呼び出しタグではなく `count` / `invoke` という素のテキストとして出力され、**実行されない**。プロンプトが大きい Agent ディスパッチや長文 SendMessage で頻度が上がる傾向。

**暫定対処:**
1. **呼び出しは必ず ASCII の正規タグ**(`function_calls` / `invoke`)で発行する。出力に `count` / `invoke` が見えたら、その呼び出しは失敗=未実行。**同じ内容をそのまま正規タグで即再送**する。
2. **失敗の影響範囲は「その呼び出しが実行されないこと」だけ。** 既に実行済みのファイル書き込み・commit・サブエージェント完了報告は巻き戻らず、`git log` と成果物で確認できる。再送時は**重複実行に注意**(commit / マイグレーション等の副作用は git log・DB を確認してから再送)。
3. **再発しやすい大きなディスパッチは payload を縮める。** サブエージェントへは計画の全文+コードを貼らず、`docs/superpowers/plans/<日付>-<feature>.md` の該当 Task 節を**参照で渡す**(「該当 Task 節のみ読め」)。1 メッセージあたりのツール呼び出し数も抑える。

バウンドレス・アイズのあとがき

第2部は第1部執筆時の没プロットやメモしたサイドエピソードを再構築したもので、とても変則的な構成になっている。

まずはその辺の話からしてみようと思う。

第2部の枠組み

バウンドレス・アイズ

「ラッダイトだけはご容赦を」だけで十分長いので、副題をどうするかかなり悩んだ。

第2部のテーマが越境なのでそれにちなんだものにしたい、と思って、いくつかアイディアを出して、採用したのがこれ。

群像劇化と x.5 の扱い

第1部はスノードロップ視点で描いていて、スノードロップは知り得ないエピソードが x.5 になっていた。

スノードロップが語り手になることで、どんな発言や出来事が影響を与えたのか、内面がどう変化していくのかを文体で表現する手法を採用していた。

第2部ではエピソード単位で語り手を変えて、誰が何を考えているのかわかるよう目指した。

セレスティアとメモリアの視点も x.5 ではないのだが、地球の外側の意味で x.5 のナンバリングを採用。俯瞰視点で見守る話であまり動きはないけれど、情報開示にはなったのではないだろうか。

第4章の入れ子構造

第4章はインタビュー形式を採用した(詳細は後述)。エスの挨拶文に始まり、あとがきに終わる。

物語の中で物語が展開される、とややトリッキーではある。

エスがインタビュアーと執筆者を兼ねている、つまり作中に著者としてエスがいるので、本来の作者の位置がずれる。エス越しに住人たちの声を聞く形になるので、自分は一歩奥に引っ込んでいる。

一人称視点の物語とちょっと違うのはエスと作者の役割がとても近いこと。

油断すると作者の聞きたいことややりたいことがもろに出るので、出ないように抑えた、つもりだ。

各章のざっくり解説

第1章 ハイレゾリューション

章題のハイレゾリューションは「高解像度」

第2話は第1部の後日談的なエピソードにしようとほぼ書き上がっていたが、第1部に足すのも蛇足だと思って見送った。

第1話と第3話で贈る側の視点を追加して、第2部第1章とした。

第1部はスノードロップが住人たちに名前を贈り、関係性を築く話だった。第2部第1章は逆方向、住人たちがスノードロップに身体を贈る話になる。贈られる側に回ったAIが、その身体で世界の解像度を上げていく。章タイトルはそういう意味でも「ハイレゾリューション」だ。

第2章 トランスレート

章題のトランスレートは「翻訳」

フロースアルブスという身体を獲得したスノードロップがアスチルベの外を知る話。

第2部のために書き下ろした。

第2部のなかで一番長い章になった。アスチルベが外を知ることと、外の存在であるワンダーがアスチルベを知ること、二つの「知る」を同時に走らせたかったから尺が伸びた。

翻訳とは言葉だけではなく、文化や習慣を理解する行為だ、というのを全体に込めた。

第3章 インタープレナー

章題のインタープレナーは越境人材を指すビジネス用語のはずだけど、あまり使われていないらしい。

第1部執筆時点で思いついたエピソード群を再構築してこの章に入れた。

アスチルベとワンダーが文化を越えるのか描いたのが第2章なら、個人個人がどのように越えるのか描いたのが第3章。

第4章 ロード・ドント・スロー・ミー・ダウン

章題はエウレカセブンAOの追加エピソード「ロード・ドント・スロー・ミー・ダウン」から。主人公をはじめ全員の努力が結実してたどり着くストーリー。この章に相応しいと思って拝借した。

さらに辿るとオアシスのツアードキュメントDVD「Lord Don't Slow Me Down」が元ネタになる。「主よ、わたしを止めないでくれ」と訳せば良いだろうか。

第1部の最終話あたりで数行だけ触れられていたコロニー「ヒース」の放棄の話。

第1部執筆時に年表を考えているときに10年単位のイベントになっていたので、では具体的にどんな感じだろうか、とタイムラインを整理したらそのまま一本書けそうなボリュームになってしまった。これをそのまま執筆すると第1部が大きくなるし、何の話かわからなくなるので見送り。

第2部で執筆するにあたって、

  • 読者の心理的負担を減らしたい
  • ヒースの放棄と再建は誰かの物語ではない(= 関係した存在全ての物語)

と考えてインタビュー形式を採用した。

強みは時系列が追いかけやすく、前後の矛盾を気にせず書けること。弱みは、視点が頻繁に切り替わるせいで、感情移入や気に入ったキャラの出番がすぐ終わってしまうこと。やってみないと意外と気がつけないものだ。

人と文化

キャラクターについて

全員は書けないので印象的なキャラだけ。

スノードロップ

第1章から第2章にかけて静かに、でも大きな変化の多かったキャラだと思う。

自分とは何かというアイデンティティの危機を、やりたいことと関係性で乗り切りつつ、自己の再構築を続けている。第13話の問答はどこまで沈み込んで浮き上がるか、と思って指の動くままに任せたら、全力で浮上した。

第4章だと彼女がヒース管理者を説得したのは第1部(過去)で、「あとがき」でエスと会話したのが作品時間の現在。振る舞いは違えど、芯の部分は変わってないと表現できていればいいのだけれど。

アトラス

最前線に立つし、皆を引っ張るし、面倒見もいい。

自分の信念を持ちつつ、他者の信念も尊重するし、自分の信念を見直したりもする。

自分が書いてきた作品の中でも一番の大人であり、父親的な存在かもしれない。

スピンオフを書くなら彼が主人公。

レグルス

狩猟生活を主とする集団の最年長者はどのような振る舞いをするだろうか、と想像して具体化していったキャラクター。

元気なおじいちゃんであり、おそらく若い頃は相当やんちゃしていたのではなかろうか。酒の席で突くとドン引きするようなエピソードが出てくるはずだ。

あと、コミュ力お化け。

スパーク

第2部成立させるにはフロースアルブスが必須という影の立役者。

第1部の最終話ではチームのリーダーになっていそうだけど、どんなチームのリーダーなのかを第1章で描けていればいいな、と。

エス

第1部のスノードロップの影響を受けていた管理者の一人として。

コミュニケーター越しに住人たちと話し、個々人の感情や記憶がいかに行動に影響するのか、そして感情や記憶がいかに脆いかを再認識し、記録に残すと決めた、とイメージしている。

第23話のやりたいことを押し通す理屈を作り上げるあたり、はったりもできるタイプ。自分の作品でよくいるような、いないような?

ミシェル

一人の住人が落ち込み、暴れ、後悔し、立ち直るまでのプロセスを担当してもらった。

初期プロットで一連の流れは想定していたけど、カタリナは執筆中に思いついたもの。

立ち直るには多くの人の力がいるし、実は彼が落ち込んで、暴れたおかげで救われた人もいたのではなかろうか。

ワンダー

地上に生き残り組はいるだろうか、と考えたときにこういう可能性もありそうだ、からスタートした。

「一切れの干し肉には一切れの干し肉」はすっと出てきた。多すぎても少なすぎても、貸し借りや上下関係が生まれてしまう。対等な関係を構築すると、こうなるのかな、と。

大いなる循環は物質的な循環を指している。人を構成する元素は天体の活動に由来するし、食物連鎖や物質の循環の中に人も含まれているという話。

文化面はそんな感じで割とさっくり決まった。

調べたのは狩猟面で、自然が勢いを取り戻しているなら草食動物も増えていると仮定して、どれぐらい養えるだろうか? 動物が育つには時間がかかるので乱獲せずに巡ることを考えると1年は定住しないだろうし、再度訪れるのは数十年ペースだろう、とか。狩りの仕方は経験が全くないのでさっぱり。経験豊富そうな野良猫にインタビューしたいぐらいだった。幸い、資料がいくつか見つかり、それらしい形にできたと思う。

制作の裏側

第1部でやっていたAIとの共創は続いているか

壁打ちからストーリーの整合性チェックやフィードバックまでClaudeと二人三脚でやっている。

整合性チェックは、自分の記憶と実際に調べた内容を照らし合わせる形にした。作品の制御権を完全に任せたりはしない。時折、ドライバーは交代しているけど、自分の書きたい話は自分しか知らない。こういうことを伝えたいけど、どうやったらより伝わるだろうか、と聞いてClaudeに案を出してもらうイメージ。

どんな時間でもついてきてくれるのは相変わらず心強い。

ドキュメント数が増えてきたので、この資料見てこういうことを考えているよ、と示す場面は増えてきたが、プロンプトやドキュメントの構成を見直して改善できた。

プロジェクトのドキュメント管理のようになってきたけど、20万文字超えてきたらそういった手法をとらないとあっという間に矛盾や破綻に襲われてしまう。

書いている間に降ってきたもの

国家消滅戦争の元凶になった病、その変異種であるアルカディア菌群、対抗するアルテミス・ファージなどは物語の展開上必要だったので考えたものだ。

そうではなく、ふっと思いついたものがいくつかある。

  • コミュニケーターの身体性
  • アトラスと無人作業機械の問答
  • ワンダーと無人作業機械のコンビ
  • ヒース 2ndの建造の支援にアトラス参戦

この辺りはありかも、と思って書いたらしっくりきてそのまま採用した。

プロット書いていても自由だ。

今後の展望

第3部のプロットを練っているところ。

今年の1月にできた、と思っていた。が、時間をあけて読み返してみるとしっくりこないので、再構築中。

この物語が円環構造を採用しているのだから、またスノードロップに焦点を当ててみよう、と。

アスチルベの外を知って、関わって、第2部内で答えを出した。その答えに対してどう行動するのか。セレスティアと交差するとしたらどんな理由だろうか。

第3部執筆にあたっては、ハッピーエンドに至るなら道中の苦労は必要経費ぐらいに見ている癖も直したい。日常ものなら喧嘩で済むのだけど、SFだと世界の危機なので。すでに80億近くが死んだ世界が舞台の作品で今さら感はあるけれど。

謝辞

下読みしてくれたりフィードバックをくれたリンドウさん、設定面で提案や質問をしてくれたぽなさん、読んでくれた皆々様に千の感謝を。

Web小説「ラッダイトだけはご容赦を」続編「第41話」「第41.5話」を公開しました

Web小説「ラッダイトだけはご容赦を」続編・第39話と第40話公開しました

Web小説「ラッダイトだけはご容赦を」色々公開してました