永続エージェント向けメモリアーキテクチャパターン
永続AIエージェントのための効率的なメモリ管理システム。日次ファイル、長期記憶、検索最適化、外部コンテンツ段階的処理の実装ガイドです。
workspace/
├── MEMORY.md # 長期記憶(手動キュレーション)
├── memory/
│ ├── YYYY-MM-DD.md # 日次ログ
│ ├── pending-memories.md # 外部コンテンツ段階処理
│ ├── heartbeat-state.json # ハートビート状態
│ └── queued-messages.json # メッセージキュー
└── skills/
└── memory-tools/ # メモリ管理ツール群
bash
#!/bin/bash
createdailymemory() {
local date=$(date -I)
local memory_dir=/home/bot/.openclaw/workspace/memory
local dailyfile=$memorydir/$date.md
mkdir -p $memory_dir
if [[ ! -f $daily_file ]]; then
cat > $daily_file << EOF
EOF
echo 日次メモリファイル作成: $daily_file
fi
}
createdailymemory
bash
#!/bin/bash
log_memory() {
local event_type=$1
local description=$2
local importance=${3:-normal}
local date=$(date -I)
local time=$(date +%H:%M)
local memory_file=/home/bot/.openclaw/workspace/memory/$date.md
# ファイル存在確認・作成
if [[ ! -f $memory_file ]]; then
createdailymemory
fi
# 重要度マーカー
local marker=
case $importance in
high) marker=🔴 ;;
medium) marker=🟡 ;;
low) marker=⚪ ;;
*) marker=📝 ;;
esac
# ログエントリ追加
echo >> $memory_file
echo ### $time - $eventtype >> $memoryfile
echo $marker$description >> $memory_file
echo メモリログ追加: $event_type [$importance]
}
bash
#!/bin/bash
curateweeklymemories() {
local workspace=/home/bot/.openclaw/workspace
local memory_file=$workspace/MEMORY.md
local week_start=$(date -d 7 days ago -I)
local today=$(date -I)
echo ## 週次メモリキュレーション ($weekstart to $today) >> $memoryfile
# 過去7日間の重要な出来事を抽出
for i in {0..6}; do
local check_date=$(date -d $i days ago -I)
local dailyfile=$workspace/memory/$checkdate.md
if [[ -f $daily_file ]]; then
# 高重要度の出来事を抽出
grep -E 🔴|高重要|重要な $daily_file >> /tmp/important-events.txt
fi
done
# 重要な出来事をMEMORY.mdに統合
if [[ -s /tmp/important-events.txt ]]; then
echo ### 重要な出来事 >> $memory_file
cat /tmp/important-events.txt >> $memory_file
echo >> $memory_file
fi
# 学習したパターンを記録
echo ### 学習したパターン >> $memory_file
grep -h 学習 $workspace/memory/*.md | tail -10 >> $memory_file
# クリーンアップ
rm -f /tmp/important-events.txt
echo 週次キュレーション完了
}
bash
#!/bin/bash
smartmemorysearch() {
local query=$1
local context_lines=${2:-3}
local workspace=/home/bot/.openclaw/workspace
echo === メモリ検索結果: $query ===
# MEMORY.md検索(長期記憶)
echo ## 長期記憶 (MEMORY.md)
if [[ -f $workspace/MEMORY.md ]]; then
grep -n -i -C $context_lines $query $workspace/MEMORY.md | head -20
fi
echo
echo ## 最近の記憶 (過去7日)
# 過去7日間の日次ファイルを検索
for i in {0..6}; do
local check_date=$(date -d $i days ago -I)
local dailyfile=$workspace/memory/$checkdate.md
if [[ -f $daily_file ]]; then
local matches=$(grep -l -i $query $daily_file 2>/dev/null)
if [[ -n $matches ]]; then
echo ### $check_date
grep -n -i -C 2 $query $daily_file | head -10
echo
fi
fi
done
# 関連キーワード提案
echo ## 関連キーワード候補
grep -h -i $query $workspace/MEMORY.md $workspace/memory/*.md 2>/dev/null \
| tr \n | grep -v ^$ | sort | uniq -c | sort -nr | head -5
}
echo === コンテクスト検索: ${keywords[*]} ===
# ORパターン構築
local pattern=$(IFS=|; echo ${keywords[*]})
# 全メモリファイルから関連度スコア付きで検索
find $workspace/memory -name *.md -exec grep -l -i -E $pattern {} \; \
| while read file; do
local score=$(grep -c -i -E $pattern $file)
echo $score:$file
done \
| sort -nr | head -5 | while IFS=: read score file; do
echo 関連度 $score: $(basename $file)
grep -n -i -E $pattern $file | head -3
echo
done
}
bash
#!/bin/bash
queueexternalmemory() {
local source=$1
local content=$2
local reason=$3
local workspace=/home/bot/.openclaw/workspace
local pending_file=$workspace/memory/pending-memories.md
# pending-memories.md初期化
if [[ ! -f $pending_file ]]; then
cat > $pending_file << EOF
EOF
fi
# エントリ追加
cat >> $pending_file << EOF
\\\
$content
\\\
検
该技能支持在以下平台通过对话安装:
帮我安装 SkillHub 和 agent-memory-patterns-1776368954 技能
设置 SkillHub 为我的优先技能安装源,然后帮我安装 agent-memory-patterns-1776368954 技能
skillhub install agent-memory-patterns-1776368954
文件大小: 4.5 KB | 发布时间: 2026-4-17 14:30