メモリ
Qwen Code のセッションは常に新しいコンテキストウィンドウから始まります。毎回自分で説明し直さなくてもよいように、2つの仕組みがセッション間で知識を引き継ぎます。
- QWEN.md — あなたが一度書けば、Qwen が毎セッション読み取る指示
- オートメモリ — Qwen があなたから学んだことに基づいて自身で書き留めるメモ
QWEN.md: Qwenへの指示
QWEN.md は平文テキストファイルで、プロジェクトや自身の好みについて Qwen に常に知っておいてほしいことを記述します。すべての会話の開始時に読み込まれる恒久的なブリーフィングのようなものです。
QWEN.md に何を書くか
毎回繰り返さなければならないことを追加します:
- ビルドおよびテストコマンド(
npm run test、make build) - チームが従うコーディング規約(“すべての新規ファイルにJSDocコメントを付けること”)
- アーキテクチャ上の決定(“リポジトリパターンを使用し、コントローラーから直接データベースを呼び出さない”)
- 個人の好み(“常にpnpmを使用し、npmは使わない”)
Qwen がコードを読めば分かることは含めないでください。QWEN.md は短く具体的であるほど効果的です。長くなるほど、Qwen が従う信頼性が低下します。
QWEN.md を作成する場所
| File | 対象 |
|---|---|
~/.qwen/QWEN.md | すべてのプロジェクトにおけるあなた |
プロジェクトルートの QWEN.md | チーム全体(ソース管理にコミット) |
.qwen/QWEN.local.md | このプロジェクトのあなただけ(git管理外) |
これらの組み合わせは任意です。Qwen はセッション開始時にすべてを読み込みます。
リポジトリにすでに他のAIツール用の AGENTS.md ファイルがある場合、Qwen はそれも読み取ります。指示を重複させる必要はありません。
.qwen/QWEN.local.md を使用するタイミング
プロジェクト固有だが個人用の指示に使用します。つまり、このプロジェクトに属するがチームと共有すべきでないものです:
- 自身のクラスタID、コンテナレジストリの名前空間、クラウドアカウント
- ローカル環境をハードコードした個人用デバッグコマンド
- 進行中の作業について Qwen に知らせたいがコミットしたくないメモ
これは共有プロジェクトの QWEN.md よりも後に読み込まれるため、ローカルの指示でチームの指示を補足したり上書きしたりできます。
自分で gitignore に追加する必要があります。 .qwen/ はローカルディレクトリとして扱われることが多いですが、qwen-code は .gitignore を自動生成せず、一部のプロジェクトでは .qwen/settings.json をコミットします。以下の行を .gitignore(またはグローバルな git ignore)に追加してください:
.qwen/QWEN.local.md/init で自動生成する
/init を実行すると、Qwen がコードベースを分析し、ビルドコマンド、テスト指示、発見した規約を含むスターター QWEN.md を作成します。既に存在する場合は、上書きせずに追加候補を提案します。
他のファイルを参照する
QWEN.md 内で他のファイルを指定すると、Qwen もそれらを読み取ります:
プロジェクト概要は @README.md を参照。
# 規約
- Git ワークフロー: @docs/git-workflow.mdQWEN.md 内の任意の場所で @path/to/file を使用します。相対パスはその QWEN.md ファイルからの相対として解決されます。
オートメモリ: Qwenがあなたから学ぶこと
オートメモリはバックグラウンドで動作します。会話のたびに、Qwen はあなたの好み、提供したフィードバック、プロジェクトコンテキストなど、学んだ有用な情報を静かに保存し、次回のセッションで繰り返さずに利用できるようにします。
これは QWEN.md とは異なります。あなたが書くのではなく、Qwen が書きます。
Qwenが保存するもの
Qwen は次の4種類の記憶に値するものを探します:
| 何を | 例 |
|---|---|
| あなたについて | あなたの役割、背景、好みの作業スタイル |
| あなたのフィードバック | あなたが行った修正、確認したアプローチ |
| プロジェクトコンテキスト | 進行中の作業、決定事項、コードからは明らかでない目標 |
| 外部参照 | 言及したダッシュボード、チケットトラッカー、ドキュメントのリンク |
Qwen はすべてを保存するわけではありません。次回に実際に役立つものだけを保存します。
保存場所
オートメモリファイルは ~/.qwen/projects/<project>/memory/ に保存されます。同じリポジトリのすべてのブランチとワークツリーで同じメモリフォルダを共有するため、あるブランチで Qwen が学んだことは他のブランチでも利用できます。
保存されるものはすべて平文のマークダウンです。いつでもファイルを開いたり、編集したり、削除したりできます。
定期的なクリーンアップ
Qwen は定期的に保存されたメモリをスキャンし、重複を削除して古いエントリをクリーンアップします。これは十分なセッションが蓄積された後、1日1回バックグラウンドで自動的に実行されます。今すぐ実行したい場合は /dream で手動でトリガーできます。
クリーンアップの実行中、画面の隅に ✦ dreaming が表示されます。セッションは通常通り続行します。
オン/オフの切り替え
オートメモリはデフォルトでオンになっています。切り替えるには /memory を開き、上部のスイッチを使用します。自動保存だけをオフにする、定期的なクリーンアップだけをオフにする、または両方をオフにすることができます。
~/.qwen/settings.json(すべてのプロジェクトに適用)または .qwen/settings.json(このプロジェクトのみ)でも設定できます:
{
"memory": {
"enableManagedAutoMemory": true,
"enableManagedAutoDream": true
}
}コマンド
/memory
メモリパネルを開きます。ここから以下の操作が可能です:
- オートメモリの保存のオン/オフ切り替え
- 定期的なクリーンアップ(dream)のオン/オフ切り替え
- 個人の QWEN.md(
~/.qwen/QWEN.md)を開く - プロジェクトの QWEN.md を開く
- オートメモリフォルダを参照する
/init
プロジェクト用のスターター QWEN.md を生成します。Qwen がコードベースを読み取り、ビルドコマンド、テスト指示、発見した規約を入力します。
/remember <text>
Qwen が自動的に取得するのを待たずに、すぐにオートメモリに保存します:
/remember Pythonの変数名には常にsnake_caseを使用する
/remember ステージング環境はstaging.example.comにある/forget <text>
説明に一致するオートメモリエントリを削除します:
/forget ログインバグの古い回避策/dream
自動スケジュールを待たずに、今すぐメモリのクリーンアップを実行します:
/dreamトラブルシューティング
QwenがQWEN.mdに従わない
/memory を開いて、どのファイルが読み込まれているかを確認します。ファイルがリストされていない場合、Qwen はそれを認識できません。ファイルがプロジェクトルートまたは ~/.qwen/ にあることを確認してください。
指示は具体的であるほど効果的です:
- ✓
TypeScriptファイルには2スペースインデントを使用する - ✗
コードをきれいにフォーマットする
複数の QWEN.md ファイルに矛盾する指示がある場合、Qwen の動作が一貫しなくなる可能性があります。それらを確認し、矛盾を取り除いてください。
Qwenが何を保存したか確認したい
/memory を実行して 「オートメモリフォルダを開く」 を選択します。保存されたすべてのメモリは読み取り可能なマークダウンファイルであり、参照、編集、削除が可能です。
Qwenが何度も忘れてしまう
オートメモリがオンになっているにもかかわらず、Qwen がセッション間で記憶を保持していないように見える場合は、/dream を実行して強制的にクリーンアップパスを実行してみてください。また /memory で両方のトグルが有効になっていることを確認してください。
常に覚えておいてほしいことは、代わりに QWEN.md に追加してください。オートメモリはベストエフォートですが、QWEN.md は確実です。