memory-curator について
memory-curatorは、エージェントの日々の作業記録、セッション保存、長期的な知識整理を支援するスクリプトとワークフローです。OpenClawのワークスペースで記録、検索、振り返りを行えます。
主な機能
- 01日次ログの追記と表示
- 02メモリファイルと最近のログの検索
- 03セッションJSONLファイルの要約
- 04再利用可能な知識をMEMORY.mdに抽出
活用シーン
- 01作業中の決定や学びを記録
- 02セッションリセット前のコンテキスト保存
- 03最近のログから繰り返しのパターンを確認
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ irangareddy/ openclaw-essentials --skill memory-curatorインストール後、Claude Code で/memory-curatorを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
assets/templates/daily-log.mdMEMORY-template.mdreferences/extraction.mdorganization.mdpatterns.mdscripts/daily_log.pyextract_session.pysearch_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日の終わり:作業内容を記録する
タイミング: 作業セッションを終える前、またはコンテキストを切り替える前
手順:
-
達成したことを振り返ります:
- 実装した機能
- 修正したバグ
- 下した決定
- 得られた学び
-
日次ログに追記します:
python scripts/daily_log.py \ --workspace ~/.openclaw/workspace \ --entry "Fixed race condition in payment processing - added mutex lock" -
重要な作業について、構造化されたエントリーを追加します:
## 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 を実行する前、または会話を終了する前
手順:
-
セッションの要約を抽出します:
# 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 -
要約を確認し、「主な学び」セクションを編集します
-
日次ログに保存します:
# Append key points to today's log cat ~/session-summary.md >> ~/.openclaw/workspace/memory/$(date +%Y-%m-%d).md -
必要に応じて、重要なコンテキストを MEMORY.md に抽出します:
- すぐには分からない解決策
- 重要な決定
- 覚えておく価値のあるパターン
週次レビュー:知識を抽出する
タイミング: 週末(金曜日/日曜日)または月末
手順:
-
最近のログからパターンを検索します:
python scripts/search_memory.py \ --workspace ~/.openclaw/workspace \ --recent 7 -
抽出すべき兆候を探します:
- 繰り返し発生した問題(3回以上)
- 解決に時間がかかった学び(1時間超)
- すぐには分からない解決策
- 再利用する価値のある成功パターン
-
MEMORY.md に抽出します:
- 新しいセクションを追加するか、既存のセクションを更新します
- 問題と解決策の形式を使います
- コード例を含めます
- どのような場合に使うか、コンテキストを追加します
-
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日の終わり: 重要な項目を整理し、コンテキストを追加します
- 週の終わり: パターンを抽出し、MEMORY.md を整理します
コンテキストの保持
/new または /reset の前:
- セッションの概要を抽出します
- 日次ログに追加します
- 重要なコンテキストを MEMORY.md に保持します
大きな作業の後:
- 達成したことを記録します
- 重要な学びを書き留めます
- 次のステップを記録します
知識の整理
- トピック別の構成 - 日付ではなく、分野ごとに分類します
- 問題を先に示すタイトル - 解決する問題をタイトルの冒頭に置きます
- 検索しやすい表現 - 具体的で見つけやすい用語を使います
- 階層を浅く保つ - 最大でも2階層にします
- コード例 - 動作する例を含めます
参照: 構成について詳しくは organization.md をご覧ください
トラブルシューティング
過去の決定事項が見つからない
-
まず日次ログを検索します:
python scripts/search_memory.py --workspace ~/.openclaw/workspace --query "decision keyword" -
MEMORY.md を検索します:
grep -i "keyword" ~/.openclaw/workspace/MEMORY.md -
セッションログを検索します:
rg "keyword" ~/.openclaw/agents/<id>/sessions/*.jsonl
メモリファイルが大きくなりすぎている
-
古い日次ログをアーカイブします(90日超):
mkdir -p memory/archive/2025-Q1 mv memory/2025-01-*.md memory/archive/2025-Q1/ -
1000行を超えたら、MEMORY.md を分野別に分割します:
memory/domains/ ├── react.md ├── graphql.md └── database.md -
メインの 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
構成:
- パターンとベストプラクティス
- よくある解決策
- 学び
- 避けるべき間違い
- 便利な参考資料
ヒント
- 継続する - 毎日記録し、毎週抽出します
- 簡潔にする - 将来の自分に必要なのは物語ではなく事実です
- 具体的にする - 「Apollo のキャッシュ正規化」>「キャッシュの問題」
- コードを使う - 説明より例を優先します
- まず検索する - 質問する前に、自分のメモリを検索します
- 徹底的に抽出する - 3回繰り返されたら、抽出します
- 定期的に整理する - 毎月、古くなった情報を削除します
- バージョン管理する - 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"