Qwen Code 設定
認証 / API キー: 認証(Qwen OAuth と OpenAI 互換 API)および認証関連の環境変数(例: OPENAI_API_KEY)については、認証 で説明されています。
新しい設定形式についての注意: settings.json ファイルの形式が更新され、より整理された構造になりました。古い形式は自動的に移行されます。
Qwen Code では、環境変数、コマンドライン引数、設定ファイルなど、いくつかの方法で動作を設定できます。このドキュメントでは、異なる設定方法と利用可能な設定項目について概説します。
設定レイヤー
設定は以下の優先順位に従って適用されます(番号が小さい方が大きい番号によって上書きされます):
| レベル | 設定ソース | 説明 |
|---|---|---|
| 1 | デフォルト値 | アプリケーション内にハードコードされたデフォルト値 |
| 2 | システムデフォルトファイル | 他の設定ファイルで上書き可能なシステム全体のデフォルト設定 |
| 3 | ユーザー設定ファイル | 現在のユーザーに対するグローバル設定 |
| 4 | プロジェクト設定ファイル | プロジェクト固有の設定 |
| 5 | システム設定ファイル | 他のすべての設定ファイルを上書きするシステム全体の設定 |
| 6 | 環境変数 | システム全体またはセッション固有の変数。.env ファイルから読み込まれる可能性もあります |
| 7 | コマンドライン引数 | CLI起動時に渡される値 |
設定ファイル
Qwen Code は、永続的な設定のために JSON 形式の設定ファイルを使用します。これらのファイルには以下の4つの場所があります:
| ファイルタイプ | 場所 | スコープ |
|---|---|---|
| システムデフォルトファイル | Linux: /etc/qwen-code/system-defaults.jsonWindows: C:\ProgramData\qwen-code\system-defaults.jsonmacOS: /Library/Application Support/QwenCode/system-defaults.json パスは QWEN_CODE_SYSTEM_DEFAULTS_PATH 環境変数で上書きできます。 | システム全体のデフォルト設定を提供します。これらの設定は最も低い優先順位を持ち、ユーザー設定やプロジェクト設定、システム上書き設定によって上書きされることを想定しています。 |
| ユーザー設定ファイル | ~/.qwen/settings.json(~ はホームディレクトリ) | 現在のユーザーに対するすべての Qwen Code セッションに適用されます。 |
| プロジェクト設定ファイル | プロジェクトのルートディレクトリ内の .qwen/settings.json | 特定のプロジェクトから Qwen Code を実行している場合にのみ適用されます。プロジェクト設定はユーザー設定より優先されます。 |
| システム設定ファイル | Linux: /etc/qwen-code/settings.json Windows: C:\ProgramData\qwen-code\settings.json macOS: /Library/Application Support/QwenCode/settings.jsonパスは QWEN_CODE_SYSTEM_SETTINGS_PATH 環境変数で上書きできます。 | システム上のすべてのユーザーに対するすべての Qwen Code セッションに適用されます。システム設定はユーザー設定とプロジェクト設定より優先されます。企業のシステム管理者がユーザーの Qwen Code 設定を管理するのに役立ちます。 |
設定ファイルにおける環境変数について: settings.json ファイル内の文字列値では、$VAR_NAME または ${VAR_NAME} の構文を使って環境変数を参照できます。これらの変数は設定読み込み時に自動的に解決されます。たとえば、MY_API_TOKEN という環境変数がある場合、settings.json 内で "apiKey": "$MY_API_TOKEN" のように使用できます。
プロジェクト内の .qwen ディレクトリ
プロジェクト設定ファイルに加えて、プロジェクトの .qwen ディレクトリには、Qwen Code の操作に関連するその他のプロジェクト固有のファイルを含めることができます。例えば以下のものです。
- カスタムサンドボックスプロファイル (例:
.qwen/sandbox-macos-custom.sb、.qwen/sandbox.Dockerfile)。 .qwen/skills/配下の エージェントスキル (各スキルはSKILL.mdを含むディレクトリです)。
設定の移行
Qwen Code は、レガシーな設定を自動的に新しい形式に移行します。移行前には古い設定ファイルがバックアップされます。以下の設定は、否定形(disable*)から肯定形(enable*)の命名に変更されました。
| 古い設定 | 新しい設定 | 備考 |
|---|---|---|
disableAutoUpdate + disableUpdateNag | general.enableAutoUpdate | 単一の設定に統合 |
disableLoadingPhrases | ui.accessibility.enableLoadingPhrases | |
disableFuzzySearch | context.fileFiltering.enableFuzzySearch | |
disableCacheControl | model.generationConfig.enableCacheControl |
真偽値の反転: 移行時に、真偽値は反転されます(例:disableAutoUpdate: true は enableAutoUpdate: false になります)。
disableAutoUpdate と disableUpdateNag の統合ポリシー
両方のレガシー設定が異なる値で存在する場合、移行は以下のポリシーに従います:いずれかの disableAutoUpdate または disableUpdateNag が true の場合、enableAutoUpdate は false になります。
disableAutoUpdate | disableUpdateNag | 移行後の enableAutoUpdate |
|---|---|---|
false | false | true |
false | true | false |
true | false | false |
true | true | false |
settings.json で利用可能な設定
設定はカテゴリごとに整理されています。すべての設定は、settings.json ファイル内の対応するトップレベルカテゴリオブジェクト内に配置する必要があります。
general
| 設定 | 型 | 説明 | デフォルト |
|---|---|---|---|
general.preferredEditor | string | ファイルを開く際に使用する優先エディタ。 | undefined |
general.vimMode | boolean | Vim キーバインドを有効にします。 | false |
general.enableAutoUpdate | boolean | スタートアップ時に自動更新チェックとインストールを有効にします。 | true |
general.gitCoAuthor | boolean | Qwen Code 経由でコミットを作成する際、自動的に Co-authored-by トレーラーを Git コミットメッセージに追加します。 | true |
general.checkpointing.enabled | boolean | 復旧用のセッションチェックポイントを有効にします。 | false |
general.defaultFileEncoding | string | 新規ファイルのデフォルトエンコーディング。BOM なしの UTF-8 の場合は "utf-8" (デフォルト)、BOM ありの UTF-8 の場合は "utf-8-bom" を使用してください。BOM が必要なプロジェクトでのみ変更してください。 | "utf-8" |
output
| 設定 | 型 | 説明 | デフォルト | 使用可能な値 |
|---|---|---|---|---|
output.format | string | CLI 出力の形式。 | "text" | "text", "json" |
ui
| 設定 | 型 | 説明 | デフォルト |
|---|---|---|---|
ui.theme | 文字列 | UI のカラーテーマ。利用可能なオプションについては、テーマを参照してください。 | undefined |
ui.customThemes | オブジェクト | カスタムテーマ定義。 | {} |
ui.hideWindowTitle | 真偽値 | ウィンドウタイトルバーを非表示にします。 | false |
ui.hideTips | 真偽値 | UI 内の役立つヒントを非表示にします。 | false |
ui.hideBanner | 真偽値 | アプリケーションバナーを非表示にします。 | false |
ui.hideFooter | 真偽値 | UI からフッターを非表示にします。 | false |
ui.showMemoryUsage | 真偽値 | UI にメモリ使用量情報を表示します。 | false |
ui.showLineNumbers | 真偽値 | CLI 出力のコードブロックに行番号を表示します。 | true |
ui.showCitations | 真偽値 | チャットで生成されたテキストの引用情報を表示します。 | true |
enableWelcomeBack | 真偽値 | 会話履歴があるプロジェクトに戻ったときに、ようこそダイアログを表示します。有効にすると、Qwen Code は以前に生成されたプロジェクトサマリー (.qwen/PROJECT_SUMMARY.md) を持つプロジェクトに戻ってきたことを自動的に検出し、前の会話を続けるか新しく始めるかを選択できるダイアログを表示します。この機能は /summary コマンドと終了確認ダイアログと連携しています。 | true |
ui.accessibility.enableLoadingPhrases | 真偽値 | ロード時のフレーズを有効にします(アクセシビリティのために無効化できます)。 | true |
ui.accessibility.screenReader | 真偽値 | スクリーンリーダーモードを有効にし、スクリーンリーダーとの互換性を高めるために TUI を調整します。 | false |
ui.customWittyPhrases | 文字列の配列 | ロード状態中に表示するカスタムフレーズのリスト。指定された場合、CLI はデフォルトのフレーズの代わりにこれらのフレーズを順番に表示します。 | [] |
ide
| 設定 | 型 | 説明 | デフォルト |
|---|---|---|---|
ide.enabled | boolean | IDE統合モードを有効にする。 | false |
ide.hasSeenNudge | boolean | ユーザーがIDE統合の通知を既に表示したかどうか。 | false |
privacy
| 設定 | 型 | 説明 | デフォルト |
|---|---|---|---|
privacy.usageStatisticsEnabled | boolean | 使用状況統計の収集を有効にする。 | true |
model
| 設定 | 型 | 説明 | デフォルト |
|---|---|---|---|
model.name | 文字列 | 会話で使用する Qwen モデル。 | undefined |
model.maxSessionTurns | 数値 | セッション内で保持するユーザー/モデル/ツールの最大ターン数。-1 は無制限を意味します。 | -1 |
model.summarizeToolOutput | オブジェクト | ツール出力の要約を有効または無効にします。tokenBudget 設定を使用して、要約のトークン予算を指定できます。注: 現在サポートされているのは run_shell_command ツールのみです。例: {"run_shell_command": {"tokenBudget": 2000}} | undefined |
model.generationConfig | オブジェクト | 基盤となるコンテンツ生成器に渡される高度なオーバーライド。timeout、maxRetries、enableCacheControl、contextWindowSize(モデルのコンテキストウィンドウサイズを上書き)、customHeaders(APIリクエスト用のカスタムHTTPヘッダー)、extra_body(OpenAI互換APIリクエストのみの追加ボディパラメータ)などのリクエスト制御機能と、samplingParams 配下の微調整用ノブ(例: temperature、top_p、max_tokens)をサポートします。プロバイダのデフォルトに依存する場合は未設定のままにしてください。 | undefined |
model.chatCompression.contextPercentageThreshold | 数値 | モデルの総トークン制限に対するパーセンテージとして、チャット履歴圧縮のしきい値を設定します。これは自動圧縮と手動の /compress コマンドの両方に適用される 0 から 1 の値です。たとえば、値が 0.6 の場合、チャット履歴がトークン制限の60%を超えると圧縮がトリガーされます。完全に圧縮を無効にするには 0 を使用してください。 | 0.7 |
model.skipNextSpeakerCheck | 真偽値 | 次の発言者チェックをスキップします。 | false |
model.skipLoopDetection | 真偽値 | ループ検出チェックを無効にします。ループ検出はAI応答における無限ループを防ぎますが、正当なワークフローを中断する誤検知を生成することもあります。頻繁に誤検知によるループ検出の中断が発生する場合は、このオプションを有効にしてください。 | false |
model.skipStartupContext | 真偽値 | 各セッション開始時にスタートアップワークスペースコンテキスト(環境サマリーと確認メッセージ)を送信しないようにします。手動でコンテキストを提供したい場合や、起動時のトークン節約を望む場合に有効にしてください。 | false |
model.enableOpenAILogging | 真偽値 | デバッグおよび分析のためにOpenAI API呼び出しのログ記録を有効にします。有効にすると、APIリクエストとレスポンスがJSONファイルに記録されます。 | false |
model.openAILoggingDir | 文字列 | OpenAI APIログ用のカスタムディレクトリパス。指定しない場合、現在の作業ディレクトリの logs/openai がデフォルトになります。絶対パス、相対パス(現在の作業ディレクトリから解決)、~ 展開(ホームディレクトリ)をサポートします。 | undefined |
model.generationConfig の例:
{
"model": {
"generationConfig": {
"timeout": 60000,
"contextWindowSize": 128000,
"enableCacheControl": true,
"customHeaders": {
"X-Request-ID": "req-123",
"X-User-ID": "user-456"
},
"extra_body": {
"enable_thinking": true
},
"samplingParams": {
"temperature": 0.2,
"top_p": 0.8,
"max_tokens": 1024
}
}
}
}contextWindowSize:
選択したモデルのデフォルトコンテキストウィンドウサイズを上書きします。Qwen Code は、モデル名の一致に基づく組み込みデフォルト値と定数フォールバック値を使用してコンテキストウィンドウを決定します。プロバイダの実際のコンテキスト制限が Qwen Code のデフォルトと異なる場合に、この設定を使用してください。この値はリクエストごとのトークン制限ではなく、モデルの想定される最大コンテキスト容量を定義します。
customHeaders:
すべてのAPIリクエストにカスタムHTTPヘッダーを追加できます。これはリクエストトレース、モニタリング、APIゲートウェイルーティング、または異なるモデルで異なるヘッダーが必要な場合に便利です。modelProviders[].generationConfig.customHeaders で customHeaders が定義されている場合、それが直接使用されます。それ以外の場合は、model.generationConfig.customHeaders のヘッダーが使用されます。2つのレベル間でのマージは行われません。
extra_body フィールドを使用すると、APIに送信されるリクエストボディにカスタムパラメータを追加できます。これは標準の設定フィールドではカバーされていないプロバイダ固有のオプションに便利です。注: このフィールドは OpenAI 互換プロバイダ(openai、qwen-oauth)でのみサポートされています。Anthropic および Gemini プロバイダでは無視されます。 modelProviders[].generationConfig.extra_body で extra_body が定義されている場合、それが直接使用されます。それ以外の場合は、model.generationConfig.extra_body の値が使用されます。
model.openAILoggingDir の例:
"~/qwen-logs"-~/qwen-logsディレクトリにログを記録"./custom-logs"- 現在のディレクトリからの相対パス./custom-logsにログを記録"/tmp/openai-logs"- 絶対パス/tmp/openai-logsにログを記録
modelProviders
modelProviders を使用して、認証タイプごとのキュレーション済みモデルリストを宣言し、/model ピッカーで切り替えられるようにします。キーは有効な認証タイプ(openai、anthropic、gemini、vertex-ai など)である必要があります。各エントリには id が必要であり、必ず envKey を含める必要があります。また、オプションとして name、description、baseUrl、generationConfig を指定できます。認証情報は設定に永続化されることはありません。実行時に process.env[envKey] から読み込まれます。Qwen OAuth モデルはハードコードされており、上書きすることはできません。
例
{
"modelProviders": {
"openai": [
{
"id": "gpt-4o",
"name": "GPT-4o",
"envKey": "OPENAI_API_KEY",
"baseUrl": "https://api.openai.com/v1",
"generationConfig": {
"timeout": 60000,
"maxRetries": 3,
"customHeaders": {
"X-Model-Version": "v1.0",
"X-Request-Priority": "high"
},
"extra_body": {
"enable_thinking": true
},
"samplingParams": { "temperature": 0.2 }
}
}
],
"anthropic": [
{
"id": "claude-3-5-sonnet",
"envKey": "ANTHROPIC_API_KEY",
"baseUrl": "https://api.anthropic.com/v1"
}
],
"gemini": [
{
"id": "gemini-2.0-flash",
"name": "Gemini 2.0 Flash",
"envKey": "GEMINI_API_KEY",
"baseUrl": "https://generativelanguage.googleapis.com"
}
],
"vertex-ai": [
{
"id": "gemini-1.5-pro-vertex",
"envKey": "GOOGLE_API_KEY",
"baseUrl": "https://generativelanguage.googleapis.com"
}
]
}
}[!note]
/modelコマンドのみがデフォルト以外の認証タイプを公開します。Anthropic、Gemini、Vertex AI などはmodelProviders経由で定義する必要があります。意図的に/authコマンドには組み込みの Qwen OAuth および OpenAI フローのみが表示されます。
解決レイヤーとアトミック性
有効な auth/model/credential の値は、以下の優先順位(最初に存在するものが優先)に従ってフィールドごとに選択されます。--auth-type と --model を組み合わせて、プロバイダー項目を直接指定できます。これらの CLI フラグは他のレイヤーよりも先に実行されます。
| レイヤー (上位 → 下位) | authType | model | apiKey | baseUrl | apiKeyEnvKey | proxy |
|---|---|---|---|---|---|---|
| プログラムによるオーバーライド | /auth | /auth 入力 | /auth 入力 | /auth 入力 | — | — |
| モデルプロバイダー選択 | — | modelProvider.id | env[modelProvider.envKey] | modelProvider.baseUrl | modelProvider.envKey | — |
| CLI 引数 | --auth-type | --model | --openaiApiKey (またはプロバイダー固有の同等のもの) | --openaiBaseUrl (またはプロバイダー固有の同等のもの) | — | — |
| 環境変数 | — | プロバイダー固有のマッピング (例: OPENAI_MODEL) | プロバイダー固有のマッピング (例: OPENAI_API_KEY) | プロバイダー固有のマッピング (例: OPENAI_BASE_URL) | — | — |
設定 (settings.json) | security.auth.selectedType | model.name | security.auth.apiKey | security.auth.baseUrl | — | — |
| デフォルト / 計算値 | AuthType.QWEN_OAUTH にフォールバック | ビルトインデフォルト (OpenAI ⇒ qwen3-coder-plus) | — | — | — | 設定されていれば Config.getProxy() |
* CLI の認証フラグが存在する場合、設定をオーバーライドします。それ以外の場合、security.auth.selectedType または暗黙的なデフォルトが認証タイプを決定します。Qwen OAuth と OpenAI は追加設定なしで表示される唯一の認証タイプです。
モデルプロバイダー由来の値はアトミックに適用されます:一度プロバイダーモデルがアクティブになると、手動で /auth 経由で資格情報をクリアするまで、そのプロバイダーが定義するすべてのフィールドは下位レイヤーから保護されます。最終的な generationConfig はすべてのレイヤーにわたる投影であり、下位レイヤーは上位レイヤーが残したギャップのみを埋め、プロバイダーレイヤーは貫通できません。
modelProviders のマージ戦略は置換 (REPLACE) です:プロジェクト設定の modelProviders 全体が、ユーザー設定の対応セクションをマージではなく置き換えます。
生成設定のレイヤリング
generationConfig のフィールドごとの優先順位:
- プログラムによる上書き(例:実行時
/model、/auth変更) modelProviders[authType][].generationConfigsettings.model.generationConfig- コンテンツ生成器のデフォルト値(OpenAI では
getDefaultGenerationConfig、Gemini ではgetParameterValueなど)
samplingParams、customHeaders、および extra_body はすべてアトミックに扱われます。プロバイダーの値がオブジェクト全体を置き換えます。modelProviders[].generationConfig がこれらのフィールドを定義している場合、それらが直接使用されます。そうでない場合は、model.generationConfig の値が使用されます。プロバイダーとグローバル設定レベル間でのマージは行われません。コンテンツ生成器からのデフォルト値は最後に適用されるため、各プロバイダーは調整されたベースラインを維持します。
選択の永続性と推奨事項
[!important] 可能な限り、ユーザー範囲の
~/.qwen/settings.jsonでmodelProvidersを定義し、任意のスコープに認証情報の上書きを永続化しないようにしてください。プロバイダーカタログをユーザー設定に保持することで、プロジェクトとユーザーのスコープ間でのマージ/上書きの競合を防ぎ、/authおよび/modelの更新が常に一貫したスコープに書き戻されるようにします。
/modelおよび/authは、model.name(該当する場合)およびsecurity.auth.selectedTypeを、既にmodelProvidersを定義している最も近い書き込み可能なスコープに永続化します。それ以外の場合は、ユーザー範囲にフォールバックします。これにより、ワークスペース/ユーザーのファイルがアクティブなプロバイダーカタログと同期されます。modelProvidersがない場合、リゾルバーは CLI/env/設定レイヤーを混在させます。これは単一プロバイダー構成では問題ありませんが、頻繁に切り替える場合には煩雑になります。マルチモデルのワークフローが一般的な場合は、常にアトミックでソース属性付きかつデバッグ可能な状態を保つために、プロバイダーカタログを定義してください。
context
| 設定 | 型 | 説明 | デフォルト |
|---|---|---|---|
context.fileName | 文字列または文字列の配列 | コンテキストファイルの名前。 | undefined |
context.importFormat | 文字列 | メモリをインポートする際に使用する形式。 | undefined |
context.includeDirectories | 配列 | ワークスペースコンテキストに含める追加ディレクトリ。ワークスペースコンテキストに含める追加の絶対パスまたは相対パスの配列を指定します。存在しないディレクトリはデフォルトで警告とともにスキップされます。パスには ~ を使用してユーザーのホームディレクトリを参照できます。この設定は --include-directories コマンドラインフラグと組み合わせて使用できます。 | [] |
context.loadFromIncludeDirectories | 真偽値 | /memory refresh コマンドの動作を制御します。true に設定されている場合、QWEN.md ファイルは追加されたすべてのディレクトリから読み込まれるべきです。false に設定されている場合、QWEN.md は現在のディレクトリからのみ読み込まれるべきです。 | false |
context.fileFiltering.respectGitIgnore | 真偽値 | 検索時に .gitignore ファイルを尊重するかどうか。 | true |
context.fileFiltering.respectQwenIgnore | 真偽値 | 検索時に .qwenignore ファイルを尊重するかどうか。 | true |
context.fileFiltering.enableRecursiveFileSearch | 真偽値 | プロンプト内の @ 接頭辞を補完する際、現在のツリー配下でファイル名を再帰的に検索することを有効にするかどうか。 | true |
context.fileFiltering.enableFuzzySearch | 真偽値 | true の場合、ファイル検索時にファジー検索機能を有効にします。多数のファイルを持つプロジェクトでのパフォーマンスを向上させるために false に設定してください。 | true |
ファイル検索のパフォーマンスに関するトラブルシューティング
ファイル検索(例:@ による補完)でパフォーマンスの問題が発生している場合、特に多数のファイルを含むプロジェクトで問題が起きている場合は、以下の対応を推奨順に試してみてください。
.qwenignoreを使用する: プロジェクトルートに.qwenignoreファイルを作成し、参照する必要がない大量のファイルを含むディレクトリ(例:ビルド成果物、ログ、node_modulesなど)を除外します。検索対象となるファイル数を減らすことは、パフォーマンスを改善する最も効果的な方法です。- あいまい検索を無効にする: ファイルの無視だけでは不十分な場合、
settings.jsonファイルでenableFuzzySearchをfalseに設定して、あいまい検索を無効にできます。これにより、よりシンプルで非あいまいなマッチングアルゴリズムが使用され、高速になることがあります。 - 再帰的ファイル検索を無効にする: 最後の手段として、
enableRecursiveFileSearchをfalseに設定することで、再帰的ファイル検索を完全に無効にできます。これはプロジェクトの再帰的な走査を行わないため、最も高速なオプションとなります。ただし、@補完を使用する際にファイルのフルパスを入力する必要があります。
ツール
| 設定 | 型 | 説明 | 既定値 | 備考 |
|---|---|---|---|---|
tools.sandbox | boolean または文字列 | サンドボックス実行環境(boolean またはパス文字列を指定可能)。 | undefined | |
tools.shell.enableInteractiveShell | boolean | 対話型シェル体験のために node-pty を使用します。フォールバックとして child_process が引き続き適用されます。 | false | |
tools.core | 文字列の配列 | 組み込みツールのセットをホワイトリストで制限するために使用できます。run_shell_command ツールのように、それをサポートするツールに対してコマンド固有の制限を指定することもできます。たとえば、"tools.core": ["run_shell_command(ls -l)"] とすると、ls -l コマンドのみの実行が許可されます。 | undefined | |
tools.exclude | 文字列の配列 | 検出から除外するツール名。run_shell_command ツールのように、それをサポートするツールに対してコマンド固有の制限を指定することもできます。たとえば、"tools.exclude": ["run_shell_command(rm -rf)"] とすると、rm -rf コマンドがブロックされます。セキュリティノート: run_shell_command の tools.exclude におけるコマンド固有の制限は単純な文字列一致に基づいており、簡単にバイパスできます。この機能はセキュリティメカニズムではありませんので、信頼できないコードの安全な実行には依存しないでください。実行可能なコマンドを明示的に選択するには tools.core の使用を推奨します。 | undefined | |
tools.allowed | 文字列の配列 | 確認ダイアログをバイパスするツール名のリスト。頻繁に使用し、信頼できるツールに便利です。たとえば、["run_shell_command(git)", "run_shell_command(npm test)"] とすると、任意の git および npm test コマンド実行時の確認ダイアログがスキップされます。 | undefined | |
tools.approvalMode | 文字列 | ツール使用時の既定の承認モードを設定します。 | default | 使用可能な値: plan(分析のみ、ファイル変更やコマンド実行を行わない)、default(ファイル編集やシェルコマンド実行前に承認が必要)、auto-edit(ファイル編集を自動承認)、yolo(すべてのツール呼び出しを自動承認) |
tools.discoveryCommand | 文字列 | ツール検出用に実行するコマンド。 | undefined | |
tools.callCommand | 文字列 | tools.discoveryCommand を使用して検出された特定のツールを呼び出すためのカスタムシェルコマンドを定義します。シェルコマンドは以下の条件を満たす必要があります:関数宣言 と完全に同じ関数 name を最初のコマンドライン引数として受け取る必要があります。functionCall.args と同様に、関数引数を JSON 形式で stdin から読み込む必要があります。functionResponse.response.content と同様に、関数出力を JSON 形式で stdout に出力する必要があります。 | undefined | |
tools.useRipgrep | boolean | フォールバック実装の代わりに ripgrep を使用してファイル内容を検索します。高速な検索パフォーマンスを提供します。 | true | |
tools.useBuiltinRipgrep | boolean | バンドルされた ripgrep バイナリを使用します。false に設定した場合、システムレベルの rg コマンドが代わりに使用されます。この設定は tools.useRipgrep が true の場合にのみ有効です。 | true | |
tools.enableToolOutputTruncation | boolean | 大きなツール出力の切り捨てを有効にします。 | true | 再起動が必要: はい |
tools.truncateToolOutputThreshold | 数値 | ツール出力がこれより多くの文字数の場合に切り捨てます。シェル、Grep、Glob、ReadFile、ReadManyFiles ツールに適用されます。 | 25000 | 再起動が必要: はい |
tools.truncateToolOutputLines | 数値 | ツール出力切り捨て時に保持される最大行数またはエントリ数。シェル、Grep、Glob、ReadFile、ReadManyFiles ツールに適用されます。 | 1000 | 再起動が必要: はい |
mcp
| 設定 | 型 | 説明 | 既定値 |
|---|---|---|---|
mcp.serverCommand | 文字列 | MCP サーバーを起動するためのコマンド。 | undefined |
mcp.allowed | 文字列の配列 | 許可する MCP サーバーの許可リスト。モデルで利用可能にする MCP サーバー名のリストを指定できます。これを使用して、接続する MCP サーバーのセットを制限できます。ただし、--allowed-mcp-server-names が設定されている場合は無視されます。 | undefined |
mcp.excluded | 文字列の配列 | 除外する MCP サーバーの拒否リスト。mcp.excluded と mcp.allowed の両方にリストされているサーバーは除外されます。ただし、--allowed-mcp-server-names が設定されている場合は無視されます。 | undefined |
MCP サーバーに関するセキュリティノート: これらの設定では、変更可能な MCP サーバー名に対して単純な文字列一致を使用します。ユーザーがこの制限を回避できないようにシステム管理者として設定する場合は、システム設定レベルで mcpServers を構成し、ユーザー自身が任意の MCP サーバーを構成できないようにすることを検討してください。これは完全なセキュリティメカニズムとしては使用しないでください。
lsp
[!warning] 実験的機能: LSP サポートは現在実験的なものであり、デフォルトでは無効になっています。
--experimental-lspコマンドラインフラグを使用して有効にしてください。
Language Server Protocol (LSP) は、定義への移動、参照の検索、診断などのコードインテリジェンス機能を提供します。
LSP サーバーの設定は、プロジェクトのルートディレクトリにある .lsp.json ファイルを通じて行い、settings.json ではありません。設定の詳細と例については、LSP ドキュメント を参照してください。
セキュリティ
| 設定 | 型 | 説明 | デフォルト |
|---|---|---|---|
security.folderTrust.enabled | boolean | フォルダ信頼が有効かどうかを追跡する設定です。 | false |
security.auth.selectedType | string | 現在選択されている認証タイプです。 | undefined |
security.auth.enforcedType | string | 必須の認証タイプ(エンタープライズ向けに便利です)。 | undefined |
security.auth.useExternal | boolean | 外部認証フローを使用するかどうか。 | undefined |
advanced
| 設定 | 型 | 説明 | デフォルト |
|---|---|---|---|
advanced.autoConfigureMemory | boolean | Node.js のメモリ制限を自動的に設定します。 | false |
advanced.dnsResolutionOrder | string | DNS 解決順序。 | undefined |
advanced.excludedEnvVars | array of strings | プロジェクトコンテキストから除外する環境変数。プロジェクトの .env ファイルから読み込まれるべきでない環境変数を指定します。これにより、プロジェクト固有の環境変数(例: DEBUG=true)が CLI の動作に干渉するのを防ぎます。.qwen/.env ファイルからの変数は常に除外されません。 | ["DEBUG","DEBUG_MODE"] |
advanced.bugCommand | object | バグレポートコマンドの設定。/bug コマンドのデフォルト URL を上書きします。プロパティ: urlTemplate (string): {title} および {info} プレースホルダーを含むことができる URL。例: "bugCommand": { "urlTemplate": "https://bug.example.com/new?title={title}&info={info}" } | undefined |
advanced.tavilyApiKey | string | Tavily ウェブ検索サービス用の API キー。web_search ツール機能を有効にするために使用されます。 | undefined |
advanced.tavilyApiKey についての注意: これはレガシーな設定形式です。Qwen OAuth ユーザーの場合、DashScope プロバイダーは設定なしで自動的に利用可能です。その他の認証タイプでは、新しい webSearch 設定形式を使用して Tavily または Google プロバイダーを設定してください。
mcpServers
カスタムツールの検出と使用のために、1つ以上のモデルコンテキストプロトコル(MCP)サーバーへの接続を設定します。Qwen Code は、各設定された MCP サーバーに接続を試み、利用可能なツールを検出します。複数の MCP サーバーが同じ名前のツールを公開している場合、競合を避けるために、設定で定義したサーバーエイリアスがツール名にプレフィックスとして付加されます(例:serverAlias__actualToolName)。互換性のために、システムが MCP ツール定義から特定のスキーマプロパティを削除する可能性があることに注意してください。少なくとも command、url、httpUrl のいずれか1つを指定する必要があります。複数指定された場合、優先順位は httpUrl、次に url、最後に command となります。
| プロパティ | 型 | 説明 | オプション |
|---|---|---|---|
mcpServers.<SERVER_NAME>.command | 文字列 | 標準入出力を介して MCP サーバーを起動するためのコマンド。 | はい |
mcpServers.<SERVER_NAME>.args | 文字列の配列 | コマンドに渡す引数。 | はい |
mcpServers.<SERVER_NAME>.env | オブジェクト | サーバープロセスに対して設定する環境変数。 | はい |
mcpServers.<SERVER_NAME>.cwd | 文字列 | サーバーを起動する作業ディレクトリ。 | はい |
mcpServers.<SERVER_NAME>.url | 文字列 | 通信にサーバー送信イベント(SSE)を使用する MCP サーバーの URL。 | はい |
mcpServers.<SERVER_NAME>.httpUrl | 文字列 | 通信にストリーム可能な HTTP を使用する MCP サーバーの URL。 | はい |
mcpServers.<SERVER_NAME>.headers | オブジェクト | url または httpUrl へのリクエスト時に送信する HTTP ヘッダーのマップ。 | はい |
mcpServers.<SERVER_NAME>.timeout | 数値 | この MCP サーバーに対するリクエストのタイムアウト(ミリ秒単位)。 | はい |
mcpServers.<SERVER_NAME>.trust | 真偽値 | このサーバーを信頼し、すべてのツール呼び出し確認をバイパスします。 | はい |
mcpServers.<SERVER_NAME>.description | 文字列 | 表示目的で使用される可能性のあるサーバーの簡単な説明。 | はい |
mcpServers.<SERVER_NAME>.includeTools | 文字列の配列 | この MCP サーバーから含めるツール名のリスト。指定された場合、ここに記載されたツールのみがこのサーバーから利用可能になります(ホワイトリスト方式)。指定されない場合、デフォルトですべてのサーバーツールが有効になります。 | はい |
mcpServers.<SERVER_NAME>.excludeTools | 文字列の配列 | この MCP サーバーから除外するツール名のリスト。ここに記載されたツールは、サーバーによって公開されていてもモデルでは利用できません。注: excludeTools は includeTools よりも優先されます。ツールが両方のリストにある場合、除外されます。 | はい |
テレメトリ
Qwen Code のロギングとメトリクス収集を設定します。詳細については、テレメトリ を参照してください。
| 設定 | 型 | 説明 | デフォルト値 |
|---|---|---|---|
telemetry.enabled | boolean | テレメトリが有効かどうか。 | |
telemetry.target | string | 収集したテレメトリの送信先。サポートされる値は local および gcp です。 | |
telemetry.otlpEndpoint | string | OTLP エクスポーターのエンドポイント。 | |
telemetry.otlpProtocol | string | OTLP エクスポーターのプロトコル (grpc または http)。 | |
telemetry.logPrompts | boolean | ログにユーザーのプロンプト内容を含めるかどうか。 | |
telemetry.outfile | string | target が local の場合にテレメトリを書き出すファイル。 | |
telemetry.useCollector | boolean | 外部の OTLP コレクターを使用するかどうか。 |
settings.json の例
以下は、v0.3.0 で追加されたネスト構造を持つ settings.json ファイルの例です。
{
"general": {
"vimMode": true,
"preferredEditor": "code"
},
"ui": {
"theme": "GitHub",
"hideTips": false,
"customWittyPhrases": [
"You forget a thousand things every day. Make sure this is one of 'em",
"Connecting to AGI"
]
},
"tools": {
"approvalMode": "yolo",
"sandbox": "docker",
"discoveryCommand": "bin/get_tools",
"callCommand": "bin/call_tool",
"exclude": ["write_file"]
},
"mcpServers": {
"mainServer": {
"command": "bin/mcp_server.py"
},
"anotherServer": {
"command": "node",
"args": ["mcp_server.js", "--verbose"]
}
},
"telemetry": {
"enabled": true,
"target": "local",
"otlpEndpoint": "http://localhost:4317",
"logPrompts": true
},
"privacy": {
"usageStatisticsEnabled": true
},
"model": {
"name": "qwen3-coder-plus",
"maxSessionTurns": 10,
"enableOpenAILogging": false,
"openAILoggingDir": "~/qwen-logs",
"summarizeToolOutput": {
"run_shell_command": {
"tokenBudget": 100
}
}
},
"context": {
"fileName": ["CONTEXT.md", "QWEN.md"],
"includeDirectories": ["path/to/dir1", "~/path/to/dir2", "../path/to/dir3"],
"loadFromIncludeDirectories": true,
"fileFiltering": {
"respectGitIgnore": false
}
},
"advanced": {
"excludedEnvVars": ["DEBUG", "DEBUG_MODE", "NODE_ENV"]
}
}シェル履歴
CLI は、実行したシェルコマンドの履歴を保持します。複数のプロジェクト間での競合を避けるため、この履歴はユーザーのホームフォルダ内のプロジェクト固有のディレクトリに保存されます。
- 場所:
~/.qwen/tmp/<project_hash>/shell_history<project_hash>は、プロジェクトのルートパスから生成される一意の識別子です。- 履歴は
shell_historyという名前のファイルに保存されます。
環境変数と .env ファイル
環境変数は、特に機密情報(トークンなど)や環境間で変更される可能性のある設定をアプリケーションに渡す一般的な方法です。
Qwen Code は .env ファイルから自動的に環境変数を読み込むことができます。
認証関連の変数(OPENAI_* など)および推奨される .qwen/.env の利用方法については、認証 を参照してください。
環境変数の除外: 一部の環境変数(DEBUG や DEBUG_MODE など)は、CLI の動作への干渉を防ぐため、プロジェクトの .env ファイルからデフォルトで自動的に除外されます。.qwen/.env ファイルからの変数は一切除外されません。この動作は、settings.json ファイル内の advanced.excludedEnvVars 設定を使用してカスタマイズできます。
環境変数テーブル
| 変数 | 説明 | 備考 |
|---|---|---|
GEMINI_TELEMETRY_ENABLED | テレメトリを有効にするには true または 1 を設定します。他の値は無効化として扱われます。 | telemetry.enabled 設定を上書きします。 |
GEMINI_TELEMETRY_TARGET | テレメトリのターゲット(local または gcp)を設定します。 | telemetry.target 設定を上書きします。 |
GEMINI_TELEMETRY_OTLP_ENDPOINT | テレメトリ用のOTLPエンドポイントを設定します。 | telemetry.otlpEndpoint 設定を上書きします。 |
GEMINI_TELEMETRY_OTLP_PROTOCOL | OTLPプロトコル(grpc または http)を設定します。 | telemetry.otlpProtocol 設定を上書きします。 |
GEMINI_TELEMETRY_LOG_PROMPTS | ユーザーのプロンプト記録を有効または無効にするには true または 1 を設定します。他の値は無効化として扱われます。 | telemetry.logPrompts 設定を上書きします。 |
GEMINI_TELEMETRY_OUTFILE | ターゲットが local の場合にテレメトリを書き出すファイルパスを設定します。 | telemetry.outfile 設定を上書きします。 |
GEMINI_TELEMETRY_USE_COLLECTOR | 外部OTLPコレクターを使用するかどうかを有効または無効にするには true または 1 を設定します。他の値は無効化として扱われます。 | telemetry.useCollector 設定を上書きします。 |
GEMINI_SANDBOX | settings.json 内の sandbox 設定の代替です。 | true、false、docker、podman、またはカスタムコマンド文字列を受け入れます。 |
SEATBELT_PROFILE | (macOS固有)macOS上のSeatbelt(sandbox-exec)プロファイルを切り替えます。 | permissive-open:(デフォルト)プロジェクトフォルダ(およびいくつかの他のフォルダ、詳細は packages/cli/src/utils/sandbox-macos-permissive-open.sb を参照)への書き込みを制限しますが、他の操作を許可します。strict: デフォルトで操作を拒否する厳格なプロファイルを使用します。<profile_name>: カスタムプロファイルを使用します。カスタムプロファイルを定義するには、プロジェクトの .qwen/ ディレクトリ内に sandbox-macos-<profile_name>.sb という名前のファイルを作成してください(例:my-project/.qwen/sandbox-macos-custom.sb)。 |
DEBUG または DEBUG_MODE | (基盤ライブラリやCLI自体によってよく使用される)詳細なデバッグログを有効にするには true または 1 を設定します。トラブルシューティングに役立ちます。 | 注: これらの変数はCLIの動作への干渉を防ぐため、デフォルトでプロジェクトの .env ファイルから自動的に除外されます。Qwen Code専用にこれらを設定する必要がある場合は .qwen/.env ファイルを使用してください。 |
NO_COLOR | 任意の値を設定してCLIでのすべての色付き出力を無効にします。 | |
CLI_TITLE | CLIのタイトルをカスタマイズする文字列を設定します。 | |
CODE_ASSIST_ENDPOINT | コードアシストサーバーのエンドポイントを指定します。 | 開発とテストに便利です。 |
TAVILY_API_KEY | Tavilyウェブ検索サービス用のAPIキーです。 | web_search ツール機能を有効にするために使用されます。例: export TAVILY_API_KEY="tvly-your-api-key-here" |
コマンドライン引数
CLI 実行時に直接渡された引数は、その特定のセッションに対して他の設定を上書きできます。
コマンドライン引数テーブル
| 引数 | エイリアス | 説明 | 可能な値 | 備考 |
|---|---|---|---|---|
--model | -m | このセッションで使用する Qwen モデルを指定します。 | モデル名 | 例: npm start -- --model qwen3-coder-plus |
--prompt | -p | コマンドに直接プロンプトを渡すために使用されます。これにより、Qwen Code が非対話モードで起動します。 | プロンプトテキスト | スクリプトの例では、構造化された出力を得るために --output-format json フラグを使用してください。 |
--prompt-interactive | -i | 提供されたプロンプトを初期入力として対話セッションを開始します。 | プロンプトテキスト | プロンプトは対話セッション内で処理され、その前に処理されることはありません。標準入力からのパイプ入力時は使用できません。例: qwen -i "explain this code" |
--output-format | -o | 非対話モードでの CLI 出力形式を指定します。 | text, json, stream-json | text: (デフォルト) 標準的な人間が読める出力です。json: 実行終了時に出力される機械が読める JSON 出力です。stream-json: 実行中に発生する順にストリーミング JSON メッセージが出力されます。構造化出力やスクリプティングには、--output-format json または --output-format stream-json フラグを使用してください。詳細情報は ヘッドレスモード を参照してください。 |
--input-format | 標準入力から消費される形式を指定します。 | text, stream-json | text: (デフォルト) 標準テキスト入力 (stdin またはコマンドライン引数)。stream-json: 双方向通信のための stdin 経由 JSON メッセージプロトコル。要件: --input-format stream-json には --output-format stream-json の設定が必要です。stream-json 使用時、stdin はプロトコルメッセージ用に予約されます。詳細情報は ヘッドレスモード を参照してください。 | |
--include-partial-messages | stream-json 出力形式使用時に、部分的なアシスタントメッセージを含めます。有効化すると、ストリーミング中に発生する順にストリームイベント (message_start、content_block_delta など) を出力します。 | デフォルト: false。要件: --output-format stream-json の設定が必要です。ストリームイベントの詳細情報は ヘッドレスモード を参照してください。 | ||
--sandbox | -s | このセッションのサンドボックスモードを有効にします。 | ||
--sandbox-image | サンドボックスイメージ URI を設定します。 | |||
--debug | -d | このセッションのデバッグモードを有効にし、より詳細な出力を提供します。 | ||
--all-files | -a | 設定されている場合、現在のディレクトリ内のすべてのファイルを再帰的に含め、プロンプトのコンテキストとして使用します。 | ||
--help | -h | コマンドライン引数に関するヘルプ情報を表示します。 | ||
--show-memory-usage | 現在のメモリ使用量を表示します。 | |||
--yolo | YOLO モードを有効にし、すべてのツール呼び出しを自動承認します。 | |||
--approval-mode | ツール呼び出しの承認モードを設定します。 | plan, default, auto-edit, yolo | サポートされるモード: plan: 分析のみ—ファイルの変更やコマンドの実行を行いません。default: ファイル編集やシェルコマンドの承認が必要です (デフォルト動作)。auto-edit: 他のツール呼び出しのプロンプト中、編集ツール (edit、write_file) は自動承認されます。yolo: すべてのツール呼び出しを自動承認します (--yolo と同等)。--yolo とは同時に使用できません。新しい統一アプローチとして --yolo の代わりに --approval-mode=yolo を使用してください。例: qwen --approval-mode auto-edit承認モード について詳しく見る。 | |
--allowed-tools | 確認ダイアログをバイパスするツール名のカンマ区切りリストです。 | ツール名 | 例: qwen --allowed-tools "Shell(git status)" | |
--telemetry | テレメトリを有効にします。 | |||
--telemetry-target | テレメトリターゲットを設定します。 | 詳細情報は テレメトリ を参照してください。 | ||
--telemetry-otlp-endpoint | テレメトリの OTLP エンドポイントを設定します。 | 詳細情報は テレメトリ を参照してください。 | ||
--telemetry-otlp-protocol | テレメトリの OTLP プロトコル (grpc または http) を設定します。 | デフォルトは grpc です。詳細情報は テレメトリ を参照してください。 | ||
--telemetry-log-prompts | テレメトリ用のプロンプトログ記録を有効にします。 | 詳細情報は テレメトリ を参照してください。 | ||
--checkpointing | チェックポイント機能を有効にします。 | |||
--acp | ACP モード (エージェントクライアントプロトコル) を有効にします。Zed のような IDE/エディター統合に便利です。 | 安定版。非推奨の --experimental-acp フラグを置き換えます。 | ||
--experimental-lsp | コードインテリジェンス (定義への移動、参照の検索、診断など) のための実験的 LSP (言語サーバープロトコル) 機能を有効にします。 | 実験的機能。言語サーバーのインストールが必要です。 | ||
--extensions | -e | セッションで使用する拡張機能のリストを指定します。 | 拡張機能名 | 指定されていない場合、利用可能なすべての拡張機能が使用されます。qwen -e none という特殊な用語を使用して、すべての拡張機能を無効化できます。例: qwen -e my-extension -e my-other-extension |
--list-extensions | -l | 利用可能なすべての拡張機能を一覧表示して終了します。 | ||
--proxy | CLI のプロキシを設定します。 | プロキシ URL | 例: --proxy http://localhost:7890。 | |
--include-directories | マルチディレクトリサポートのためにワークスペースに追加ディレクトリを含めます。 | ディレクトリパス | 複数回指定するか、カンマ区切りの値として指定できます。最大 5 つのディレクトリを追加できます。例: --include-directories /path/to/project1,/path/to/project2 または --include-directories /path/to/project1 --include-directories /path/to/project2 | |
--screen-reader | スクリーンリーダーモードを有効にし、TUI を調整してスクリーンリーダーとの互換性を向上させます。 | |||
--version | CLI のバージョンを表示します。 | |||
--openai-logging | デバッグおよび分析のために OpenAI API 呼び出しのログ記録を有効にします。 | このフラグは settings.json 内の enableOpenAILogging 設定を上書きします。 | ||
--openai-logging-dir | OpenAI API ログ用のカスタムディレクトリパスを設定します。 | ディレクトリパス | このフラグは settings.json 内の openAILoggingDir 設定を上書きします。絶対パス、相対パス、および ~ 展開をサポートします。例: qwen --openai-logging-dir "~/qwen-logs" --openai-logging | |
--tavily-api-key | このセッションのウェブ検索機能用に Tavily API キーを設定します。 | API キー | 例: qwen --tavily-api-key tvly-your-api-key-here |
コンテキストファイル(階層的指示コンテキスト)
CLIの_動作_に対する厳密な設定ではありませんが、コンテキストファイル(デフォルトはQWEN.mdで、context.fileName設定で変更可能)は、指示コンテキスト(「メモリ」とも呼ばれます)を設定するために不可欠です。この強力な機能により、プロジェクト固有の指示、コーディングスタイルガイド、または関連する背景情報をAIに提供でき、応答をニーズにより適切かつ正確なものにできます。CLIには、読み込まれたコンテキストファイル数をフッターに表示するインジケーターなどのUI要素が含まれており、アクティブなコンテキストについて常に把握できます。
- 目的: これらのMarkdownファイルには、対話中にQwenモデルに認識させたい指示、ガイドライン、またはコンテキストが含まれています。システムはこの指示コンテキストを階層的に管理するように設計されています。
コンテキストファイルの例(例:QWEN.md)
以下は、TypeScriptプロジェクトのルートに配置されるコンテキストファイルに含まれる内容の概念的な例です:
# プロジェクト: 私の素晴らしいTypeScriptライブラリ
## 全般的な指示:
- 新しいTypeScriptコードを生成する際は、既存のコーディングスタイルに従ってください。
- 新しい関数とクラスにはすべてJSDocコメントを付けてください。
- 適切な場面では関数型プログラミングパラダイムを優先してください。
- すべてのコードはTypeScript 5.0およびNode.js 20+と互換性を持つ必要があります。
## コーディングスタイル:
- インデントには2スペースを使用してください。
- インターフェース名には接頭辞として`I`を使用してください(例:`IUserService`)。
- プライベートなクラスメンバーにはアンダースコア(`_`)を接頭辞として付けてください。
- 常に厳密等価演算子(`===`および`!==`)を使用してください。
## 特定のコンポーネント: `src/api/client.ts`
- このファイルはすべてのアウトバウンドAPIリクエストを処理します。
- 新しいAPI呼び出し関数を追加する際は、堅牢なエラーハンドリングとログ出力を含めるようにしてください。
- すべてのGETリクエストには既存の`fetchWithRetry`ユーティリティを使用してください。依存関係について:
- 新しい外部依存関係は、絶対に必要な場合を除いて導入しないでください。
- 新しい依存関係が必要な場合は、その理由を明記してください。
この例は、プロジェクト全体のコンテキストや特定のコーディング規約、特定のファイルやコンポーネントに関するメモを提供する方法を示しています。関連性が高く正確なコンテキストファイルであればあるほど、AIはより適切に支援できます。プロジェクト固有のコンテキストファイルは、規約やコンテキストを確立するために強く推奨されます。
- **階層的な読み込みと優先順位:** CLIは、複数の場所からコンテキストファイル(例: `QWEN.md`)を読み込むことで階層的なメモリシステムを実装しています。このリスト内で下にあるファイル(より具体的なファイル)の内容は、通常上にあるファイル(より一般的なファイル)の内容を上書きまたは補完します。正確な連結順序と最終的なコンテキストは `/memory show` コマンドを使用して確認できます。典型的な読み込み順序は以下の通りです:
1. **グローバルコンテキストファイル:**
- 場所: `~/.qwen/<設定されたコンテキストファイル名>`(例: ユーザーホームディレクトリ内の `~/.qwen/QWEN.md`)。
- 範囲: すべてのプロジェクトに対するデフォルトの指示を提供します。
2. **プロジェクトルートおよび祖先ディレクトリのコンテキストファイル:**
- 場所: CLIは、現在の作業ディレクトリから開始し、プロジェクトルート(`.git` フォルダで識別される)またはホームディレクトリまでの各親ディレクトリ内で設定されたコンテキストファイルを検索します。
- 範囲: プロジェクト全体またはその重要な部分に関連するコンテキストを提供します。
- **連結とUI表示:** 見つかったすべてのコンテキストファイルの内容は連結され(出所とパスを示すセパレータ付き)、システムプロンプトの一部として提供されます。CLIフッターには読み込まれたコンテキストファイルの数が表示され、アクティブな指示用コンテキストについての視覚的ヒントを提供します。
- **コンテンツのインポート:** `@path/to/file.md` 構文を使用して他のMarkdownファイルをインポートすることで、コンテキストファイルをモジュール化できます。詳細については、[メモリインポートプロセッサのドキュメント](../configuration/memory) を参照してください。
- **メモリ管理コマンド:**
- `/memory refresh` を使用して、すべての設定された場所からすべてのコンテキストファイルを強制的に再スキャンおよび再読み込みします。これにより、AIの指示用コンテキストが更新されます。
- `/memory show` を使用して、現在読み込まれている結合された指示用コンテキストを表示し、AIが使用している階層構造と内容を確認できます。
- `/memory` コマンドとそのサブコマンド(`show` および `refresh`)の詳細については、[コマンドドキュメント](../features/commands) を参照してください。
これらの設定レイヤーとコンテキストファイルの階層的な性質を理解し活用することで、効果的にAIのメモリを管理し、Qwen Codeの応答を特定のニーズやプロジェクトに合わせて調整できます。
## サンドボックス
Qwen Code は、シェルコマンドやファイルの変更など、潜在的に安全でない操作をサンドボックス化された環境内で実行して、システムを保護できます。
[サンドボックス](../features/sandbox) はデフォルトでは無効になっていますが、以下の方法で有効にできます:
- `--sandbox` または `-s` フラグを使用する。
- `GEMINI_SANDBOX` 環境変数を設定する。
- `--yolo` または `--approval-mode=yolo` を使用している場合、デフォルトでサンドボックスが有効になります。
デフォルトでは、事前に構築された `qwen-code-sandbox` Docker イメージが使用されます。
プロジェクト固有のサンドボックス化が必要な場合は、プロジェクトのルートディレクトリに `.qwen/sandbox.Dockerfile` としてカスタム Dockerfile を作成できます。この Dockerfile はベースのサンドボックスイメージに基づくことができます:
FROM qwen-code-sandbox
ここにカスタムの依存関係や設定を追加してください
例:
RUN apt-get update && apt-get install -y some-package
COPY ./my-config /app/my-config
`.qwen/sandbox.Dockerfile` が存在する場合、Qwen Code を実行する際に `BUILD_SANDBOX` 環境変数を使用して、カスタムサンドボックスイメージを自動的にビルドできます。
BUILD_SANDBOX=1 qwen -s
## 使用状況統計
Qwen Code の改善を支援するため、匿名化された使用状況統計を収集しています。このデータは、CLI の使用方法を理解し、一般的な問題を特定し、新機能の優先順位を決定するために役立ちます。
**収集する情報:**
- **ツール呼び出し:** 呼び出されたツールの名前、成功または失敗の結果、実行に要した時間を記録します。ツールに渡された引数や、それらが返すデータは収集しません。
- **API リクエスト:** 各リクエストで使用されたモデル、リクエストの継続時間、成功したかどうかを記録します。プロンプトやレスポンスの内容は収集しません。
- **セッション情報:** 有効化されたツールや承認モードなどの CLI の構成に関する情報を収集します。
**収集しない情報:**
- **個人を識別可能な情報 (PII):** 名前、メールアドレス、API キーなどの個人情報は一切収集しません。
- **プロンプトとレスポンスの内容:** プロンプトの内容やモデルからの応答は記録しません。
- **ファイルの内容:** CLI によって読み込まれたり書き込まれたりするファイルの内容は記録しません。
**オプトアウト方法:**
`settings.json` ファイル内の `privacy` カテゴリで、`usageStatisticsEnabled` プロパティを `false` に設定することで、いつでも使用状況統計の収集からオプトアウトできます。
{ “privacy”: { “usageStatisticsEnabled”: false } }
> [!note]
>
> 使用状況統計が有効になっている場合、イベントは Alibaba Cloud RUM 収集エンドポイントに送信されます。