Skip to Content
コア詳細コア概要

Qwen Code Core

Qwen Code のコアパッケージ (packages/core) は、Qwen Code のバックエンド部分であり、モデル API との通信、ツールの管理、および packages/cli から送信されたリクエストの処理を担当します。Qwen Code 全体の概要については、メインドキュメントページ を参照してください。

このセクションのナビゲーション

  • Core tools API: コアでツールがどのように定義、登録、使用されるかに関する情報。
  • Memory Import Processor: @file.md 構文を使用したモジュラー形式の QWEN.md インポート機能のドキュメント。

コアの役割

Qwen Code の packages/cli 部分がユーザーインターフェースを提供する一方で、packages/core は以下の機能を担っています:

  • Model API との連携: 設定されたモデルプロバイダーと安全に通信し、ユーザーのプロンプトを送信し、モデルのレスポンスを受信します。
  • Prompt engineering: モデルに対して効果的なプロンプトを構築します。これには会話履歴やツール定義、コンテキストファイル(例:QWEN.md)からの指示内容が含まれる場合があります。
  • ツールの管理とオーchestrーション:
    • 利用可能なツール(例:ファイルシステムツール、シェルコマンド実行)の登録
    • モデルからのツール使用リクエストの解釈
    • 指定された引数でリクエストされたツールを実行
    • ツール実行結果をモデルに返して、さらに処理を進める
  • セッションと状態管理: 会話の状態(履歴や一貫したインタラクションに必要な関連コンテキスト)を追跡します。
  • 設定管理: API キーのアクセス、モデル選択、ツール設定など、コア固有の設定を管理します。

セキュリティに関する考慮事項

Core はセキュリティにおいて重要な役割を果たします:

  • API key の管理: Core はプロバイダーの認証情報を管理し、API との通信時にそれらが安全に使用されるようにします。
  • Tool の実行: Tool がローカルシステムとやり取りする場合(例:run_shell_command)、Core(およびその下層の Tool 実装)は適切な注意を払いながら実行する必要があります。これは多くの場合、意図しない変更を防ぐためのサンドボックス機構を含みます。

チャット履歴の圧縮

長時間の会話で選択したモデルのトークン制限を超えないようにするため、Core にはチャット履歴圧縮機能が含まれています。

会話が設定されたモデルのトークン制限に近づいたとき、Core はモデルに送信する前に会話履歴を自動的に圧縮します。この圧縮は、伝えられる情報に関してはロスレスとなるように設計されていますが、使用されるトークンの総数は削減されます。

各プロバイダーのモデルにおけるトークン制限については、それぞれのドキュメントで確認できます。

モデルのフォールバック

Qwen Code には、デフォルトのモデルがレート制限されている場合でも CLI を継続して使用できるようにするためのフォールバックメカニズムが含まれています。

デフォルトの “pro” モデルを使用中に、CLI がレート制限を受けていることを検出した場合、自動的に現在のセッションで “flash” モデルに切り替わります。これにより、作業を中断せずに継続できます。

ファイル検出サービス

ファイル検出サービスは、プロジェクト内で現在のコンテキストに関連するファイルを見つける役割を持っています。これは @ コマンドや、ファイルへのアクセスを必要とするその他のツールで使用されます。

Memory discovery service

Memory discovery service は、モデルにコンテキストを提供するコンテキストファイル(デフォルト: QWEN.md)を検索・読み込みする役割を持っています。このサービスは、現在の作業ディレクトリからプロジェクトルート、ユーザーのホームディレクトリへと階層的にファイルを検索します。また、サブディレクトリ内も検索対象となります。

これにより、グローバルレベル、プロジェクトレベル、コンポーネントレベルのコンテキストファイルを持つことができ、これらすべてが組み合わさってモデルに最も関連性の高い情報を提供します。

読み込まれたコンテキストファイルの内容を showaddrefresh するには、/memory コマンドを使用できます。

Last updated on