本ページの調整値は .env ではなく、アプリ内の App Settings 画面(サイドバー下部の
スライダーアイコン)で設定し、app_settings.jsonc に保存されます。.env に残った値は
無視され、起動ログにキー名が 1 度だけ列挙されます。既存の設定を引き継ぐには
chatwalaau settings migrate --write を実行してください。機能の有効化ゲートと
シークレットは .env のままです。
詳細は 設定 -> アプリケーション設定。
メモリとセッション
グローバルエージェント Identity
.agent/IDENTITY.md 1 ファイルが、すべてのプロジェクトと会話に対するエージェントの
ペルソナ・トーン・基本姿勢を定義します。これはシステムプロンプトの最初のブロック
です。
- 編集すればアシスタントをブランド変更できます。
- 削除すると、次回起動時にランタイムが妥当な既定を再生成します。
- 環境変数なし・固定パス。読み取り専用ホスト(コンテナ)は起動失敗せず組み込み既定に フォールバックします。
ユーザー設定メモリ
エージェントは「どう助けてほしいか」(好み、コミュニケーションスタイル、期待、作業
習慣)の小さく恒久的なプロファイルを .agent/USER.md 1 ファイルに保持し、Identity の
直後にシステムプロンプトへ展開します。
- チャット中、エージェント自身がインラインのメモリツール(追加 / 置換 / 削除 / 統合) でファイルを保守します。これは単なる追記ではなく整合(reconcile)します。新しい 明示的な好みは矛盾する古い好みを上書きするため、相互排他な好み(既定の回答言語など) は積み上がらず 1 行に保たれます。
- 決定論的フィルタが機密情報や機微な個人データの保存を防ぎ、ファイルは小さく保たれ
ます(
USER_CHAR_LIMIT、既定 1375)。 - 各セッションはセッション開始時の凍結スナップショットを読むため、プロンプトは キャッシュ安定で再読込後も一貫します。セッション中に学んだ内容は次回セッションから 反映されます。
既定で有効。USER_PROFILE_ENABLED=false で無効化できます(固定パス、読み取り専用
ホストは組み込み既定にフォールバック)。
Temporary Chat はこのプロファイルを読み書きしない ため、使い捨て会話がパーソナライズに影響しません。
バックグラウンド整合(任意)
メモリを自己保守させられます。有効にすると、バックグラウンドのパスが直近の会話を定期 的に蒸留し、プロファイル全体を整合(reconcile)します。重複の統合・矛盾の解消・ 撤回/陳腐化した好みの削除・新しい好みの取り込みを行うため、矛盾した行の山に陥りません。
USER_MEMORY_EXTRACTION=true # 既定: false(無効、従来挙動とバイト単位で同一)
USER_MEMORY_EXTRACTION_EVERY_N_TURNS=4 # 新しいユーザーターン N 回ご とに最大 1 回実行
抽出モデルは Model Offering Catalog の App Settings -> Model Offering Catalog -> Task model assignments
(roles.user_memory_extraction、または chatwalaau models role set user_memory_extraction <offering-id>)で指定します。未設定ならチャット自身のモデルを使います。専用の
USER_MEMORY_EXTRACTION_MODEL 変数は v0.109.0 で削除されました。
USER_PROFILE_ENABLED=trueが必要です。バックグラウンドで動き、メッセージを妨げず 遅延もさせません。- インラインツールと同じ安全策(機密/PII フィルタ・サイズ上限・直前ファイルのバック アップ)を通ります。空または無変更の結果でメモリを消去したり無駄に書き換えたりしま せん。
- Temporary Chat とデモモードでは起動しません。変更は次回セッションから反映されます (実行中セッションは凍結スナップショットを維持)。
エージェントメモリ
ユーザー設定メモリ(「あなたについて」)に加えて、エージェントは作業についての
curated メモリを単一の .agent/MEMORY.md に保持します。環境やプロジェクトに関する
永続的で再利用可能な事実 —— 慣習(「このプロジェクトは pnpm を使う」)、コマンド
(「テストは uv run pytest」)、ツールの癖、安定した運用ルール —— です。ユーザー
プロファイルの直後に <agent-memory> ブロックとしてシステムプロンプトへ注入されます。
1 つの長文ではなく独立したエントリのリストとして保存するため、重複検出・整合・ 1 件ずつの編集が容易です。
書き込み経路は 2 つあります。
- エージェント自身が記録する。 会話中にインラインの
manage_memoryツールで 永続的な事実を記録します(追加/削除/1 件修正/バッチ)。 - ターンにいいねを付ける。 すべてのメッセージ(ユーザー・AI 両方)に 「このターンを記憶」のいいねがあり、クリックするとそのターンを軽量な バックグラウンドパスがメモリへ蒸留します。いいねは 保存中/保存済み/失敗 の状態を リアルタイム表示し、チャットと共に保存されるためリロードしても維持されます。 ユーザー/AI どちらのいいねを押してもペアを 1 セットとして処理します。
すべての書き込みはユーザーメモリと同じ安全策を共有します —— 機密/PII を弾く決定的
フィルタ、サイズ上限(MEMORY_CHAR_LIMIT、既定 2200)、直前ファイルのバックアップ ——
さらに堅牢な書き込み(完全一致の重複を拒否、アトミック書き込み、ロック保護)を行います。
AGENT_MEMORY_ENABLED=true # 既定: true(USER_PROFILE_ENABLED に合わせる)
MEMORY_CHAR_LIMIT=2200 # curated メモリ本文の上限
整理モデルは Model Offering Catalog の App Settings -> Model Offering Catalog -> Task model assignments
(roles.agent_memory_curation)で指定します。未設定ならチャット自身のモデルを使います。
専用の AGENT_MEMORY_CURATION_MODEL 変数は v0.109.0 で削除されました。
既定は ON ですが、新規の MEMORY.md は空でプロンプトに何も追加しないため、実際に
何かが記憶されるまで新規インストールの挙動は変わりません。変更は次回セッションから
反映されます(実行中セッションは凍結スナップショットを維持)。Temporary Chat とデモ
モードでは curation は起動しません。機能全体を止めるには AGENT_MEMORY_ENABLED=false。
このメモリは作業についてです。個人的な設定は別の
ユーザー設定メモリ(.agent/USER.md)にあります。いいねが設定メモリへ
書き込むことはありません。
メモリファイルの編集
サイドバー下部の脳アイコンから Agent Memory パネルを開くと、3 つの組み込みメモリ ファイルを自分で閲覧・編集できます。
- Identity(
.agent/IDENTITY.md)-- アシスタントの人格・口調 - Preferences(
.agent/USER.md)-- アシスタントがあなたについて覚えていること - Notes(
.agent/MEMORY.md)-- プロジェクトについてのアシスタント自身のメモ
各ファイルは Markdown エディタ(シンタックスハイライト+文字数/上限のライブ表示)で 開きます。保存時はまずタイムスタンプ付きのバックアップを作成するため、以前の内容は 常に復元可能で、未保存のまま閉じると確認を求めます。編集は次のチャットから反映され ます(Identity は次回の再起動から)。実行中の会話は凍結スナップショットを保持します。
このエディタは操作者であるあなたのためのものです。編集内容はそのまま保存されます(サイ ズ上限のみ強制。アシスタント自身の書き込みを守る秘密情報/PII フィルタは、あなたの直接 編集には適用されません)。アクセスはアプリと同じサインインで保護されます。
セッション管理
会話はマシン上に JSON ファイルとして保存されます。保存・検索・フォルダ整理・ピン 留め・アーカイブ・フォーク・名称変更ができます。
チャットサイドバー
- Folders と Chats の各セクションは、見出しから折り畳みできます。片方を 畳んでもう片方にパネル全体を使えます。初期状態はどちらも展開で、開閉状態は端末ごと に記憶されます。
- 行はコンパクトです。通常はタイトルのみを表示し、行にマウスを乗せると最終更新
時刻とメッセージ数/画像数が現れます。(ホバー時に行の高さは変わらないため、カーソル
の下でリストがずれることはありません。現在開いているチャットの行では常時表示されま
す。)
APIとTeamsのバッジは常に表示されます — そのチャットが Web UI 以外 から来たことを示す分類だからです。 - 時刻は
YYYY/MM/DD HH:mm(24 時間制)で表示されます。ブラウザの言語設定に かかわらず、どのマシンでも同じ表記になります。 - チャット一覧はスクロールに応じて順次読み込まれます(一括ではありません)。会話が 数百件あってもサイドバーは軽快なままです。読み込み中はスケルトン行が表示され、 到着するチャットの位置が分かります。フォルダ内のチャットは、そのフォルダを開いたとき に読み込まれます。
- ピン留めしたチャットが常に先頭、その後は最終更新が新しい順です。この並び順は
サーバ側で決まるため、Web UI と
chatwalaau sessions listで一致します。 - サイドバー上部の ChatWalaʻau ロゴをクリックすると 新しいチャットが始まります (+ ボタンと同じ動作です)。
- チャットの 3 点メニューから 新しいタブで開く を選べます。2 つの会話をブラウザの 別タブで並べて使えます。
アドレスバーには、開いている会話の ?session=<id> が表示されます。このリンクは安定して
いるので、ブックマークしても、リロードしても、自分宛に送っても同じチャットが開きます
(一時チャットだけは例外で、URL には決して現れません)。
サーバはチャットのメタデータの小さなインデックス(.sessions/index.json)を保持し、
一覧表示のたびに全会話ファイルを開き直さずに済むようにしています。これはキャッシュです
ので 、削除しても常に安全です(次回の一覧表示で再構築されるだけです)。
分岐したチャット
メッセージの分岐は、そのメッセージまでの会話を持つ、独立した新しいチャットを作り ます(v0.157.1 以降)。
- 元のチャットのタイトルを引き継ぎ、同じフォルダに入ります。画面を更新しなく ても、すぐにそのフォルダに表示されます。
- 元のチャットがピン留めされていても、ピン留めはされません。
- 同じ会話の続きとして扱われます。元のチャット開始時に取り込んだユーザープロフィール とエージェントメモリがそのまま適用され、タイトルが自動で付け直されることもありません。
- 含まれる画像のコピーを持つため、元のチャットを削除しても表示できなくなることは ありません。
チャットファイルへの変更は、サーバ上の 1 つの直列化された経路を通ります。その瞬間に 読めないファイルは決して書き換えません。短い競合(別の書き込み中の Windows でよく起き ます)はリトライし、それでも解消しなければ、ファイルに触れずに HTTP 503 で失敗します。 以前のバージョンでは、この瞬間にチャットが空のもの(タイトルが空で、フォルダの外)に 置き換わることがありました。v0.157.1 より前にそうなったチャットの履歴は復旧できません。
サイドバーのフォルダ
- プリセットパレットから 色を割り当て(作成時、または後でフォルダメニューから)
- ドラッグ&ドロップで 並べ替え
- フォルダは既定で折りたたみ、開閉状態はデバイスごとに記憶
- 保存された色/順序が壊れてもフォルダ一覧は自己修復
- 開いているフォルダ内の行と各フォルダのチャット数は、チャットの分岐・回答・編集・ メッセージ削除のたびにすぐ更新