コーディングエージェントによるllama.cppの大規模プロンプト再処理:KVキャッシュとコンテキストスワップのデバッグ

r/LocalLLaMAの開発者が、llama-swap経由でllama.cppを利用し、長文コンテキストのコーディングエージェント(opencode + pi.dev)を実行中に深刻なパフォーマンス問題に直面しています。プロンプトの類似度が非常に高い場合でも(LCP類似度が>0.99であることが多い)、システムが定期的にKVキャッシュを破棄し、40k以上のトークンを再処理して、TTFTが数分に及んでいます。
観測された動作
- コンテキストが50kトークン以上に成長。
- 数回の正常な再利用(例:
prompt eval time = 473 ms / 19 tokens)の後、n_pastが突然約4〜5kに低下。 - その後、llama.cppが全プロンプトを再処理:
n_tokens = 4750 prompt eval time = 222411 ms / 44016 tokens。 - キャッシュ使用量が4676 MiBに達し、設定された制限(2500 MiB)を超過。
現在の設定
llama-server --ctx-size 150000 --parallel 1 --ctx-checkpoints 32 --cache-ram 2500 --cache-reuse 256 -no-kvu --no-context-shift推定原因
--cache-ramの上限オーバーフローによるキャッシュ無効化 – ログに4676 MiB使用、2500 MiB制限超過と表示。- 初期プロンプトトークンが変更された場合のKV再利用メカニズムの不具合(opencodeによる頻繁な変更の可能性)。
- 150kのコンテキストサイズに対して
--ctx-checkpointsまたは--cache-reuseが不十分。
コミュニティからの推奨事項
スレッドにはまだ回答が少ないが、明らかな最初の手順としては、--cache-ramを典型的な使用量に合わせて増やす(例:5000+ MiB)、または--ctx-sizeを減らしてキャッシュ制限内に収めること。また、opencodeが意図的にプロンプトプレフィックスを変更していないか確認し、変更している場合はシステムプロンプトを固定するか、固定プレフィックスを使用することで再利用性が向上する可能性がある。
同様の設定を実行している開発者は、ソーススレッドで動作している設定を共有してください。
📖 ソース全文を読む: r/LocalLLaMA
👀 See Also

Redditユーザーが共有する、Claude Codeプロンプティングのよくある間違いとその修正方法
Node.jsのバックエンド作業でClaudeを使用している開発者が、数か月の使用を経て、検証要件の欠落やClaudeをワンショットツールとして扱うなど、10のよくあるプロンプティングの間違いを特定しました。彼らは各問題に対する修正を含むビジュアルガイドを作成しました。

Claudeモバイルアプリのマイクフィードバックループエラーの回避策
Redditユーザーが、Claudeモバイルアプリのマイクフィードバックループエラーの有効な回避策を共有しています。Google Chrome経由でウェブ版をスタンドアロンのプログレッシブウェブアプリとしてインストールすることで、この問題を回避し、異なるClaudeモデルにアクセスできるようになります。

全てのプロンプトで全てのMCPサーバーを読み込むと静かにトークン予算を浪費する
5~6個のMCPサーバーを使用しているユーザーが、各プロンプトで全てのサーバーが読み込まれ、大量のトークンが無駄になっていることを発見しました。ルーティング層を実装してプロンプトに関連するサーバーのみを読み込むようにしたところ、トークン使用量が大幅に削減され、応答時間が改善されました。

高価なモデルが優れていると思い込まない:テストによる13倍のコスト削減を示す事例研究
RedditユーザーがGPT-5.4をGemini 3.1 Flash Liteに置き換えた分類タスクで、21モデルで評価を実施した結果、85%の同一精度を1/13のコストで達成した事例を共有。