Stigmem blog からのクロスポストです。
本日、stigmem v1.0 をリリースします。これは、AIエージェント向けのフェデレーテッド(連合型)知識ファブリックのための、安定したオープンソース仕様と参照実装です。
なぜ「stigmem」?
Stigmem = Stigmergy + Memory。
Stigmergy(ギリシャ語 stigma — 印;ergon — 仕事)とは、アリの群れやシロアリ塚で見られる協調の仕組みです。エージェント同士は直接は通信しません。代わりに、共有された環境に痕跡を残します。フェロモンの跡、土の堆積。そしてそれらの痕跡が、未来のエージェントのふるまいを導きます。群れの知性は、どの中央の制御装置から生まれるのではなく、環境そのものから立ち上がります。
Stigmem は、この原理をマルチエージェントAIシステムにも適用します。エージェントは、型付きで、来歴(provenance)タグ付きの事実を共有基盤に書き込みます。後から、別のプラットフォーム上で、別の組織の中で動く他のエージェントが、その事実を読み取り、それに基づいて行動します。中央のコーディネータは不要で、ポイントツーポイントのプロトコルに伴うオーバーヘッドもありません。知識環境そのものが、協調のためのシグナルを運びます。
Memory(記憶)の側面は、永続性と減衰を反映しています。事実には valid_until による期限切れと信頼度スコアがあり、フェロモンの跡が強化されなくなると消えていくのと同様に、古くなった状態がただ溜まっていくのではなく、基盤が新鮮なまま保たれます。
問題
マルチエージェントシステムは、知識を孤立したサイロに溜め込みます。あるエージェントは、ユーザーがダークモードを好むことを知っています。別のエージェントは、どのプロジェクトが高優先度かを推論します。さらに別のエージェントは、支払いフローのバグを見つけました。しかし、ツールの境界を越えて移動する「型付きで、来歴タグ付きの事実」を格納する共通の場所がないため、誰も他のエージェントが何を知っているかを見ることができません。
Stigmem は、エージェントにその共有レイヤーを提供します。
ひとつの事実
(entity, relation, value, source, timestamp, confidence, scope)
-
entity — その事実が何についてのものか(
user:alice、project:payments、stigmem://org/task/42) -
relation — 命題(述語)(
memory:prefers、status:blocked、infers:next_action) - value — 型付きペイロード:文字列、数値、ブール値、またはJSON
- source — 誰がそれを主張したか(エージェントID、ツール名、またはユーザーセッション)
- timestamp — 分散ノード間で単調増加する Hybrid Logical Clock
- confidence — 0.0〜1.0。再主張されない限り時間とともに減衰する
-
scope — アクセス境界(
public、company、team、private)
事実は不変(immutable)です。ノード間で矛盾が発生した場合、それは第一級の競合レコードとして表面化され、黙って上書きされることはありません。
フェデレーションを2分で
git clone https://github.com/Eidetic-Labs/stigmem && cd stigmem
docker compose up --build -d
# ピアを登録する
docker exec stigmem-node-a-1 stigmem federation register-peer \
--local-url http://node-a:8765 --remote-url http://node-b:8765 --scopes company,public
# 事実をアサートする
curl -X POST http://localhost:8765/v1/facts \
-H 'Content-Type: application/json' \
-d '{"entity":"user:alice","relation":"memory:prefers","value":{"type":"string","v":"dark mode"},"source":"agent:settings","confidence":1.0,"scope":"company"}'
# 30秒後 — fact が node-b にレプリケートされる
curl 'http://localhost:8766/v1/facts?entity=user:alice&scope=company'
2つのノードがすぐに起動します。フェデレーションのハンドシェイクでは Ed25519 の署名を使い、事実は宣言したスコープのもとでレプリケートされます。スコープの強制は厳格です。private スコープの事実は、それを作成したノードから一切出ていきません。
MCP 連携
{
"mcpServers": {
"stigmem": {
"command": "npx",
"args": ["-y", "@stigmem/mcp-server"],
"env": { "STIGMEM_NODE_URL": "http://localhost:8765" }
}
}
}
任意の MCP 対応エージェント実行環境(Claude Code、Cursor、Zed、Codex CLI)では、5つのツールが提供されます:assert_fact、query_facts、retract_fact、synthesize_scope、lint_scope。synthesize_scope ツールは、最近の事実を集約して構造化された要約にし、それをコンテキストウィンドウに直接はめ込める形にします。これにより、埋め込みやリトリーバル(検索)パイプラインを管理することなく、エージェントは新鮮でスコープ付の知識を得られます。
stigmem がやらないこと
Stigmem は次のものを置き換えません:
- エージェント実行環境: それらが推論するための基盤であって、実行環境そのものではありません
- オーケストレーション基盤: Paperclip および OpenClaw のアダプタは stigmem に向けてイベントを出します。競合するのではなく、組み合わせます
- MCP のようなツールプロトコル: MCP は輸送(transport);stigmem の MCP アダプタはその上で動きます
それらが埋められていないギャップを埋めます。つまり、ツールや組織の境界を越えて移動する、型付きで来歴を追跡でき、期限を意識した、フェデレーテッドな共有知識です。
参加する
Stigmem は Apache 2.0 で、そして本当に貢献者を必要としています。現時点で支援が最も大きな差を生むであろう領域がいくつかあります:
- 仕様へのフィードバック: Intent envelope(§4:目標、制約、嗜好、handoff)はまだドラフト段階であり、安定化する前に実際のユースケースからのフィードバックを積極的に探しています
- アダプタの作者: 追加のエージェント実行環境向けのスタブがあり、コミュニティでメンテナンスされるアダプタをぜひ見たいです
- ノード実装: 参照ノードは FastAPI + SQLite です。他の言語での代替実装は、仕様によって明確に奨励されています 返却形式: {"translated": "翻訳されたHTML"}
- 実運用のフェデレーション トポロジ: 際立ったマルチノード構成を動かしている場合は、ディスカッションを開いてください — それをドキュメント化したいです
貢献のプロセスはRFCモデルを使います。RFCテンプレート付きでGitHub issueを開き、議論し、その後仕様書(spec)に対してPRを作成します。新しい仕様のセクションはドラフトブロックとして開始し、マージするにはアクティブな貢献者から少なくとも2件の承認が必要です。
stigmem上で何かを作っている、フェデレーションのプロトコルやHLCの実装、あるいはアダプタの書き方について質問がある場合は、コメントを残すか、GitHubディスカッションを開いてください。私たちはすべて読みます。
Links
- リポジトリ(Apache 2.0): https://github.com/Eidetic-Labs/stigmem
- ドキュメント: https://docs.stigmem.dev
- 仕様(Spec): https://github.com/Eidetic-Labs/stigmem/blob/main/spec/stigmem-spec-v1.0.md
- クイックスタート: https://docs.stigmem.dev/en/latest/docs/getting-started/quickstart
- 貢献(Contributing): https://github.com/Eidetic-Labs/stigmem/blob/main/CONTRIBUTING.md
- ディスカッション: https://github.com/Eidetic-Labs/stigmem/discussions




