メインコンテンツまでスキップ
バージョン: Future

Engram を理解する

コマンドガイドを読む前に、こちらをお読みください。Engram が有用である理由は、コマンドの多さではなく、誰がメモリを所有しているかにあります。

一言で表すモデル

Engram は、AI エージェントが永続的なメモリを使用できるようにしつつ、何が永続化されるかを人間が決定するファイルプロトコルです。

Engram とは何か

Engram は、以下を管理するための知識メモリセンターです:

  • プロジェクトのルール
  • チームの決定事項
  • 再利用可能なワークフロー
  • 永続的な事実
  • プロジェクトをまたいで適用したい個人の設定

メモリはプレーンな Markdown です。インデックス、グラフ、ハッシュ、およびアダプターファイルは、その Markdown をより簡単かつ安全に使用できるようにするために存在します。

Engram ではないもの

Engram は以下のものではありません:

  • エージェントのための隠された脳
  • ベンダーが所有する閉じたメモリシステム
  • プロジェクトドキュメントの代替物
  • 権威を装ったベクトルデータベース
  • すべてを永久に保存する自動レコーダー

エージェントはメモリを提案できますが、人間がメモリの承認、拒否、編集、アーカイブ、および所有を行います。

コアとなる約束

Engram は、AI メモリを以下のようにすることを目指しています:

  • レビュー可能:一般的なエディタで直接読むことができます
  • ポータブル:Git で同期し、異なるエージェント間で再利用できます
  • 修正可能:誤ったメモリは、将来の作業に悪影響を及ぼさないようにアーカイブ(理由付き)できます
  • デフォルトでプライベート:除外ルールと承認ゲートにより、誤った情報のキャプチャを防ぎます
  • 意図的にシンプル:不可視のプラットフォームの状態よりも、Markdown ファイルのほうが信頼しやすいです

各レイヤー

レイヤー意味
Markdown永続的な信頼できる唯一の情報源(source of truth)
JSON インデックス高速ルックアップレイヤー
JSON グラフトピックおよび関係性のルーティングレイヤー
ハッシュ整合性チェック
承認(Approval)書き込み前の信頼の境界
除外ルールプライバシーコントロール
Git履歴管理、ポータビリティ、レビュー、復元
エージェントアダプターCodex、Claude、Cursor、Gemini、その他のエージェント用の利便性レイヤー

生成される JSON はエージェントがメモリを素早く見つけるのを助けますが、それは権威ではありません。生成されたファイルと Markdown の内容が矛盾する場合、Markdown が優先されます。

メモリのライフサイクル

  1. セッション、ファイル、または人間のメモに有用な知識が含まれている。
  2. エージェントが簡潔なメモリ候補を提案する。
  3. 人間がすべてを承認、一部を選択、メモを追加、または拒否する。
  4. Engram が承認された Markdown メモリを書き込む。
  5. Engram がハッシュ、インデックス、グラフ、および変更履歴(changelog)を更新する。
  6. 将来のエージェントが、現在のタスクに関連するメモリのみを読み込む。
  7. メモリが誤りになった場合、Engram は理由とともにそれをアーカイブする。

このライフサイクルにより、メモリを不可視にすることなく有効に保ちます。

人間、エージェント、Engram、Git

アクター役割
人間何を永続メモリにするかを選択する
エージェントパターンを検知し、メモリ候補を提案する
Engramスキーマ、安全性、ルーティング、承認、およびメンテナンスを適用する
Gitマシン間でメモリを搬送し、レビュー履歴を提供する

エージェントは支援をしますが、所有者ではありません。

良いメモリ

良い Engram メモリとは:

  • 来週になっても価値がある程度に安定していること
  • 後でルーティングできる程度に具体的であること
  • エージェントのコンテキストに収まる程度に短いこと
  • 意図したスコープで共有しても安全であること
  • ルール(rule)、スキル(skill)、または知識項目(knowledge)として記述されていること

悪いメモリとは、一時的なチャットのノイズ、機密情報、認証情報、その場限りの推測、または誰も承認していない事実などです。

スコープ

ワークスペースメモリの保存先:

<project>/.agents/.engram/

グローバルメモリはオプションであり、ユーザーが設定した場所に保存されます。

ワークスペースメモリが優先されます。グローバルメモリは、再利用可能な設定、個人の習慣、またはチーム全体のデフォルト値のためのフォールバックです。

なぜ内蔵のエージェントメモリだけではダメなのか

内蔵メモリは便利ですが、検査、比較(diff)、エクスポート、共有、あるいは修正が困難な場合があります。また、特定のアプリやアカウントに依存しがちです。

Engram は永続的なレイヤーを可視化します。内蔵メモリも役立ちますが、知識が重要である場合には、人間が所有する Engram が信頼できる情報源であるべきです。

知っておくべき限界

デフォルトの Engram 検索は、決定論的なレキシカル検索です。engram search --semantic は決定論的なローカル類似度チェックを追加しますが、外部の埋め込み(embeddings)を利用した意味検索ではありません。グラフのベクトルは、セマンティックな埋め込みではなく、ローカルでハッシュ化された単語ベクトルです。矛盾の検出はアドバイザリー(推奨情報)にすぎません。暗号化設定は存在しますが、暗号化ストレージはまだ実装されていません。

これらの制限は、あえて明確に示すようにしています。Engram は、現在何が実現可能で、何が将来の課題であるかをユーザーに明確に伝えるべきだと考えています。

次へ:AI エージェントクイックスタート