Skip to content

インストールとクイックスタート

このチュートリアルでできること

  • ✅ 5分以内にDCPプラグインをインストール
  • ✅ プラグインを設定し、インストールを検証
  • ✅ 初回の自動トリミング効果を確認

現在の課題

OpenCodeを長期間使用すると、会話がどんどん長くなります:

  • AIが同じファイルを何度も読み取る
  • ツール呼び出しのエラーメッセージがコンテキストを埋め尽くす
  • 各会話で大量のTokenを消費する
  • 会話が長くなるほど、AIの応答が遅くなる

会話内の重複したコンテンツを自動的にクリーンアップしたいが、手動操作はしたくない。

コアコンセプト

**DCP(Dynamic Context Pruning)**はOpenCodeのプラグインで、会話履歴から重複したツール呼び出しを自動的に削除し、Token消費を削減します。

その動作:

  1. 自動検出:メッセージ送信ごとに会話履歴を自動的に分析
  2. スマートクリーンアップ:重複したツール呼び出し、期限切れのエラー、上書きされた書き込みを削除
  3. AI駆動:AIはdiscardおよびextractツールを呼び出してコンテキストを最適化
  4. 透明で制御可能/dcpコマンドでトリミング統計を表示し、手動でクリーンアップを実行

核心メリット

  • ゼロコスト:自動戦略はLLM呼び出しを必要としません
  • ゼロ設定:インストールするだけ、デフォルト設定はすでに最適化済み
  • ゼロリスク:LLMに送信されるコンテキストのみを変更し、会話履歴には影響しません

🎒 開始前の準備

インストールを開始する前に、確認してください:

  • [ ] OpenCodeがインストール済み(プラグイン機能をサポート)
  • [ ] OpenCode設定ファイルを編集する方法を知っている
  • [ ] 基本的なJSONC構文を理解している(コメントをサポートするJSON)

重要なヒント

DCPはLLMに送信されるコンテキストの内容を変更しますが、会話履歴には影響しません。設定でいつでもプラグインを無効にできます。

進め方

ステップ1:OpenCode設定ファイルを編集

理由 OpenCode設定でDCPプラグインを宣言すると、OpenCodeの起動時に自動的に読み込まれます。

OpenCode設定ファイルopencode.jsoncを開き、pluginフィールドにDCPを追加:

jsonc
// opencode.jsonc
{
    "plugin": ["@tarquinen/opencode-dcp@latest"],
}

期待される結果:設定ファイルに他のプラグインがすでにある場合(もしあれば)、配列の末尾にDCPを追加するだけです。

ヒント

@latestタグを使用すると、OpenCodeは起動時に最新バージョンを自動的に確認して取得します。

ステップ2:OpenCodeを再起動

理由 プラグイン設定の変更後、有効にするには再起動が必要です。

OpenCodeを完全に閉じて、再起動してください。

期待される結果:OpenCodeが正常に起動し、エラーメッセージが表示されません。

ステップ3:プラグインインストールを確認

理由 DCPプラグインが正しく読み込まれていることを確認し、デフォルト設定を確認します。

OpenCodeの会話で入力:

/dcp

期待される結果:DCPコマンドヘルプが表示され、プラグインが正常にインストールされたことがわかります。

╭───────────────────────────────────────────────────────────╮
│                      DCP Commands                         │
╰───────────────────────────────────────────────────────────╯

  /dcp context      Show token usage breakdown for current session
  /dcp stats        Show DCP pruning statistics
  /dcp sweep [n]    Prune tools since last user message, or last n tools

ステップ4:デフォルト設定を確認

理由 DCPのデフォルト設定を理解し、プラグインが期待通りに動作していることを確認します。

DCPは初回実行時に自動的に設定ファイルを作成します:

bash
# グローバル設定ファイルを表示
cat ~/.config/opencode/dcp.jsonc

期待される結果:設定ファイルが作成され、初期状態では$schemaフィールドのみ含みます:

jsonc
{
    "$schema": "https://raw.githubusercontent.com/Opencode-DCP/opencode-dynamic-context-pruning/master/dcp.schema.json"
}

設定ファイルは初期状態で$schemaフィールドのみを含み、その他のすべての設定項目はコード内のデフォルト値を使用します。手動で設定する必要なく使用できます。

デフォルト設定の説明

DCPのコードデフォルト値は以下の通りです(設定ファイルに書き込む必要はありません):

  • deduplication:自動重複排除、重複したツール呼び出しを削除
  • purgeErrors:4ターン前のエラーツール入力を自動的にクリーンアップ
  • discard/extract:AIが呼び出せるトリミングツール
  • pruneNotification:詳細なトリミング通知を表示

カスタム設定が必要な場合は、これらのフィールドを手動で追加できます。詳細な設定説明は設定ガイドを参照してください。

ステップ5:自動トリミング効果を体験

理由 実際にDCPを使用し、自動トリミングの効果を確認します。

OpenCodeで会話を行い、AIに同じファイルを複数回読み取らせたり、失敗するツール呼び出しを実行したりします。

期待される結果

  1. メッセージを送信するたびに、DCPは会話履歴を自動的に分析
  2. 重複したツール呼び出しがある場合、DCPは自動的にクリーンアップ
  3. AI応答後、トリミング通知が表示される場合があります(pruneNotification設定によります)

トリミング通知の例:

▣ DCP | ~12.5K tokens saved total

▣ Pruning (~12.5K tokens)
→ read: src/config.ts
→ write: package.json

/dcp contextを入力して現在のセッションのToken使用状況を確認:

Session Context Breakdown:
──────────────────────────────────────────────────────────

System         15.2% │████████████████▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒│  25.1K tokens
User            5.1% │████▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒│   8.4K tokens
Assistant       35.8% │██████████████████████████████████████▒▒▒▒▒▒▒│  59.2K tokens
Tools (45)      43.9% │████████████████████████████████████████████████│  72.6K tokens

──────────────────────────────────────────────────────────

Summary:
  Pruned:          12 tools (~15.2K tokens)
  Current context: ~165.3K tokens
  Without DCP:     ~180.5K tokens

チェックポイント ✅

上記のステップを完了すると、次のことができるはずです:

  • [ ] opencode.jsoncにDCPプラグインが追加済み
  • [ ] OpenCode再起動後、正常に実行できる
  • [ ] /dcpコマンドでヘルプが表示される
  • [ ] 設定ファイル~/.config/opencode/dcp.jsoncが作成済み
  • [ ] 会話でトリミング通知が見える、または/dcp contextでトリミング統計が見える

あるステップで失敗した場合

  • opencode.jsoncの構文が正しいか確認(JSONC形式)
  • OpenCodeログでプラグイン読み込みエラーがないか確認
  • OpenCodeバージョンがプラグイン機能をサポートしているか確認

落とし穴のヒント

問題1:プラグインが有効にならない

症状:設定は追加したが、トリミング効果が見えない

原因:OpenCodeが再起動されていないか、設定ファイルのパスが間違っている

解決策

  1. OpenCodeを完全に閉じてから再起動
  2. opencode.jsoncの位置が正しいか確認
  3. ログを確認:~/.config/opencode/logs/dcp/daily/ディレクトリのログファイル

問題2:設定ファイルが作成されない

症状~/.config/opencode/dcp.jsoncが存在しない

原因:OpenCodeがDCPプラグインを呼び出していないか、設定ディレクトリの権限の問題

解決策

  1. OpenCodeが再起動済みであることを確認
  2. 設定ディレクトリを手動で作成:mkdir -p ~/.config/opencode
  3. opencode.jsoncでプラグイン名が正しいか確認:@tarquinen/opencode-dcp@latest

問題3:トリミング通知が表示されない

症状:トリミング通知が見えないが、/dcp statsにはトリミングが表示される

原因pruneNotification"off"または"minimal"に設定されている

解決策:設定ファイルを変更:

jsonc
"pruneNotification": "detailed"  // または "minimal"

まとめ

DCPプラグインのインストールは非常に簡単です:

  1. opencode.jsoncにプラグインを追加
  2. OpenCodeを再起動
  3. /dcpコマンドでインストールを確認
  4. デフォルト設定で使用可能、追加の調整は不要

DCPでデフォルトで有効な機能

  • ✅ 自動重複排除戦略(重複したツール呼び出しを削除)
  • ✅ エラー削除戦略(期限切れのエラー入力をクリーンアップ)
  • ✅ AI駆動ツール(discardextract
  • ✅ 詳細なトリミング通知

次のステップ:設定をカスタマイズする方法を学び、トリミング戦略を調整してさまざまなシナリオのニーズに対応します。


次のチュートリアルの予告

次のチュートリアルでは**設定ガイド**を学びます

学習内容:

  • 多階層設定システム(グローバル、環境変数、プロジェクトレベル)
  • すべての設定項目の目的と推奨設定
  • ターン保護、保護されたツール、保護されたファイルパターン
  • さまざまなトリミング戦略を有効化/無効化する方法

付録:ソースコード参照

クリックしてソースコードの場所を表示

更新時間:2026-01-23

機能ファイルパス行号
プラグインエントリポイントindex.ts12-102
設定管理lib/config.ts669-794
コマンド処理lib/commands/help.ts1-40
Token 計算lib/commands/context.ts68-174

重要な定数

  • MAX_TOOL_CACHE_SIZE = 1000:ツールキャッシュの最大エントリ数

重要な関数

  • Plugin():プラグイン登録とフック設定
  • getConfig():多階層設定の読み込みとマージ
  • handleContextCommand():現在のセッションのToken使用状況を分析