DeepSeek Harness: モデル設定とAPI管理
最終更新:2026-08-31
モデルは Agent の「脳」——適切なモデルを選び、接続を正しく設定すれば、Agent は効率的に働きます。DSH のモデル非依存設計により、LLM を自由に切り替えられます——DeepSeek から GPT-4o、ローカル Ollama まで——設定を変更するだけで、コードの変更は不要です。
📋 前提知識:03-first-use.md の完了、Web UI が正常に動作していること
1. 学習内容
- DeepSeek API Key の取得と設定
- Web UI 設定ページの操作
- OpenAI 互換エンドポイントの設定
- モデルルーティングとマルチモデル切り替え
- API Key セキュリティ管理のベストプラクティス
2. DeepSeek API Key の設定
(1) API Key の取得
DeepSeek オープンプラットフォームにアクセスして API Key を取得します:

2. アカウントを登録/ログイン
3. API Keys ページに移動
4. "Create API Key" をクリック
5. 生成された Key をコピー(sk- で始まる)
注意:API Key は作成時に1回しか表示されません。すぐに保存してください。紛失した場合は新しく作成する必要があります。
(2) API Key の設定
3つの設定方法、優先順位の高い順:
方法1:Web UI 設定ページ(推奨)
上部コントロールバー → ⚙️ Settings → Models → DeepSeek API Key
┌─────────────────────────────────────────┐
│ DeepSeek API Key │
│ sk-•••••••••••••••••••••••••••xxxx │
│ [Test Connection] [Save] │
└─────────────────────────────────────────┘
Test Connection をクリックして接続を検証:

Model: deepseek-chat
Latency: 120ms
方法2:環境変数
# .env ファイルまたはシェルで設定
export DEEPSEEK_API_KEY="sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
方法3:設定ファイル
# dsh.config.yaml
models:
deepseek:
api_key: "sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
base_url: "https://api.deepseek.com/v1"
(3) 利用可能な DeepSeek モデル
| モデル ID | 説明 | コンテキストウィンドウ | ユースケース |
|---|---|---|---|
deepseek-chat |
汎用会話モデル | 64K tokens | 日常的なプログラミング、Q&A |
deepseek-reasoner |
推論強化モデル | 64K tokens | 複雑なロジック、数学的推論 |
deepseek-coder |
コード特化モデル | 16K tokens | コード生成、デバッグ |
3. 設定ページの詳細
▶ サンプル 1:

Settings → Models
┌──────────────────────────────────────────────┐
│ 📡 Model Providers │
│ │
│ ┌─ DeepSeek ────────────────────────────────┐ │
│ │ API Key: sk-•••••••••xxxx │ │
│ │ Base URL: https://api.deepseek.com/v1 │ │
│ │ Default Model: deepseek-chat │ │
│ │ [Test] [Save] │ │
│ └───────────────────────────────────────────┘ │
│ │
│ ┌─ OpenAI Compatible ───────────────────────┐ │
│ │ API Key: sk-•••••••••xxxx │ │
│ │ Base URL: https://api.openai.com/v1 │ │
│ │ Default Model: gpt-4o │ │
│ │ [Test] [Save] │ │
│ └───────────────────────────────────────────┘ │
│ │
│ [+ Add Provider] │
└──────────────────────────────────────────────┘
(2) 設定項目の説明
| 設定項目 | 説明 | 例 |
|---|---|---|
| API Key | LLM サービス認証キー | sk-xxxxxxxx |
| Base URL | API エンドポイントアドレス | https://api.deepseek.com/v1 |
| Default Model | デフォルトで使用するモデル | deepseek-chat |
| Max Tokens | 1回の応答の最大トークン数 | 4096 |
| Temperature | 生成温度(0-2) | 0.7 |
▶ サンプル 3:
# dsh.config.yaml
models:
deepseek:
api_key: "${DEEPSEEK_API_KEY}"
default_model: deepseek-chat
params:
temperature: 0.7
max_tokens: 4096
top_p: 0.95
openai:
api_key: "${OPENAI_API_KEY}"
default_model: gpt-4o
params:
temperature: 0.5
max_tokens: 8192
シナリオ別推奨パラメータ:
| シナリオ | Temperature | Max Tokens | 備考 |
|---|---|---|---|
| コード生成 | 0.2-0.4 | 4096+ | 低温度でコードの一貫性を確保 |
| ドキュメント作成 | 0.5-0.7 | 4096 | 適度な創造性 |
| 創作的ブレインストーミング | 0.8-1.0 | 8192+ | 高温度で多様性を奨励 |
| 正確な Q&A | 0.0-0.2 | 2048 | 最も決定論的な出力 |
4. OpenAI 互換エンドポイントの設定
▶ サンプル 1:
# dsh.config.yaml
models:
openai:
api_key: "${OPENAI_API_KEY}"
base_url: "https://api.openai.com/v1"
default_model: gpt-4o
(2) Azure OpenAI エンドポイント
# dsh.config.yaml
models:
azure:
api_key: "${AZURE_OPENAI_API_KEY}"
base_url: "https://your-resource.openai.azure.com/openai/deployments/your-deployment"
default_model: gpt-4o
headers:
api-key: "${AZURE_OPENAI_API_KEY}"
(3) ローカル Ollama エンドポイント
# dsh.config.yaml
models:
ollama:
api_key: "ollama" # Ollama は実際の Key が不要
base_url: "http://localhost:11434/v1"
default_model: llama3.2
(4) カスタムエンドポイント
OpenAI API フォーマットと互換性のあるサービスなら何でも接続可能:
# dsh.config.yaml
models:
custom:
api_key: "${CUSTOM_API_KEY}"
base_url: "https://your-llm-service.com/v1"
default_model: your-model-name
headers:
X-Custom-Header: "custom-value"
(5) マルチエンドポイントアーキテクチャ
graph TB
DSH[DeepSeek Harness] -->|Provider 1| DS[DeepSeek API<br/>deepseek-chat]
DSH -->|Provider 2| OAI[OpenAI<br/>gpt-4o]
DSH -->|Provider 3| OLL[Ollama<br/>llama3.2]
DSH -->|Provider 4| AZ[Azure OpenAI<br/>gpt-4o]
5. モデルルーティングとマルチモデル選択
(1) Web UI でのモデル切り替え
上部コントロールバーのドロップダウンでモデルを切り替え:
[deepseek-chat ▼]
┌──────────────────────────┐
│ ● deepseek-chat │
│ DeepSeek · 64K ctx │
│ │
│ ○ gpt-4o │
│ OpenAI · 128K ctx │
│ │
│ ○ llama3.2 │
│ Ollama · 8K ctx │
└──────────────────────────┘
(2) モデルルーティング戦略
DSH はタスクタイプに基づいて自動的に異なるモデルにルーティングすることをサポートします:
# dsh.config.yaml
routing:
rules:
- match:
mode: ptc # PTC モード
model: deepseek-reasoner # 計画に推論モデルを使用
- match:
tool: file_edit # ファイル編集
model: deepseek-coder # コードモデルを使用
- match:
mode: creative # Creative モード
model: gpt-4o # GPT-4o を使用
- match:
default: true # デフォルトルート
model: deepseek-chat
(3) ルーティングフロー
graph TD
INPUT[User Input] --> CHECK{Match Routing Rules}
CHECK -->|PTC Mode| R1[deepseek-reasoner]
CHECK -->|file_edit Tool| R2[deepseek-coder]
CHECK -->|Creative Mode| R3[gpt-4o]
CHECK -->|Default| R4[deepseek-chat]
(4) CLI モードでのモデル指定
# 起動時にモデルを指定
npx @deepseek-ai/dsh cli --model gpt-4o
# セッション中のモデル切り替え(CLI 内部コマンド)
/model deepseek-reasoner
6. API Key セキュリティ管理
(1) セキュリティ原則
| 原則 | 説明 |
|---|---|
| ハードコード禁止 | API Key をコードに直接書き込まない |
| Git へのコミット禁止 | .env ファイルを .gitignore に追加 |
| 最小権限 | 必要なサービスアクセス権限のみ設定 |
| 定期ローテーション | 定期的に API Key を更新 |
| 監査ログ | API Key の使用状況を監視 |
(2) 環境変数管理
# .env ファイル(Git にコミットしない)
DEEPSEEK_API_KEY=sk-xxxxxxxxxxxxxxxx
OPENAI_API_KEY=sk-yyyyyyyyyyyyyyyy
# .env.example ファイル(Git にコミット、チーム参考用)
DEEPSEEK_API_KEY=your-deepseek-api-key
OPENAI_API_KEY=your-openai-api-key
# .gitignore
.env
.env.local
.env.*.local
(3) 設定ファイルでの変数参照
DSH 設定ファイルは環境変数参照をサポートし、ハードコードを回避します:
# dsh.config.yaml — ${VAR} で環境変数を参照
models:
deepseek:
api_key: "${DEEPSEEK_API_KEY}" # ランタイム時に環境変数から読み取り
base_url: "https://api.deepseek.com/v1"
openai:
api_key: "${OPENAI_API_KEY}"
base_url: "https://api.openai.com/v1"
(4) シークレット管理サービスの統合
エンタープライズデプロイには、専門的なシークレット管理サービスを推奨:

models:
deepseek:
api_key:
vault: aws-secrets-manager
secret_id: "dsh/deepseek-api-key"
region: "us-east-1"
(5) キー漏洩時の緊急対応
1. API プロバイダーのプラットフォームで漏洩した Key を即座に無効化/削除
2. 新しい Key を生成して設定を更新
3. API 呼び出しログを確認し、異常な使用がないか確認
4. Git 履歴を確認し、Key がコミットされていないことを確認(コミットされている場合は git filter-branch で削除)
7. 接続トラブルシューティング
(1) よくあるエラーと解決策
| エラーメッセージ | 原因 | 解決策 |
|---|---|---|
Invalid API key |
Key が間違っているか期限切れ | Key を再生成して設定 |

| Connection refused | エンドポイントアドレスが間違っている | Base URL を確認 |
| Rate limit exceeded | API 呼び出し頻度の制限を超過 | リクエスト頻度を下げるかプランをアップグレード |
| Model not found | モデル ID が間違っている | モデル名のスペルを確認 |
| Timeout | ネットワークが到達不能 | プロキシ設定またはファイアウォールを確認 |
(2) 接続テストコマンド
# DeepSeek API のテスト
curl -s https://api.deepseek.com/v1/models \
-H "Authorization: Bearer $DEEPSEEK_API_KEY"
# OpenAI 互換エンドポイントのテスト
curl -s https://api.openai.com/v1/models \
-H "Authorization: Bearer $OPENAI_API_KEY"
# ローカル Ollama のテスト
curl -s http://localhost:11434/v1/models
(3) プロキシ設定
プロキシ経由で API にアクセスする必要がある場合:
# HTTP プロキシの設定
export HTTP_PROXY="http://proxy.example.com:8080"
export HTTPS_PROXY="http://proxy.example.com:8080"
# または設定ファイルで指定
# dsh.config.yaml
models:
deepseek:
api_key: "${DEEPSEEK_API_KEY}"
base_url: "https://api.deepseek.com/v1"
proxy: "http://proxy.example.com:8080"
❓ よくある質問
/model と入力して現在のモデルを確認できます。📖 まとめ
- DeepSeek API Key は環境変数、設定ファイル、Web UI 設定で構成可能
- OpenAI 互換エンドポイントにより、DSH は OpenAI API フォーマットのサービスに接続可能
- モデルルーティング戦略でモード/ツールに基づいて最適なモデルを自動選択
- API Key セキュリティ管理:ハードコード禁止、Git へのコミット禁止、環境変数参照を使用
- Web UI 上部でワンクリックモデル切り替え;CLI では
/modelコマンド - 接続問題は Key → URL → Network → Proxy の順でトラブルシューティング
📝 練習問題
1. ⭐ 基礎:DeepSeek API Key を設定し、Web UI でメッセージを送信して返信を受信してください。接続テスト結果のスクリーンショットを保存すること。
2. ⭐⭐ 応用:DeepSeek と OpenAI の両方のモデルプロバイダーを設定し、同じセッションで2つのモデルを切り替えて、同じ質問に対する応答の違いを比較してください。
3. ⭐⭐⭐ チャレンジ:Ollama ローカルモデルエンドポイントを設定し、モデルルーティングルールを記述してください——コード編集操作は DeepSeek Coder にルーティング、創作タスクは GPT-4o にルーティング、デフォルトは DeepSeek Chat を使用。ルーティングが期待通りに動作することを確認すること。