mcpField
M
memory-curator

memory-curator

github.com/irangareddyエージェントワークフロー0205 回インストール37 週間前に更新
リポジトリ

memory-curator について

memory-curatorは、エージェントの日々の作業記録、セッション保存、長期的な知識整理を支援するスクリプトとワークフローです。OpenClawのワークスペースで記録、検索、振り返りを行えます。

主な機能

  1. 01日次ログの追記と表示
  2. 02メモリファイルと最近のログの検索
  3. 03セッションJSONLファイルの要約
  4. 04再利用可能な知識をMEMORY.mdに抽出

活用シーン

  1. 01作業中の決定や学びを記録
  2. 02セッションリセット前のコンテキスト保存
  3. 03最近のログから繰り返しのパターンを確認

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/irangareddy/openclaw-essentials --skill memory-curator

インストール後、Claude Code で/memory-curatorを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

assets/templates/
daily-log.md
MEMORY-template.md
references/
extraction.md
organization.md
patterns.md
scripts/
daily_log.py
extract_session.py
search_memory.py

詳細

メモリーキュレーター

日次ログの記録、セッションの保存、知識の抽出を通じて、エージェントのメモリーを体系的に管理します。

クイックスタート

今日の作業を記録する
# Append to today's log
python scripts/daily_log.py \
  --workspace ~/.openclaw/workspace \
  --entry "Implemented user authentication with JWT" \
  --category "Key Activities"

# Show today's log
python scripts/daily_log.py --workspace ~/.openclaw/workspace --show
メモリーを検索する
# Search all memory files
python scripts/search_memory.py \
  --workspace ~/.openclaw/workspace \
  --query "GraphQL"

# Search recent logs only (last 7 days)
python scripts/search_memory.py \
  --workspace ~/.openclaw/workspace \
  --query "authentication" \
  --days 7

# Show recent logs
python scripts/search_memory.py \
  --workspace ~/.openclaw/workspace \
  --recent 5
セッションの要約を抽出する
# Generate summary from current session
python scripts/extract_session.py \
  --session ~/.openclaw/agents/<agent-id>/sessions/<session-id>.jsonl \
  --output session-summary.md

主なワークフロー

1日の終わり:作業内容を記録する

タイミング: 作業セッションを終える前、またはコンテキストを切り替える前

手順:

  1. 達成したことを振り返ります:

    • 実装した機能
    • 修正したバグ
    • 下した決定
    • 得られた学び
  2. 日次ログに追記します:

    python scripts/daily_log.py \
      --workspace ~/.openclaw/workspace \
      --entry "Fixed race condition in payment processing - added mutex lock"
    
  3. 重要な作業について、構造化されたエントリーを追加します:

    ## Key Activities
    
    - [14:30] Implemented user profile dashboard with GraphQL
    - [16:00] Fixed infinite re-render in UserContext - memoized provider value
    
    ## Decisions Made
    
    - Chose Apollo Client over React Query - better caching + type generation
    - Decided to use JWT in httpOnly cookies instead of localStorage
    
    ## Learnings
    
    - Apollo requires `__typename` field for cache normalization
    - React.memo doesn't prevent re-renders from context changes
    

参照: さまざまな状況で記録する内容については、patterns.md を参照してください。

コンテキスト切り替え前:セッションを保存する

タイミング: /new、/reset を実行する前、または会話を終了する前

手順:

  1. セッションの要約を抽出します:

    # Get current session ID from system prompt or openclaw status
    python scripts/extract_session.py \
      --session ~/.openclaw/agents/<agent-id>/sessions/<session-id>.jsonl \
      --output ~/session-summary.md
    
  2. 要約を確認し、「主な学び」セクションを編集します

  3. 日次ログに保存します:

    # Append key points to today's log
    cat ~/session-summary.md >> ~/.openclaw/workspace/memory/$(date +%Y-%m-%d).md
    
  4. 必要に応じて、重要なコンテキストを MEMORY.md に抽出します:

    • すぐには分からない解決策
    • 重要な決定
    • 覚えておく価値のあるパターン
週次レビュー:知識を抽出する

タイミング: 週末(金曜日/日曜日)または月末

手順:

  1. 最近のログからパターンを検索します:

    python scripts/search_memory.py \
      --workspace ~/.openclaw/workspace \
      --recent 7
    
  2. 抽出すべき兆候を探します:

    • 繰り返し発生した問題(3回以上)
    • 解決に時間がかかった学び(1時間超)
    • すぐには分からない解決策
    • 再利用する価値のある成功パターン
  3. MEMORY.md に抽出します:

    • 新しいセクションを追加するか、既存のセクションを更新します
    • 問題と解決策の形式を使います
    • コード例を含めます
    • どのような場合に使うか、コンテキストを追加します
  4. MEMORY.md を整理します:

    • 古くなった情報を削除します
    • 重複するエントリーをまとめます
    • コード例を更新します
    • 必要に応じて構成を改善します

参照: 詳細な抽出パターンについては、extraction.md を参照してください。

毎日:簡単なログ記録

作業中にコンテキストをすばやく記録する場合:

# Quick note
python scripts/daily_log.py \
  --workspace ~/.openclaw/workspace \
  --entry "TIL: DataLoader batches requests into single query"

# Decision
python scripts/daily_log.py \
  --workspace ~/.openclaw/workspace \
  --entry "Using Zustand for client state - simpler than Redux" \
  --category "Decisions Made"

# Problem solved
python scripts/daily_log.py \
  --workspace ~/.openclaw/workspace \
  --entry "CORS + cookies: Enable credentials on client + server, Allow-Origin can't be *"

メモリーの構成

日次ログ(memory/YYYY-MM-DD.md)

目的: 活動を時系列で記録する

内容:

  • 実施した作業(タイムスタンプ付き)
  • 下した決定
  • 解決した問題
  • 得られた学び

保持期間: 最近のログにはアクセスできる状態を保ち、必要に応じて90日を超えたログをアーカイブします。

使用する場面:

  • 「[日付]に何をしたか?」
  • 「Xを実装したのはいつか?」
  • セッション履歴
  • 活動の記録
MEMORY.md

目的: 長期的な知識を厳選してまとめる

内容:

  • パターンとベストプラクティス
  • よく使う解決策
  • 避けるべきミス
  • 役立つ参考資料

構成: 時系列ではなく、トピックごとに整理します。

使用する場面:

  • 「Xをどう解決するか?」
  • 「Yのパターンは何か?」
  • ベストプラクティス
  • 再利用可能な解決策

参照: 構成パターンについては、organization.md を参照してください。

メモリー記録のパターン

記録する内容

必ず記録するもの:

  • 重要な実装上の決定(YではなくXのアプローチを選んだ理由)
  • すぐには分からない解決策
  • バグの根本原因
  • 根拠を伴うアーキテクチャ上の決定
  • 発見したパターン
  • ミスとその修正方法

記録しないもの:

  • 変更したファイルすべて(gitに記録されています)
  • 明らかな実装の詳細
  • 定型的なコミット
  • プロジェクト固有のその場しのぎの対応

参照: 包括的なログ記録のガイダンスについては、patterns.md を参照してください。

記録するタイミング

作業中:

  • daily_log.py --entry で簡単なメモを記録します
  • 決定を下した時点で記録します
  • 問題を解決した時点で記録します

1日の終わり:

  • 達成したことを振り返ります
  • 重要なエントリーを整理します
  • 翌日のためにコンテキストを追加します

週の終わり:

  • パターンを MEMORY.md に抽出します
  • 学びをまとめます
  • 古くなった情報を整理します

知識の抽出

抽出の基準

次の場合は MEMORY.md に抽出します:

  • パターンが3回以上出現した
  • 解決策を見つけるのに1時間を超えた
  • 解決策がすぐには分からない
  • 将来、大幅な時間短縮につながる
  • 複数のプロジェクトに当てはまる
  • ミスのデバッグに多大なコストがかかった

抽出しないもの:

  • 一度きりの修正
  • プロジェクト固有のその場しのぎの対応
  • 明らかな解決策
  • 急速に変化する API
抽出フォーマット

問題と解決策の構成:

## [Technology/Domain]

### [Problem Title]

**Problem:** [Clear description]
**Cause:** [Root cause]
**Solution:** [How to fix]

**Code:**
```js
// Example implementation

予防策:[回避方法] コンテキスト:[該当する状況]


**See:** [extraction.md](references/extraction.md) for detailed extraction workflow

## Scripts Reference

### daily_log.py

Create or append to today's daily log.

```bash
# Append entry
python scripts/daily_log.py \
  --workspace ~/.openclaw/workspace \
  --entry "Your log entry" \
  [--category "Section Name"]

# Create from template
python scripts/daily_log.py \
  --workspace ~/.openclaw/workspace \
  --template

# Show today's log
python scripts/daily_log.py \
  --workspace ~/.openclaw/workspace \
  --show
extract_session.py

セッションの JSONL から概要を抽出します。

python scripts/extract_session.py \
  --session ~/.openclaw/agents/<id>/sessions/<session>.jsonl \
  [--output summary.md]

出力:

  • ユーザーのリクエスト
  • 使用したツール
  • 変更したファイル
  • 重要な学びのテンプレート
search_memory.py

すべてのメモリファイルを検索します。

# Search with query
python scripts/search_memory.py \
  --workspace ~/.openclaw/workspace \
  --query "search term" \
  [--days 30]

# Show recent logs
python scripts/search_memory.py \
  --workspace ~/.openclaw/workspace \
  --recent 5

ベストプラクティス

日々の習慣
  1. 1日の始め: 前日のログを確認し、今日の計画を立てます
  2. 作業中: 決定事項や学びを手短にメモします
  3. 1日の終わり: 重要な項目を整理し、コンテキストを追加します
  4. 週の終わり: パターンを抽出し、MEMORY.md を整理します
コンテキストの保持

/new または /reset の前:

  1. セッションの概要を抽出します
  2. 日次ログに追加します
  3. 重要なコンテキストを MEMORY.md に保持します

大きな作業の後:

  1. 達成したことを記録します
  2. 重要な学びを書き留めます
  3. 次のステップを記録します
知識の整理
  1. トピック別の構成 - 日付ではなく、分野ごとに分類します
  2. 問題を先に示すタイトル - 解決する問題をタイトルの冒頭に置きます
  3. 検索しやすい表現 - 具体的で見つけやすい用語を使います
  4. 階層を浅く保つ - 最大でも2階層にします
  5. コード例 - 動作する例を含めます

参照: 構成について詳しくは organization.md をご覧ください

トラブルシューティング

過去の決定事項が見つからない
  1. まず日次ログを検索します:

    python scripts/search_memory.py --workspace ~/.openclaw/workspace --query "decision keyword"
    
  2. MEMORY.md を検索します:

    grep -i "keyword" ~/.openclaw/workspace/MEMORY.md
    
  3. セッションログを検索します:

    rg "keyword" ~/.openclaw/agents/<id>/sessions/*.jsonl
    
メモリファイルが大きくなりすぎている
  1. 古い日次ログをアーカイブします(90日超):

    mkdir -p memory/archive/2025-Q1
    mv memory/2025-01-*.md memory/archive/2025-Q1/
    
  2. 1000行を超えたら、MEMORY.md を分野別に分割します:

    memory/domains/
    ├── react.md
    ├── graphql.md
    └── database.md
    
  3. メインの MEMORY.md からリンクします:

    ## Domain Knowledge
    - [React Patterns](memory/domains/react.md)
    - [GraphQL Patterns](memory/domains/graphql.md)
    
何を記録すればよいかわからない

参照: 記録のパターンについて詳しくは patterns.md をご覧ください

簡単な目安: 15分以上費やしたこと、または自明でないことを学んだ場合は、記録しましょう。

テンプレート

日次ログテンプレート

配置場所:assets/templates/daily-log.md

構成:

  • 主な活動
  • 決定事項
  • 学び
  • 課題と解決策
  • 明日のためのコンテキスト
  • 参考資料
MEMORY.md テンプレート

配置場所:assets/templates/MEMORY-template.md

構成:

  • パターンとベストプラクティス
  • よくある解決策
  • 学び
  • 避けるべき間違い
  • 便利な参考資料

ヒント

  1. 継続する - 毎日記録し、毎週抽出します
  2. 簡潔にする - 将来の自分に必要なのは物語ではなく事実です
  3. 具体的にする - 「Apollo のキャッシュ正規化」>「キャッシュの問題」
  4. コードを使う - 説明より例を優先します
  5. まず検索する - 質問する前に、自分のメモリを検索します
  6. 徹底的に抽出する - 3回繰り返されたら、抽出します
  7. 定期的に整理する - 毎月、古くなった情報を削除します
  8. バージョン管理する - MEMORY.md の変更を Git にコミットします

OpenClaw との統合

フックを使った自動記録

主要なイベントを自動記録するフックを作成します:

// ~/.openclaw/hooks/memory-logger/index.js
export default {
  name: 'memory-logger',
  async onToolCall({ tool, agent }) {
    if (tool === 'write' || tool === 'edit') {
      // Log file modifications
      await exec(`python scripts/daily_log.py --workspace ${agent.workspace} --entry "Modified ${tool.input.file_path}"`)
    }
  }
}
セッションの保持

AGENTS.md に追加します:

## Before /new or /reset

Always preserve context:
1. Extract session summary
2. Add to daily log
3. Save critical decisions to MEMORY.md
毎週のレビュー用 Cron
openclaw cron add \
  --name "weekly-memory-review" \
  --at "Sunday 18:00" \
  --system-event "Time for weekly memory review and knowledge extraction"

コメント