Is your feature request related to a problem?
MemMachine's episodic memory requires a graph database. The default, Neo4j Community Edition, is GPLv3 - a license that's incompatible with many commercial and vendored deployments, and a hard blocker for shipping MemMachine inside Apache-2.0 products. NebulaGraph is already supported as an Apache-2.0 alternative, but it's a distributed 3-role system (meta + storage + graph) that's operationally heavy for single-instance and small-cluster deployments.
Separately, MemMachine already requires PostgreSQL + pgvector for semantic memory. A minimal deployment today runs two database services side by side (Neo4j for graph, Postgres for vectors) even though a lot of users would be happy with one.
Describe the solution you'd like
Add Apache AGE (Apache-2.0) as a third supported backend behind the existing VectorGraphStore interface. AGE is a PostgreSQL extension that adds openCypher support, so the graph store can live inside the same Postgres instance as the pgvector-backed semantic memory - one database service for the whole stack.
At a high level, this means:
- A new AGE-backed VectorGraphStore implementation that slots in alongside the existing Neo4j and NebulaGraph ones.
- Configuration plumbing (
provider: age in configuration.yml) similar to the other graph backends.
- Deployment parity: Docker Compose and the Helm chart both able to stand up a single-Postgres AGE stack out of the box, not just Neo4j.
- Test coverage at parity with the existing backend integrations.
The end-user story: pick AGE if you want an Apache-2.0-licensed stack running on a single Postgres. Pick Neo4j for the existing default. Pick NebulaGraph when you genuinely need distributed-scale graphs. Three backends, clearly differentiated by deployment profile.
Describe alternatives you've considered
- NebulaGraph alone: already supported and Apache-2.0, but not bundled in the helm chart and not a good fit for single-instance deployments. Doesn't address the "two database services" operational footprint either.
- Sticking with Neo4j-only: not viable for users blocked by GPLv3.
- Other openCypher-over-Postgres projects (e.g. Bitnine's predecessor of AGE): AGE is the ASF-incubated successor and the canonical choice going forward.
- Keeping Postgres and Neo4j as two separate services but replacing Neo4j with something lighter: doesn't solve the license problem and adds a third backend to maintain without consolidating infrastructure.
Additional context
An implementation is done - a PR is ready to review and will be submitted after this issue is opened.
Is your feature request related to a problem?
MemMachine's episodic memory requires a graph database. The default, Neo4j Community Edition, is GPLv3 - a license that's incompatible with many commercial and vendored deployments, and a hard blocker for shipping MemMachine inside Apache-2.0 products. NebulaGraph is already supported as an Apache-2.0 alternative, but it's a distributed 3-role system (meta + storage + graph) that's operationally heavy for single-instance and small-cluster deployments.
Separately, MemMachine already requires PostgreSQL + pgvector for semantic memory. A minimal deployment today runs two database services side by side (Neo4j for graph, Postgres for vectors) even though a lot of users would be happy with one.
Describe the solution you'd like
Add Apache AGE (Apache-2.0) as a third supported backend behind the existing VectorGraphStore interface. AGE is a PostgreSQL extension that adds openCypher support, so the graph store can live inside the same Postgres instance as the pgvector-backed semantic memory - one database service for the whole stack.
At a high level, this means:
provider: agein configuration.yml) similar to the other graph backends.The end-user story: pick AGE if you want an Apache-2.0-licensed stack running on a single Postgres. Pick Neo4j for the existing default. Pick NebulaGraph when you genuinely need distributed-scale graphs. Three backends, clearly differentiated by deployment profile.
Describe alternatives you've considered
Additional context
An implementation is done - a PR is ready to review and will be submitted after this issue is opened.