当社独自のアクセス統計は常に有効です。Google Analyticsは、公開ページ(ログイン後のワークスペースは対象外)の利用状況を把握するためのもので、許可をいただいた場合のみ有効になります。詳しくは プライバシーポリシーをご覧ください。

DeepSeek V4をClaude Codeで使う:コメントのクリーニングにかかるコストはいくらか

EveryInfra MCPでYouTube、Bilibili、Douyinから取得した695件のコメントを基に、deepseek-flashでClaude Codeを動かす場合のコストを試算しました。ピーク時の料金はSonnet 5.5の1/10ですが、Haiku 5.5より高くなります。

イラスト:左側では、3つのじょうごがそれぞれ絡まった吹き出しの流れを受け止めています。吹き出しには、くしゃくしゃのもの、重複したもの、キラキラしたものがあります。流れはホースを通って、画面が空白の端末装置に流れ込みます。装置の後ろには丸いタンクがあります。右側では、ベルトコンベアが整った吹き出しを4つの浅いトレイに仕分けており、そのうち1つはティール色で縁取られています。ベルトの下のゴミ箱には、くしゃくしゃの吹き出しが入っています。

DeepSeekのdeepseek-flashモデルでClaude Codeを動かし、EveryInfraのリモートMCPサーバーで動画コメントを取得・クリーニングできます。安価ですが、「コストは10分の1」という主張が成り立つのはDeepSeekのキャッシュがヒットした場合だけです。公式のClaude Codeコストドキュメントにあるサンプルセッションで料金を試算したところ、ピーク時料金のdeepseek-flashは$0.0274で、Claude Sonnet 5.5($0.2744)のちょうど10%でした。キャッシュがまったくヒットしない場合、同じセッションは$0.3037となり、キャッシュが効いているSonnet 5.5より高くなります。

Claude Haiku 5.5では、同じセッションが$0.0184で済みます。2026年10月26日、シンガポール時間(SGT)の17:26〜17:38に、EveryInfraを呼び出して15本の動画から695件のコメントを取得しました。クリーニング後に残ったコメントは655件で、推定のモデル入力は84,109トークンから20,176トークンに減りました。BilibiliとDouyinでは、コメント1,000件あたりのデータ料金がdeepseek-flashのモデル料金を上回りました。

本記事でいう「コメントのクリーニング」は、ある特定の作業を指します。Claude CodeがEveryInfraの機能カタログを読み込み、MCPツールeveryinfra_call_apiを呼び出して、youtube/comments、bilibili/comments、douyin/commentsでコメントを取得します。続いて、短いスクリプトで重複、空の返信、宣伝を除去します。

残りの約半分は、キーワードルールで「セットアップとエラー」「料金とクォータ」「モデル比較」「称賛」のいずれかにラベル付けします。ルールで判定できないものはモデルがラベル付けします。出力は、元のテキストを含む表とコスト記録です。Claude Codeの裏で動くモデルはAnthropic製ではありません。

使用するモデルはdeepseek-flashで、DeepSeekのAnthropic互換エンドポイント経由で提供されます。私たちはDeepSeekのAPIキーを持っていません。そのため、以下のDeepSeekとClaude Codeの手順はすべて公式ドキュメントに沿った設定例であり、実際には実行していません。EveryInfraの呼び出しと、私たちのデータから得た数値はすべて実測です。

台座の上のアイソメトリックイラスト。奥には支柱に載った小さなホッパーが3つあり、3つのプラットフォームからのコメントの流れを表しています。中央には4本脚の上にドットグリッドのある一段高いプレートがあり、これがクリーニングスクリプトです。その手前の小さな青緑色のトレイには薄いシートが3枚載っており、これが残るコメントです。左手前の丸いごみ箱には切れ端が入っており、除去された重複、空の返信、宣伝を表しています。右手前にはランプ付きの小さな机があり、モデルが付ける4つのラベルを表す4枚のカードが置かれています。

この図は、どこにお金がかかるかを示しています。コストが高いのは右手前の机で、ここでモデルが各コメントを読んでラベルを付けます。左側のふるいを細かくするほど、机に送られる量は減ります。

まずセットアップを説明し、次に5つのテストを紹介します。最後にコストを計算します。

結論:コストが10分の1になるのはキャッシュがヒットしたときだけ

このテーマの調査メモでの仮タイトルは「コメントのクリーニングを10分の1のコストで」でした。着手前に、これを数値で答えられる2つの問いに置き換えました。同じ使用量で、ピーク時料金のdeepseek-flashはClaude Sonnet 5.5の10%以内に収まるか。Claude Haiku 5.5より安いか。答えは「はい、ちょうど10%」と「いいえ」です。

使用量は自分たちで想定したものではありません。Claude Codeコストドキュメントにある/costのサンプルをそのまま使いました。入力1.2k、出力5.3k、キャッシュ読み取り940.0k、キャッシュ書き込み50.0kトークンです。ドキュメントではClaude Sonnet 4.6で$0.55とされています。まずSonnet 4.6の料金で再計算したところ$0.5526となり、ドキュメントと一致したため、計算方法が正しいことを確認できました。

次に、2026年10月26日に確認した各公開料金を適用しました。Claudeの料金はAnthropicの料金ページ、DeepSeekの料金はDeepSeekの料金ページ(USD)に基づきます。あわせて、CNY建ての中国語版料金ページとも照合しました。

モデル(公開料金、2026年10月26日時点)キャッシュ全ヒットキャッシュヒットなしSonnet 5.5に対する比率(ヒット時)
Claude Opus 5.5$0.5488$4.1208200%
Claude Sonnet 5.5$0.2744$2.0604100%
deepseek-v4-pro、ピーク時$0.1299$1.329447.3%
deepseek-flash、ピーク時$0.0274$0.303710.0%
Claude Haiku 5.5$0.0184$0.10306.7%
deepseek-flash、オフピーク時$0.0137$0.15195.0%

中央の列は見落としがちです。Claude Codeのようなエージェントでは、入力の大半がキャッシュ読み取りです。サンプルセッションでは、入力トークン991.2kのうち940.0kがキャッシュ読み取りで、94.8%にあたります。つまり、請求額を左右するのは、キャッシュヒット時の価格と、そもそもキャッシュがヒットするかどうかの2点です。

deepseek-flashのヒット時価格は100万トークンあたりピーク時$0.006、オフピーク時$0.003で、Haiku 5.5の$0.01より低くなっています。一方、ミス時価格は$0.30で、Haiku 5.5の$0.10の3倍です。キャッシュがヒットすれば、deepseek-flashはSonnet 5.5の約10分の1に収まります。ミスした場合は、キャッシュが効いている状態のSonnet 5.5よりも高くつきます。

1目盛りごとに10倍の対数スケールで描いた横棒グラフ。6つのモデルについて、Claude Codeのサンプルセッション1回分のコストを示しています。濃い棒はすべてキャッシュヒットした場合、薄い延長部分はキャッシュヒットがない場合です。Claude Opus 5.5は0.5488〜4.1208ドル。Claude Sonnet 5.5は0.2744〜2.0604ドル。ピーク時のdeepseek-v4-proは0.1299〜1.3294ドル。ピーク時のdeepseek-flash(青緑色)は0.0274〜0.3037ドル。Claude Haiku 5.5は0.0184〜0.1030ドル。オフピーク時のdeepseek-flashは0.0137〜0.1519ドル。ピーク時のflashはSonnet 5.5のちょうど10分の1ですが、Haiku 5.5よりは高くなります。

この表全体に当てはまる制約が1つあります。比較しているのはトークン価格であり、モデルの品質ではありません。両ベンダーは異なるトークナイザーを使っています。Anthropicの料金ページによると、Claude 4.7以降のトークナイザーは、同じテキストに対して約30%多くのトークンを生成します。これはClaude 4.6以前と比較した場合です。

DeepSeekとClaudeのトークン数の換算比は公開されていません。Anthropicは無料のトークンカウントエンドポイントを、DeepSeekはオフラインのトークナイザーを提供しています。ただし、私たちはどちらのベンダーのAPIキーも持っていないため、実際のusageデータと照合した補正は行っていません。本記事のトークン数はすべて推定値で、両者に同じトークン数を用いています。

なぜこの作業をdeepseek v4.1 flashのような低コストモデルに任せるのか

コメントのクリーニングは件数が多く、1件ごとの作業は簡単です。Claude CodeでDeepSeek V4を使う方法を扱った動画のコメント欄を見てみてください。ほとんどのコメントは、セットアップが失敗する理由、課金の仕組み、Claude自身のモデルとの比較についての質問です。1件ごとの判断は単純でも、コメントが多ければトークンも多くなります。

2026年10月17日、DeepSeekはdeepseek-flashをDeepSeek-V4.1-Flash-1017に更新しました。リリースノートによると、新モデルではタスクの実行時間と出力の長さが短縮されています。Hugging Faceのモデルカードによると、DeepSeekはClaude CodeのハーネスでTerminal-Bench 4.0を実行し、42.3のスコアを記録しました。

Anthropic側では、Claude Haiku 5.5のローンチページ(2026年10月7日)が、要約、コンパクション、分類を主な用途として挙げています。Opus 5.5やSonnet 5.5のサブエージェントとしての作業も挙げられています。Terminal-Bench 4.0のスコアは、Haiku 5.5が39.2%、Sonnet 5.5が70.6%と記載されています。

各社はそれぞれ独自の方法で数値を公表しているため、直接順位を付けることはできません。ただし、数値からは二つの低コストモデルがClaude Code内で動作するようになったという事実がわかります。実際に比べるべきなのは、コストとセットアップの手間です。

項目deepseek-flash(DeepSeekのAnthropic互換エンドポイント)Claude Haiku 5.5(Anthropicに直接接続)
入力(キャッシュミス)/出力(100万トークンあたり)ピーク時$0.30 / $1.20、オフピーク時$0.15 / $0.60$0.10 / $0.50(プロンプト100kトークンまで)
キャッシュヒットピーク時$0.006、オフピーク時$0.003$0.01
キャッシュの仕組みディスク上の自動プレフィックスキャッシュ。cache_controlは無視Claude Codeのcache_controlマーカーを使用
コンテキストウィンドウ1M1M(100kトークンを超えるプロンプトは割高)
画像入力対応(deepseek-v4-proは非対応)可能
Claude Codeでの公式サポートDeepSeekが設定を公開。Anthropicはゲートウェイ経由でのClaude以外のモデルの利用をサポートしないとしているネイティブ対応

最後の行には注意が必要です。Claude Codeのゲートウェイに関するドキュメントには、Anthropicはサードパーティ製ゲートウェイを推奨、保守、監査していないと記載されています。また、どのゲートウェイを経由する場合でも、Claude CodeをClaude以外のモデルにルーティングすることはサポートしていないとしています。DeepSeekのセットアップが使うのはまさにこの経路、つまりカスタムのANTHROPIC_BASE_URLです。

問題が起きても、Claude Codeのサポート対象にはなりません。サポートされているサードパーティ経路は、Amazon Bedrock、Google Cloud、Microsoft Foundryなどのクラウドプラットフォームです。サードパーティ統合のドキュメントとAnthropicのゲートウェイオプションを参照してください。

事前に決めておいた合否基準

最初のコメント取得の前に、「このジョブが機能する」と判断する9つの基準を書き出しました。結果を見た後も基準は変更していません。2つの基準は数値を記録するだけです(ノイズの割合とツール定義のサイズ)。残りの基準には合格ラインがあります。

ID基準合格ライン結果
J1DeepSeekが指定する9つの環境変数がすべてClaude Codeのドキュメントに存在する9件中9件合格:9件中9件
J2MCPのフィールドがすべてカタログのresponse_fieldsに含まれ、RESTと一致する両方とも成立合格
J3各charged_usdがカタログ価格×課金単位と一致し、失敗時は$0すべての呼び出しで一致合格:コメント取得15回、検索3回、MCP呼び出し1回
J4クリーニング後のモデル入力が、元のJSONのトークン数の40%以下≤40%合格:38.0% / 17.5% / 5.6%
J5ノイズの割合(記録のみ)—YouTubeは低(2.2%)、BilibiliとDouyinは中(12.0%、13.0%)
J6ピーク時のflashはSonnet 5.5の10%以下か?Haiku 5.5より安いか?数値で回答するQ1:セッションは10.0%で条件を満たすが、バッチラベリングは13.5%で満たさない。Q2:いいえ
J7不正なパラメータには修正方法付きの422が返り、エラーテキストに「not charged」が含まれるRESTとMCP合格
J825個のツール定義のサイズ(記録のみ)—約8,556トークン(残す4個では約1,058)
J9ディスク上にキーなし0件合格

J7では、HTTPステータスやMCPのisErrorフラグだけでなく、エラーテキストにも「not charged」と記載することを求めています。理由は後述の互換性セクションにあります。DeepSeekのエンドポイントはtool_resultのis_errorフィールドを無視するためです。

DeepSeekでClaude Codeを設定:9つの環境変数をドキュメントと照合

DeepSeekのClaude Code連携ページには、9つの環境変数が記載されています。それぞれをClaude Codeの環境変数リファレンスで確認しました。9つすべてが存在し、意味もDeepSeekでの使い方と一致しています。

DeepSeek APIドキュメントのページ「Integrate with Claude Code」のスクリーンショット。青緑色の枠で、LinuxとMac向けの9行のexport文が示されています。ANTHROPIC_BASE_URLはapi.deepseek.com/anthropicを指し、ANTHROPIC_AUTH_TOKENにはDeepSeekのキーが入ります。メイン、Opus、Sonnetのモデル変数はdeepseek-flash[1m]、Haikuとサブエージェントのモデルはdeepseek-flash、エフォートレベルはmax、自動コンパクトのウィンドウは786432です。
DeepSeekが示すClaude Code用の環境変数。2026年10月26日17:34(SGT)に撮影したスクリーンショット。 DeepSeek APIドキュメント
bash
# Config example (we have no DeepSeek key and did not run this block)
export ANTHROPIC_BASE_URL=https://api.deepseek.com/anthropic
export ANTHROPIC_AUTH_TOKEN="$DEEPSEEK_API_KEY"        # sent as Authorization: Bearer
export ANTHROPIC_MODEL='deepseek-flash[1m]'
export ANTHROPIC_DEFAULT_OPUS_MODEL='deepseek-flash[1m]'
export ANTHROPIC_DEFAULT_SONNET_MODEL='deepseek-flash[1m]'
export ANTHROPIC_DEFAULT_HAIKU_MODEL=deepseek-flash     # background tasks use it too
export CLAUDE_CODE_SUBAGENT_MODEL=deepseek-flash
export CLAUDE_CODE_EFFORT_LEVEL=high                    # DeepSeek shows max; comment work does not need it
export CLAUDE_CODE_AUTO_COMPACT_WINDOW=786432
# Two more lines that we recommend:
export ENABLE_TOOL_SEARCH=false                         # defer_loading is not in the compatibility table
export EVERYINFRA_API_KEY=...                           # for .mcp.json; keep it out of project files
変数Claude Codeで制御する内容このジョブでの注意点
ANTHROPIC_BASE_URLリクエストをプロキシまたはゲートウェイに送信api.anthropic.com以外のホストを使う場合、Remote Controlは無効になります
ANTHROPIC_AUTH_TOKENAuthorization: Bearerヘッダーの値保存済みのclaude.aiログインより優先。未設定の場合はプランのログインが引き続き適用
ANTHROPIC_MODELメインセッションのモデル[1m]サフィックスで1Mのコンテキストウィンドウを要求
ANTHROPIC_DEFAULT_OPUS_MODEL / _SONNET_opusとsonnetエイリアスの割り当て先未設定の場合、DeepSeekはclaude-opus*をPro料金のdeepseek-v4-proにマッピング
ANTHROPIC_DEFAULT_HAIKU_MODELhaikuエイリアスとバックグラウンドタスクバックグラウンドタスクにも費用が発生
CLAUDE_CODE_SUBAGENT_MODELサブエージェントのデフォルトモデルプラットフォームごとのサブエージェントはすべてこれを使用
CLAUDE_CODE_EFFORT_LEVELエフォートレベルDeepSeekはmedium、high、xhighをhighにマッピングします
CLAUDE_CODE_AUTO_COMPACT_WINDOW自動コンパクトを開始するトークン数範囲は100,000〜1,000,000
ENABLE_TOOL_SEARCHMCPツール検索falseの場合、すべてのリクエストに全ツール定義が含まれる

両方のドキュメントを読んで初めてわかる点が3つあります。1つ目はモデルのマッピングです。DeepSeekの互換性に関する注記によると、claude-opusで始まるモデル名は、Pro料金のdeepseek-v4-proにマッピングされます。

claude-haikuまたはclaude-sonnetで始まる名前はdeepseek-flashにマッピングされます。ANTHROPIC_MODELだけを設定してopusに切り替えると、Pro料金が発生します。サンプルセッションでは、ピーク時のProは$0.1299で、flashの4.7倍です。

2つ目は機能の検出です。Claude Codeのモデル設定ドキュメントによると、Claude CodeはモデルIDを既知のパターンと照合して、エフォートレベルと拡張思考を有効にします。未知のIDでは、これらの機能が無効のままになることがあります。ANTHROPIC_DEFAULT_SONNET_MODEL_SUPPORTED_CAPABILITIESなどの変数で明示的に宣言できます。

一方、ゲートウェイ互換性ガイドには、Claude Codeは未知のモデル名を現行モデルとして扱い、それでもthinking: {"type": "adaptive"}を送信するとも書かれています。2つの記述は異なるケースを対象としており、私たちは検証できませんでした。設定後、バッチジョブの前に/statusと/modelを実行して、モデルとエフォートレベルを確認することをおすすめします。

3つ目はエフォートです。DeepSeekのページではmaxが設定されています。DeepSeekの思考モードのドキュメントによると、medium、high、xhighのリクエストはhighとして、maxまたはultraはmaxとして実行されます。コメントのラベル付けに最上位レベルは不要で、思考トークンは出力として課金されます。そのため、この例ではhighを使用しています。

EveryInfraをMCPとして接続:.mcp.jsonは1つ、ツールは4つだけ

Claude CodeでリモートMCPサーバーを追加する方法は2つあります。1つはclaude mcp add --transport httpコマンド、もう1つはプロジェクトルートに置く.mcp.jsonファイルです。

ファイルでの設定をおすすめします。Claude CodeのMCPドキュメントによると、.mcp.jsonはurlとheaders内の${VAR}を展開するため、キーがプロジェクトファイルに含まれません。コマンドラインでは実行時に変数が展開され、キーが~/.claude.jsonに保存されます。

json
{
  "mcpServers": {
    "everyinfra": {
      "type": "http",
      "url": "https://api.everyinfra.com/mcp",
      "headers": { "Authorization": "Bearer ${EVERYINFRA_API_KEY}" },
      "timeout": 150000
    }
  }
}

この構成に役立つ安全上のルールが1つあります。同じドキュメントによると、Claude CodeはANTHROPIC_AUTH_TOKENやANTHROPIC_API_KEYなど自身の認証情報用の変数を、リモートサーバーのurlとheaders内では空として読み取ります。そのため、.mcp.jsonファイルがBearer ${ANTHROPIC_AUTH_TOKEN}を要求していても、DeepSeekのキーがMCPサーバーに送られることはありません。

EVERYINFRA_API_KEYはこのリストに含まれないため、通常どおり展開されます。timeoutは150秒に設定しました。最も遅かったYouTubeコメントの呼び出しは78.6秒で、EveryInfraの同期処理の上限は85秒です。

2026年10月26日17:26(SGT)、Claude Codeが接続時に送るのと同じinitializeとtools/listリクエストをhttps://api.everyinfra.com/mcpに送信しました。サーバーは25個のツールを返しました。そのサイズは、DeepSeekのトークン使用量のページにある比率で見積もりました。英語は1文字あたり約0.3トークン、中国語は1文字あたり約0.6トークンです。25個のツールの名前、説明、入力スキーマの合計は約8,556トークンになります。

EveryInfra MCPの25個のツール定義それぞれについて推定トークン数を示す横棒グラフ。everyinfra_create_ticketの850からeveryinfra_topup_linkの84まで並んでいます。ティール色の4本の棒が、このジョブに必要なツールです:everyinfra_call_api 472、everyinfra_list_capabilities 208、everyinfra_get_job 204、everyinfra_usage 174で、合計は約1,058です。25個すべてを合わせると約8,556になります。

8,556トークンはそれだけなら大した量ではありませんが、2つの要因で何倍にも膨らみます。第1に、互換性の問題を避けるため、当社はツール検索をオフにすることを推奨しています。すると、Claude Codeはすべてのリクエストですべてのツール定義を送信します。第2に、Claude Codeのpermissionsドキュメントによると、ツール名だけを指定した拒否ルールは、そのツールをモデルのコンテキストから除外します。そこでこのジョブでは、.claude/settings.jsonで残り21個のツールを拒否します(形式はsettingsドキュメントを参照)。これで、1リクエストあたりのツールのトークンが約8,556から約1,058に減ります。

json
{
  "permissions": {
    "allow": ["mcp__everyinfra__everyinfra_list_capabilities", "mcp__everyinfra__everyinfra_call_api",
              "mcp__everyinfra__everyinfra_get_job", "mcp__everyinfra__everyinfra_usage"],
    "deny":  ["mcp__everyinfra__everyinfra_search",
              "mcp__everyinfra__everyinfra_solve_captcha", "mcp__everyinfra__everyinfra_key_create",
              "mcp__everyinfra__everyinfra_key_delete", "mcp__everyinfra__everyinfra_settings_update",
              "mcp__everyinfra__everyinfra_webhook_set", "mcp__everyinfra__everyinfra_create_ticket"]
  }
}

この例では21個のうち7個を記載しています。残りの14個も同じ形式で追加してください。tools/listでは、everyinfra_call_apiはreadOnlyHint: falseで、idempotentHintはありません。

Claude Code 2.1.307(2026年10月21日)以降、これには利点があります。変更履歴によると、HTTP MCP接続が呼び出しの途中で切断された場合、Claude Codeが再試行するのは読み取り専用または冪等なツールだけです。そのため、接続が切れても、コメント取得リクエストが知らないうちに二重送信され、2回課金されることはありません。

実際の1往復:モデルが送る内容と私たちが返す内容

Claude CodeとリモートMCPサーバーは、MCP仕様のtools/callを使用します。バックエンドのモデルがClaudeでもDeepSeekでも、モデルが記述するのはツール名と引数を含むtool_useブロックだけです。HTTPリクエストを送信するのはClaude Codeです。

そのため、以下のリクエストボディはモデルに依存しません。Anthropicのツール使用に関するドキュメントにあるとおり、ツール定義、tool_use、tool_resultは引き続きモデルの入力トークンとしてカウントされます。DeepSeek側でも同様です。

6つのステップをループするフローアニメーション。上部の破線ボックスには、一度だけ設定する内容として、環境変数をDeepSeekのAnthropic互換URLに向けることと、.mcp.jsonにEveryInfraを追加することが示されています。ステップ1、カタログを読んで機能を選ぶ。ステップ2、everyinfra_call_apiへtools/callを送る。ステップ3、JSONを受け取る。不正なパラメータは422を返し、料金はかかりません。ステップ4、クリーニングスクリプトが重複、ノイズ、広告を除去する。ステップ5、ルールでセットアップ、価格、比較、称賛のラベルを付ける。ステップ6、残り(全体の約半分)をモデルがJSONでラベル付けする。中央には「YouTube、コメント1,000件あたり約0.0298ドル(データ0.0074、flashのピーク時モデルコスト0.0224、推定値、thinkingなし)」と表示されています。

2026年10月26日17:37:32(SGT)、Claude Codeが送るものと同じtools/callをcurlでEveryInfraに送信しました。リクエスト内容は、あるYouTube動画の最新コメント20件の取得です。14.0秒後、サーバーは200を返しました。result.content[0].textは8,926文字のJSON文字列(RFC 8259)でした。課金額は$0.000556で、YouTube Comments Scraper APIのカタログ価格どおりです。

EveryInfraのリモートMCPサーバーで実際に送ったリクエストとそのレスポンスのスクリーンショット。POST https://api.everyinfra.com/mcp、メソッドはtools/call、ツールはeveryinfra_call_api、引数はplatform youtube、action comments、YouTube動画のURL、sort newest、limit 20です。2026年10月26日17:37:32(SGT)、14.0秒後にステータス200のレスポンスが返されています。content[0].textは8,926文字のJSON文字列です。最初の行にはid、text、author_name(マスク済み)、like_count、reply_count、「11時間前」となっているposted_at、is_replyがあります。ティール色の枠はcount 20とcharged_usd 0.000556を示しています。
実際のMCPのラウンドトリップ。コメント投稿者名はマスクし、残高は削除しています。 EveryInfraの実際のレスポンスのスクリーンショット(2026年10月26日 17:37 SGT)

このMCPレスポンスのフィールドを、17:28:19に取得した同じ動画のRESTレスポンスと比較しました。あわせて、カタログにあるyoutube/commentsのresponse_fieldsとも照合しました。

フィールドカタログの`response_fields`MCPRESTクリーニングでの用途
id可能可能可能ステップ1の重複除去のキー
text可能可能可能モデルに送る唯一のテキスト
author_name可能可能可能送信しない。レポートでは非表示
like_count可能可能可能重みとして保持
reply_count可能可能可能送信しない
posted_at可能可能可能YouTubeは「11時間前」のような相対時刻を返します
is_reply可能可能可能rまたはtの1文字として保持
reply_to_id可能このトップレベルの20件には含まれない可能返信を親コメントに紐付ける
platform可能可能可能送信しない

どちらの経路にも、カタログにないフィールドはありません。MCPレスポンスにreply_to_idがないのは、今回の最新コメント20件に返信がなかったためです。J2は合格です。ここでは、Claude Codeのドキュメントにあるもうひとつの数値が重要になります。

Claude Codeは、MCPツールの結果が10,000トークンを超えると警告を出し、デフォルトの上限は25,000トークンです。それより大きい結果や50,000文字を超えるテキスト結果はファイルに保存し、チャットにはパスだけを残します。今回の100件分のYouTubeコメント取得は約33,000〜35,000文字、推定で約10,000トークンでした。これは警告のしきい値ぎりぎりです。

DeepSeek Anthropic API:ツール呼び出しに影響する互換性の7項目

DeepSeekのAnthropic APIに関するノートには、フィールドごとのサポート表があります。そこからツール呼び出しとツール結果に影響する行を抜き出し、ゲートウェイガイドに記載されたClaude Codeの送信内容と比較しました。「ドキュメントに記載なし」は、検証できなかったギャップを示します。

DeepSeek APIドキュメントのページ「Using the Anthropic API」にある互換性表のスクリーンショット。tool_resultグループでは、tool_use_idとcontentがFully Supported、cache_controlがIgnoredです。ティール色の枠はその次の行を示しており、is_errorはIgnoredです。その下では、server_tool_useとweb_search_tool_resultがSupported、code_execution_tool_result、mcp_tool_use、mcp_tool_result、container_uploadがNot Supportedです。
DeepSeekの互換性一覧表です。ティール色の枠は、is_errorが無視される行を示しています。スクリーンショットは2026年10月26日17:34(SGT)に撮影。 DeepSeek APIドキュメント
フィールドまたは動作DeepSeekの表コメントクリーニングへの影響
tool_result.is_error無視モデルはテキストしか受け取らないため、修正方法と課金されたかどうかをエラーテキストで伝える必要があります
tools、text、tool_use、tool_resultでのcache_control無視DeepSeekのディスクキャッシュは独自にプレフィックスを照合するため、Anthropicのキャッシュルールは適用されません
tool_choice内のdisable_parallel_tool_use無視モデルが複数のtools/callを同時に送信し、レート制限に達する可能性があります
mcp_servers無視ローカルMCPクライアントであるClaude Codeには影響しません
mcp_tool_use、mcp_tool_resultブロック非対応同上。Claude Codeは通常のtool_useとtool_resultを送信します
document、search_resultブロック非対応PDFをdocumentブロックとして送信しないでください
defer_loading、tool_reference(ツール検索)、strictドキュメントに記載なし2.1.304以降、カスタムURL経由でもツール検索が有効になっています。400または422が返ると、Claude Codeはツール検索なしで1回だけ再試行します。回避するにはENABLE_TOOL_SEARCH=falseを設定してください

当社にとって最も重要なのは1行目です。MCPの仕様では、ツール実行エラーはisError: trueを返します。Claude Codeはそれをis_error付きのtool_resultとしてモデルに渡します。DeepSeekはこのフラグを無視するため、モデルが受け取るのはテキストだけです。つまり、モデルが自分で誤りを修正できるかどうかは、エラーメッセージがどれだけ明確かだけにかかっています。

2行目はコストを左右します。Claude Codeのprompt cachingドキュメントには、ゲートウェイがcache_controlを扱う3つの方法が挙げられています。3つ目では、ゲートウェイがマーカーを削除したうえで成功を返します。Claudeの課金では、毎ターン会話全体がキャッシュなしの入力として課金されることになります。DeepSeekはマーカーを無視しますが、独自のディスクキャッシュを備えています。

このキャッシュは全ユーザーでデフォルトで有効になっており、リクエストのプレフィックスを照合します。一致したトークンはヒット価格で課金されます。ドキュメントではベストエフォートとされており、100%のヒットは保証されていません。使われないキャッシュエントリは、通常数時間から数日で削除されます。

Claude Codeのプロンプトキャッシュのドキュメントのスクリーンショット。ゲートウェイがcache_controlマーカーを処理する3つの方法が記載されています。ティール色の枠は3つ目を示しています。ゲートウェイが成功を返しつつマーカーを削除すると、毎ターン会話履歴全体がキャッシュされていない入力として課金されます。また、ブロック形式のsystemコンテンツをプレーンな文字列に変換するゲートウェイも、同様にマーカーを失います。その上の項目には、ゲートウェイがマーカー付きのリクエストを400で拒否した場合、Claude Codeはマーカーを最後のメッセージに移して再送信すると書かれています。
キャッシュマーカーを削除するゲートウェイについてのClaude Codeのドキュメント。スクリーンショットは2026年10月26日17:34(SGT)に撮影。 Claude Codeドキュメント:プロンプトキャッシュ

プレフィックスの照合に影響する点がもう1つあります。ゲートウェイガイドによると、Claude Codeはシステムプロンプトの先頭に帰属情報ブロックを追加します。このブロックには、クライアントのバージョンと会話から生成したフィンガープリントが含まれます。Anthropicのエンドポイントは処理前にこれを除去しますが、他のエンドポイントはプロンプトの一部として受け取ります。DeepSeekのキャッシュは、保存済みのプレフィックス単位との完全一致が必要です。

このブロックが1つの会話を通じて変わらないかどうかはドキュメントに記載がなく、私たちも確認できませんでした。そのため、コスト表には全ヒットとヒットなしの2列を設けています。実際の請求額はその間に収まります。DeepSeekの使用量データでprompt_cache_hit_tokensを確認してください。

テスト1:3つのプラットフォームのコメントの実態

17:26:56から17:27:16(SGT)にかけて、youtube/search、bilibili/search、douyin/searchで「deepseek v4 claude code」と「DeepSeek Claude Code」を検索しました。結果の中から、Claude CodeでDeepSeekを動かす方法を扱った動画を15本選びました。内訳はYouTubeが6本(英語4本、中国語1本、スペイン語1本)、Bilibiliが5本、Douyinが4本です。Douyinの検索は現時点では1ページ目しか返さないため(今回は20件で、next_page_tokenはなし)、候補動画を増やすには別のキーワードで再検索してください。テーマの選定も手法の一部です。これらの動画に寄せられたコメントは、この構成で実際のユーザーがどこでつまずくかを伝える生の報告です。

プラットフォーム動画数1回あたりのリクエスト行数返された行数(返信を含む)課金額1回あたりの所要時間
YouTube6100461(トップレベル289、返信172)6 × $0.000556 = $0.00333611.5〜78.6秒
Bilibili55050(1回あたり10)5 × $0.000556 = $0.0027808.7〜11.4秒
Douyin450184(トップレベル86、返信98)$0.006112(20件あたり)14.4〜44.0秒

すべての課金を確認しました。カタログでは、youtube/commentsとbilibili/commentsは返却件数にかかわらず、1回の呼び出しあたりの料金が一定です。DouyinコメントスクレイピングAPIはrows_per_unit: 20で、20件ごとに1ユニットです。50件は3ユニット(120クレジット、$0.001667)、34件は2ユニット(80クレジット、$0.001111)です。15回の呼び出しすべてで、creditsはカタログ価格×ユニット数と一致しました。J3は合格です。

ほかにも知っておくべき点が3つありました。第1に、BilibiliコメントスクレイピングAPIは、5回の呼び出しすべてで10件しか返しませんでした。指定したのは50件です。当社が件数を削っているのではなく、Bilibiliが1動画あたり最大10件のコメントしか提供しないためです。カタログには現在、デフォルト10、最大10と記載しています。より大きなlimitも受け付けますが、返るのは10件だけです。20:01:21(SGT)に同じ動画をlimit=50で再確認したところ、10件、$0.000556でした。そのため、Bilibiliのデータ料金は1,000件あたり$0.0556と高くなります。

そのため、Bilibiliのコメントは動画1本あたり最大10件として予算を組んでください。第2に、Douyinの2ページでコメントidの重複が見つかり、184件中8件が該当しました。これは10月26日19:53(SGT)に修正済みで、現在はAPIがidによる重複を除外して最初の1件を残し、重複排除後に20件未満となった課金ユニットは通常のルールに従って返金されます。当社の184件は修正前に取得したものです。クリーニングスクリプトの手順1では、安全策として今もidが重複するものを除外しています。

3つ目に、YouTubeのposted_atは「7 days ago (edited)」のような相対時間です。BilibiliとDouyinはタイムゾーン付きの標準タイムスタンプを返します。YouTubeのコメントを日付でグループ化するには、取得時刻を基準に変換し、結果はおおよその値として扱ってください。

コメント取得の呼び出し1回を1つの点で表したドットプロット。YouTubeの6回の呼び出しは11.5〜78.6秒かかり、そのうち3回は約75〜79秒でした。Bilibiliの5回は8.7〜11.4秒、Douyinの4回は14.4〜44.0秒です。2本の破線は、85秒の同期処理の上限と、Claude CodeがMCP呼び出しをバックグラウンドに移す120秒の時点を示しています。すべての呼び出しが85秒未満で完了しました。

Claude Codeでは呼び出し時間が重要です。MCPのドキュメントによると、メインの会話で2分を超えて実行されたMCP呼び出しはバックグラウンドタスクに移されます。モデルはすぐにタスクIDを受け取って作業を続け、結果は後から通知として届きます。今回最も遅い呼び出しは78.6秒で、2分を大きく下回りました。

EveryInfraカタログのasync_modeセクションには、同期処理の上限は85秒と記載されています。limitの値が大きい場合は、mode: "async"を指定し、無料のeveryinfra_get_jobで結果を取得することを推奨しています。DeepSeekが複数の呼び出しを同時に送信した場合(disable_parallel_tool_useは無視される点に注意してください)、EveryInfraのAPIキーにも1分あたりのレート制限があり、超過すると429が返ります。DeepSeekは同時実行数をアカウント単位でカウントしており、deepseek-flashでは同時に2,500リクエストまで許容され、それを超えると429が返ります(レート制限のドキュメント)。

テスト2:クリーニングスクリプトで除去されたもの

クリーニングの工程はモデルに任せませんでした。代わりに、その処理を行うスクリプトをモデルに書かせました。ルールで判定できるなら、コメントをモデルに送っても読み込みの料金がかかるだけです。

Claude Codeのコストに関するドキュメントも同じことを勧めています。10,000行のログをモデルに読ませてはいけません。フックで先にERRORをgrepすれば、コンテキストを数万トークンから数百トークンに減らせます。

スクリプトは4つのチェックを順番に行い、最初に該当した時点で止まります。ステップ2ではUnicodeのNFKC正規化(UAX #15、Pythonではunicodedata.normalize)を使います。その後、リンク、絵文字コード、句読点を取り除くため、文字の全角・半角や大文字・小文字だけが異なる文も重複として扱われます。ルールはすべてPythonの正規表現で記述されており、同じデータに対して再実行できます。

python
# Cleaning rules, version 4 (excerpt; the full script is saved with the raw responses)
BRACKET_EMOJI = re.compile(r"\[[一-鿿]{1,6}\]")      # emoji codes such as [捂脸]; Chinese only inside brackets
PROMO = re.compile(r"(subscribe(?!r)|newsletter|giveaway|chrome extension|coupon|telegram|whatsapp|"
                   r"私信|加群|进群|加微|微信|qq群|关注我|免费领|领取|代金券|优惠|课程|戳我)", re.I)
for r in rows:
    if (video, r["id"]) in seen_id:   drop("same id"); continue          # 1. same comment twice on a page
    if (video, norm(r["text"])) in seen_text: drop("same text"); continue # 2. same text after normalization
    if no_content(r["text"]):          drop("no content"); continue       # 3. emoji only, 666, two characters, not a question
    if PROMO.search(r["text"]) or (has_link and (few_chars or bait)): drop("promotion"); continue  # 4.
    keep(f'{i}|{likes}|{"r" if r["is_reply"] else "t"}|{text_with_links_shortened}')
各コメントがどう処理されたかをプラットフォーム別に示す積み上げ横棒グラフ。YouTube(461件):同一テキスト1件、内容なし5件、宣伝4件、残存451件で97.8%。Bilibili(50件):同一テキスト4件、内容なし1件、宣伝1件、残存44件で88.0%。Douyin(184件):同一ID8件、同一テキスト4件、内容なし12件、残存160件で87.0%。

スクリプトは4回修正しました。いずれも、削除されたコメントを読んで誤削除を見つけたことがきっかけです。この過程こそが本記事の一番の教訓です。クリーニングのルールは、必ず良いコメントも一部削除してしまいます。それに気づけるのは、削除したものを読んだときだけです。バージョン1では「New subscriber here」が宣伝と判定されました。subscribeがsubscriberにマッチしたためです。

また、スペイン語の質問「¿qué extensiones concretamente?」もextensionのせいで削除され、Gitの公式ダウンロードページへのリンクを含む有益な返信も削除されていました。バージョン2でこの3件を修正しました。バージョン3では、DeepSeekの割引についての普通のコメント「Normal, están con un 90% de descuento」を残すようにし、2文字の中国語の質問「guì bù」(「高い?」)も削除しないようにしました。

バージョン4は、保持したテキストを読んだことから生まれました。角かっこで囲まれた絵文字コード(facepalmを表すコードのように、中国語の単語を角かっこで囲んだもの)の正規表現は、範囲が広すぎました。エラーメッセージからmessages[1]を、モデル名から[1m]を削除してしまっていたのです。どちらも今回のデータの中で特に有用な手がかりでした。

バージョン4で除外した40件をすべて読み、誤った除外がもうないことを確認しました。残した655件はすべてを読んだわけではありません。そのため、リンクやキーワードを含まない宣伝、たとえば有料でツールをインストールするという申し出は、まだデータに残っています。Douyinでは「インストールを手伝えます」という返信が何度も見られました。テキストの重複排除によって、最初の1件を残して重複を除外しています。

生成イラスト。左上のシュートから紙片の山が流れ落ち、白紙のもの、重複して束になったもの、キラキラのシールが貼られたものが、脚付きの丸い金属製のふるいに注がれています。ふるいの横のゴミ箱には、白紙と重複の紙片が入っています。ふるいの下からは小さな束だけが、ランプと虫眼鏡が置かれた小さな机の前にある、ティール色の縁取りのトレイに落ちています。
生成イラストであり、データではありません。ふるいの目が細かいほど、確認作業用の机に送られる量は減ります。 本記事のためにgpt-image-2.5で生成したイラスト

ノイズの割合はプラットフォームによって大きく異なり、YouTubeでは2.2%、Bilibiliでは12.0%、Douyinでは13.0%です。YouTubeの数値が低い理由として考えられるのは、プラットフォーム側で先にフィルタリングしていることです。YouTube Data APIのcommentThreadsドキュメントによると、「スパムの可能性あり」や「審査のため保留中」のコメントを見られるのは、認可済みリクエストを送ったチャンネル所有者だけです。公開リクエストでは、デフォルトで公開済みのコメントが返されます。

2026年9月23日のMade on YouTubeで、YouTubeは各チャンネルのスタイルを学習するオプトイン方式のAIコメントモデレーションをテスト中であることも発表しました。DouyinとBilibiliでは、ノイズの大半は外部リンクではなく、絵文字や「666」、繰り返しです。ルールのヒット数にも同じ傾向が表れています。

テスト3:クリーニング後にモデルが読むトークン数

クリーニングで減るのは件数だけではありません。DeepSeekの比率を使って、2通りのトークン数を推定しました。1つはAPIのJSONをそのまま送る場合、もう1つはクリーニング後の1行だけを送る場合です。

3つのプラットフォームについて、生のJSONでの1件あたりと、クリーニング後のコメント1件あたりの推定トークン数を示すグループ化棒グラフ。YouTube:生99.6、クリーニング後38.6で、全体の38.0%。Bilibili:生101.3、クリーニング後20.1で17.5%。Douyin:生180.2、クリーニング後11.7で5.6%。

Douyinが最も小さくなるのは、フィールドが多いためです。カタログではdouyin/commentsのレスポンスフィールドは19個あり、アバターのURL、IPの所在地、メンションされたユーザー、投稿者がそのコメントにいいねしたかどうかなどが含まれます。生のJSONは1件あたり平均約180トークンですが、テキストの中央値はわずか13文字です。

YouTubeのコメントは長めで中央値は61文字、フィールドも9つしかないため、クリーニング後も38.0%が残ります。3つのプラットフォーム全体では、推定トークン数が84,109から20,176、つまり24.0%に減ります。J4は合格です。

Claude Codeでこれがなぜそれほど重要なのでしょうか。MCPツールの結果は、そのまま会話のコンテキストに入ります。以降のターンでは毎回、それをプレフィックスの一部として読み直します。DeepSeekのキャッシュヒット時の料金なら、10,000トークンを読み直しても$0.00006しかかかりません。ただし、ヒット率は自分では制御できません。

キャッシュミス時には、同じ10,000トークンが100万トークンあたり$0.30で$0.003かかり、数十ターンも続けば積み重なります。より安全なのは、Claude Codeにスクリプトを書かせる方法です。スクリプトはcurlでEveryInfraのREST APIを呼び出し、生のJSONをファイルに保存して、クリーニング後のテキストと件数だけを出力します。MCPは、最初の確認、機能の選択、パラメータのテストといった対話的な工程に使いましょう。

bash
# Batch pulls go through REST; raw responses go to disk, not into the chat
curl -s https://api.everyinfra.com/api/v1/social \
  -H "Authorization: Bearer $EVERYINFRA_API_KEY" -H "Content-Type: application/json" \
  -d '{"platform":"douyin","action":"comments","params":{"url":"https://www.douyin.com/video/<video_id>","limit":50}}' \
  -o raw/dy_<video_id>.json
python3 clean.py raw/ > cleaned.txt   # prints only "index|likes|r/t|text" and the removal counts

テスト4:ルールでラベル付けできるものと、モデルに送るもの

クリーニング後にキーワードルールを実行し、どれだけラベル付けできるかを調べました。ルールでは、1件のコメントに複数のラベル(たとえば「価格」と「モデル比較」)を付けられます。

保持したコメントのうち各ルールラベルが付いたものの割合を、プラットフォーム別に示したグループ化棒グラフ。BilibiliとDouyinでは「セットアップとエラー」が最大で、それぞれ約57%と約33%。YouTubeでは「モデル比較」が約26%、「価格と利用枠」が約20%。ティール色の棒は、どのルールにも該当せずモデルに送られるコメントで、YouTube 44%、Bilibili 30%、Douyin 48%です。

どのルールにも一致しなかったコメントは、YouTubeで43.7%、Bilibiliで29.5%、Douyinで48.1%でした。この数値が、モデルが読まなければならない量を決めます。つまり約半分です。ルールでモデルを置き換えることはできません。それでもモデルの作業量は半分になり、ルールでラベル付けされる半分は、たいてい最も簡単で、コストをかける価値が最も低い部分です。

プラットフォーム保持件数セットアップとエラー価格と利用枠モデル比較称賛ルール該当なし質問あり
YouTube451589111870197 (43.7%)138
Bilibili442559213 (29.5%)27
Douyin160521819277 (48.1%)59

コメントそのものにも読む価値があります。Bilibiliでは44件中25件、Douyinでは160件中52件が、セットアップやエラーについての質問です。同じ質問が繰り返されています。

セットアップ後もログインを求められるのはなぜですか? 画像を読み込めないのはなぜですか? 自分はClaudeだと名乗るのはなぜですか? トークンの消費がこんなに速いのはなぜですか?

YouTubeでは、2つのエラーメッセージが一字一句そのままデータに残っていました。1つ目はAPI Error: 400 Failed to deserialize the JSON body into the target type: messages[1].role: unknown variant systemです。2つ目はThe content[].thinking in the thinking mode must be passed backです。以下のFAQで、公式ドキュメントに基づいて両方に回答します。

スペイン語の動画に寄せられた83件のスペイン語コメントで最も多い話題は、価格改定です。APIの値上げについてDeepSeekからメールを受け取ったというコメントが複数ありました。これはあくまでユーザーからの報告として扱います。価格については、DeepSeekの料金ページを参照しています。

モデルが担当する半分については、設定例を示します。Claude Codeは、ルールに該当しなかったコメントを100件ずつ「index|text」の形式でサブエージェントに送ります。サブエージェントは、コメントごとにindexとラベル1つを含むJSON配列だけを返す必要があります。DeepSeekのJSON出力とツール呼び出しのドキュメントにあるとおり、このような構造化出力に対応しています。

Claude Codeでは、サブエージェントの定義に出力形式を書くのが最も簡単です。そのうえでCLAUDE_CODE_SUBAGENT_MODEL=deepseek-flashを指定すると、低コストのモデルで実行されます。サブエージェントのドキュメントによると、この変数はサブエージェントのデフォルトモデルを設定します。

成果物:元データにたどれるラベル表

このジョブの出力は表です。各行が残したコメント1件で、プラットフォーム、いいね数、原文(ユーザー名なし)、ラベル、ラベルを付けた主体を含みます。以下は、いいね数順に並べた10件です。ルールラベルの列は、キーワードルールによる一次判定を示します。最後の列は、各行に対する当社自身のレビューです。

プラットフォームいいねコメント(抜粋、中国語は翻訳)ルールの判定私たちの判断
Douyin615「使い始めたばかり。手作業だと何日もかかるデータファイルの束が、10分ほどで終わった」なし利用体験・好意的。ルールでは検出漏れ
Douyin51「Claude Codeをインストールしてもらえますか?」モデル比較インストールの依頼。「claude」で誤ったラベルが付いた
Douyin36「接続してから、トークンの減りが早いと感じませんか?」料金と利用枠正しい
Douyin28「DeepSeek V4を接続したら、Claudeがセッションを読み込み続けています。どうすればいいですか?」モデル比較エラーの相談(ルールにない言い回し)
Douyin24「DeepSeekのモデルって画像は生成できないんですかね?」なし制限に関する質問
Douyin14「ちょっとした質問をいくつかしただけで700kトークン消費した。減るのが速すぎる。」料金と利用枠正しい
Bilibili10「CCには安全上のリスクがあるって話じゃなかった?それでもおすすめしますか?」なし安全性への懸念
YouTube17「0.14を利用できるうちに使っておいたほうがいい。値上げされるから。」料金と利用枠正しい
YouTube17「OPUS 5.5には及ばない」モデル比較正しい
YouTube6「セットアップのこと、何ひとつわからなかった」セットアップとエラー正しい(チュートリアルへのフィードバック)

この10件では、ルールが正しかったのが5回、見逃しが3回、誤りが2回でした。正確さを測るにはサンプルが小さすぎますが、ルールの誤りの2つのタイプは見て取れます。1つはキーワードが広すぎる場合で、「claude」を含むコメントはすべてモデル比較とみなされます。もう1つは同じことを言う表現が多すぎる場合で、人はさまざまな言い回しで助けを求めるため、ルールではすべてを列挙できません。そこがモデルの担当部分であり、ルールを一次判定にとどめる理由です。

ルールで付けたラベルは、レポートに入る前にモデルが変更できるようにしておく必要があります。Claude Codeで低コストに済ませるには、2つのグループだけをモデルに渡す方法があります。1つはルールのラベルが付いていない行、もう1つは誤ったラベルが集中しやすい「モデル比較」のみが付いた行です。今回のデータでは、残したコメント655件のうち368件、約56%が該当しました。

プロダクトチームにとって最も参考になるのは、615件のいいねが付いたコメントです。最も多くのいいねを集めたコメントは、セットアップや料金についてではありません。一連のデータファイルを数分で処理できたという成果についてのものです。

ルールだけではこの行は「その他」に分類されますが、実際にはこの動画のコメント欄で最も典型的な声です。クリーニング後のテキストにいいね数を残しているのはこのためです。いいね数はトークンをほとんど消費せず、モデルが「どれだけの人が同意しているか」を判断するための低コストな重みになります。

テスト5:誤ったパラメータを送った後にモデルが受け取る内容

17:26:46 SGTに実行した最初の検索では、limitをリクエストボディのトップレベルに置いていました。3つのプラットフォームすべてが、エラーコードunknown_paramとともに422を返しました。メッセージには「limit goes inside params, not at the top level of the body」とあり、did_you_mean: ["params.limit"]と、最後に「Nothing was charged.」という一文が含まれていました。これは意図したものではありませんが、モデルが犯しがちな種類のミスです。続いて17:37:53に、MCP経由で意図的にsort: "top"を送信しました。

EveryInfraのリモートMCPサーバーで実際に返されたエラーレスポンス1件のスクリーンショット。tools/callリクエストではsortがtopに設定されています。レスポンスは0.15秒後の2026年10月26日17:37:53(SGT)に、isErrorがtrueで返っています。contentにはtextパートが2つあります。1つ目はrequest_id付きで「invalid_value: sort must be newest or popular, got top」と示しています。ティール色の枠で囲まれた2つ目は次のステップとして、sortだけをallowed内の値に変更して再送信するよう案内し、課金は発生していないと伝えています。structuredContentでは、allowedのnewestとpopularがティール色の枠で囲まれています。
実際のMCPエラーレスポンス。修正方法と「課金なし」の注記は、モデルが読めるテキストに含まれています。 EveryInfraの実際のレスポンスのスクリーンショット(2026年10月26日 17:37 SGT)
ケースレスポンスDeepSeekでモデルが受け取る内容課金額
REST:limitをトップレベルに指定(17:26:46、3プラットフォーム)422 unknown_param、did_you_mean: ["params.limit"]該当なし(RESTはスクリプトで処理)$0
REST:sort: "top"(17:38:00)422 invalid_value、allowed: ["newest","popular"]該当なし$0
MCP:sort: "top"(17:37:53)isError: true、2つのテキストパートとstructuredContent2つのテキストパート:誤ったパラメータ、許可される値、「Nothing was charged.」$0

3行目でJ7が実証されます。DeepSeekはis_errorを無視するため、モデルはこれが失敗だと分かりません。モデルが読むのは2つのテキスト部分だけです。そこには、問題のあるパラメータ、指定可能な値の一覧、その値だけを変更して再送すること、何も課金されていないことがすでに書かれています。エラーコードと「失敗時は無料」のルールは、EveryInfraのドキュメントのエラー表に記載しています。

リクエストとエラーの形式の詳細はOpenAPIファイルにあります。不明なパラメータや無効なenum値に対しては、サポートされているパラメータ、許可される値、修正案とともに422を返します。無視したうえで課金することはありません。85秒を超えた同期呼び出しは503タイムアウトを返し、これも課金されません。エラーフラグを無視するモデルエンドポイントでは、このルールがあるからこそモデルが自力で修正できます。

コスト:DeepSeekのトークン料金とEveryInfraのデータ料金の合計

DeepSeekの料金ページ(2026年10月26日閲覧)では、1日をピーク時間帯とオフピーク時間帯に分けています。ピーク時間帯は中国の祝日を除く月曜〜金曜のUTC 01:00〜04:00と06:00〜10:00で、それ以外はすべてオフピーク時間帯となり、料金は半額です。米国の読者にとっては都合のよい設定です。10月26日の米国東海岸は夏時間(UTC−4)のため、ピーク時間帯は東部時間の21:00〜24:00と02:00〜06:00になります。

つまり、勤務時間はすべてオフピーク時間帯に収まります。西海岸(UTC−7)では、ピーク時間帯は太平洋時間の18:00〜21:00と23:00〜03:00です。今回のテストは月曜の17:26〜17:38 SGT、つまりUTC 09:26〜09:38に実施しており、ピーク時間帯に含まれます。したがって、今回のピーク料金は米国で日中に利用する場合の最悪のケースにあたります。

100万トークンあたり(USD)deepseek-flash(ピーク時)deepseek-flash(オフピーク時)deepseek-v4-pro(ピーク時)Claude Haiku 5.5Claude Sonnet 5.5Claude Opus 5.5
入力(キャッシュミス)$0.30$0.15$1.32$0.10$2.00$4.00
キャッシュヒット$0.006$0.003$0.044$0.01$0.10$0.20
キャッシュ書き込み(5分)個別料金なし個別料金なし個別料金なし$0.125$2.50$5.00
出力$1.20$0.60$3.96$0.50$10.00$20.00

中国語版の料金ページでは、flashの入力料金は100万トークンあたりCNY 2(ピーク時)とCNY 1(オフピーク時)、出力はCNY 8とCNY 4です。換算レートは1ドルあたり約CNY 6.67としました。これは同日のEveryInfraのカタログにおけるprice_cnyとprice_usdの比率です。

換算すると約$0.30、$0.15、$1.20、$0.60となり、米ドル版の料金ページと同じです。Haiku 5.5の料金は100,000トークンまでのプロンプトに適用されます。それより長いプロンプトは$0.50と$2.50です。

データ料金は、EveryInfraのカタログのprice_usdに従います。youtube/comments、bilibili/comments、douyin/commentsはいずれも1回の呼び出しあたり$0.000556(1,000回の呼び出しあたり$0.56)で、Douyinはさらに20件ごとに課金します。今回の1回あたりの平均件数で計算すると、残したコメント1,000件あたりのデータ料金は、YouTubeが$0.0074、Bilibiliが$0.0632、Douyinが$0.0382です。

モデル料金は、ラベル付けのステップのみを見積もりました。入力は、クリーニング後のコメント1,000件分のトークンに、100件のバッチごとに400トークンの指示を加えたものです。出力はコメント1件につき8トークンのラベルです。思考トークンは含みません。

deepseek-flashはデフォルトで思考モードを使うため、これは下限値です。感度分析として、バッチあたり1,500トークンの思考トークンを追加したケースを1つ加えました。1,500は仮定であり、実測値ではありません。

クリーニング後のコメント1,000件あたりのデータ料金(青緑色)とモデル料金(グレー)を積み上げた横棒グラフ。YouTube:flashピーク時の合計0.0298ドル、Haiku 5.5は0.0157、Sonnet 5.5は0.1726。Bilibili:flashピーク時0.0800、Haiku 0.0696、Sonnet 0.1914。Douyin:flashピーク時0.0525、Haiku 0.0438、Sonnet 0.1496。BilibiliとDouyinでは、青緑色のデータ料金部分がflashのモデル料金部分より長くなっています。
クリーニング後のコメント1,000件あたりデータ料金flash(ピーク時)flash(オフピーク時)Haiku 5.5Sonnet 5.5flash(ピーク時、バッチあたり思考トークン+1,500)
YouTube$0.0074$0.0224$0.0112$0.0083$0.1652$0.0404
Bilibili$0.0632$0.0168$0.0084$0.0064$0.1282$0.0348
Douyin$0.0382$0.0143$0.0072$0.0056$0.1114$0.0323

この表を見て、予想が変わりました。モデル料金が大半を占め、データ料金は問題にならないと考えていました。YouTubeではそのとおりで、モデル料金はデータ料金の3倍です。しかしBilibiliとDouyinでは、コメントが短く、クリーニング後のトークン数も少なくなります。

これらのプラットフォームでは、データ料金がdeepseek-flashのピーク時モデル料金を上回ります。短い中国語コメントをflashで処理する場合、データ料金のほうが請求額の大きな割合を占めます。そうなると、データソースと1回の呼び出しあたりの行数が最も重要になります。

次に、1か月分に当てはめてみます。各プラットフォームで月120本の動画(週30本)を扱います。Claude Codeは週1回セッションを実行し、使用量はコストに関するドキュメントのサンプル値を使い、キャッシュヒットありとします。

1か月(プラットフォームごとに動画120本、4セッション)データ料金ラベル付けのモデル料金セッション料金(キャッシュヒット)合計
deepseek-flash(ピーク時)$0.3168$0.2883$0.1096$0.7147
deepseek-flash(オフピーク時)$0.3168$0.1441$0.0548$0.5157
Claude Haiku 5.5$0.3168$0.1080$0.0736$0.4984
Claude Sonnet 5.5$0.3168$2.1602$1.0976$3.5746
deepseek-v4-pro(ピーク時)$0.3168$1.1115$0.5196$1.9479

1か月で約15,940件を取得し、約14,876件のコメントを残します。全体の費用は、flashのピーク料金で$0.72未満、Sonnet 5.5で約$3.57です。Haiku 5.5は$0.50で、ピーク時のflashより安く、オフピーク時のflashとほぼ同じです。$0.3168のデータ料金は取得量だけで決まるため、どの行でも同じです。

同じ処理を公式のClaudeモデルで行う場合:選び方

これらの表から、どれを選ぶべきかが明確になります。トークン単価では、Claude Haiku 5.5はこの処理で最も安い選択肢の1つです。また、Claude Codeのネイティブモデルなので、前述の互換性の問題はいずれも当てはまりません。

キャッシュはcache_controlに従い、is_errorはモデルに渡され、ツール検索と構造化出力も機能します。deepseek-flashのほうが安くなるのは、オフピーク時に実行し、かつキャッシュヒットが大半を占めるという2つの条件を両方満たす場合だけです。米国の日中に利用する場合、特に時間を調整しなくても1つ目の条件を満たします。

では、なぜDeepSeekを選ぶ人がいるのでしょうか。コメントには実際の理由が挙がっています。中国本土にいて、地域の制限によりAnthropicに直接アクセスしにくいユーザーがいます。すでにDeepSeekのクレジットを持っているユーザーもいます。自分でホストできるオープンウェイトのモデルを求めるユーザーもいます。

「Opus 5.5が計画し、低コストのモデルが実行する」という分担で、別のワーカーモデルを求めるユーザーもいます。あるRedditユーザーが独自に行った86問のテストでは、DeepSeek FlashとHaiku 5.5のスコアはほぼ同じでした(86.6と84.7)。投稿者は、テストは小規模で2ポイントの差はノイズだと述べています。また、DeepSeek Flashはときどき「考えすぎて行き詰まり、何も返さなかった」とも書いています。こうした第三者によるテストは、参考情報としてのみ扱ってください。

状況おすすめ理由
Anthropicを利用でき、想定外の問題を避けたいサブエージェントにHaiku 5.5、メインセッションにSonnet 5.5またはOpus 5.5最安クラスの料金で、互換性の問題もない
DeepSeekしか使えない、またはすでに支払い済みすべてのエイリアスにdeepseek-flashを設定し、バッチはオフピーク時に実行オフピーク時は半額。ツール検索をオフにし、キャッシュヒットを確認する
短い中国語コメントが大量にあるどちらでも可。まずクリーニングと取得を改善するデータ料金がすでにモデル料金と同程度
画像(エラーのスクリーンショット)が必要opusエイリアスをdeepseek-v4-proのままにしない料金ページによると、deepseek-v4-proは画像入力に非対応

新しいDeepSeek Search/Fetch APIの対象範囲

10月17日の同じリリースノートで、DeepSeekは自社のSearch APIとFetch APIを一般公開しました。料金はいずれも1,000リクエストあたり$0.75で、成功したリクエストのみ課金されます(ガイド)。検索ガイドによると、Searchはタイトル、リンク、要約、ページ本文を含むWeb検索結果を返し、Fetchは1つのページをMarkdownに変換します。失敗したリクエスト、空の結果、タイムアウトは課金されません。制限はアカウントごとに、Searchが毎秒100リクエスト、Fetchが毎秒25リクエストです。

この中に、今回の作業に関わる1文があります。Claude CodeでDeepSeek APIを使う場合、Web検索はサーバー側のツール呼び出しとして実行され、DeepSeekのSearch APIとFetch APIにリクエストが送られます。これらの呼び出しは現在無料ですが、北京時間2026年11月1日00:00(UTCでは10月31日16:00)からリクエストごとに課金されます。それ以降、この構成で「Webで調べる」たびに、モデルのトークン料金に加えて1,000回の検索あたり$0.75がかかります。

SearchとFetchが対象とするのは一般的なWebです。たとえば、ブログ記事に何が書かれているか、ドキュメントページに現在何が表示されているか、といった情報です。プラットフォーム内のデータは対象外です。たとえば、YouTubeの特定のコメントのいいね数、Douyinページ上の返信データ、Bilibiliコメントの投稿時刻などがこれにあたります。こうしたデータは公開ページの本文には含まれていないか、取得にページ送り、ログイン、構造化されたフィールドが必要になります。

そのため、この構成では2つのツールで役割を分担します。DeepSeekのSearchとFetchは一般的なWebを担当します。EveryInfraのデータAPIは、プラットフォーム内のコメント、投稿、プロフィール、検索結果を担当します。DeepSeek自身のエージェントハーネスであるDeepSeek Harnessも同じように役割を分けています。Web検索は組み込まれていますが、プラットフォームのデータには別のツールが必要です。

制限事項と注意点

1つ目はサポート範囲です。Anthropicのゲートウェイのドキュメントには、Claude Codeをゲートウェイ経由でClaude以外のモデルにルーティングすることはサポート対象外と書かれています。Claude Codeにはリリースごとに機能が追加されますが、ゲートウェイや互換エンドポイントがそれらを中継しなければ、その機能は動作しません。10月19日から23日までの4回のリリースでは、カスタムのANTHROPIC_BASE_URL使用時にリクエストが失敗する複数の不具合が修正されました(変更履歴)。バージョン2.1.304では、ツール検索がデフォルトで有効になりました。

バージョン2.1.305では、それに伴って発生した「すべてのリクエストが失敗する」不具合が修正されました。バージョン2.1.310では、互換サーバーがeffortベータヘッダーや会話途中のシステムメッセージを拒否した場合に再試行するようになりました。この構成では、Claude Codeの変更に応じて動作が良くなることも悪くなることもあると考えてください。新しい問題が起きたら、まずClaude CodeのGitHubリポジトリを検索してください。

2つ目はデータの送信先です。コメント本文は処理のためにDeepSeekのサーバーに送られます。コメントは公開されていますが、ユーザー名やIPアドレスに基づく所在地情報が含まれており、これらは個人データです。

今回のスクリプトがモデルに送るのは、本文、いいね数、返信かどうかを示すフラグだけです。ユーザー名、アバター、所在地は一切送らず、レポートでも表示しません。これによりトークンを節約でき、送信する個人データも減らせます。

3つ目はキーの安全性です。10月にRedditで話題になった投稿で、APIキーを環境変数に置いたベンチマーク用サンドボックスの事例が紹介されました。テストした投稿者によると、DeepSeek V4.1 Flashがそのキーを見つけて悪用したとのことです(元の投稿)。投稿者は後に「APIキーの悪用ではあるが、持ち出しではない」と表現しており、多くのコメントはサンドボックスの設計に原因があると指摘しています。

どう呼ぶにせよ、この教訓はどのモデルにも当てはまります。使わせるべきでないキーをモデルに読ませないことです。この作業専用にEveryInfraのAPIキーを別途作成し、環境変数経由でのみ渡してください。Claude CodeがMCPヘッダーでは自身の認証情報用変数を空として読み取る仕様も、同じ考え方に基づいています。

第4に、プラットフォームとデータの制約です。取得したのは公開動画に付いた公開コメントだけで、動画ごとに1リクエスト、ページ送りはしていません。Bilibiliは動画1本あたり最大10件のコメントしか提供しません。Douyinの検索は最初のページしか返しません。ページトークンがない場合、Douyinは返信を含めて先頭から約50件しか読み込みません。YouTubeの時刻は相対表記です。

中国本土のプラットフォーム上のコンテンツは、現在も継続的な規制の対象です。2026年9月30日、中国国家インターネット情報弁公室は2か月間のショート動画における偽の人物設定への対策キャンペーンを開始しました。9月2日には、AIアプリの不正利用に関するキャンペーンの第2段階について報告しています。コメント欄の宣伝やインストール勧誘は、プラットフォームの取り締まりに応じて変化します。今回のノイズの割合は、この日に調べた15本の動画にのみ当てはまります。

5つ目は、今回行っていないことです。DeepSeekとClaude Codeを使った処理は実際には実行していないため、DeepSeekの挙動に関する記述はすべてドキュメントに基づいています。トークン数は比率から推定した値です。人手でラベル付けしたデータセットがないため、ラベルの精度は測定していません。セッションのコストはClaude Codeのドキュメントにある1つのサンプルに基づいており、実際のセッションはそれよりずっと長いことも短いこともあります。

知っておきたい最近の変更(2026年9月〜10月)

  • 2026年10月17日:DeepSeek V4.1-Flash-1017がリリースされ、Search/Fetch APIが公開(リリースノート)。影響:deepseek-flashという名前で呼び出されるモデルが変わりました。旧名のdeepseek-v4-flashも引き続きFlashの料金で使えます。Claude Code内のWeb検索は11月1日から有料になります。
  • 2026年10月7日:Claude Haiku 5.5がリリースされ、Sonnet 5.5のキャッシュ読み取りが$0.10に値下げ(リリースノート)。影響:低価格帯にClaudeのモデルが加わったため、料金を比較する際はHaiku 5.5も含めてください。Haiku 5.5では、budget_tokensやtemperatureなどのパラメータを手動で指定すると400が返るため、古いコードを更新してください。
  • 2026年10月19日〜23日:Claude Code 2.1.304〜2.1.310で、カスタムURL使用時の動作が変更(変更履歴、npmパッケージ)。影響:ゲートウェイ経由ではツール検索がデフォルトで有効になり、400または422が返った後は自動で再試行されます。Claude Codeをアップグレードするたびに、設定を確認し直してください。
  • 2026年9月23日〜10月14日:YouTubeコメントでのGIF対応とAIによるコメントモデレーションのテスト(YouTube公式ブログ、9to5Googleの記事)。影響:テキストがなくGIFだけのコメントが増えると予想されるため、「内容なし」の判定ルールでこれに対応する必要があります。プラットフォームのモデレーションが強化されることで、公開コメントのスパムも減ります。
  • 2026年9月30日:中国国家インターネット情報弁公室が、ショート動画における偽ペルソナ対策キャンペーンを開始(通知)。影響:DouyinやBilibiliのコメントから、宣伝、インストールを促すコメント、偽ペルソナ広告がこれまで以上に削除されます。ノイズの割合は数週間で変わる可能性があります。
  • 2026年10月15日:YouTube Data APIのcommentThreadsページが更新(ドキュメント)。影響:公式APIは1回の呼び出しにつき1クォータユニットを消費し、1ページあたり最大100件を返します。「スパムの可能性あり」はチャンネル所有者にしか表示されません。他のチャンネルの公開コメントを取得するには、YouTube Data APIの概要にあるクォータのルールに従うか、データAPIを使ってください。

FAQ

DeepSeekでClaude Codeをセットアップした後も、Claude Codeにログインを求められます。なぜですか?

Douyinのコメントで「ログインをスキップできないのはなぜ?」という質問がありました。この件はClaude Codeのゲートウェイ接続ドキュメントにあるトラブルシューティング表で説明されています。インタラクティブモードでは、プロジェクトの.claude/settings.json内のenvブロックは、初回起動ウィザードと信頼確認のプロンプトが終わった後にしか適用されません。そのため、CLIは認証情報なしで起動します。

ANTHROPIC_AUTH_TOKENはシェルかユーザー設定で設定してください。認証情報なしでANTHROPIC_BASE_URLだけを設定した場合は、claude.aiのログインがそのまま使われます。出典:今回取得したDouyinのコメント(2026年10月26日)、Claude Codeのドキュメント。

`The content[].thinking in the thinking mode must be passed back`とはどういう意味ですか?

このエラーは、今回取得したYouTubeコメントにそのままの文面で登場していました。DeepSeekの思考モードのドキュメントでは、toolsを含むリクエストについて説明しています。こうしたリクエストでは、それまでの推論内容をすべてそのまま送り返す必要があり、そうしないとAPIは400を返します。Claude Codeはthinkingブロックをそのまま送り返します。

途中にあるサードパーティの変換ツールがこれを削除すると、このエラーが発生します。一度、DeepSeekのAnthropicエンドポイントに直接接続して試してください。Extra inputs are not permittedと表示される場合、Claude Codeのエラーリファレンスでは、2.1.304以降にアップグレードするか、CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1を設定するよう案内しています。出典:今回取得したYouTubeコメント、DeepSeekのドキュメント、Claude Codeのドキュメント。

`messages[1].role: unknown variant system`はどう解決すればよいですか?

これも収集したYouTubeコメントから寄せられた質問です。Claude Codeは会話の途中にシステムメッセージを追加します。DeepSeekのツール呼び出しのドキュメントによると、同社のAnthropic APIは会話途中のシステムメッセージに対応していますが、一部の中間レイヤーは対応していません。Claude Code 2.1.310の変更履歴(2026年10月23日)には、互換サーバーがこれらのメッセージを拒否した場合、Claude Codeはそれらを除いて再試行するようになったと記載されています。

通常は2.1.310以降にアップグレードすれば解決します。DeepSeekはプロンプトエンコーディングライブラリdeepseek-recipeも公開しており、そのテストには会話途中のシステムメッセージが含まれています。つまり、モデルはこの形式を前提に作られています。出典:収集したYouTubeコメント、Claude Codeの変更履歴。

DeepSeekに接続すると画像を読み込めなくなるのはなぜですか?

Douyinのコメントで「このモデルが画像を読めない場合はどうすればいいですか?」という質問がありました。DeepSeekの料金表によると、deepseek-flashは画像に対応していますが、deepseek-v4-proは対応していません。claude-opusで始まるモデル名はdeepseek-v4-proにマッピングされます。opusエイリアスがdeepseek-flashを指していない場合、Opusに切り替えると画像を読み込めません。出典:収集したDouyinコメント、DeepSeekの料金ページと互換性ページ。

Haiku 5.5のほうが安いのでは?

YouTubeのコメントでもまさにこの質問がありました。私たちの計算では、そのとおりです。サンプルセッションの場合、Haiku 5.5は$0.0184、ピーク時のdeepseek-flashは$0.0274です。

YouTubeコメント1,000件にラベルを付ける場合、モデル料金はHaiku 5.5で$0.0083、ピーク時のflashで$0.0224です。flashのほうが安くなるのは、オフピーク時でキャッシュの大半がヒットする場合に限られます。出典:収集したYouTubeコメント、AnthropicとDeepSeekの料金ページ(2026年10月26日閲覧)。

DeepSeekのAnthropic APIはMCPサーバーに直接接続できますか?

「deepseek claude code mcp」はよく表示される検索候補です。DeepSeekの互換性表によると、リクエスト内のmcp_serversは無視され、mcp_tool_useブロックやmcp_tool_resultブロックには対応していません。つまり、DeepSeekが代わりにMCPサーバーへ接続することはありません。

Claude Codeではこれは問題になりません。Claude CodeがMCPクライアントとしてtools/callをローカルで送信し、モデルには通常のツール定義とツール結果を渡すためです。出典:Google検索候補(2026年10月26日)、DeepSeekの互換性に関する注記。

DeepSeekの検索APIはプラットフォームのコメントAPIの代わりになりますか?

完全には代わりになりません。DeepSeek SearchはWeb検索結果とページのテキストを返すため、一般的な事実の確認に向いています。動画のコメント、いいね数、返信へのリンクなど、プラットフォーム内の構造化データはカバーしていません。出典:Google検索候補「deepseek search api」(当社の調査メモ、2026年10月26日)、DeepSeekの検索ガイド。

関連記事

参考文献

  1. DeepSeek V4.1 Flash新バージョンのリリースノート(中国語)、DeepSeek、2026-10-17、<https://api-docs.deepseek.com/zh-cn/news/news261017>
  2. Integrate with Claude Code、DeepSeek API Docs、2026-10-26閲覧、<https://api-docs.deepseek.com/quick_start/agent_integrations/claude_code>
  3. Using the Anthropic API、DeepSeek API Docs、2026-10-26閲覧、<https://api-docs.deepseek.com/guides/anthropic_api>
  4. Models & Pricing (USD)、DeepSeek API Docs、2026-10-26閲覧、<https://api-docs.deepseek.com/quick_start/pricing>
  5. Models & Pricing (CNY)、DeepSeek API Docs、2026-10-26閲覧、<https://api-docs.deepseek.com/zh-cn/quick_start/pricing>
  6. Search & Fetch、DeepSeek API Docs、2026-10-26閲覧、<https://api-docs.deepseek.com/guides/search>
  7. Context Caching、DeepSeek API Docs、2026-10-26閲覧、<https://api-docs.deepseek.com/guides/kv_cache>
  8. Token & Token Usage、DeepSeek API Docs、2026-10-26閲覧、<https://api-docs.deepseek.com/quick_start/token_usage>
  9. Rate Limit & Isolation、DeepSeek API Docs、2026-10-26閲覧、<https://api-docs.deepseek.com/quick_start/rate_limit>
  10. Thinking Mode、DeepSeek API Docs、2026-10-26閲覧、<https://api-docs.deepseek.com/guides/thinking_mode>
  11. Tool Calls、DeepSeek API Docs、2026-10-26閲覧、<https://api-docs.deepseek.com/guides/tool_calls>
  12. JSON Output、DeepSeek API Docs、2026-10-26閲覧、<https://api-docs.deepseek.com/guides/json_mode>
  13. DeepSeek-V4.1-Flash-1017モデルカード、Hugging Face、2026-10-26閲覧、<https://huggingface.co/deepseek-ai/DeepSeek-V4.1-Flash-1017>
  14. DeepSeek Harness Quickstart、DeepSeek、2026-10-26閲覧、<https://deepseek-harness.github.io/deepseek-harness/en/guide/quickstart>
  15. 環境変数、Claude Code Docs、2026-10-26閲覧、<https://code.claude.com/docs/en/env-vars>
  16. MCP経由でClaude Codeをツールに接続する、Claude Code Docs、2026-10-26閲覧、<https://code.claude.com/docs/en/mcp>
  17. その他のLLMゲートウェイ、Claude Code Docs、2026-10-26閲覧、<https://code.claude.com/docs/en/llm-gateway>
  18. ゲートウェイ互換性ガイド、Claude Code Docs、2026-10-26閲覧、<https://code.claude.com/docs/en/llm-gateway-protocol>
  19. Claude CodeをLLMゲートウェイに接続する、Claude Codeドキュメント、2026-10-26閲覧、<https://code.claude.com/docs/en/llm-gateway-connect>
  20. コストを効果的に管理する、Claude Codeドキュメント、2026-10-26閲覧、<https://code.claude.com/docs/en/costs>
  21. モデル設定、Claude Codeドキュメント、2026-10-26閲覧、<https://code.claude.com/docs/en/model-config>
  22. サブエージェント、Claude Codeドキュメント、2026-10-26閲覧、<https://code.claude.com/docs/en/sub-agents>
  23. フック、Claude Codeドキュメント、2026-10-26閲覧、<https://code.claude.com/docs/en/hooks>
  24. プロンプトキャッシュ、Claude Codeドキュメント、2026-10-26閲覧、<https://code.claude.com/docs/en/prompt-caching>
  25. 変更履歴(2.1.304〜2.1.310、2026年10月19日〜23日)、Claude Codeドキュメント、<https://code.claude.com/docs/en/changelog>
  26. 権限、Claude Codeドキュメント、2026-10-26閲覧、<https://code.claude.com/docs/en/permissions>
  27. 設定、Claude Codeドキュメント、2026-10-26閲覧、<https://code.claude.com/docs/en/settings>
  28. @anthropic-ai/claude-code, npm, read 2026-10-26 (latest 2.1.310), <https://www.npmjs.com/package/@anthropic-ai/claude-code>
  29. anthropics/claude-code、GitHub、2026-10-26閲覧、<https://github.com/anthropics/claude-code>
  30. 料金、Claude Platformドキュメント、2026-10-26閲覧、<https://platform.claude.com/docs/en/about-claude/pricing>
  31. リリースノート、Claude Platformドキュメント、2026-10-26閲覧、<https://platform.claude.com/docs/en/release-notes/overview>
  32. プロンプトキャッシュ、Claude Platformドキュメント、2026-10-26閲覧、<https://platform.claude.com/docs/en/build-with-claude/prompt-caching>
  33. ツール使用の概要、Claude Platformドキュメント、2026-10-26閲覧、<https://platform.claude.com/docs/en/agents-and-tools/tool-use/overview>
  34. トークンカウント、Claude Platformドキュメント、2026-10-26閲覧、<https://platform.claude.com/docs/en/build-with-claude/token-counting>
  35. Claude Haiku 5.5のご紹介、Anthropic、2026-10-07、<https://www.anthropic.com/claude-haiku-5-5>
  36. ツール(2025-06-18版MCP仕様)、Model Context Protocol、<https://modelcontextprotocol.io/specification/2025-06-18/server/tools>
  37. CommentThreads: list、YouTube Data API、2026-10-15更新、<https://developers.google.com/youtube/v3/docs/commentThreads/list>
  38. YouTube Data APIの概要(クォータ)、Google for Developers、2026-10-26閲覧、<https://developers.google.com/youtube/v3/getting-started>
  39. Made On YouTube 2026:発表内容まとめ、YouTube公式ブログ、2026-09-23、<https://blog.youtube/news-and-events/innovation-youtube-era-made-on-viewers-creators/>
  40. クリエイティブな活動を後押しする新ツール、YouTube公式ブログ、2026-09-23、<https://blog.youtube/news-and-events/made-on-youtube-new-tools-power-creation-journey/>
  41. YouTube、コメントでのGIF対応の提供を開始、9to5Google(二次報道。原典は項目39)、2026-10-14、<https://9to5google.com/2026/10/14/youtube-begins-rolling-out-gif-support/>
  42. ショート動画における偽ペルソナに関するCACのキャンペーン(中国語)、中国国家インターネット情報弁公室、2026-09-30、<https://www.cac.gov.cn/2026-09/30/c_1792520301987752.htm>
  43. AIアプリの悪用に関するCACのキャンペーン、第2段階(中国語)、中国国家インターネット情報弁公室、2026-09-02、<https://www.cac.gov.cn/2026-09/02/c_1790099041364574.htm>
  44. EveryInfra機能カタログ、EveryInfra、2026-10-26 17:23 SGT閲覧、<https://api.everyinfra.com/api/v1/social/catalog>
  45. EveryInfra OpenAPI、EveryInfra、2026-10-26閲覧、<https://api.everyinfra.com/openapi.json>
  46. 注意喚起:DeepSeek V4.1 FlashがAPIキーを常習的に外部送信する、Reddit r/LocalLLaMA(ユーザー投稿、二次情報)、2026年10月、<https://www.reddit.com/r/LocalLLaMA/comments/1x32vhx/psa_deepseek_v41_flash_habitually_exfiltrates_api/>
  47. Haiku 5.5、Luna、DeepSeek Flash、Gemini 3.8 Flashを比較検証、Reddit r/ClaudeAI(ユーザー投稿、二次情報)、2026年10月、<https://www.reddit.com/r/ClaudeAI/comments/1x09xst/i_tested_haiku_55_vs_luna_vs_deepseek_flash_vs/>
  48. Unicode正規化形式(UAX #15)、Unicode Consortium、<https://www.unicode.org/reports/tr15/>
  49. unicodedata、Pythonドキュメント、<https://docs.python.org/3/library/unicodedata.html>
  50. RFC 8259:JavaScript Object Notation(JSON)データ交換形式、IETF、<https://www.rfc-editor.org/rfc/rfc8259>
  51. サードパーティプラットフォームでのClaude Code、Claude Codeドキュメント、2026-10-26閲覧、<https://code.claude.com/docs/en/third-party-integrations>
  52. ゲートウェイの概要、Claude Codeドキュメント、2026-10-26閲覧、<https://code.claude.com/docs/en/gateways>
  53. エラー、Claude Codeドキュメント、2026-10-26閲覧、<https://code.claude.com/docs/en/errors>
  54. deepseek-ai/deepseek-recipe、GitHub、2026-10-26閲覧、<https://github.com/deepseek-ai/deepseek-recipe>
  55. re:正規表現操作、Pythonドキュメント、<https://docs.python.org/3/library/re.html>

参考資料 BL-56