DeepSeek Harness

DeepSeek が公開しているオープンソースのコーディングエージェント DeepSeek Harness(dsh)を、FastMetal のモデルで動かす設定手順です。dsh にカスタムのモデルAPIとして FastMetal を登録すると、ファイルの編集、コマンドの実行、計画づくりを DeepSeek V4 Pro などのモデルで進められます。

1. APIキーを作成する

APIキーページでキーを作成または表示します。キーは一度しか表示されないため、安全な場所に控えておきます。

APIキーページを開く

2. DeepSeek Harness を起動する

任意のフォルダで次のコマンドを実行します。dsh の Web UI が http://127.0.0.1:3080 で起動し、ブラウザで開きます。設定は ~/.dsh に保存されます。

npx @deepseek-ai/dsh web

3. FastMetal をカスタムのモデルAPIとして登録する

Settings の Models を開き、Add model provider を選んで、カードを Custom model API に切り替えます。フォームには次のように入れます。

  • Provider ID:fastmetal。セッションや既定のモデルがこの ID を参照するため、あとから変えられません。
  • Base URL:下の URL です。末尾は /v1 です。
  • API protocol:OpenAI Chat Completions。
  • API key:FastMetal の APIキー。
  • Model catalog:Fetch available models を選んで使うモデルにチェックを入れるか、モデルIDを直接入力します。
https://api.fastmetal.ai/v1

Fetch available models には、キーで使えるモデルがすべて並びます。次の二つの DeepSeek モデルは、ファイルの編集、コマンドの実行、思考の出力まで dsh で動作を確かめています。

deepseek-v4-pro
deepseek-v4.1-flash

キーで使える全IDを一覧します(キーとベースURLの確認も兼ねます):

curl https://api.fastmetal.ai/v1/models \
  -H "Authorization: Bearer your-api-key"

4. 思考(reasoning)を有効にする

DeepSeek の各モデルで Model options を開き、Reasoning levels をオンにします。off は値を空のまま残し、high の API value に high を入れます。これで dsh が reasoning_effort を送り、モデルは考えてから答えます。

このプロバイダーでは、DeepSeek 形式の thinking を送る設定は使いません。FastMetal の DeepSeek モデルは reasoning_effort で思考を有効にするため、DeepSeek 独自の thinking フィールドを送る設定では、思考なしで答えが返ります。

5. モデルを選ぶ

モデルピッカーで FastMetal のモデルを選び、作業するフォルダ(ワークスペース)を指定します。選んだモデルは新しいセッションの既定にもなります。各リクエストはモデルページのトークン単価でキーに課金され、利用状況ページに表示されます。

設定ファイルで設定する

Web UI で入れた設定は ~/.dsh/profiles/web/cordis.patch.yml に書き込まれ、ほかのプロファイルにも同じ場所に専用のファイルがあります(profiles/tui、profiles/headless)。手で設定する場合や、tui と headless のプロファイルで使う場合は、そのプロファイルのファイルに次の内容を書きます。apiKeyEnv にはキーを入れた環境変数の名前を書くため、キーそのものはファイルに残りません。

- id: llm-pi-ai
  config:
    providers:
      fastmetal:
        displayName: FastMetal
        apiKeyEnv: FASTMETAL_API_KEY
        api: openai-completions
        baseURL: https://api.fastmetal.ai/v1
        reasoning: high
        models:
          - id: deepseek-v4-pro
            name: DeepSeek V4 Pro
            reasoningEfforts:
              off:
              high: high
          - id: deepseek-v4.1-flash
            name: DeepSeek V4.1 Flash
            reasoningEfforts:
              off:
              high: high
- id: agent-default-model
  config:
    provider: fastmetal
    model: deepseek-v4-pro

同じ内容を ~/.dsh/profiles/headless/cordis.patch.yml に書いておくと、ターミナルからタスクを一つ渡して、答えが出たら終了する使い方ができます。

export FASTMETAL_API_KEY="your-api-key"
npx @deepseek-ai/dsh headless "run the tests and fix what fails"

このファイルの項目は、そのプラグインの設定を丸ごと置き換えます。ほかのプロバイダーも設定している場合は、同じ llm-pi-ai の項目の中に残しておきます。ファイルは次のリクエストで読み直されるため、再起動はいりません。

ほかのモデル

ツール呼び出しに対応した FastMetal のモデルなら、GLM、Kimi、Qwen、Claude なども同じプロバイダーに追加できます。エージェントとしてうまく動くかどうかはモデルと配信元のホストによって変わるため、大きな作業の前に小さなタスクで一度確かめておきます。ルーター名の auto は、エージェントのモデルには使えません。

稟議・経理のご担当者へ

DeepSeek Harness からの利用も、ほかの API 利用と同じ前払い残高から差し引かれ、同じ利用状況ページと請求書に載ります。エージェントは一つの作業でモデルを何度も呼び出し、そのたびに会話の履歴を送り直すため、費用の大半は入力トークンです。FastMetal の DeepSeek モデルはプロンプトキャッシュに対応していて、繰り返し送られる部分はキャッシュ入力の単価で課金されます。