Myria
Myria is a standalone memory service for long-running agents.
It stores an append-only event log in PostgreSQL, builds versioned semantic snapshots in the background, and exposes the whole system through a stdio MCP server. The design target is a shared memory runtime that can serve conversations, planning, task execution, and group-chat settings without forcing clients to replay huge transcripts.
This project was inspired by PageIndex.
What Myria Does
- Appends canonical events with stable ingest-time IDs.
- Serves raw event trees through
myria.query_event_nodes. - Serves summary/reference trees through
myria.query_references. - Builds participant-scoped TopicIndex snapshots in the background.
- Keeps fresh post-snapshot events queryable while rebuilds are still pending.
- Exposes admin and observability tools for snapshots, topics, and build state.
What Myria Does Not Do
- It is not a general agent runtime.
- It is not a chat frontend.
- It does not expose an MCP network transport in v1.
- It does not trust emitter-supplied semantic IDs as canonical memory structure.
V1 Shape
- Language: Go
- Database: PostgreSQL
- Public interface: stdio MCP
- Internal LLM platform: OpenRouter
- Target model family for builder and tree-walker workflows: NVIDIA Nemotron 3 Super
- Internal logging: append-only file logging through
service.log_file
Quick Start
- Create a JSON config file for Myria.
- Create an OpenRouter request template JSON.
- Run migrations.
- Start the stdio MCP server.
go run ./cmd/myria -config ./myria.json -cmd migrate
go run ./cmd/myria -config ./myria.json -cmd serve
Run a one-off build:
go run ./cmd/myria -config ./myria.json -cmd build
Run tests:
go test -timeout 5m ./...
Documentation
Start here:
- Docs Index
- Quick Start
- Configuration
- Architecture
- Data Model
- Indexing and Querying
- MCP API
- Storage
- Operations
- Full Design Specification
Suggested reading order:
- Architecture
- Quick Start
- Configuration
- Data Model
- Indexing and Querying
- MCP API
- Operations
- Full Design Specification
Project Layout
myria/
cmd/myria/ entrypoint
config/ sample LLM request template
docs/ human-facing docs and full design spec
internal/config/ config loading and validation
internal/core/ shared types and ID logic
internal/llm/ OpenRouter client and tool loop
internal/mcp/ stdio MCP server
internal/service/ orchestration, query paths, builder logic
internal/store/ PostgreSQL schema and data access
internal/testutil/ local test helpers
Current Status
Myria currently supports:
- stdio MCP serving
- PostgreSQL migrations and storage
- append/query/build flows
- inactivity and threshold-triggered builds
- exact event/topic lookup
- snapshot and builder observability
- live OpenRouter-backed LLM integration tests
The root README is the canonical entry point for the project. The full design lives in docs/design.md, and the rest of the docs are shorter guides organized for human readers.
Languages
Go
100%