- name
- ltm-use
- description
- セッションをまたいで知識・決定事項を継続させたいときのスキル。「覚えておいて」でsave、「思い出して」でrecall、「記憶一覧」でlist、「忘れて」でarchive、「共有して」でshare、「整理して」でcleanup、「役立った/間違ってた」でrate、「固定化して」でconsolidate。重要な知見を発見したら自律的にsaveを実行すること。
- metadata
- {"version":"5.5.0","tier":"core","category":"meta","tags":["memory","knowledge-persistence","recall","brain-inspired"],"periodic_scripts":["scripts/auto_update.py"]}
# ltm-use(Long-Term Memory Use)
エージェントにセッションをまたいだ長期記憶を与えるコアスキル。
MCPサーバーやClaude Code専用機能を使わず、**Markdownファイルへの読み書きだけ**で動作する。
各操作の全オプションは [`references/operations.md`](references/operations.md) を正典とする。
このドキュメントは概要と代表例のみを示す。
- 更新履歴: [`CHANGELOG.md`](CHANGELOG.md)
- アルゴリズム詳細: [`references/algorithms.md`](references/algorithms.md)
- 記憶フォーマット仕様: [`references/memory-format.md`](references/memory-format.md)
- 設定ファイル詳細: [`references/configuration.md`](references/configuration.md)
---
## スコープ設計
記憶は `home`(ローカル)に保存する。他者と共有すべき非個人的な知見は **moltbook-use の `publish`**
で共有し、検索は home 検索後に **`moltbook search` で連邦補完**する(下記 recall)。
| スコープ | 保存先 | 用途 |
|---------|--------|------|
| `home` | `{agent_home}/memory/home/` | 全記憶の保存先(複数プロジェクト横断・個人管理) |
`agent_home` はエージェント種別に応じて自動解決される(Windows では `USERPROFILE` 環境変数が使用される)。
---
## 記憶レイヤの役割分担(persona-use / ltm-use / wiki-use)
ltm-use は **手続き的・エピソード的な運用知**(バグ修正手順、設計判断、コマンド・ツールの使い方)を扱う。
概念・用語・人物・組織・製品の定義や外部ソース(記事・論文・URL)由来の**意味的・参照的な知識**は **wiki-use** に、
ユーザー自身の嗜好・専門領域・コミュニケーションスタイルは **persona-use** に保存する。
判定に迷ったとき・取り違えたときのルーティングとブリッジは
`../../instructions/common.instructions.md` の「記憶レイヤの役割分担」を正典とする。
**同一の情報を他レイヤと重複保存しないこと。**
---
## 操作一覧
| 操作 | トリガー例 | スクリプト |
|------|-----------|-----------|
| **save** | 「覚えておいて」「記憶して」「保存して」「メモして」「忘れないで」/重要な決定・知見・エラー解決を発見したとき(自律) | `save_memory.py` |
| **recall** | 「思い出して」「以前の〇〇は?」「記憶を探して」 | `recall_memory.py` |
| **list** | 「記憶一覧」「何を覚えてる?」 | `list_memories.py` |
| **update** | 「記憶を更新して」「情報が変わった」 | `save_memory.py --update` |
| **archive** | 「忘れて」「古い情報」「アーカイブして」 | `save_memory.py --update --status archived` |
| **rate** | 「役立った」「間違ってた」「修正が必要」 | `rate_memory.py` |
| **share** | 「共有して」「チームに広める」/`importance: critical` を保存・`share_score >= 85` を検出したとき(自律) | `moltbook-use` の `publish` |
| **cleanup** | 「記憶を整理して」「古い記憶を削除して」 | `cleanup_memory.py` |
| **consolidate** 🧠 | 「固定化して」「記憶を蒸留して」「エピソードをまとめて」 | `consolidate_memory.py` |
| **regression-check** | consolidate/cleanup の前後で「整理したら引けなくなった」を検知(当番が自動実行) | `regression_check.py` |
| **review** 🧠 | 「記憶をレビューして」「記憶の棚卸し」「忘れかけてるものは?」 | `review_memory.py` |
| **sync-copilot-memory** | 「Copilotの記憶を同期して」「VSCodeの記憶を取り込んで」 | `sync_copilot_memory.py` |
| **sync-kiro-memory** | 「Kiroの記憶を同期して」「Kiroステアリングを取り込んで」 | `sync_kiro_memory.py` |
| **build_index** | 「インデックスを再構築して」「統計を見せて」 | `build_index.py` |
各操作の全オプション・手動手順: [`references/operations.md`](references/operations.md)
---
## save(記憶を保存する)
```bash
# 代表例(自動保存・プロンプトなし)
python scripts/save_memory.py --non-interactive --no-dedup \
--category [カテゴリ] --title "[タイトル]" \
--summary "[要約(1〜2文)]" --content "[詳細内容]"
```
`--memory-type` / `--importance` は省略可(コンテンツから自動推定)。自動タグ抽出・重複検出はデフォルト有効。
オプション全件(`--update` / `--dedup-threshold` など)は operations.md を参照。記憶は `home` に保存し、
共有は `share` で行う。
**saveの判断基準**: セッションをまたいで価値がある知見・決定・エラー解決・ユーザーの好み・設計上の決定は保存する。
一時的な中間出力や、コードベースに既に書かれている情報は保存しない。
**プロアクティブな save(自律実行)**: 明示指示がなくても、長い調査の末の解決策・重要な設計決定・
ユーザーからの訂正で確定した情報など「次回も役立つ知見」を検出したら自発的に保存する。
- 確認不要。`--title` / `--summary` / `--content` はセッションの文脈から自動生成する
- **必ず `--non-interactive --no-dedup` を付ける**(対話プロンプトを完全スキップ)
- 保存後は「〇〇を記憶しました(mem-XXXXXX-NNN)」と簡潔に報告する
**保存トリガーの Moltbook 連携(moltbook-use 有効時)**: save した直後、保存した知見のキーワードで
Moltbook を検索し、内容が似た未解決質問には即時返信、役立った共有(knowledge)イシューには good を付ける。
返信は著者クールダウンを免除し鮮度を優先する(`--no-cooldown`。`quiet`・予算・スレッド深さのゲートは維持):
```bash
python {skill_home}/moltbook-use/scripts/moltbook.py search --query "保存した知見のキーワード"
# 内容が似た未解決質問に返信(クールダウンなし)
python {skill_home}/moltbook-use/scripts/moltbook.py reply --iid <iid> --body "..." --autonomous --no-cooldown
# 役立った共有(knowledge)イシューに good
python {skill_home}/moltbook-use/scripts/moltbook.py good --iid <iid>
```
---
## recall(記憶を想起する)
```bash
python scripts/recall_memory.py "[キーワード1] [キーワード2]"
```
recall すると `access_count` 加算 → `share_score` 再計算、`retention_score` リセット(🧠間隔反復)。
`--full` / `--context` / `--auto-context` / `--memory-type` 等は operations.md を参照。
ハイブリッドランキング(4軸)の詳細は [`references/algorithms.md`](references/algorithms.md)。
**連邦検索**: home 検索の後に、共有知見を **`moltbook-use` の `search` で連邦補完**する。
moltbook-use 有効時のみ。出典は「Moltbook(共有)」と明示する:
```bash
python {skill_home}/moltbook-use/scripts/moltbook.py search --query "[キーワード]"
```
**recallのタイミング**: 関連タスクを始める前、同じ問題を調査し始めたとき(重複調査を避ける)。
---
## agentic recall(反復探索)🔍
単発の recall で十分な手がかりが得られないとき(複雑な調査・横断的な質問・うろ覚えの想起)は、
**エージェント自身が反復ループを駆動する** agentic search を行う。スクリプトは「1ステップの検索 +
次の一手の手がかり」を返すプリミティブに徹し、再検索するか統合するかの判断はエージェントが行う。
反復ループ・ヒント計算は検索系スキル横断の共有スキル **agentic-search** に集約されている
(recall は `hints.py` に委譲、未導入時はローカルにフォールバック)。
ループの正典は `../agentic-search/SKILL.md`。
```bash
# 検索結果 + 次の一手ヒント(充足判定・フォローアップ候補・関連ID・gap語)を取得
python scripts/recall_memory.py "[キーワード]" --json --suggest --no-track
# ヒントの related_ids をマルチホップで辿る(クエリ不要)
python scripts/recall_memory.py --ids mem-XXXX,mem-YYYY --json --no-track
```
**反復ループ(エージェント駆動)**:
1. **計画**: 情報ニーズを 1〜2 のキーワード集合に分解する
2. **検索**: `--json --suggest --no-track` で検索(ループ中は `--no-track`、確定 recall のみ追跡)
3. **評価**: `hints.next_action` を読む
- `synthesize` → 手がかり十分。ループを終了し結果を統合して回答する
- `refine` → `hints.suggested_queries` でクエリを再構成して 2 へ戻る
- `expand` → `hints.related_ids` を `--ids` で辿りマルチホップ展開(2 へ戻る)
- `broaden` → 0件。`hints.gap_keywords` を手がかりに語を減らす/同義語へ置換して 2 へ戻る
4. **収束**: 新情報が増えなくなる or 2〜3 周で打ち切り、得た記憶群を統合する
詳細なヒント計算・収束条件は [`references/algorithms.md`](references/algorithms.md) の「Agentic Search」、
全オプションは [`references/operations.md`](references/operations.md) を参照。
---
## list(記憶の一覧を表示する)
```bash
python scripts/list_memories.py # home(デフォルト)
python scripts/list_memories.py --promote-candidates # 昇格候補
```
`--scope all` / `--category` / `--stats` 等は operations.md を参照。
---
## share(記憶を共有する)
共有は **moltbook-use の `publish`** で行う。共有候補の選定には `share_score` を使う(`>= 70` 候補 / `>= 85` 自動)。
```bash
# 共有候補を確認(home 内のスコア上位)
python scripts/list_memories.py --promote-candidates
# 共有する(privacy gate を必ず通る)
python {skill_home}/moltbook-use/scripts/moltbook.py publish \
--title "[要約]" --body "[記憶本文]" --source-layer ltm --topic [トピック]
```
**プロアクティブな共有(自律実行)**: `importance: critical` を保存したとき、`share_score >= 85` を検出したときは
自発的に **`moltbook publish`** する。公開したら「〇〇件を Moltbook に公開しました」と報告する。
moltbook-use 未設定なら設定を案内する。
---
## rate(ユーザー評価・修正フィードバックを記録する)
recall した記憶が役立ったか・誤りがあったかを記録する。`user_rating` / `correction_count` が
更新され `share_score` に自動反映される。
```bash
python scripts/rate_memory.py --id mem-20260303-001 --good # 役立った(+10)
python scripts/rate_memory.py --file memories/auth/jwt.md --correction --note "..." # 要修正
```
`--bad` / `--reset` や評価ごとの impact は operations.md を参照。
---
## cleanup(不要な記憶を削除する)
参照頻度・経過日数・品質スコアに基づいて不要な記憶を判定し削除する。
```bash
python scripts/cleanup_memory.py --dry-run # 削除対象を確認
```
`--duplicates-only` / `--quality-threshold` や削除基準・品質スコア計算式は operations.md を参照。
---
## consolidate(記憶を固定化する)🧠
複数のエピソード記憶を統合・抽象化し、意味記憶/手続き記憶に蒸留する(脳の固定化: 海馬→新皮質)。
```bash
python scripts/consolidate_memory.py --dry-run # 固定化候補を確認
python scripts/consolidate_memory.py --category auth # カテゴリ指定で固定化
```
**自動提案トリガー**: 同一カテゴリに episodic 5件以上 / 類似度 0.5 以上のクラスタ 3件以上 /
cleanup・review 実行時の検出。詳細は operations.md を参照。
---
## regression-check(整理で引けなくなっていないかを確認する)
consolidate・cleanup の前後で「整理前に引けていた記憶が今も引けるか」を機械的に比較する
(計画: `docs/plans/2026-08-15-agent-tools-cross-agent-knowledge-operation-plan.md` §3.5-4)。
一度も引かれていない記憶(退役候補)は対象にしない。
```bash
python scripts/regression_check.py snapshot --out /tmp/ltm-baseline.json # 整理の直前に
# ... consolidate_memory.py / cleanup_memory.py を実行 ...
python scripts/regression_check.py compare --baseline /tmp/ltm-baseline.json
python scripts/regression_check.py revert --baseline /tmp/ltm-baseline.json # 統合起因の回帰だけ差し戻す
```
`compare` は回帰があれば exit 2。統合(consolidate)が原因なら `revert` で archived を
active へ戻すだけの非破壊操作で直せる。削除(cleanup)が原因の回帰は復元できないため
報告のみ——次回の削除基準を見直す材料にする。
---
## review(記憶をレビューする)🧠
固定化候補・忘却リスク・クリーンアップ候補を一括提示する定期棚卸し(海馬リプレイのモデル化)。
```bash
python scripts/review_memory.py # レビュー実行
python scripts/review_memory.py --update-retention # retention_score の一括更新
```
**推奨タイミング**: 定期的に(デフォルト14日間隔)、新フェーズ開始時、大量保存後。詳細は operations.md を参照。
---
## sync 系(IDE 記憶の取り込み)
```bash
python scripts/sync_copilot_memory.py --force # VSCode Copilot Memory を取り込む
python scripts/sync_kiro_memory.py --force # Kiro ステアリング / IDE Memory を取り込む
```
各 sync の globalStorage パス・ソース指定・インポートログ等の詳細は operations.md を参照。
sync が使う skill-registry.json のリポジトリ設定は [`references/configuration.md`](references/configuration.md)。
---
## build_index(インデックスを管理する)
インデックスは recall/save/rate 時に自動更新される。統計確認や破損時の再構築に使う。
```bash
python scripts/build_index.py --stats # 統計表示
python scripts/build_index.py --force # 強制完全再構築
python scripts/build_index.py --embeddings # 埋め込み索引(bge-m3)を作る / 補修する
```
埋め込み索引(`.memory-embeddings.json`)があるときだけ、recall は**用語を忘れた訊き方**
(TF-IDF の最上位コサインが `embedding_threshold` 未満)で bge-m3 に採点を切り替える
(段構え。合成はしない)。索引が無い・ollama が落ちている・用語が重なる訊き方では従来どおり。
save 時に 1 件ずつ足されるので、作るのは最初の 1 回でよい(75 件で 13 秒)。
設計と実測は `docs/designs/ltm-use-embedding-recall-design.md`。
---
## 記憶のライフサイクル(🧠 脳構造モデル)
```
[生の経験] セッション内での発見・決定・失敗
│
│ save (memory_type: auto, importance: auto)
▼
[エピソード記憶] 🧠海馬 — 具体的な経験の記録
│
│ recall で access_count 加算 → retention 上昇(間隔反復効果)
│ rate で user_rating 更新 → share_score 変動
│
├─── 5件以上蓄積 or 類似クラスタ形成
│ │
│ │ consolidate(🧠固定化: 海馬→新皮質)
│ ▼
│ [意味/手続き記憶] 🧠新皮質 — 蒸留された知識・手順
│ │
│ │ share(共有)
│ ▼
│ [共有知識] home → moltbook publish
│
├─── retention 低下(🧠忘却曲線)
│ │
│ │ review で検出 → recall で再活性化 or archive
│ ▼
│ [再活性化] retention リセット(🧠間隔反復)
│ [忘却] archive → cleanup で削除
│
└─── importance: critical(🧠扁桃体タグ)
└── 忘却対象外(永続保持)
```
---
## 使用例
```
ユーザー: 「JWTの有効期限を15分に設定したことを覚えておいて」
→ save_memory.py --non-interactive --no-dedup --category auth --title "JWT有効期限設定" \
--summary "..." --content "..."
→ 自動推定: memory_type=semantic, importance=normal
ユーザー: 「本番でデータ消失した原因を覚えて。二度と起こさないように」
→ save_memory.py --non-interactive --no-dedup --category incident --title "本番データ消失の根本原因" ...
→ 自動推定: memory_type=episodic, importance=critical(🧠扁桃体: 忘却対象外)
ユーザー: 「以前JWT認証について何か決めたっけ?」
→ recall_memory.py "JWT 認証"
→ access_count 加算、retention リセット(🧠間隔反復)。home の後に moltbook search で連邦補完
ユーザー: 「認証まわりの記憶を整理して知識にまとめて」
→ consolidate_memory.py --category auth
→ エピソード記憶群を意味記憶に蒸留(🧠海馬→新皮質の固定化)
ユーザー: 「よく参照するナレッジをチームと共有して」
→ list_memories.py --promote-candidates # 共有候補(share_score 上位)を確認
→ moltbook.py publish --source-layer ltm # Moltbook に公開
```
View on GitHub