What problem does it solve? Building a plugin that plugs into Hermes Agent's memory system requires knowing the exact MemoryProvider ABC contract, discovery heuristics, threading rules, and testing patterns, which are easy to get wrong without verified guidance. ## Core Features & Use Cases - Interface Contract: Documents the abstract methods (name, is_available, initialize, get_tool_schemas, handle_tool_call) and optional hooks (prefetch, sync_turn, on_memory_write, and more) of the MemoryProvider ABC. - Registration & Discovery: Explains entry-point registration, the 8192-byte loader heuristic, directory naming rules, and single-provider selection via the memory.provider config key. - MCP-Bridge Pattern: Shows how to wrap a remote memory server as a thin in-process shim using the official mcp SDK with lazy imports and sync-over-asyncio. - Testing Patterns: Covers duck-typed fake clients, spec-loading hyphenated plugin directories in pytest, and integration tests that spawn the real server with isolated data roots. - Use Case: You are writing an AiRaccoon-backed memory provider for Hermes and need to avoid pitfalls like leaking spawned child processes or integration tests writing into the real memory bank. ## Quick Start Ask the agent to scaffold a Hermes memory provider plugin implementing the MemoryProvider ABC with registration, tool schemas, and unit tests using a fake client.