AIエージェント 2026年8月19日 約25 分 DeepSeek Harness max-tokens

2026 DeepSeek Harness の max-tokens 切断後、どう続ける?

長い会話やコード解析中に DeepSeek Harness の出力が max-tokens で途切れた場合、すぐに再送やログ削除を行うべきではありません。本記事では、表示上の切断、持続状態の破損、モデルまたは Provider 側の失敗を症状別に分け、旧会話を復旧する条件と新規会話へ切り替える基準を整理します。

2026 DeepSeek Harness の max-tokens 切断後、どう続ける?

長い会話やコード解析中に DeepSeek Harness の出力が max-tokens で途切れた場合、すぐに再送やログ削除を行うべきではありません。本記事では、表示上の切断、持続状態の破損、モデルまたは Provider 側の失敗を症状別に分け、旧会話を復旧する条件と新規会話へ切り替える基準を整理します。

症状:回答の末尾だけが切れたのか、会話そのものが壊れたのかを先に分けます。
最短解法:ログと作業領域を複製し、短い無副作用リクエストを実行してから、旧会話の継続または新規会話への再構築を決めます。

この記事は、長い会話、コード解析、継続的な Agent タスクで DeepSeek Harness が停止し、続けて送信しても反応しない開発者向けです。v0.1.0-rc.7 への更新を検証する運用担当者や、旧会話を捨てるべきか迷っている Agent 開発者にも適しています。

最終更新:2026年8月19日。確認対象は、DeepSeek Harness の公式リポジトリv0.1.0-rc.7 のリリース情報、および会話持続化に関係する実装資料です。公式リポジトリ自身も、現在は開発者プレビューで互換性を壊す変更があり得ると説明しています。 (github.com)

01

まず切断の種類を3つに分けます

DeepSeek Harness の max-tokens 切断では、画面に表示された回答が途中で止まっただけのケースと、次のターンに必要な履歴が保存されていないケースを同じ障害として扱わないことが重要です。DeepSeek API のマルチターン処理は、過去の履歴をクライアント側から次のリクエストへ渡す方式です。そのため、最後の assistant 出力やツール結果が欠けると、画面は開けても実行状態だけが壊れる可能性があります。 公式のマルチターン会話仕様でも、履歴を次のリクエストに追加する設計が説明されています。 (api-docs.deepseek.com)

観察された症状 優先して疑う範囲 継続判断
回答の末尾だけが切れ、入力とモデル選択は正常 単回出力の上限、表示層の切断 短い無副作用リクエストが成功すれば継続候補
同じ履歴位置や同じツール結果で毎回停止 履歴再生、Provider 制限、イベント不整合 連続再試行を止めてログを複製
画面は開くが旧会話だけ実行できない 永続状態、互換性、履歴破損 原本を残し、複製会話を rc.7 で検証
会話は続くがファイルやプロセスの状態が合わない 状態の意味的な破損 旧タスクを停止し、新規会話へ移行

評価は、単に「返事が返ったか」では不十分です。次の入力を受け付けること、ツール結果が履歴と一致すること、作業領域の実状態を再確認できることまで確認して、初めて復旧と判断します。

02

回答だけが途中で止まった場合

最初に入力欄、モデル選択、会話識別子が通常どおり表示されているか確認します。ここで画面上の末尾が省略されているだけなら、会話状態は生きている可能性があります。

次に、ファイル編集、削除、外部 API 呼び出しを伴わない短い依頼を送ります。たとえば「現在の会話を継続可能か確認し、何も変更せず状態だけ説明してください」のように、実行結果が作業領域へ影響しない内容にします。

観察すべき信号は、次の3点です。

  • 新しいユーザー入力が SessionEvent として記録されるか。
  • モデルからの応答開始または明確なエラー記録があるか。
  • 前回の未完了回答を、完了済みの指示として誤って再実行しないか。

短い依頼が成功し、履歴と作業領域に矛盾がなければ、元の会話をそのまま使えます。ただし、切断直前にツールがファイルを書き換えていた場合は、回答が続いたことだけで安全とは判断しません。

03

同じ位置で繰り返し失敗する場合

続けて送信するたびに、同じ履歴位置、同じモデル、同じツール結果の直後で停止するなら、単純な表示不具合よりも履歴再生または Provider 境界を疑います。エラーの発生位置が固定しているか、モデルを変更した短い確認でも再現するかを比較してください。

この段階で避けるべきなのは、同じ長い依頼を何度も再送することです。呼び出し回数だけが増え、どの試行がどの状態を読んだのか分からなくなります。先に次の証拠を別の場所へ保存します。

  1. 実行中の DeepSeek Harness のバージョン。
  2. 会話識別子と失敗したターン。
  3. 直前のユーザー入力、モデル応答、ツール結果。
  4. 作業領域の Git 差分、変更時刻、実行中プロセス。
  5. 失敗直前から次の入力までのログ。

同じ位置でのみ失敗し、短い新規会話は正常なら、モデル全体ではなく旧履歴か状態再構築に範囲を絞れます。新規会話でも同じモデルと同じ種類の短い依頼が失敗するなら、会話を削除せず、Provider 側または実行環境側の問題として切り分けます。

注意:ログに max-tokens と表示されても、それだけで「次のターンまで壊れた」とは限りません。回答の終了理由、保存されたイベント、ツール実行の完了状態を分けて確認してください。

04

旧会話だけ実行できないときの確認手順

ページや Web UI が開けるのに、特定の旧会話だけ入れない場合は、新規会話との比較が最も速い判定になります。公式リポジトリでは、セッションの持続化やイベント型を含む実装が開発中であり、開発者プレビューでは互換性を壊す変更も想定されています。 公式のアーキテクチャ資料セッション関連パッケージを確認し、現在の保存形式と更新前後の差分を見ます。 (github.com)

第一歩:原本を保全します

会話ディレクトリ、実行ログ、作業領域を削除せず、同じファイル属性を保った複製を作ります。原本へ直接アップグレードを適用すると、失敗前の状態と失敗後の状態を比較できなくなるためです。

第二歩:新規会話を同じ環境で起動します

同じ Mac、同じ API 設定、同じモデルで、読み書きのない短い依頼を送ります。新規会話だけ成功するなら、旧会話の永続状態または履歴互換性を優先します。

第三歩:複製した旧会話を読み込みます

複製側で会話の表示、最後のイベント、次の入力の受付を順に確認します。SessionEvent が途中で終わっている、assistant 出力とツール結果の順序が合わない、完了記録なしに次の入力だけが存在する、といった状態なら、読み込み成功だけでは復旧と見なしません。

第四歩:rc.7 で無副作用テストを行います

v0.1.0-rc.7 へ更新した環境で、まず会話の読み込みと短い状態確認を行います。ファイル編集やコマンド実行を伴う依頼は後回しにし、イベントの再構築と次ターンの開始が分離して確認できるようにします。

第五歩:最後の完全な作業単位を照合します

最後に成功したファイル変更、テスト結果、承認判断、実行中プロセスを、会話内の説明と照合します。会話が自然に続いて見えても、実際のワークスペースが一致しなければ、モデルが古い前提を持ったまま作業を続ける危険があります。

05

v0.1.0-rc.7 の更新結果を過信しない判断

2026年8月18日時点で、公式の v0.1.0-rc.7 リリース情報は、max-tokens の切断によって会話を継続できなくなる問題への修正を示しています。ただし、修正コードが公開されたことと、過去に不整合となったすべての会話が自動修復されることは別です。既存ファイルの欠落や順序不整合まで移行できるかは、会話ごとに確認する必要があります。 公式リリースページでは、旧会話の全件復旧率や、あらゆる破損状態への移行保証を判断できる情報がない場合、その点を推測で補わないでください。

更新前後で、次の情報を記録します。

  • 更新前のバージョンと起動方法。
  • max-tokens 切断が起きた会話とターン。
  • 旧会話の複製を読み込めたか。
  • 無副作用の次ターンを開始できたか。
  • 作業領域とツール結果を照合できたか。
  • rc.7 以外のモデル、設定、環境変数を変更していないか。

読み込み、次ターン、状態照合のいずれかが失敗した場合は、公式修正が無効だったと断定するのではなく、「この保存状態では復旧条件を満たさなかった」と記録します。最小再現を作成して公式の不具合報告へ提出するか、再現性のある旧環境を隔離して保管します。

06

復旧ではなく再構築へ切り替える基準

次のチェックをすべて満たす場合だけ、旧会話の継続を許可します。

  • 原本の会話ログと作業領域の複製を保存した。
  • 旧会話の履歴を最後まで読み取れる。
  • 次の入力を無副作用で実行できる。
  • 最後のファイル変更と会話内の説明が一致する。
  • ツール結果、承認判断、実行中プロセスを再確認できる。
  • rc.7 更新後に、別の状態を誤って再実行していない。
  • 継続するタスクの目的と未完了手順を人間が確認した。

1つでも未達なら、元の会話を削除せず、新規会話へ切り替えます。新規会話には、推測で補った長い履歴を貼り付けるのではなく、確認済みの目標、完了済みの手順、未完了の手順、現在のリポジトリ状態、実行中プロセス、再実行禁止の操作を整理して注入します。

この方法は、会話の流暢さよりも作業状態の正確さを優先します。コード変更やデプロイを含むタスクでは、古い会話を無理に生かすより、証拠付きの短い再開点を作る方が被害を限定しやすいです。

07

Mac 上で長時間の復旧検証を行うときの運用

長時間タスクをローカル Mac の一時的なターミナルだけで運用すると、スリープ、ログアウト、接続切断、作業領域の混在が障害調査を難しくします。DeepSeek Harness 自体は Node.js から起動でき、公式 README でも npm 起動とソース起動の両方が案内されています。 (github.com)

復旧検証を分離するなら、会話データ、作業領域、実行ログを同じ場所に置かず、検証用の複製環境を用意します。短期の確認なら VNCMac の Mac クラウド環境で隔離した実行場所を作り、長期運用では Mac 環境の選び方を確認しながら、バックアップ、再接続、権限、再起動後の作業継続を分けて設計します。

現在のノート Mac だけで続ける方法は、短い検証や物理デバイス操作には向いています。一方、長会話を夜間に走らせる場合は、端末のスリープ、ユーザーセッションの切断、ログ保全場所の不足が重なり、DeepSeek Harness の障害なのか実行環境の問題なのか判断しにくくなります。VNCMac の Mac を使う場合でも、旧会話の原本を保存しない運用や、状態照合なしの自動再実行は避けてください。

FAQ

DeepSeek Harness の出力が max-tokens で切れたら、すぐ再送してよいですか?

入力欄と会話状態が正常で、短い無副作用リクエストが成功するなら、同じ会話を続けられる可能性があります。ただし、前回の回答やツール結果が完全に保存されているとは限りません。連続再送の前にログと作業領域を複製し、最後の SessionEvent と実際のファイル状態を照合してください。

v0.1.0-rc.7 は壊れた旧会話を自動で修復しますか?

v0.1.0-rc.7 は max-tokens 切断後に会話を続けられない問題への修正経路として検証する価値があります。しかし、既存の破損状態すべてに移行保証があるとは判断できません。複製した旧会話で読み込み、無副作用の次ターン、作業領域の一致を確認し、1つでも欠ければ新規会話へ移行します。

max-tokens の上限とコンテキスト長の問題をどう見分けますか?

回答の末尾で止まり、次のターンは正常なら、単回出力の上限である可能性があります。履歴やツール結果が増えた特定位置で送信自体が失敗する場合は、入力コンテキストまたは履歴再構築を疑います。終了理由、入力履歴、エラー記録を分けて保存し、同じ短い依頼を新規会話でも比較してください。

旧会話のログを削除してから rc.7 を試すべきですか?

削除してはいけません。ログは、修正前後の状態、失敗位置、イベント順序、最後に確実だった作業単位を比較するための証拠です。まず複製を作り、その複製で rc.7 の読み込みを試します。復旧できない場合も、原本を残したまま検証済みの要約を使って新規会話を開始してください。

旧会話を守りながら検証できる環境を整えるなら、手元の Mac だけで無理に長時間タスクを抱え込むより、隔離された Mac を一時的に使う方が比較しやすい場合があります。ノート Mac はスリープや接続切断の影響を受けやすく、既存会話を直接更新してしまうと復旧前の証拠も失われます。短期の算力確保、再現環境の分離、遠隔からの再接続が必要なケースでは、VNCMac の Mac レンタルを検討する余地があります。反対に、長期の安定した高負荷運用や物理インターフェースが必要な作業では、自前の Mac の方が適しています。