| … | … | @@ -0,0 +1,83 @@ |
| 1 | # ActiveGraph × AtomSpace — synthesis |
| 2 | |
| 3 | Status: DESIGN NOTE (2026-07-05). Companion to `atomspace` org issue #3 and the |
| 4 | GPU-AtomSpace post-mortem (org issue #1). Motivates `hyperstoragenode.md`. |
| 5 | |
| 6 | Subject: arXiv:2605.21997 — Y. Nakajima, *"The Log is the Agent: Event-Sourced |
| 7 | Reactive Graphs for Auditable, Forkable Agentic Systems"* (ActiveGraph; BabyAGI |
| 8 | lineage; Apache-2.0). Paper specifics below are as-summarized, not line-verified |
| 9 | against the PDF. |
| 10 | |
| 11 | ## The paper in one paragraph |
| 12 | ActiveGraph inverts the agent stack into three layers, reverse priority: |
| 13 | (1) an append-only **event log** = ground truth; (2) a deterministic **graph |
| 14 | projection** derived from the log; (3) **reactive behaviors** (functions, LLM |
| 15 | routines, typed-edge logic) that fire on graph changes and emit new events — |
| 16 | "no component instructs another; coordination happens entirely through the shared |
| 17 | graph." Delivers deterministic replay, cheap forking, complete lineage. |
| 18 | |
| 19 | ## Claim: ActiveGraph is the single-node special case of the hypercore+AtomSpace stack |
| 20 | Structural correspondence, not analogy: |
| 21 | |
| 22 | | ActiveGraph | hypercore/pgh stack | AtomSpace / Linas | |
| 23 | |---|---|---| |
| 24 | | append-only event log = truth | Hypercore (merkle log) / Autobase (multi-writer→linearized) | the op-log a StorageNode replays | |
| 25 | | deterministic graph projection | Autobase view / Hyperbee | AtomSpace hypergraph (atoms immutable+unique ⇒ projection is a pure fn of the log) | |
| 26 | | reactive behaviors fire→emit | Autobase apply + watchers | Query/FilterLink match → SetValue emit = basal {Atom, Query, SetValue} | |
| 27 | | "coordination through the shared graph" | daemons on a shared topic | Linas's blackboard/stigmergy — "no component instructs another" verbatim | |
| 28 | | deterministic replay | Autobase linearization (free) | pure-function projection, cryptographically verifiable | |
| 29 | | cheap forking | Hypercore fork; git branches (pear-git-v3 IS this) | fork = new writer / new branch | |
| 30 | | complete lineage | merkle causal chain | lineage = a path through the hypergraph = an Atomese Query | |
| 31 | |
| 32 | The hypercore/pgh version is the signed, multi-writer, P2P-replicated, |
| 33 | forkable-as-a-git-forge generalization of the same architecture. |
| 34 | |
| 35 | ## "The log is the agent" ⇔ Linas's 5-bullet agent |
| 36 | - world model = the projection (AtomSpace) |
| 37 | - sensory boundary = events entering the log |
| 38 | - motor menu = the events reactive behaviors can emit |
| 39 | - decision maker = a Query over the projection |
| 40 | - boundary (finite inside / unbounded outside) = local store vs. swarm |
| 41 | - communication = connector-mating = another agent's log-events replicating in |
| 42 | |
| 43 | Same object, two planes: the log is the agent's memory, the projection its world |
| 44 | model, Query its decision-maker, match→emit its sensori-motor loop. |
| 45 | |
| 46 | ## The payoff: the frameworks correct each other |
| 47 | ActiveGraph event-sources *the graph*. Linas's rule: "the graph is just an index — |
| 48 | **Values** are the payload"; the real compute (MI, MCL, evidence-flow) is on mutable |
| 49 | Values at high frequency. Naively event-sourcing every Value write detonates the log. |
| 50 | |
| 51 | Resolution = AtomSpace's Atom/Value split, which the paper lacks: |
| 52 | - **Structure (Atoms/Links) → event-sourced.** Immutable, unique, forkable — the |
| 53 | paper's model fits perfectly; low-churn. |
| 54 | - **Values (payload) → NOT logged; checkpointed.** The mutable projection state (the |
| 55 | GPU slice-table, Linas Step 4). Rebuilt by replaying structure + re-running kernels, |
| 56 | or snapshotted. |
| 57 | |
| 58 | **Rule: event-source the graph, checkpoint the Values.** This is what makes |
| 59 | ActiveGraph practical at AtomSpace scale, and it is invisible from inside the paper. |
| 60 | |
| 61 | ## Consequence for this repo |
| 62 | The two deferred items in `gpu-query-architecture.md` gain an external motivation: |
| 63 | - **Values slice-table (Linas Step 4)** is the "checkpoint the Values" half — the |
| 64 | load-bearing reason ActiveGraph doesn't explode at scale. |
| 65 | - **HyperStorageNode** (NEXT STEP #4 in org issue #1) is the artifact that turns a |
| 66 | one-box GPU AtomSpace into a P2P swarm of event-sourced reactive agents. Scoped in |
| 67 | `hyperstoragenode.md`. |
| 68 | |
| 69 | ## Honest tensions |
| 70 | 1. **One blackboard vs. many.** The paper assumes a single shared graph. Our world is |
| 71 | many partial graphs entraining via connectors — a swarm of blackboards. That is the |
| 72 | generalization and also where conflict/consistency live; Autobase linearization is |
| 73 | the answer where the paper has one process. |
| 74 | 2. **Ad-hoc vs. symbolic behaviors.** ActiveGraph triggers are arbitrary JS/LLM |
| 75 | callbacks. Making them Query/FilterLink (the basal set) is strictly stronger — |
| 76 | behaviors become data, queryable and forkable — but it is the open part |
| 77 | (multi-variable GPU matcher; see `gpu-query-architecture.md` limits). |
| 78 | |
| 79 | ## Provenance |
| 80 | VERIFIED: hypercore/Autobase semantics, AtomSpace Atom/Value split, the StorageNode |
| 81 | family, basal {Atom, Query, SetValue}, Linas's agent axiomatization (all from loaded |
| 82 | skills/source). AS-SUMMARIZED (not line-verified): the ActiveGraph paper's specifics. |
| 83 | INFERRED/unbuilt: HyperStorageNode. |