Next-generation memory provider for Hermes Agent — fusing OpenViking vector storage with MemOS cognitive engine
Project description
Hermes Next
A self-evolving memory system for AI agents. Python-native, zero-bridge, brain-like cognition.
Hermes Next fuses OpenViking vector storage with a Python-native MemOS cognitive engine, giving Hermes Agent agents persistent, self-evolving memory — no JSON-RPC bridge, no TypeScript dependency, no process overhead.
Why Hermes Next?
Most agent memory systems today are TypeScript plugins bolted onto Python agents via JSON-RPC bridges — every memory operation crosses a process boundary, serializes and deserializes, and introduces a failure point.
Hermes Next is Python-native from day one. It runs in-process, shares memory with the agent, and eliminates the bridge entirely.
| Feature | Traditional (memos-local) | Hermes Next |
|---|---|---|
| Language | TypeScript + JSON-RPC bridge | Python native |
| Search | Brute-force cosine | 6-step fusion (semantic + FTS5 + timeline + RRF + MMR + recency) |
| Lifecycle | None (data grows forever) | Auto-archive (90d) + confidence decay + pruning |
| Native memory sync | ❌ | ✅ MEMORY.md promotion + session_search fallback |
| Cross-agent sharing | JSON-RPC | ✅ OpenViking namespaces |
| Cognitive pipeline | L1/L2/L3/Skill | L1→Reward→L2→L3→Skill fully wired |
| Setup | npm install + bridge config |
pip install |
Bottom line: memos-local was built for the TypeScript era. Hermes Next is built for the Python-native era.
Quick Start
pip install hermes-next
Requires Python 3.10+ and a running OpenViking server (v0.3.22+).
Basic Usage
from hermes_next import HermesNextProvider
# Initialize
provider = HermesNextProvider()
provider.initialize(session_id="my-session")
# Every turn — automatic capture + retrieval
context = provider.prefetch("What did we discuss about RAG?")
provider.sync_turn(
user_content="Tell me about RAG optimization",
assistant_content="Key techniques: chunk size tuning, embedding selection...",
session_id="my-session",
tags=["rag", "optimization"],
)
# At session end — cognitive pipeline runs automatically
provider.on_session_end(messages=[])
# Check pipeline health
status = provider.handle_tool_call("memos_status", {})
print(status)
CLI
# Start the built-in viewer
hermes-next-viewer --port 8080
# Migrate from legacy memos-local-plugin database
hermes-next-migrate --old-db ~/.hermes/memos-plugin/data/memos.db
Architecture
Hermes Agent (Python)
│
HermesNextProvider
┌────────┴────────┐
│ │
RetrievalPipeline CognitivePipeline
┌─────┼───┬───┐ ┌───┼───┬───┬───┐
│ │ │ │ │ │ │ │ │
Semantic FTS5 Timel. MMR L1 L2 L3 Skill
(OV) (SQLite) (Rerank) (Policy)(WM)(Cryst.)
│ │
┌──┴──┐ ┌───┴───┐
OpenViking SQLite MEMORY.md state.db
(Vector) (Cache) (Native) (Fallback)
4-Layer Retrieval Chain
- Hot Memory — MEMORY.md / USER.md (always in system prompt)
- Semantic Search — OpenViking vector store (primary, 95% of queries)
- FTS5 Full-text — Local SQLite cache (keyword fallback)
- session_search — Hermes Agent native state.db (last resort)
Cognitive Pipeline
Every session triggers an automatic induction chain:
L1 Traces → Reward Backprop → L2 Policy Induction → L3 World Model → Skill Crystallization
↓ ↓ ↓ ↓ ↓
Raw turns Score each Extract reusable Build domain Package as
interaction behavioral patterns knowledge invocable skills
Configuration
# ~/.hermes-next.yaml
openviking:
base_url: "http://localhost:1933"
cognitive:
enable_l2_induction: true
enable_l3_world_model: false # opt-in, GPT-intensive
enable_skill_crystallization: false
lifecycle:
trace_retention_days: 90
policy_decay_rate: 0.03
integration:
sync_memory_md: false # promote to Hermes Agent MEMORY.md
session_search_fallback: true # fallback to native state.db FTS5
Tools Exposed to the Agent
| Tool | Description |
|---|---|
memos_search(query, k) |
Semantic search across all memories |
memos_get(trace_id) |
Read a specific trace |
memos_timeline(limit) |
Recent memory activity |
memos_status |
Pipeline health + promotion stats |
Project Structure
hermes-next/
├── hermes_next/
│ ├── ov/ # OpenViking REST client
│ ├── memos/ # MemOS cognitive engine
│ ├── cache/ # SQLite local cache (FTS5 + vector)
│ ├── retrieval/ # 6-step fusion pipeline
│ ├── integration/ # Hermes Agent native memory bridge
│ └── viewer/ # Built-in SPA dashboard
├── tests/ # 141 tests, 0 flaky
└── docs/ # Architecture + upgrade guides
Comparison with memos-local-plugin
| Aspect | memos-local-plugin | Hermes Next |
|---|---|---|
| Runtime | TypeScript, separate process | Python, in-process |
| Communication | JSON-RPC over stdio | Direct function calls |
| Vector search | Brute-force cosine (SQLite) | OpenViking (real vector DB) |
| Full-text search | ❌ | ✅ FTS5 |
| Memory lifecycle | ❌ | ✅ Auto archive + decay |
| Native Hermes sync | ❌ | ✅ MEMORY.md + session_search |
| Cross-agent sharing | Per-process | ✅ OpenViking namespaces |
| Viewer | HTTP + SSE | HTTP SPA |
| Pipeline | 3-tier retrieval | 6-step fusion + cognitive |
Roadmap
- v0.4.0 — Feedback loop (user 👍/👎 → policy update → better retrieval)
- v0.5.0 — Decision Repair (failure patterns → prevention)
- v0.6.0 — Hub cross-agent search (native, no OV dependency)
See docs/strategic-positioning.md for the full strategy.
License
AGPL-3.0 — This project is a derivative of OpenViking (AGPL-3.0).
Built for agents that learn from every conversation. 🤛
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file hermes_next-0.4.0.tar.gz.
File metadata
- Download URL: hermes_next-0.4.0.tar.gz
- Upload date:
- Size: 77.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
029edb0ef2ebbaa7f9c4fba91a67fba91df358ad52a9bccb8c1b1f6151f48c59
|
|
| MD5 |
53688da4e693c2ebd4998fa38dd9ad09
|
|
| BLAKE2b-256 |
0f7a2e75f37434f9726d9b5c3b01961dd69d3862490ee6c4e83d1e24c9805528
|
File details
Details for the file hermes_next-0.4.0-py3-none-any.whl.
File metadata
- Download URL: hermes_next-0.4.0-py3-none-any.whl
- Upload date:
- Size: 80.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b8010b03735d6acd7077061aa75bf738e8524be4dc11b35154944f84c5e7627b
|
|
| MD5 |
b24878bdbeefd0207673b5435fa67942
|
|
| BLAKE2b-256 |
b58d0f8201c38c255d6e24780ff4a1bd006ac9ffce5c7c0027eb976068a24343
|