Palinode - AI agent の記憶を読めて diff できる Markdown に戻す
AI agent の「記憶」は、すでに実用上の engineering problem になっています。Agent が今日何を覚えたのか。来週、古い判断を事実として扱わないか。Team はある知識がどこから来たか audit できるのか。こうした問題を、black-box な vector DB だけに任せるのは危ういです。長期 project では、memory は多ければよいわけではありません。読めること、消せること、merge できること、trace できることが重要です。
今日紹介する phasespace-labs/palinode は、この問題を扱う小さな project です。Agent memory の source of truth を普通の Markdown file と YAML frontmatter に置き、Git で history を残し、SQLite-vec、SQLite FTS5、MCP server、REST API、CLI を derived layer として使います。GitHub ページでは現在およそ 24 stars、6 forks。主な実装言語は Python、license は MIT です。現在見える commit history は 2026 年 3 月 31 日から始まり、最近の commit は 2026 年 5 月 26 日。最新 release は v0.8.12 で、公開日は 2026 年 5 月 26 日です。
プロジェクト概要
| 項目 | 内容 |
|---|---|
| リポジトリ | phasespace-labs/palinode |
| Stars | 約 24 |
| Forks | 6 |
| 主な言語 | Python |
| ライセンス | MIT |
| 見える commit history の起点 | 2026 年 3 月 31 日 |
| 最近の commit | 2026 年 5 月 26 日 |
| 最新 release | v0.8.12 |
File が記憶の source of truth
Palinode の中心にある判断はシンプルです。Agent memory は database の中だけに閉じ込めるべきではない、というものです。People、projects、decisions、insights、daily などの memory type を Markdown file として保存し、それぞれに YAML frontmatter を持たせます。人間は Obsidian、VS Code、vim などで直接読んで編集でき、machine はその file から index を作ります。
この設計のよいところは、最悪の状況でも完全には見えなくならない点です。Vector index が壊れても grep できます。API が落ちても cat できます。Embedding model が使えなくても file は残ります。長期 assistant には、すべての記憶が読めない service に入っている状態よりずっと扱いやすい構造です。
Audit も自然になります。ある fact がいつ追加されたか、誰が変更したか、どの consolidation で古い情報が置き換わったかを、Git diff、blame、history で確認できます。Palinode はこうした Git operation を first-class tool として提供し、agent が MCP、CLI、REST API から呼べるようにしています。
Vector だけに頼らない hybrid search
Palinode は SQLite-vec と SQLite FTS5 を組み合わせます。前者は semantic similarity、後者は keyword search と BM25 を担当します。Search result は fused ranking でまとめられます。これは memory system に向いた選択です。過去の知識を探すとき、人間は「keyword を覚えている」場合もあれば、「だいたいの意味だけ覚えている」場合もあるからです。
Vector search だけでは、error code、project codename、正確な command などが不安定になることがあります。Keyword search だけでは、言い換えられた経験を拾いにくいです。Palinode は両方を local SQLite file に置き、Postgres、Redis、cloud search service を前提にしません。個人 developer や小さな team には、この軽さが大きいです。
README では content-hash dedup にも触れています。変更されていない file の re-embedding を避けるための仕組みです。このような細部を見ると、単なる demo ではなく、長く動かした後の maintenance cost を意識していることがわかります。
MCP、REST API、CLI が同じ backend を使う
Palinode は、一つの IDE や一つの agent だけを前提にしていません。MCP server、REST API、CLI、OpenClaw plugin を提供します。MCP は Claude Code、Claude Desktop、Cursor、Windsurf、Zed、VS Code の Continue や Cline に向いています。REST API は script、webhook、custom integration に向きます。CLI は cron、SSH、token cost を抑えたい automation に合います。
これは cross-tool workflow では重要です。今の developer は、一つの agent だけを使うとは限りません。昼は Cursor、夜は Claude Code、時々 Zed や terminal tool、という形もあります。Memory が単一 client に閉じていると、tool を切り替えた瞬間に context が切れます。Palinode は memory service を中央に置き、いろいろな client が同じ backend に接続する形を選んでいます。
HTTP の MCP server として複数 machine から接続する構成も想定されています。Memory を各 working directory にコピーする必要はなく、chat history の移動にも頼りません。
記憶の compaction を review できる操作にする
Long-term memory が壊れやすいのは、「保存できない」からではありません。むしろ保存しすぎて混乱するからです。Palinode の consolidation は、KEEP、UPDATE、MERGE、SUPERSEDE、ARCHIVE のような structured operation として compaction を扱います。LLM は operation を提案し、deterministic executor が実際に file を変更し、その結果を Git commit にします。
この境界は大事です。LLM に memory repository を直接書き換えさせると、drift が起きやすく、なぜ情報が消えたのか追いにくくなります。Palinode は「提案」と「実行」を分け、各 compaction を review、blame、rollback 可能な commit にします。
Team knowledge base では、この方式は単純な summary より信頼できます。Memory compaction は古い text を短くする作業ではなく、今後も使う fact、decision、project state を少なく正確な file に整理する作業だからです。
Obsidian との相性が自然
Memory が Markdown file なので、Palinode は memory directory を Obsidian vault として扱えます。palinode init --obsidian は vault layout、index page、daily-note wiring、graph view の default config を生成します。README では、entities: frontmatter と body 内の wikilinks を保つことで、memory の変化に合わせて graph relation も更新できると説明されています。
これは人間が介入しやすい設計です。完全自動の memory system は説明可能性を失いやすく、完全手書きの knowledge base は負担が大きくなります。Palinode は、agent に保存、検索、整理提案を任せつつ、人間が Markdown と Obsidian で確認できる中間点を狙っています。
すでに Obsidian や file-based knowledge base を使っている team なら、専用 SaaS を導入するより移行しやすいはずです。
v0.8.12 は write path と monitoring を重視
最新 release v0.8.12 の中心は派手な新機能ではなく、save path と health check です。Release note では、auto_summary が /save の synchronous hot path から外され、非同期側に移されたことが説明されています。また /health/auto-summary と /status.auto_summary が追加され、monitor agent が async summary pipeline の停滞を検出しやすくなりました。
こうした変更は地味ですが、memory system には重要です。Memory を一件保存するたびに local LLM の first-token latency で待たされると、caller は write timeout と誤認します。Summary background task が止まっても health signal がなければ、問題の発見は遅れます。Palinode の最近の release は、実運用の friction を潰す方向に進んでいます。
向いている場面
Palinode は、AI agent を本格的に使い始め、context を長期に再利用できない問題にぶつかっている developer や team に向いています。
典型的には次のような場面です。
- Agent memory を読める、commit できる、backup できる file として保存したい。
- Claude Code、Cursor、Windsurf、Zed などで同じ long-term memory を共有したい。
- MCP 経由で search、save、diff、blame、rollback などを agent に渡したい。
- Project decision、operation note、person、task state を typed memory として保存したい。
- 古い memory を定期的に compact したいが、LLM に追跡不能な直接 rewrite はさせたくない。
- Obsidian を使っていて、agent memory と human knowledge base を近づけたい。
たまに agent に小さな bug fix を頼むだけなら、Palinode は重いかもしれません。Python、Git、Ollama の BGE-M3、そして API/watcher/MCP の実行環境が必要です。長期 assistant、team memory、cross-IDE agent workflow、auditable knowledge management に向いた tool です。
注意したい境界
Memory system は sensitive information を扱いやすい領域です。Palinode の README も、memory directory は private data であり公開してはいけないと明確に注意しています。Data を file system と Git に戻すことは auditability を高めますが、repository permission、remote sync、.gitignore boundary をきちんと設計する必要があります。
また、Palinode は memory の正しさを自動保証するものではありません。保存、検索、圧縮、追跡はできますが、古くなった fact は人間や process が見つける必要があります。Hybrid search も truth judgment ではありません。Recall された内容は、agent と user が現在の context で評価する必要があります。
最後に、project はまだ早期段階です。Stars は少なく、version iteration も速いです。重要な workflow に入れる前に、まず個人 memory や非 production knowledge base で試し、write、search、compaction、rollback が自分の作業に合うか確認するのがよいでしょう。
まとめ
phasespace-labs/palinode の価値は、もう一つの agent notebook を作ったことではありません。Agent long-term memory を普通の engineering asset に戻していることです。Markdown file、Git history、local index、MCP tool、reviewable compaction、明確な health signal という形にしています。
長期 assistant、AI coding workflow、team knowledge base をすでに運用していて、memory を black-box database に完全には預けたくないなら、Palinode は追いかける価値のある小さな project です。Agent が覚えられるだけでなく、人間が読めて、直せて、追跡できる方向に進んでいます。