II.
KnowledgeFabricImpl JSON
Structured · liveknowledge-fabric-impl:hermes.memory-plugin
Hermes Memory Provider Plugin json
Inspect the normalized record payload exactly as the atlas UI reads it.
{
"id": "knowledge-fabric-impl:hermes.memory-plugin",
"_kind": "KnowledgeFabricImpl",
"_file": "agent-stack/hermes/hermes-memory-plugin.yaml",
"_cluster": "agent-stack",
"attributes": {
"displayName": "Hermes Memory Provider Plugin",
"agentVersionId": "agentVersion:hermes:ge-0-0-0",
"fabricKind": "file-and-plugin",
"description": "Pluggable memory provider architecture extending Hermes with persistent\ncross-session knowledge beyond built-in MEMORY.md and USER.md files.\nSingle-select provider model: only one external memory provider active\nat a time. Providers implement MemoryProvider ABC with rich lifecycle\nhooks for prefetch, sync, compression awareness, and session end.\n",
"keyFiles": [
"agent/memory_provider.py",
"agent/memory_manager.py",
"plugins/memory/"
],
"builtInMemory": [
"MEMORY.md (project-scoped persistent notes)",
"USER.md (user profile, preferences, history)",
"Session history with FTS5 full-text search",
"Session lineage tracking across compression"
],
"pluginLifecycleHooks": [
"is_available() -- activation check, no network calls",
"initialize(session_id, **kwargs) -- agent startup",
"get_tool_schemas() -- tool injection",
"handle_tool_call(tool_name, args) -- tool routing",
"system_prompt_block() -- static provider info in prompt",
"prefetch(query) -- recalled context before API call",
"queue_prefetch(query) -- pre-warm for next turn",
"sync_turn(user, assistant) -- persist conversation (non-blocking)",
"on_session_end(messages) -- final extraction/flush",
"on_pre_compress(messages) -- save insights before discard",
"on_memory_write(action, target, content) -- mirror writes",
"shutdown() -- clean up connections"
],
"configSchema": "Providers declare config fields via get_config_schema() for interactive\nsetup. Secrets written to .env, non-secrets to provider-specific config\nfiles. Profile isolation enforced via hermes_home kwarg.\n",
"threadingContract": "sync_turn() must be non-blocking; backend latency in daemon threads.",
"singleProviderRule": "Only one external memory provider active at a time.",
"ourEquivalent": "packages/babysitter-sdk/src/ provides memoryExtraction and crossRunState for durable\nmemory across babysitter runs. CLAUDE.md/MEMORY.md file conventions match\nHermes' file-based memory. Atlas graph provides structured organizational\nknowledge that Hermes lacks. Hermes' rich lifecycle hooks (prefetch,\non_pre_compress, queue_prefetch) are more granular than our current\nmemory extraction, representing an integration opportunity.\n"
},
"outgoingEdges": [
{
"from": "knowledge-fabric-impl:hermes.memory-plugin",
"to": "layer:12-knowledge-fabric",
"kind": "realizes",
"attributes": {}
},
{
"from": "knowledge-fabric-impl:hermes.memory-plugin",
"to": "agent:hermes",
"kind": "part_of",
"attributes": {}
}
],
"incomingEdges": []
}