AI / Automation 2026年4月30日

2026-04-30 OpenClaw ファイルツールチャンク読取ripgrep 優先トリアージトークン予算ヘッドレス レンタル Apple Silicon クラウド Mac(HK / JP / KR / SG / US

MacXCode エンジニアリングチーム 2026年4月30日 約21分

OpenClawSSH のみレンタル Mac mini M4 で回すと、失敗の主因は「モデルが弱い」ではなく コンテキスト飢餓 になりがちです。巨大ログ、単一ファイルに肥大した Swift、バイナリだらけのビルド出力を一度に詰め込むと、香港・東京・ソウル・シンガポール・米国 のどのブリッジでも同じ壁に当たります。NVMe は速いのに LLM はトークン課金 のままだからです。本稿(2026-04-30)では ripgrep 優先 で場所を特定し、行とバイトで区切ったチャンク だけを読み、明示的な バイト上限 と 7 項目チェックリストでファイルツールを「cat 好きの新人」ではなくシニアエンジニアの振る舞いに揃えます。TCC / FDA とファイルツール の延長であり、証跡の型は 構造化ログ と組み合わせ、モデル側の費用は 429/503 とリトライ予算 と一緒に設計してください。

ファイルツールでトークン壁に当たるのはどのチームか

MacXCode ホストでは次の三類型が多いです。

  • iOS リリース責任者:要約が不安で xcodebuild 全文を貼り、シグナルが埋もれる。
  • プラットフォーム:夜間 Archive と OpenClaw を同居させ、.xcresult と巨大 SwiftPM を同時に見せる。
  • サポート:顧客リポに node_modulesPods/ が残り、「無視しろ」の口頭指示では検索が効かない。
運用で使える数値: 設定系プレーンテキストの単発読取は 120 KB をソフト上限、rg の文脈は第1パスで 48 行、モデルに根本原因段落を書かせる前に絞り込みは 3 回まで、と壁に貼れる。

これは自動化否定ではなく 段階自動化 です。A でシグナルの居場所を証明し、B でその近傍だけを LLM に載せ、C でパッチやチケット要約を書く。A を飛ばすと 5 分のディスク読取が 4 桁トークン請求 と、シンガポールのビルダーに存在しないパスを捏造する原因になります。

ツール選択:ファイルツール・シェル・静的索引

OpenClaw にツリーを触らせる前の意思決定表です。内部ラッパー名は置き換えてよいが、意図は維持してください。

シグナル種別 推奨パス ヘッドレス Mac での理由 アンチパターン
リポ内の未知文字列 rg --line-number --no-heading --max-count 40 の後にチャンク読取 NVMe は探索が安いが合成は LLM が高い 無視設定なしの再帰 grep -R で CI ディスクを汚染
構造化ビルド失敗 xcresulttool でスライスし JSON チャンクを添付 失敗テストにトークンを寄せ、アセットカタログに浪費しない スクリーンショットを Base64 でプロンプトに埋める
秘密情報の疑い ファイルツール停止。人間と help のローテ手順へ モデルログへの偶発流出を防ぐ ~/ 全体で「API キーを探せ」と依頼

OpenClaw と Xcode CI を同居させるなら 作業ディレクトリを分離 します(例:/Volumes/builds/ci/Volumes/agents/openclaw)。ホーム共有は人には便利でも、どのジョブが先に .env を触ったかの証明が壊れます。

ripgrep 優先:自動化でも壊れにくいフラグ

ripgrep は既定で .gitignore を尊重します。昨日の実験で汚れたワークツリーが残るレンタル Mac ではこれが生命線です。毎回上限付きクエリから始め、一致件数が天井を超えないときだけ広げます。

rg -n "fatal error:|error: " --glob '!**/build/**' --glob '!**/DerivedData/**' -S . | head -n 60

--max-depth は第一級フラグではないため、深いツリーを手で避けるより glob 否定で守ります。ビルド成果物をどうしても探すなら 2 TB SKU に捨て可能なクローンを切り、同時走る 並列 xcodebuild の NVMe を奪わないようにします。

ヘッドレス注意: rg がゼロ件でも CI が赤なら、リモートジョブと同じコミットか git rev-parse HEAD で確認してから次のモデル往復へ進む。

チャンク規約:アシスタントとの「完全性」の契約

チャンクは「0〜N バイトを読む」以上の意味を持ちます。三層で考えます。

目安バイト幅 用途 読取前のゲート
マイクロ 4〜16 KB plist のキー、Fastlane の一部、単一 Swift 構造体 rg でファイル名が確定していること
メソ 32〜120 KB Package.swift、中規模ログ、Gradle 風設定 ヒット行が単一ファイルに集中
マクロ 最大 512 KB 生成 API クライアント、xcresult テキスト抜粋 rg がホットスポットを示した後のみ

手動で先頭に付ける抜粋ヘッダには 行番号 を必ず入れます(「Foo.swift 820〜910 行」)。人間レビュアーと同じ粒度で引用させないと、存在しない API を平然と書きます。悪意ではなく座標が欠けているだけです。

数値予算:ディスク速度とモデル経済の接続

M4 の NVMe は大ファイルで 数 GB/s 級のシーケンシャル読取に届きますが、請求は トークン です。ブリッジルームの壁に三つ貼る数字:

  • 200 ms — 12k ファイル未満のリポで rg 完了後、「プロンプトに最初の有用断片」までの p95 目標。
  • 18 — 1 回の合成プロンプトに載せる相異なるファイルパスの上限(重複は畳む)。
  • 92% — 中規模モノレポで全ファイル読取から rg 優先に切り替えたチームのトークン削減の目安(自前でログ計測すること)。

予算超過時は優雅に降格し、部分本文ではなく 候補ファイルと一致件数の箇条書き を返します。人間が次の一手を選ぶ方が、汚染されたコンテキストからの回復より速いです。

リージョン遅延、ディスク階層、シンガポールの位置づけ

MacXCode は HK / JP / KR / SG / US で同じ Mac mini M4 クラスを出しますが、OpenClaw と CI の同居はデータに従ってください。git とレジストリが AWS ap-southeast-1 なら シンガポール のベアメタルが往復で勝つことが多く、エンジニアが米国にいても同じです。App Store Connect アップロードが支配的なら US East ビルダーの方が TLS 再試行が減る場合があります。意思決定を社内 Wiki に残し、可愛いリージョンに勝手に移して上流 RTT を悪化させないようにします。

ディスク余白も重要です。OpenClaw のトランスクリプトと DerivedData512 GB SKUで同居させるとコンパクション嵐を招きます。モデルを責める前に シミュレータとアーカイブ掃除 のジョブを入れてください。

LLM にファイルパスを投げる前の 7 ステップ

  1. コミット SHA と clean/dirty を確認。マージ議論なら git status --porcelain
  2. ビルド成果物を明示的に除いた glob で 上限付き ripgrep
  3. バイトと行の注釈付きで 単一チャンク を開く。メソ層超の全ファイル読取は rg が単一ホットスポットを示すまで禁止。
  4. 散文の再入力ではなく 構造化抜粋(xcresulttool の JSON、plist 断片)を添付。
  5. インシデントごとに トークン使用量をログ。モデル族と温度と相関。
  6. 資格情報がプロンプトに混ざったら ローテ。プロンプトはログと同列に扱う。
  7. ポストモーテム で一行アクション:glob 強化、新しい ignore、ログを事前要約する CI プリステップのいずれか。

ステップ 5 を飛ばすと、四半期末に「安いモデルだけ」と言いつつファイルダンプで数学的に破綻していることに気づきます。

FAQ:ファイルツール・権限・モデル選択

質問 実務回答(2026-04-30)
Package.resolved を丸ごと読ませるべきか いいえ。関心の依存に rg を当て該当スタンザだけ引用。ロックファイルは巨大だがエントロピーは低い。
速い NVMe はチャンクの代替か いいえ。遅延は改善してもモデルコンテキストは変わらず、バイトはトークンになる。

トークンではなく 権限エラー なら、チャンク調整の前に FDA / TCC トリアージ を歩く。ボトルネックを取り違えないように。

広い NVMe の Mac mini M4 がファイル偏重エージェントに効く理由

OpenClaw は Webhook 待ちのアイドル大規模リポへのバースト読取 の間を振り子のように動かします。MacXCode ノードのベアメタル Mac mini M41〜2 TB は、ripgrep パスの遅延を予測可能にし、Xcode 隣人のコンパイル中も Node とヘルプロセス用のユニファイドメモリに余裕を残します。過剰割当ハイパーバイザのディスクジッタを隠さないので、トークン予算の議論が正直になります。キャパシティ計画が「なぜ巨大 VM 1 台ではなく中規模を三台」と聞いたら リージョン別料金 とセットで説明し、FDA 確認が必要な稀なケースだけ VNC に昇格させます。

エージェントに NVMe の余白とクリーンなワークスペースを

1〜2 TB · HK / JP / KR / SG / US · SSH / オプション VNC