
DeepSeek HarnessをOpenAI互換APIで接続する
DeepSeek HarnessをreAPIに接続し、V4 FlashとProを選び分け、ツール呼び出しを検証し、キャッシュを活用したエージェントループの費用を見積もります。
DeepSeek HarnessはOpenAI互換のモデルエンドポイントを使用できます。プロバイダープラグインに4つの値を与えるだけです。ベースURL、APIキー、モデルID、Chat Completionsパスの4つです。 reAPIの場合、ベースURLは https://api.reapi.ai/v1 で、現行のモデルIDは deepseek-v4-flash と deepseek-v4-pro です[1][2]。
HarnessプロジェクトはまだDeveloper Previewのラベルが付いており、コマンド名と設定ファイルは変わる可能性があります。安定している部分はプロバイダー契約です。まずその部分を設定し、次に単純なメッセージとツール呼び出し1回を検証してから、追加のプラグインをインストールしてください。
マッピングする4つの値
| Harnessプロバイダー設定 | reAPI値 |
|---|---|
| プロバイダータイプ | OpenAI互換 |
| ベースURL | https://api.reapi.ai/v1 |
| APIキー | 環境変数に格納されたreAPI APIキー |
| モデル | deepseek-v4-flash または deepseek-v4-pro |
キーはリポジトリファイルに直接貼り付けないでください。プロバイダープラグインは環境変数から、または現在のHarness版がサポートするシークレットストアから読み込むべきです。
HTTP層では、リクエストは以下のように解決されるべきです。
POST https://api.reapi.ai/v1/chat/completions
Authorization: Bearer YOUR_API_KEY
Content-Type: application/jsonこの最小限のボディで十分にモデルアクセスをテストできます。エージェントの動作をデバッグする前に、Harness外でアクセスを確認します。
{
"model": "deepseek-v4-flash",
"messages": [
{ "role": "user", "content": "Reply with exactly: provider ok" }
],
"stream": false,
"max_tokens": 64
}このダイレクトリクエストが失敗するなら、問題はHarnessではありません。URL、キー、モデルID、残高、ネットワークアクセスをまず確認してください。
Flashで開始して、難しいステップをProにエスカレートする
現行のDeepSeek V4両バリアントは、100万トークンのコンテキストウィンドウ、最大384K出力、ツール利用、Thinkingモード、Vision入力、そしてreAPIルートでのコンテキストキャッシングを提供します[2]。その価格と想定用途は大きく異なります。
| モデル | キャッシュミス入力 / 1M | キャッシュヒット入力 / 1M | 出力 / 1M | 最初のHarnessジョブ |
|---|---|---|---|---|
| DeepSeek V4 Flash | $0.14 | $0.0028 | $0.28 | ファイル検索、要約、ルーチン編集 |
| DeepSeek V4 Pro | $1.74 | $0.0145 | $3.48 | アーキテクチャ、難しいデバッグ、長期計画 |
エージェントループは指示、リポジトリコンテキスト、ツールスキーマを反復します。そのためキャッシュの動作は異常に重要です。Flashのキャッシュヒット入力はキャッシュミス入力の50倍安くなります。Proのキャッシュヒット入力はミスの120倍安くなります。
接続構築時のデフォルトとしてFlashを使用してください。ステップをProに振り分けるのは、そのreasoning要件がキャッシュミス入力レートと出力レートの約12.4倍を正当化する場合だけです。
安定したプレフィックスは安定のままに
コンテキストキャッシングは、連続したリクエストの開始部分が同一のままである場合に最も有用です。コードエージェントでは、このプレフィックスにはしばしば以下が含まれます。
- システム命令;
- リポジトリポリシー;
- ツール定義とJSONスキーマ;
- 変更されないアーキテクチャドキュメント;
- 最新ツール結果前の以前の会話。
ツールの並び替え、トップ付近へのタイムスタンプ追加、わずかな言葉遣いの変更を含む同じ命令の再生成は、プレフィックス再利用を防げます。変動する状態を安定ブロックの後に配置してください。
例えば、安定入力トークン20万、新規入力トークン1万、出力トークン8,000の場合のProループのコストは、ほぼこうなります。
200,000 キャッシュ入力 × $0.0145 / 1,000,000 = $0.0029
10,000 新規入力 × $1.74 / 1,000,000 = $0.0174
8,000 出力 × $3.48 / 1,000,000 = $0.02784
-------
$0.04814キャッシュヒットなしでは、同じ21万入力トークンは出力前に$0.3654かかります。エージェントのコンテキストレイアウトは、最新のメッセージから数百トークンをトリミングするより重要である場合があります。
プラグイン追加前にツール呼び出しを検証する
成功したチャットレスポンスは、エージェントが行動できることを証明しません。その次は無害なツール呼び出しテストを実行してください。
{
"model": "deepseek-v4-flash",
"messages": [
{ "role": "user", "content": "What files are in the current directory?" }
],
"tools": [
{
"type": "function",
"function": {
"name": "list_files",
"description": "List files in the current working directory",
"parameters": { "type": "object", "properties": {} }
}
}
],
"tool_choice": "auto"
}モデルは構造化されたツール呼び出しを返すべきです。Harnessはローカル関数を実行し、次のターンで結果を提供します。モデルが代わりにテキストとして「ファイルをリストすればいいのに」と出力する場合は、プロバイダープラグインが tools を転送し、assistantツール呼び出しフィールドをそのまま返したかを調べてください。
モデルの問題に見える5つの失敗ポイント
| 症状 | まず確認 |
|---|---|
| 401レスポンス | キーが不在、またはHarnessが環境変数を継承していない |
| 404レスポンス | ベースURLまたは /v1/chat/completions パスが重複/省略されている |
| モデル未検出 | 正確なID deepseek-v4-flash または deepseek-v4-pro を使用 |
| エージェントが話すが行動しない | プロバイダーアダプターがツール定義またはツール呼び出し出力を削除している |
| 回答が完成前に途切れる | Thinkingが出力予算を消費した。max_tokens を増やす |
Thinkingは現行のDeepSeek V4ルートではデフォルトで有効です。Reasoning tokenは出力使用量にカウントされるため、出力上限が小さいとツール計画がユーザー向け回答前に終了できます[2]。
使い捨てリポジトリで完全なエージェントループをテストする
メッセージとツール呼び出しプローブが合格したら、統合テスト用に作成した小さなリポジトリをHarnessに与えてください。読み取り可能なファイル、失敗したテスト、保護されたパス、無害なコマンドを含むべきです。エージェントにテストの診断、パッチ提案、チェック実行、そしてコミットか外部アクション前の停止を依頼してください。
これはJSONツール呼び出しテストでは明かにならない4つの統合失敗を暴露します。
- 相対パスが意図したワーキングディレクトリ外で解決される;
- コマンド出力がモデルが見る前に切り詰められる;
- パッチツールが行末またはファイルエンコーディングを変更する;
- 承認境界がUIでは強制されるがプラグインではされない。
Harnessを再起動後に同じタスクを繰り返してください。セッション復旧はコードエージェントで重要です。長時間実行は通常の境界で失敗するためです。ノートパソコンのスリープ、プロセス再起動、プロバイダータイムアウト、またはmalformedツール出力。最初のターンが機能することは十分ではありません。
ランタイムとモデル失敗を分離するのに十分なログを記録する
最小限のところ、リクエストID、選択されたモデル、トークン使用量、キャッシュヒットトークン、finish reason、ツール名、ツール実行時間、そしてサニタイズされたエラーを保持してください。APIキーまたは制限のないファイル内容はログに記録しないでください。
エージェントが停止した時、これらのフィールドは異なる質問に答えます。
| 観察 | 可能性が高い層 |
|---|---|
| モデル出力前のHTTP 401/404 | プロバイダー設定 |
finish_reason: length | 出力予算 |
| 有効なツール呼び出しだが実行がない | Harness/プラグイン実行時 |
| ツール実行、結果がモデルに到達しない | ループシリアライゼーション |
| ゼロキャッシュヒットで反復された完全入力 | コンテキスト構築 |
| 正しいスキーマにもかかわらずモデルがリスキーなコマンドを選択 | モデル/プロンプト/承認ポリシー |
この分離がなければ、チームは無い環境変数を修正するためにモデルを切り替えたり、失われたツール結果を修正するためにプロンプトを書き直すことが多いです。
隠れたreasoningを会話履歴として転送しない
DeepSeek V4レスポンスはreasoning内容を最終回答とは別に伝えることができます。API文書は次のターン前に前のreasoning内容を削除することをお勧めします[2]。製品ポリシー下での請求とデバッグに必要なものを格納してください。ただし、隠れたreasoningを次のユーザー/assistant履歴に通常内容のように追加しないでください。
会話はvisibleなassistantレスポンス、構造化されたツール呼び出し、そしてプロトコルが必要とするツール結果を保持すべきです。これは次のリクエストを有効に保ち、エンドポイントが受け取ることを期待しないマテリアルでコンテキストが成長するのを防ぎます。
プラグインセキュリティはセットアップに属し、その後ではない
Harnessプレビューはプラグインをサポートします。これはサードパーティコードがプロンプト、ファイル、ツール出力、またはネットワークアクセスを受け取る可能性があることも意味します。有効にする前に。
- プラグインソースと権限サーフェスを読む;
- 使い捨てリポジトリまたはサンドボックスでHarnessを実行する;
- 読み取り専用ファイルシステムツールで開始する;
- シークレットファイルと親ディレクトリをブロックする;
- シェル、パッケージインストール、gitプッシュ、外部メッセージに確認を要求する。
モデルエンドポイントは過度に許可されたローカルプラグインを修正できません。その境界はエージェント実行時に属します。
現在のモデル契約とSDK例は DeepSeek V4 API文書 にあり、リアルタイム価格は DeepSeek V4モデルページ で確認できます。
参考文献
- DeepSeek, "deepseek-harness" 公式リポジトリ, 開発者プレビュー版, 2026年8月23日にアクセス.
- reAPI DeepSeek V4 API文書, 2026年8月23日にアクセス.
- DeepSeek Harness 公式製品ページ, 2026年8月23日にアクセス.
他の記事

画像API のコンテンツフィルタ:拒否が起きるメカニズム
画像API のフィルタリングは複数層で動作します。同じプロンプトが一方のホストを通過して別のホストで失敗することもありますが、設定に関わらず変わらない境界線もあります。


Nano Banana API に無料枠なし:Google の実際の請求内容
Nano Banana API に無料枠はありません。Google はすべてのモデルで「利用不可」と表示しています。実際の画像単価、バッチ処理料金、$0.02 の価値を説明します。


Seedance 2.5 カメラ制御:形容詞ではなく数値で
Seedance 2.5 のカメラ制御は形容詞では高速デフォルト動作に陥ります。明示的な速度、機材名、タイムスタンプビートで正確に制御します。
