ホームへ戻る

GitHub Repo

Cline CLI 3.0.65、長い会話での出力打ち切りに圧縮後の再試行を追加

新版では、プレーンテキスト生成が出力上限に達すると、まずコンテキストの空き容量の確保を試みてから再試行する。すでにツールの動作が発生したターンは、この仕組みでは再実行されない。実際の回復率は今後の測定を待つ。

Mattruffoni · CC BY-SA 4.0 · Image source
zh-Hant

Clineは9月24日にCLI 3.0.65をリリースし、テキスト回答が出力上限で打ち切られた際に、圧縮してから再試行するフローを追加した。メンテナーによると、llama.cpp、Ollama、LM Studioに接続した長い会話では、コンテキストの残り容量が不足して生成が早期に停止することがある。クライアント側で出力上限を大きく設定していても、回答の途中で失敗するという。新版では、こうした状況を回復可能な実行フローに組み込んだ。[CLIリリースノート](https://github.com/cline/cline/releases/tag/cli-v3.0.65)

SDK 0.0.86では、適用範囲が説明されている。各実行に、強制圧縮後に再試行する機会を1回追加し、`prepareTurn`のコンテキスト超過処理の経路を再利用する。削除できる内容が残っていない場合、または再試行でも出力が打ち切られた場合に、簡潔な回答を促す既存のプロンプトと再試行の仕組みに処理を戻す。最終的に失敗しても、途中までの回答は保持される。ツール呼び出しやプロバイダー側のツール動作がすでに発生したターンは、このフローでは再実行されない。[SDKリリースノート](https://github.com/cline/cline/releases/tag/sdk%2Fsdk%2Fv0.0.86)

この制限は、コーディングエージェントにとって実務上の意味を持つ。フローの設計上、プレーンテキスト生成の回復と外部操作の再実行には、それぞれ異なる判断が必要になる。ファイルへの書き込み、テスト、リモートリクエストはすでに実行されている可能性があり、回答が不完全という理由だけでターン全体をやり直すことはできない。新イベント`task.max_tokens_recovery`は、started、retried、failedの状態を提供する。これにより、連携機能の開発者は最終的なエラーの有無を集計するだけでなく、回復の試行を追跡できる。[SDKリリースノート](https://github.com/cline/cline/releases/tag/sdk%2Fsdk%2Fv0.0.86)

npmにはすでに3.0.65が掲載されている。CLIは対話形式で実行できるほか、JSONストリームを使ってスクリプトと連携できる。既存の`--compaction`パラメーターにはagentic、basic、offの各モードがあり、basicはローカルでの切り詰めを使用する。そのため、導入担当者が同じワークロードでの回復結果を比較するには、選択したモードとモデル設定を引き続き記録する必要がある。[npmパッケージの説明](https://www.npmjs.com/package/cline?activeTab=dependencies)

ローカルサーバーの容量は、別途確認する必要がある。Ollamaのドキュメントは、コンテキストを拡大すると必要なメモリ量が増えると注意を促している。実際の構成と計算に使用するデバイスは、`ollama ps`で確認できる。これを踏まえ、テストではサーバーの容量、会話の長さ、出力上限を併せて記録すべきだ。クライアント側の設定を緩めるだけでは、ボトルネックが生成上限にあるのか、サーバー側で利用可能なコンテキストを使い切ったことにあるのかを判断しにくい。[コンテキストに関するドキュメント](https://docs.ollama.com/context-length)

新版では、会話を開き直した後も実行失敗のメッセージが保持されるようになった。また、これらの表示用記録は、モデルへの入力と圧縮対象の内容から除外される。実装の検証では、短い回答、長文、ツールを使うターンを個別にテストし、途中までの回答、エラー記録、外部操作の整合性を確認すべきだ。圧縮後の再試行はタスクを完了できる可能性を高める一方、コンテキストの喪失や遅延の増加を招く可能性もある。リリースノートには、成功率やコストのベンチマークは示されていない。[CLIリリースノート](https://github.com/cline/cline/releases/tag/cli-v3.0.65)

出典

  1. Cline CLI v3.0.65
  2. Cline SDK v0.0.86
  3. Context length