人間が所有するメモリプロトコル
AIチャットでの承認
AIエージェントとのチャットでは、Engram の承認は会話型です。エージェントはまず洗練した TYPE: ... | TEXT: ... 候補を表示し、ルールでは Light/Balanced/Strict の各バリアントも示します。正確にその候補を保存するには yes、修正するには audit、中止するには cancel と返信します。yes の後、エージェントは承認された候補そのままで engram save-session --accept-all を使います。直接の CLI 保存は、accept-all コマンドが明示的に呼ばれていない限り、引き続き A/B/C を使います。
Engram は単なる「エージェントのメモリ」ではありません。メモリを検査可能にし、ポータブルにし、人間によって統治されるようにするプロトコルです。
契約事項
Markdown は永続メモリです。
JSON インデックスおよびグラフファイルは、高速化のためのアクセラレーションレイヤーです。
承認(Approval)は信頼の境界です。
ハッシュは整合性チェックです。
除外ルールはプライバシーコントロールです。
Git はポータビリティと変更履歴の監査を提供します。
エージェントアダプターは利便性のためのものであり、権威ではありません。
エージェントはメモリを提案できますが、何がメモリになるかは人間が決定・所有します。
メモリのタイプ
| タイプ | 用途 |
|---|---|
| Rule | ユーザーの好み、修正、制約、「常に実行する/決して実行しない」といったガイドライン |
| Skill | 繰り返し発生するワークフロー、チェックリスト、手順、ランブック |
| Knowledge | 客観的なプロジェクトの事実、決定事項、実装の詳細 |
すべてのアクティブなメモリファイルには、Context、Content、および Example セクションがあります。ルールメモリは、ロードされたガイドラインが常に有用であるように、簡潔な行数制限もターゲットにしています。
書き込みフロー
- エージェントが 1 つまたは複数の候補を提案します。
save-session --query-level <n>を使用すると、エージェントはアクセス可能な直近 n 件までの人間-エージェントチャットを提案コンテキストとしてのみ考慮できます。 自然な/engram ss -a last 50 sessionsは同じ範囲に明示的な一括承認を加えたものです:engram save-session --query-level 50 --accept-all。 - Engram が候補のタイプとターゲットスコープを解析します。
- Engram がスキーマ、機密情報(secrets)、プロンプトインジェクションのパターン、およびパスの安全性を検証します。
- 人間にプレビューが表示されます。
- 人間が
A、A 1,3、B <メモ>、またはCと返答します。 - 承認されたメモリのみが書き込まれます。
- インデックス、グラフ、ハッシュ、および変更履歴(changelog)が更新されます。
読み込みフロー
- Engram がワークスペースおよびオプションのグローバルインデックスをロードします。
- 重複する ID がある場合、ワークスペースのエントリがグローバルよりも優先されます。
- 除外ルールとロールフィルタにより、無関係なエントリが非表示になります。
- グラフ指向ルーティングにより、コンパクトなコンテキストパックが選択されます。
- コンテンツが出力される前に、ハッシュと安全性のチェックが実行されます。
なぜこれが重要なのか
プロトコルがないと、メモリは「不可視な状態」になってしまいます。不可視な状態はレビューが難しく、共有するのも困難であり、エージェントによって誤って破損(汚染)される危険性があります。
Engram は意図的にメモリを退屈なものにしています:ファイル、差分(diffs)、ハッシュ、レビューゲート、そして人間が再実行できるコマンドによって管理されます。
次へ:操作ガイド。