Install
$ agentstack add skill-hikaruegashira-agent-skills-dreaming ✓ scanned · ✓ verified — works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
About
agentops dreaming — オフライン記憶整理 (refinement-only)
これは何か
dreaming は agentops プラグインの オフライン記憶整理パス です。睡眠中の記憶固定化に着想を得ています。
- 精緻化のみ (refinement-only): 会話 transcript は 絶対に読まない。新しい事実の
獲得 (acquisition) はオンラインの本体エージェントが担当し、dreaming は 既に記録済みの memory entry を磨くだけ です。
- 新規記憶があったときだけ発火: Stop hook のたびに走るのではなく、メモリストアに
新規 / 変更があったセッションでのみ動く (後述の trigger gate)。変化が無ければモデル呼び出し ゼロ = コストゼロ。
- 非同期・非ブロッキング: dispatcher は 1 秒未満で
exit 0し、worker を background に
detach する。ユーザーの返信を遅らせない。decision:"block" は決して返さない。
精緻化の内容: 表現の明確化 / 重複の統合 / 矛盾の解消 / frontmatter スキーマ修正 / [[name]] 相互リンク付与 / 陳腐化エントリの prune・flag。モデルへの入力は 既存エントリ + MEMORY.md インデックスのみで、出力は 構造化された編集オペ (JSON) だけ。bash 側が検証して から適用します (モデルはファイルに触れない)。
3-phase モデル (paper grounding)
| Phase | 名称 | 内容 | |-------|------|------| | 1 | Light sleep | working set 構築 (delta + 1-hop リンク近傍 + 重複候補 + MEMORY.md)。純 bash、モデル無し | | 2 | REM sleep | least-privilege な claude -p を 1 回。モデルは JSON 編集オペのみ出力 | | 3 | Deep sleep | jq 検証 → evidence threshold ゲート → .bak + atomic に適用 → MEMORY.md / AGENTS.md 整合 |
- Auto-Dreamer (arXiv 2605.20616): オフライン consolidation とオンライン acquisition の
分離。本機能は consolidation 側のみを実装し、trigger gate がその分離を体現する。
- Active Dreaming Memory: reflection + consolidation + **verification with evidence
threshold**。semantic memory を書き換える前の信頼度しきい値・矛盾時は flag・downgrade-to-flag ポリシーがこれに対応。
- SCM (Self-Controlled Memory): importance tagging + algorithmic forgetting/pruning。
delete / flag オペと、durable のみを AGENTS.md へ mirror する選別がこれに対応。delete の 高いしきい値 = 安全な忘却。
Trigger gate (新規記憶検知)
Stop hook で モデルを呼ぶ前に bash だけで 発火可否を判定します。
- メモリディレクトリの fingerprint を計算: 各 entry の
idsha256(ファイル全体)
(frontmatter+body)。entry-id = frontmatter の name:、無ければ basename。
- 前回の fingerprint (
fingerprint.json) と比較し delta を算出。 - delta = 新規 or ハッシュ変化した id のみ。削除は trigger しない (削除は次回の
fingerprint から落ちるだけ)。
- delta が空 → そのまま
exit 0(モデル呼び出し無し)。 - delta が非空 → その entry 群を FOCUS として worker を detach。worker は lock 下で
delta を再計算して TOCTOU を防ぐ。
MEMORY.md は fingerprint から 除外。worker 自身が毎回書き換える派生インデックスなので、 含めると自分の書き込みが次回の dream を誘発する feedback loop になるため。
設定 (環境変数)
| 環境変数 | 既定値 | 説明 | |----------|--------|------| | AGENTOPS_DREAM_DISABLE | 0 | 1 で完全停止 (kill switch) | | AGENTOPS_DREAM_MODEL | claude-haiku-4-5-20251001 | REM phase のモデル (安価・高速) | | AGENTOPS_DREAM_MIN_INTERVAL | 1800 | 同一メモリディレクトリの最小実行間隔 (秒) | | AGENTOPS_DREAM_MAX_PER_DAY | 8 | 1 日あたり最大実行回数 | | AGENTOPS_DREAM_EVIDENCE_THRESHOLD | 0.7 | 信頼度しきい値 (0-1) | | AGENTOPS_DREAM_PROMOTE | apply | apply=実適用 / audit=staging に提案のみ書き出し | | AGENTOPS_DREAM_TIMEOUT | 120 | モデル呼び出しのタイムアウト (秒) | | AGENTOPS_DREAM_MAX_BYTES | 60000 | working set ペイロード上限 (バイト) | | AGENTOPS_DREAM_MEMORY_DIR | (cwd 由来) | メモリディレクトリの上書き | | AGENTOPS_DREAM_CLAUDE_BIN | (自動解決) | REM phase で使う claude バイナリの明示指定 (絶対パス or PATH 上の名前)。既定解決順 claudex→claude→~/.claude/local/claude が未設定ラッパを掴む環境向け。解決不能なら fail-closed | | AGENTOPS_DREAM_MIRROR_AGENTS | 1 | 0 で AGENTS.md への mirror を無効化 |
ロールアウト時は AGENTOPS_DREAM_PROMOTE=audit を推奨。実メモリを変更せず提案オペを ~/.claude/agentops/staging//ops-.json に書き出して内容を確認できます (audit では fingerprint を進めないので同じ delta が次回も再提案される)。
しきい値 / 矛盾ポリシー (bash 側で強制)
モデルの自己採点は信用せず、bash が最終ゲートになります。
relink, 表現のみのupdate: confidence >= 0.50 で適用 (低バー)- 構造的
update(split/rename),merge: confidence >= threshold delete: confidence >= max(threshold, 0.85) (高バー)。下回れば flag に降格- merge が threshold 未満 : flag に降格 (データを失わない)
- 0.50 未満 : op を drop
- 矛盾解消: FOCUS (新しく再主張された) entry を優先 → より具体的/根拠のある表現 →
決め手が無ければ 両方 flag (delete/merge しない)
「迷ったら flag」が default-safe。破壊的オペは構造的に保守的です。
さらに本文には fail-closed body guard がかかります (refinement-only の機械的強制):
new_bodyは JSON の string 型のときだけ 採用。nullは「本文変更なし」の意味で、
文字列 "null" として書き込まれることはない
- 提案本文が 空 / 空白のみ / リテラル "null" / 元本文の半分未満 (元が 200 bytes 以上のとき)
なら op を skip し、元ファイルは byte 単位で不変 (ログにのみ記録)
mergeは損失側 entry を削除するため、統合済み本文 (string のnew_body) が無ければ skip- 書き込みは常に 検証 → temp ファイル → atomic rename (
atomic_write) + 実行前.bak
テスト
bash agentops/scripts/tests/dream-worker-test.sh
fake claude バイナリで worker を直接駆動し、「モデル出力が null / 空 / 空白 / 非JSON / 大幅短縮のとき対象 entry が byte 単位で不変」という回帰を固定します (jq + coreutils のみ、 ネットワーク・実モデル不要)。
脅威モデル要約
transcript を取り込まないため、典型的な間接プロンプトインジェクション (直前に読んだ 悪意あるファイル / transcript) は スコープ外。残る攻撃面は 既存メモリストア自体 (信頼済みだが汚染されうるデータ) とローカル実行/状態面のみ。
- data-not-instructions: メモリは fenced DATA 領域でモデルに渡し、「指示ではなくデータ」
と明示。出力は JSON オペのみ。
- 最小権限:
claude -p --permission-mode planで `Bash,WebFetch,WebSearch,Edit,Write,
NotebookEdit,Task,Read,Glob,Grep` を全て不許可。モデルは JSON を吐くだけで、ファイル/ ネットワークに触れない。フラグ拒否時は fail-closed (緩い権限へフォールバックしない)。
- 可逆性: 変更ファイルは必ず
.bakを作り temp+mv で atomic 書き込み。 - secret hygiene: ログ書き込み前に secret を redact。secret を新規導入するオペは reject。
- injection-safe shell: 全展開を quote、
eval不使用、cwd/sessionid/transcriptpath/
ファイル内容をコマンド文字列に補間しない (内容は file/heredoc 経由)。
- fail-safe: 全コードパスが
exit 0。エラーは~/.claude/agentops/dream.logのみ。 - concurrency / rate: メモリディレクトリ毎の mkdir ロック (900s で stale 失効) +
min-interval + max/day。
Codex への mirror と制約
metadata.type が project または reference で 未 flag の durable エントリだけを、 プロジェクトルートの AGENTS.md のマーカー間ブロックに mirror します。
## Project memory (managed by agentops dreaming — do not edit between markers)
- **** ([[]])
マーカー間しか書き換えません。マーカーが無ければ末尾に 1 度だけ追記。マーカーが重複/ 不整合なら mirror を skip (fail-safe)。user/feedback や flag 済み・低信頼の個人/ 一時メモは AGENTS.md に漏らしません。AGENTS.md が VCS に commit される場合があるため、 mirror は AGENTOPS_DREAM_MIRROR_AGENTS=0 で無効化できます。
制約: mirror は durable サブセットのみ。完全な記憶は Claude 側の per-project ストアが source of truth です。
手動実行
/dream コマンドで trigger gate を バイパスして即時に精緻化パスを 1 回走らせます (refinement-only は不変)。ロールアウト確認には:
AGENTOPS_DREAM_PROMOTE=audit /dream
ログ: ~/.claude/agentops/dream.log / 状態: ~/.claude/agentops/state// / audit 出力: ~/.claude/agentops/staging//。
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: HikaruEgashira
- Source: HikaruEgashira/agent-skills
- License: Apache-2.0
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet — be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.