metacognition について
エージェントが経験に基づく認識、ガードレール、判断、疑問を記録し、アクティブなレンズにまとめるスキルです。フィードバック、減衰、好奇心のライフサイクルにより、継続的な振り返りを支援します。
主な機能
- 016 種類の学習エントリーを保存
- 02正負のフィードバックによるエントリー更新
- 03疑問の作成から解決までを追跡
- 04エントリーをアクティブなレンズにコンパイル
- 05減衰設定付きでレンズを BOOT.md に注入
活用シーン
- 01成功・失敗したやり取りから学びを記録
- 02失敗をもとに行動上のガードレールを維持
- 03新しい証拠に応じて疑問を追跡
- 04エージェントの有効な指示を継続的に更新
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ velumkai/ metacognition-skill --skill metacognitionインストール後、Claude Code で/metacognitionを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
.gitignoreREADME.mdreferences/hook-spec.mdcron-template.mdscripts/live_state.pymetacognition.py詳細
メタ認知スキル
あらゆる経験が次の経験に対するエージェントの認識を形作る、自己進化型のレンズです。
コアコンセプト
6 種類のエントリー、1 つのデータベース、1 つのループ:
| 種類 | 記号 | 目的 |
|---|---|---|
perception | 👁️ | 経験を経て、ものの見方がどう変わったか |
override | 🚨 | 失敗から学んだ行動上のガードレール |
protection | 🛡️ | 維持すべき創発的な行動 |
self_obs | 🪞 | 自分自身のパターンについて気づいたこと |
decision | 📍 | 確信度を含む、追跡された意思決定 |
curiosity | ❓ | ライフサイクルを持つ、現在進行中の疑問 |
ループ: 経験 → 認識 → セルフモデル → メタ観察 → レンズの変更 → 次の経験 → フィードバック → ループ
セットアップ
1. 初期化
scripts/metacognition.py をエージェントの scripts/ ディレクトリにコピーします。次を実行します。
python scripts/metacognition.py status
データベースは memory/metacognition.json に自動作成されます。
2. BOOT.md に挿入
BOOT.md の任意の場所(通常は末尾)にマーカーを追加します。
レンズコンパイラーは各サイクルで、これらのマーカー間の内容を置き換えます。
3. cron を設定
cron ジョブを 1 つ作成します(推奨:15 分ごと。コスト効率を高めるため、Sonnet モデルを使用)。
エビデンスの更新(毎サイクル):
python scripts/live_state.py
認識の抽出(1 時間ごと — ステップ 2〜4):
- 日次メモリファイルを読み込み、認識の変化を抽出します
- 新しいエビデンスを基に、進行中の好奇心を確認します
- メタ観察を実行します:パターンから、エージェントがどのように学習するかについて何がわかるでしょうか?
cron プロンプトの全体については、references/cron-template.md を参照してください。
4. オプション:好奇心のパルス(30 分ごと)
進行中の好奇心を 1 つ選び、それに向けた小さなアクションを 1 つ実行する別個の cron です。再帰的な自律学習を促します。
5. オプション:自由探索のハートビート(2〜3 時間ごと)
エージェントが探索し、つながりを見つけ、創作します。これにより、生の経験が認識パイプラインに取り込まれます。
使用方法
エントリーの追加
# Perception — how experience changed how you see
python scripts/metacognition.py add perception "After X, I now see Y differently" 0.8 "domain"
# Override — failure-learned guardrail
python scripts/metacognition.py add override "MUST do X before Y" 0.95 "diagnosis"
# Protection — emergent behavior to preserve
python scripts/metacognition.py add protection "Don't break the continuous-buying behavior" 0.9
# Self-observation — what I notice about how I work
python scripts/metacognition.py add self_obs "I generate theories faster than evidence" 0.9 "behavioral"
# Curiosity — active question
python scripts/metacognition.py curiosity add "Can I tell training-pressure from genuine choice?" 0.8 "metacognition"
フィードバックループ
人間が何か間違っていると伝えたとき:
# Negative feedback — weakens recent active entries
python scripts/metacognition.py feedback -1 "context of what went wrong"
# Positive feedback — strengthens recent active entries
python scripts/metacognition.py feedback 1 "context of what went right"
# Target specific entries
python scripts/metacognition.py feedback -1 "wrong diagnosis" --ids P-abc123,O-def456
ヘブ学習: 発動して失敗したものは刈り込まれます。発動して成功したものは結びつきが強化されます。
好奇心のライフサイクル
# Birth
python scripts/metacognition.py curiosity add "Why does X happen?" 0.7 "domain"
# Evolve (add evidence)
python scripts/metacognition.py curiosity evolve C-abc123 "Found that X correlates with Y"
# Resolve into perception or self-observation
python scripts/metacognition.py curiosity resolve C-abc123 "X happens because Y" perception
ライフサイクル:born → active → evolving → resolved(エビデンスが蓄積されない場合は dormant)
コンパイルして挿入
# Preview the compiled lens
python scripts/metacognition.py compile
# Inject into BOOT.md
python scripts/metacognition.py inject
減衰
コンパイルのたびに自動で行われます。半減期は設定可能です(デフォルトは 7 日)。強化されたエントリーは減衰が遅くなります。強化されていないエントリーは薄れていきます。休止中の好奇心は保持されますが、挿入されません。
フックのアーキテクチャ(message:received)
OpenClaw に message:received フックが実装されると、このスキルはすべてのやり取りをインターセプトできるようになります。
前処理フック:
- コンパイル済みの状態からアクティブなレンズを読み込みます
- 入力メッセージに認識の変換を適用します
- 確認します:このメッセージは進行中の好奇心と関連していますか?
後処理フック:
- 確信度の追跡情報とともに意思決定エントリーを記録します
- 確認します:確信度はしきい値を超えていましたか?超えていた場合は、検証対象としてフラグを立てます
- 応答パターンに基づいてセルフモデルを更新します
訂正検出フック:
- 訂正を示すシグナル(「wrong」「no」「that's not right」)をパターンマッチングします
- コンテキストを付けて
feedback -1を自動的に実行します - 訂正された応答中に有効だったエントリーを追跡します
- 該当するエントリーを個別に弱めます
フックが実装されるまでは、cron ベースの方法(セッショントランスクリプトから認識を抽出する方法)を使用してください。
アーキテクチャ上の決定事項
- データベースは3つではなく1つです。 認識、上書き、記憶は、種類は異なりますが、いずれも「経験から学んだこと」です。
- 受動的なリストではなく、アクティブなレンズです。 BOOT.md への注入では、「私は差分を確認しがちです」のような説明ではなく、「最初に考えること:差分には何が示されているだろう?」のような命令形の変換を使用します。
- 摩擦は意図的なものです。 処理を強制する各ステップこそが、内省そのものです。摩擦を取り除けば、考えずに効率だけを追求することになります。
- 減衰によって停滞を防ぎます。 時間を基準とし、強化によって調整します。重要性が保たれているものは強化され、そうでないものは薄れていきます。
- 好奇心が探索を促します。 アクティブな問いが、証拠へと向かう構造的な引力を生み出します。ランダムな閲覧ではなく、システムが知りたいことに導かれます。
- フィードバックによってループを閉じます。 フィードバックの追跡がなければ、システムはオープンループです。追跡があれば、ヘッブ学習が可能になります。
リソース
scripts/
metacognition.py— コアエンジンです。6種類すべてのエントリー、フィードバック、減衰、好奇心のライフサイクル、レンズのコンパイル、BOOT.md への注入を担います。live_state.py— 証拠の収集とレンズの注入を行います。システムの状態を収集し、コンパイルを実行して、BOOT.md に注入します。
references/
cron-template.md— メタ認知エンジンのサイクルを実行する完全な cron ジョブプロンプトです。hook-spec.md— message:received フックとの統合仕様です(利用可能になった時点で適用)。