1 ポイント 投稿者 shakystar 4 시간 전 | 1件のコメント | WhatsAppで共有

一人で開発しながら毎日ぶつかっていた問題から始まりました。ベンダーは毎日のようにより良いモデルを出してきますが、そのモデルに乗り換えて開発を続けるたびに(Opus 4.7からGPT 5.5へ、のように)、プロジェクトの作業記憶はついてきませんでした。エージェントごとに独自のメモリサイロが積み上がる一方で、私は断ち切られたコンテキストを毎回手で蘇らせなければなりませんでした。エージェントの初期のメモリ機能はあまりに貧弱で、セッションが終わるとコンテキストが死に、1台のマシンに閉じ込められていたため、デスクトップでしていた作業をノートPCに引き継ぐこともできませんでした。

プロジェクトには、プロジェクトの記憶が必要です。そこで作りました。プロジェクト自身が記憶を持てるようにする、ローカルファーストのオープンソースです。

技術的に自信のある点

  • 脳の二重学習系(CLS)を取り入れた2層メモリ — 作業中はLLMなしで安価に観測だけをキャプチャ(海馬)、セッション境界でバックグラウンド統合(新皮質)。忘却は削除ではなく、想起時点でのスコア競争(重要度 × 半減期14日の新しさ × 作業関連性)でのみ起こり、どの記憶も消去されません。

  • APIキー不要 — 統合用のLLMを別途用意する必要はありません。すでにログイン済みの claude -p / codex exec をそのまま起動します。エージェントが自分自身を使って自分の記憶を整理する構造ですが、このとき発生する無限再帰(統合→フック発火→統合→…)は環境変数ガードで断ち切ります。

  • ロスのない統合 — ウォーターマークはイベント永続化後にのみ前進するため、LLMのタイムアウトやパース失敗が起きると、次の境界で同じ区間を再試行します。ウォーターマーク自体が消えても、ソースベースの重複排除が重複統合を防ぎます。

  • サーバーなしのクロスマシン収束 — append-onlyイベントログを同期すれば、時計同期なしでも内容ベースの決定論的ルールだけで、すべてのマシンが同じ状態に収束します。2台のマシンが同時に同じ区間を統合しても、すべてのレプリカが同じ勝者を選びます。

  • 矛盾検出で埋め込みを過信しない — コサイン類似度は否定文に弱いです(「マージしろ」と「マージするな」はほぼ同じベクトル)。そのため、類似度は候補の回収までにしか使わず、判定はLLMが行います。負けた記憶は削除されるのではなく、有効期間が閉じられるため、「その時は真実だった」を復元できます。

  • 並列セッションのリアルタイム共有 — 同じプロジェクトで動くセッション同士が互いの作業を見られ、同じファイルを触ると競合警告が表示されます。

  • スキーマを理論ではなく計測で進化 — 記憶の分類体系を変えるべきかを、各記憶に付く観測専用の寿命フィールドと行動テレメトリ(いつ注入されたか、いつ無効化されたか)を数週間集めて、データで決めます。この議論全体はリポジトリのDiscussionsで公開されています。

なぜ今公開するのか

正直、もっと成熟させてから出したかったです。ですが、OpenAIがdreamingのようなメモリ機能を出してくるのを見て考えが変わりました。同じ問題を巨大ベンダーが掘り始めたということは、方向性が正しいということですし、ベンダーの中に閉じた記憶が標準になる前に、ベンダー中立の代替案が存在すべきだと思いました。だから今公開します。

どこまで目指したいか

Fable 5級モデルの登場によって、エージェントたちはいまや互いに協力できる水準に達しましたが、協力のための共有インフラがありません。長期的には、Gitがコードにしてくれたことを、エージェントの記憶と協業に対して実現する公共的なプラットフォームを作りたいです。お金がなかったのでサーバーから始めることはできませんでしたが、その制約のおかげで、むしろサーバーなしでも収束するローカルファースト設計が生まれました。今はその最初の一片である「ローカルでプロジェクト記憶を共有」が完全に動作します。実際、このプロジェクトの設計議論、実装、そして今日未明のデプロイまで、かなりの部分をエージェントと一緒に進めました — このツールが実現したい協業の形そのものです。

具体的に必要な助け

  1. 試して壊れる箇所の報告 — 1行インストール後にIssueで。今日のリリース前検証だけでもインストールスクリプトのバグを2つ(PowerShell 5.1の引用符、LinuxのEACCES)見つけましたが、きっとまだあります。
  2. 他のエージェント向けアダプタ — Cursor、Gemini CLI、Windsurfあたりのフック構造をご存じの方。
  3. 記憶分類体系の議論への参加 — 「記憶の種類とは何か」をデータで決めるDiscussionsを開いています。

インストールは1行です(WindowsはREADMEのPowerShellコマンドを参照):

curl -fsSL https://raw.githubusercontent.com/shakystar/memorize/… | sh

またはClaude/Codexセッションに1行: Set up memorize in this project. Follow https://github.com/shakystar/memorize/blob/main/guides/AI_SETUP.md

リポジトリ: https://github.com/shakystar/memorize · 日本語README
(https://github.com/shakystar/memorize/blob/main/docs/i18n/README.ko.md) · 設計文書
(https://github.com/shakystar/memorize/blob/main/docs/ARCHITECTURE.md)

AGPL、すべてローカル保存、テレメトリなし。どんなフィードバックでも歓迎します。

1件のコメント

 
shakystar 4 시간 전

作成者です。

このプロジェクトのリリース直前の1日は、このツールが目指す協業の形そのものでした。エージェントと「記憶の分類にタグは適切か、脳にはタグがないのに」と設計議論を行い、その合意が GitHub Discussions と Issue に記録され、実装 PR がマージされ、エージェントが自分自身(claude -p)を抽出器として使って実際の作業記録を長期記憶に統合する dogfooding まで確認して、配布ボタンを押しました。その過程の設計論争は、リポジトリの Discussions ですべて公開しています。

本文に書いていないことでよく受けそうな質問は「遅くなったりコストがかかったりしないか」だと思うので先に答えると、作業中は LLM はまったく関与しません。キャプチャはルールフィルタなので体感遅延は 0 で、LLM が動くのはセッション境界での統合1回だけですが、それも分離されたバックグラウンドプロセスなのでエージェントを1秒たりとも止めません。その呼び出しすら、すでにお使いの claude/codex サブスクリプションから出るため、別途 API 請求はありません。本日の dogfooding 基準では、1セッション分の観測44件がバックグラウンド呼び出し1回(約30秒)で統合され、セッション開始時の注入も 4,000 文字予算内のテキストなので、トークン負荷はほとんどありません。インストールして忘れていられることが目標でした。

リリース前の実機検証で見つけたものを1つだけ共有すると、README の検証コマンドが npx memorize になっていましたが、npm のスコープなし memorize は別の人のパッケージでした。この種の「実機でしか見えない」ポイントは他にもあるはずなので、報告は本当に価値があります。

お願いです。Windows と WSL/Linux は直接実機検証しましたが、macOS の実機がありません。CI では macOS のテストスイートはすべて通っていますが、ワンライナーインストール → フック → セッション開始時の注入までのフルサイクルは実機で回せていません。macOS をお使いの方で、どなたか一人でもインストールして、動くか/壊れるかをコメントか Issue で知らせていただけると大変助かります。

設計に関する質問(なぜ embedding を判定に使わないのか、なぜ削除がないのか、時計なしでクロスマシン収束がどう成り立つのか)も歓迎します。すべて答えます。