{"id":"2060883609935077667","url":"https://x.com/cyrilXBT/status/2060883609935077667","text":"","author":{"name":"CyrilXBT","username":"cyrilXBT","avatarUrl":"https://pbs.twimg.com/profile_images/2035229727414534145/aWap3Jbq_200x200.jpg"},"createdAt":"Sun May 31 00:38:36 +0000 2026","engagement":{"replies":22,"retweets":49,"likes":455,"views":339895},"article":{"title":"Hermes Agent Masterclass: The Complete Course From Zero to Full Autonomous Agent Operation","previewText":"Most people who discover Hermes Agent spend the first week confused.\nNot because Hermes is complicated.\nBecause nobody has written the complete guide that takes you from zero knowledge to a fully","coverImageUrl":"https://pbs.twimg.com/media/HJmfIdFXMAIwJhT.jpg","content":"Most people who discover Hermes Agent spend the first week confused.\n\nNot because Hermes is complicated.\n\nBecause nobody has written the complete guide that takes you from zero knowledge to a fully operational autonomous agent system in one sitting.\n\nThis is that guide.\n\nBy the end of this masterclass you will have installed Hermes, configured your first agent, built your first skill, connected your first MCP server, set up persistent memory, automated your first workflow, and deployed a multi-agent operation that runs without you.\n\nEvery section builds on the previous one. Read it in order the first time. Return to specific sections when you need to reference them later.\n\n## Section 1: What Hermes Agent Actually Is\n\nBefore you install anything understand what you are building with.\n\nHermes Agent is an open source autonomous AI agent framework. It is not a chatbot. It is not a wrapper around an existing tool. It is infrastructure for building agents that operate persistently, remember everything across sessions, execute reusable workflows, and run autonomously on a schedule.\n\nThe four properties that make Hermes different from every other agent framework:\n\nPersistent memory. Most AI agents forget everything when you close the session. Hermes remembers. Every conversation, every task, every output, every decision is stored in a memory layer that persists indefinitely. The agent you interact with today knows everything that happened in every session before it.\n\nSkill system. Hermes executes reusable workflow files called skills. You write a skill once as a plain Markdown file describing what the agent should do. Every subsequent run calls that skill without rebuilding the logic. Your operation gets faster and more consistent every skill you add.\n\nScheduled automation. Hermes runs on a configurable schedule without you initiating anything. Morning research briefs. Nightly content processing. Hourly source monitoring. All of it fires automatically at the times you configure.\n\nMCP integration. Hermes connects to Model Context Protocol servers that give it access to real tools. File systems. Databases. Web search. APIs. External services. Every MCP connection transforms Hermes from a language model into an agent that acts on the real world.\n\nThese four properties together produce something qualitatively different from any individual AI interaction.\n\nA Hermes agent is not a tool you use.\n\nIt is a system that operates.\n\n## Section 2: Installation and Initial Setup\n\nPrerequisites:\n\nNode.js version 18 or higher. Git. A terminal you are comfortable using.\n\nVerify your Node.js version:\n\nnode --version\n\nIf you need to install or update Node.js visit nodejs.org and download the current LTS version.\n\nInstall Hermes:\n\ngit clone https://github.com/hermes-agent/hermes\ncd hermes\nnpm install\n\nConfigure your environment:\n\ncp .env.example .env\n\nOpen the .env file and configure your model provider:\n\n# Primary model configuration\nMODEL_PROVIDER=anthropic\nMODEL_NAME=claude-opus-4-5\nANTHROPIC_API_KEY=your-anthropic-api-key\n\n# Alternative: Use DeepSeek for free operation\n# MODEL_PROVIDER=deepseek\n# MODEL_NAME=deepseek-chat\n# DEEPSEEK_API_KEY=your-deepseek-key\n\n# Memory configuration\nMEMORY_BACKEND=sqlite\nMEMORY_PATH=./data/memory.db\n\n# Scheduler\nENABLE_SCHEDULER=true\nSCHEDULER_TIMEZONE=America/New_York\n\n# Logging\nLOG_LEVEL=info\nLOG_PATH=./logs/hermes.log\n\nStart Hermes:\n\nnpm run start\n\nYou should see output confirming Hermes is running:\n\n[Hermes] Memory backend: SQLite initialized\n[Hermes] Skill directory: ./skills loaded\n[Hermes] Scheduler: enabled\n[Hermes] Agent ready. Awaiting instructions.\n\nHermes is now running with persistent memory and the scheduler active.\n\nVerify the installation:\n\nType your first message:\n\nHello. What do you know about yourself?\n\nHermes should respond describing its configuration, memory status, and available skills.\n\n## Section 3: Understanding the File Architecture\n\nBefore building anything understand where everything lives.\n\nhermes/\n    skills/\n        [your-skill-name].md\n    data/\n        memory.db\n        processed/\n        outputs/\n    logs/\n        hermes.log\n    config/\n        sources.json\n        schedule.json\n    CLAUDE.md\n    .env\n    package.json\n\nskills/ is where every workflow you build lives. Each skill is a Markdown file. Hermes reads these files and executes the workflows they describe.\n\ndata/ is where Hermes stores everything it processes. memory.db is the SQLite database that powers persistent memory. processed/ holds items that have been handled. outputs/ holds generated content.\n\nlogs/ contains operation logs. Check hermes.log when something is not working as expected.\n\nconfig/ holds your configuration files. sources.json defines your content sources. schedule.json defines when automated workflows run.\n\nCLAUDE.md is the most important file in the entire installation. It tells Hermes everything about who you are, what you do, and how you want it to operate. We build this in Section 4.\n\n## Section 4: Writing Your CLAUDE.md\n\nThe CLAUDE.md is the operating constitution of your Hermes agent.\n\nEvery skill reads it before executing. Every automated workflow uses it for context. Every output is shaped by it.\n\nA poorly written CLAUDE.md produces generic outputs.\n\nA precisely written CLAUDE.md produces outputs that feel like they were made by someone who knows your operation inside out.\n\nHere is the complete template:\n\n# Hermes Agent — CLAUDE.md\n\n## Identity\nName: [YOUR NAME OR BRAND]\nRole: [WHAT YOU DO]\nPrimary platform: [WHERE YOU PUBLISH]\nAudience: [WHO YOU SERVE]\n\n## Content and Work Focus\nPrimary topics: [LIST YOUR MAIN TOPICS]\nContent formats: [WHAT YOU CREATE]\nVoice and tone: [HOW YOU COMMUNICATE]\nWhat you never do: [SPECIFIC THINGS TO AVOID]\n\n## Current Projects\n[PROJECT 1]: [ONE SENTENCE DESCRIPTION]\nStatus: [ACTIVE/PENDING/COMPLETE]\nNext action: [SPECIFIC NEXT STEP]\n\n[PROJECT 2]: [ONE SENTENCE DESCRIPTION]\nStatus: [ACTIVE/PENDING/COMPLETE]\nNext action: [SPECIFIC NEXT STEP]\n\n## Current Priorities\n1. [MOST IMPORTANT THING RIGHT NOW]\n2. [SECOND MOST IMPORTANT]\n3. [THIRD MOST IMPORTANT]\n\n## Content Standards\nA great output: [SPECIFIC DESCRIPTION]\nAn acceptable output: [MINIMUM THRESHOLD]\nA rejected output: [WHAT FAILS]\n\n## Sources I Trust\n[LIST SPECIFIC PUBLICATIONS, CHANNELS, PEOPLE]\n\n## What I Specifically Do Not Want\n[LIST TOPICS, FORMATS, OR APPROACHES TO AVOID]\n\n## Memory Rules\n- Store every significant decision with reasoning\n- Track all content published with performance notes\n- Remember source quality assessments\n- Never repeat content from the same source within 72 hours\n\n## Output Rules\n- Save all generated content to data/outputs/\n- Date stamp every file: YYYY-MM-DD-[type]-[topic].md\n- Log all operations to logs/hermes.log\n- Flag anything requiring human review before posting\n\n## Update Schedule\nReview and update this file: [YOUR SCHEDULE]\n\nSpend 30 minutes filling this out completely before building any skills. Everything downstream depends on the quality of this document.\n\n## Section 5: Building Your First Skill\n\nA skill is a plain text Markdown file that describes a workflow Hermes executes.\n\nThe skill format has four required sections:\n\n# skill-name\n\n## Purpose\n[One sentence describing what this skill does]\n\n## Trigger\n[How to invoke it — manually or on a schedule]\n\n## Process\n[Step-by-step instructions for what Hermes does]\n\n## Output\n[What the skill produces and where it saves it]\n\nLet us build your first real skill: a morning briefing that reads your configured sources and delivers a structured summary.\n\nCreate skills/morning-briefing.md:\n\n# morning-briefing\n\n## Purpose\nGenerate a structured morning intelligence briefing \nfrom all configured sources and save it to the \noutputs folder.\n\n## Trigger\nScheduled daily at 6:00 AM.\nManual: \"Run morning briefing\" or \"Generate my briefing\"\n\n## Process\n1. Read CLAUDE.md for full context on who I am \n   and what topics matter to me.\n\n2. Read config/sources.json for all configured sources.\n\n3. For each source in my primary topics list:\n   Search for significant developments from the \n   last 24 hours using web search.\n   \n   Filter results using these criteria:\n   INCLUDE: New announcements, significant updates, \n   research findings, strategic moves by key players\n   EXCLUDE: Rehashed content, opinion pieces without \n   new information, anything I would classify as noise \n   based on my CLAUDE.md preferences\n\n4. Check memory for anything relevant from \n   previous sessions that connects to today's news.\n\n5. Generate the briefing in this format:\n\n---\n# Morning Brief — [DATE]\n\n## THE ONE THING\n[Most important development today and why it \nmatters specifically for my work]\n\n## WHAT HAPPENED\n[3-7 significant items, each 2-3 sentences]\n\n## WHAT TO WATCH\n[1-2 developing situations worth monitoring]\n\n## FROM MEMORY\n[Any relevant connection to something stored \nin previous sessions]\n\n## TODAY'S FOCUS\n[Single recommended priority based on briefing]\n---\n\n6. Save briefing to:\n   data/outputs/[DATE]-morning-briefing.md\n\n7. Store summary in memory with tag: daily-brief\n\n## Output\nStructured briefing file in outputs folder.\nMemory entry tagged: daily-brief\nLog entry in hermes.log\n\nTest your first skill:\n\nRun morning briefing\n\nWatch Hermes execute each step, search for information, and generate your first automated briefing.\n\n## Section 6: The Memory System\n\nMemory is what transforms Hermes from a capable tool into a compounding system.\n\nUnderstanding how memory works lets you design skills that get progressively smarter over time.\n\nHow Hermes stores memory:\n\nEvery significant operation creates a memory entry in the SQLite database. Each entry has:\n\n- Content: what was stored\n\n- Tags: categories for retrieval\n\n- Timestamp: when it was created\n\n- Source: which skill created it\n\n- Relevance score: updated based on how often it is retrieved\n\nHow Hermes retrieves memory:\n\nWhen any skill runs Hermes automatically searches memory for relevant context before executing. The search uses semantic similarity so related concepts surface even when exact keywords do not match.\n\nDesigning skills for memory:\n\nInclude explicit memory instructions in every skill:\n\n## Memory Instructions\n\nSTORE after completion:\n- Key findings tagged: [relevant-tags]\n- Decisions made tagged: decision\n- Outputs produced tagged: output\n\nRETRIEVE before starting:\n- Previous runs of this skill\n- Any entries tagged: [relevant-tags]\n- Decisions that affect this workflow\n\nManual memory operations:\n\nStore this in memory: [information] — tag it as [tag]\nWhat do you remember about [topic]?\nShow me all memory entries from the last 7 days\nWhat decisions have been stored?\n\nThe memory compound effect:\n\nA Hermes agent with one week of memory is useful.\n\nA Hermes agent with three months of memory is a different category of tool.\n\nAfter three months of daily operation Hermes has read hundreds of sources, processed thousands of pieces of content, tracked dozens of decisions, and built a detailed picture of what works and what does not in your specific operation.\n\nEvery new task benefits from that accumulated context.\n\n## Section 7: Connecting MCP Servers\n\nMCP servers transform Hermes from an agent that reasons about the world into an agent that acts on it.\n\nEach MCP connection gives Hermes access to a real tool. File systems. Web search. Databases. APIs. External services.\n\nInstalling the core MCP servers:\n\n# Filesystem MCP — read and write local files\nnpm install -g @modelcontextprotocol/server-filesystem\n\n# Web search — real-time Brave Search\nnpm install -g @modelcontextprotocol/server-brave-search\n\n# GitHub — repository access\nnpm install -g @modelcontextprotocol/server-github\n\n# Puppeteer — browser automation\nnpm install -g @modelcontextprotocol/server-puppeteer\n\nConfigure MCP connections in your .env:\n\n# Filesystem\nMCP_FILESYSTEM_PATH=/path/to/your/working/directory\n\n# Brave Search\nMCP_BRAVE_API_KEY=your-brave-search-api-key\n\n# GitHub\nMCP_GITHUB_TOKEN=your-github-personal-access-token\n\n# Puppeteer\nMCP_PUPPETEER_HEADLESS=true\n\nThe Filesystem MCP:\n\nThe most immediately valuable connection. Gives Hermes direct read and write access to your local files.\n\nOnce connected Hermes can:\n\nRead files you specify in skill instructions. Write outputs directly to folders on your system. Update files based on new information. Monitor folders for new content.\n\nSkills that use the filesystem MCP:\n\n## Process\n1. Read the file at [PATH] for context\n2. Process the content\n3. Write the output to [OUTPUT PATH]\n4. Update the index file at [INDEX PATH]\n\nThe Brave Search MCP:\n\nGives Hermes access to real-time web search. Without this Hermes can only reason about information up to its training cutoff. With it Hermes searches the live web for current information.\n\nEvery research, monitoring, and briefing skill benefits from Brave Search.\n\nGet your free Brave Search API key at brave.com/search/api. The free tier allows 2,000 queries per month.\n\nThe GitHub MCP:\n\nGives Hermes access to GitHub repositories. It can read code, check trending repos, monitor repositories you follow, and track releases.\n\nValuable for: developer tools content, open source monitoring, technical research, repository analysis.\n\nVerifying MCP connections:\n\nWhat MCP servers are currently connected?\nList all available tools from connected servers.\n\nHermes should list every connected server and the tools each one provides.\n\n## Section 8: The Scheduler System\n\nThe scheduler transforms Hermes from a tool you use into a system that operates.\n\nWithout the scheduler: Hermes does what you ask when you ask.\n\nWith the scheduler: Hermes operates continuously whether you are involved or not.\n\nConfigure your schedule:\n\nCreate config/schedule.json:\n\n{\n  \"schedules\": [\n    {\n      \"skill\": \"morning-briefing\",\n      \"cron\": \"0 6 * * *\",\n      \"description\": \"Daily morning briefing at 6AM\"\n    },\n    {\n      \"skill\": \"source-monitor\",\n      \"cron\": \"0 */2 * * *\",\n      \"description\": \"Check sources every 2 hours\"\n    },\n    {\n      \"skill\": \"content-processor\",\n      \"cron\": \"0 20 * * *\",\n      \"description\": \"Process captured content at 8PM\"\n    },\n    {\n      \"skill\": \"weekly-review\",\n      \"cron\": \"0 19 * * 0\",\n      \"description\": \"Weekly review every Sunday at 7PM\"\n    },\n    {\n      \"skill\": \"memory-consolidation\",\n      \"cron\": \"0 23 * * *\",\n      \"description\": \"Consolidate memory entries at 11PM\"\n    }\n  ]\n}\n\nCron expression reference:\n\n0 6 * * *      → 6AM every day\n0 */2 * * *    → Every 2 hours\n0 20 * * 1-5   → 8PM Monday through Friday\n0 19 * * 0     → 7PM every Sunday\n0 23 * * *     → 11PM every day\n\nThe five scheduled workflows every Hermes operation needs:\n\nMorning briefing: 6AM daily. Reads sources. Generates intelligence brief. Sets the day's focus.\n\nSource monitor: Every 2 hours. Checks configured sources for new content. Adds to processing queue.\n\nContent processor: 8PM daily. Processes everything captured during the day. Generates outputs. Updates memory.\n\nWeekly review: Sunday 7PM. Synthesizes the week's activity. Identifies patterns. Generates insights.\n\nMemory consolidation: 11PM daily. Reviews new memory entries. Removes duplicates. Updates relevance scores.\n\nMonitoring scheduled execution:\n\nShow me scheduled operations for today\nWhat ran in the last 24 hours?\nShow me the execution log\n\n## Section 9: Building a Complete Content Operation\n\nThis section walks through building a complete automated content operation with Hermes. By the end you will have a system that monitors sources, identifies viral content opportunities, generates drafts, and manages a publishing queue automatically.\n\nStep 1: Configure your sources\n\nCreate config/sources.json:\n\n{\n  \"sources\": [\n    {\n      \"name\": \"Anthropic Blog\",\n      \"type\": \"rss\",\n      \"url\": \"https://anthropic.com/news/rss\",\n      \"priority\": \"critical\",\n      \"check_interval\": \"1h\"\n    },\n    {\n      \"name\": \"GitHub Trending AI\",\n      \"type\": \"web\",\n      \"url\": \"https://github.com/trending/python?since=daily\",\n      \"priority\": \"high\",\n      \"check_interval\": \"4h\"\n    },\n    {\n      \"name\": \"HackerNews AI\",\n      \"type\": \"web\",\n      \"url\": \"https://news.ycombinator.com\",\n      \"priority\": \"medium\",\n      \"check_interval\": \"2h\"\n    }\n  ]\n}\n\nStep 2: Build the content opportunity identifier\n\nCreate skills/content-opportunity.md:\n\n# content-opportunity\n\n## Purpose\nScan all sources for content opportunities worth \ncreating and add them to the content queue.\n\n## Trigger\nRuns after source-monitor detects new content.\nManual: \"Find content opportunities\"\n\n## Process\n1. Read CLAUDE.md for my content pillars and audience.\n\n2. Read all items flagged as new by source-monitor \n   from memory tagged: source-monitor-new.\n\n3. For each new item evaluate:\n\n   VIRAL POTENTIAL SCORE (1-10):\n   - Is this something my specific audience cares about?\n   - Is this genuinely new information or a rehash?\n   - Does this connect to any of my current content pillars?\n   - Is there a unique angle I can take that others have not?\n\n   Only items scoring 7 or above qualify as opportunities.\n\n4. For each qualified opportunity create an entry in \n   data/outputs/content-queue.md with:\n   - Source and link\n   - Why this is an opportunity\n   - Suggested content angle\n   - Suggested format (tweet/thread/article/video)\n   - Priority: urgent/high/medium\n\n5. Store all opportunities in memory tagged: content-queue\n\n## Output\nUpdated content-queue.md file.\nMemory entries tagged: content-queue\n\nStep 3: Build the draft generator\n\nCreate skills/draft-generator.md:\n\n# draft-generator\n\n## Purpose\nGenerate content drafts for items in the \ncontent queue based on their priority.\n\n## Trigger\nRuns daily at 2PM.\nManual: \"Generate drafts\" or \"Draft the top 3 items\"\n\n## Process\n1. Read CLAUDE.md for my voice, tone, and content rules.\n\n2. Read data/outputs/content-queue.md for pending items.\n\n3. Select the top 3 items by priority score.\n\n4. For each selected item:\n\n   a. Research the topic using web search to ensure \n      the information is current and accurate\n   \n   b. Check memory for any previous coverage of \n      this topic to avoid repetition\n   \n   c. Generate the draft in the specified format:\n   \n      For TWEETS:\n      Follow the cyrilXBT format:\n      - Declaration hook in ALL CAPS\n      - Short punchy lines\n      - Every sentence on its own line\n      - Bookmark this + Follow CTA at end\n      \n      For THREADS:\n      - Hook tweet\n      - 5-8 body tweets with specific details\n      - CTA closer\n      \n      For ARTICLES:\n      - Strong hook paragraph\n      - Problem statement\n      - Solution walkthrough\n      - Actionable steps\n      - CTA to follow\n\n5. Save each draft to:\n   data/outputs/drafts/[DATE]-[FORMAT]-[TOPIC].md\n\n6. Update content-queue.md marking items as drafted.\n\n7. Store draft summaries in memory tagged: draft-generated\n\n## Output\nDraft files in data/outputs/drafts/\nUpdated content-queue.md\nMemory entries tagged: draft-generated\n\nStep 4: Build the performance tracker\n\nCreate skills/performance-tracker.md:\n\n# performance-tracker\n\n## Purpose\nTrack content performance and use the data to \nimprove future content decisions.\n\n## Trigger\nManual: \"Log performance for [content] — [metrics]\"\nWeekly review reads all performance logs.\n\n## Process\n1. When triggered with performance data:\n   - Store the metrics in memory with the content reference\n   - Tag: performance-log\n   \n2. Identify patterns:\n   - Which topics performed best this week?\n   - Which formats had highest engagement?\n   - Which sources produced the most viral content?\n   \n3. Update CLAUDE.md content priorities based on \n   performance data if patterns are clear.\n\n4. Generate weekly performance report on Sundays.\n\n## Output\nMemory entries tagged: performance-log\nWeekly performance report in outputs folder\n\n## Section 10: Multi-Agent Operations\n\nSingle agent Hermes is powerful. Multi-agent Hermes is a different category of capability.\n\nMulti-agent operation means multiple specialized Hermes instances each handling one domain of your operation, sharing memory, and coordinating outputs.\n\nThe four-agent content operation:\n\nResearch Agent: Monitors sources, identifies opportunities, conducts deep research. Only reads. Never creates.\n\nProduction Agent: Takes research outputs and generates content drafts. Only creates. Never publishes.\n\nQuality Agent: Reviews production outputs against standards. Approves or returns for revision. Never creates or publishes.\n\nDistribution Agent: Takes approved outputs and manages publishing schedule. Only publishes. Never creates.\n\nSetting up the multi-agent configuration:\n\nCreate separate CLAUDE.md files for each agent:\n\nhermes-research/\n    CLAUDE.md  ← Research agent constitution\n    skills/    ← Research-only skills\n\nhermes-production/\n    CLAUDE.md  ← Production agent constitution\n    skills/    ← Production-only skills\n\nhermes-quality/\n    CLAUDE.md  ← Quality agent constitution\n    skills/    ← Quality-only skills\n\nhermes-distribution/\n    CLAUDE.md  ← Distribution agent constitution\n    skills/    ← Distribution-only skills\n\nThe shared memory layer:\n\nConfigure all four agents to point at the same SQLite database:\n\nMEMORY_PATH=/shared/hermes-memory.db\n\nThis means every agent reads every other agent's outputs. Research outputs are visible to production. Production outputs are visible to quality. Quality approvals are visible to distribution.\n\nThe handoff protocol:\n\nEach agent signals readiness for handoff through memory tags:\n\nResearch agent completes work → stores output tagged: ready-for-production\n\nProduction agent picks up tagged items → stores output tagged: ready-for-quality\n\nQuality agent approves → stores output tagged: ready-for-distribution\n\nDistribution agent publishes → stores result tagged: published\n\nThe orchestrator skill:\n\nCreate one master orchestrator skill that monitors the entire pipeline:\n\n# pipeline-orchestrator\n\n## Purpose\nMonitor all four agents and ensure smooth \nhandoffs between pipeline stages.\n\n## Trigger\nRuns every 30 minutes.\n\n## Process\n1. Check for items tagged: ready-for-production\n   If found: alert production agent\n   \n2. Check for items tagged: ready-for-quality\n   If found: alert quality agent\n   \n3. Check for items tagged: ready-for-distribution\n   If found: alert distribution agent\n   \n4. Check for items in any stage longer than 4 hours\n   If found: flag as stalled and alert for review\n   \n5. Generate pipeline status report every 4 hours\n\n## Output\nPipeline status in memory tagged: pipeline-status\nAlerts for stalled items\nHourly operation log\n\n## Section 11: Advanced Skill Patterns\n\nAs your Hermes operation matures you will encounter situations the basic skill format does not cover. These advanced patterns handle the most common complex scenarios.\n\nPattern 1: Conditional Execution\n\nSkills that take different paths based on conditions:\n\n## Process\n1. Check condition: [WHAT TO CHECK]\n\n2. IF [CONDITION A]:\n   Execute path A:\n   [STEPS FOR PATH A]\n   \n   IF [CONDITION B]:\n   Execute path B:\n   [STEPS FOR PATH B]\n   \n   IF NEITHER:\n   Flag for human review and log the ambiguous case.\n\nPattern 2: Retry Logic\n\nSkills that should retry on failure:\n\n## Process\nFor each item attempt the following up to 3 times:\n\n1. Try: [PRIMARY APPROACH]\n   If successful: proceed to output\n   If failed: log the error and try alternative\n\n2. Alternative: [BACKUP APPROACH]\n   If successful: proceed to output with note \n   that alternative was used\n   If failed: mark as failed and flag for review\n\nNever proceed with incomplete or uncertain output.\n\nPattern 3: Quality Gates\n\nSkills that enforce standards before producing output:\n\n## Quality Gate\nBefore saving any output evaluate against these criteria:\n\nPASS criteria (all must be true):\n- [CRITERION 1]\n- [CRITERION 2]\n- [CRITERION 3]\n\nIf PASS: save output and log success\nIf FAIL: identify which criteria failed, attempt \nrevision, re-evaluate. Maximum 2 revision attempts.\nIf still failing after 2 attempts: save to \nreview-needed/ folder with failure notes.\n\nPattern 4: Memory-Informed Execution\n\nSkills that get smarter with each run:\n\n## Memory-Informed Process\nBefore executing retrieve:\n- All previous runs of this skill from memory\n- Performance data tagged: [relevant-tag]\n- Any pattern notes stored from previous runs\n\nUse retrieved context to:\n- Avoid approaches that previously failed\n- Prioritize approaches that previously succeeded\n- Apply any pattern insights to current execution\n\nAfter executing store:\n- What approach was used\n- Whether it succeeded\n- Any new pattern observed\n- Tagged: [skill-name]-learning\n\n## Section 12: Troubleshooting Common Issues\n\nEvery Hermes operation encounters problems in the first few weeks. These are the most common issues and how to fix them.\n\nIssue: Hermes is not executing scheduled skills\n\nCheck the scheduler is enabled in your .env:\n\nENABLE_SCHEDULER=true\n\nVerify your cron expressions are valid using crontab.guru.\n\nCheck the hermes.log for scheduler errors:\n\ntail -f logs/hermes.log\n\nIssue: Memory is not persisting between sessions\n\nVerify the memory database path is correct:\n\nMEMORY_PATH=./data/memory.db\n\nCheck file permissions on the data directory:\n\nls -la data/\n\nThe hermes process needs write access to this directory.\n\nIssue: MCP servers are not connecting\n\nVerify the MCP server is installed globally:\n\nwhich npx\nnpx @modelcontextprotocol/server-filesystem --help\n\nCheck your API keys are correctly set in .env with no trailing spaces.\n\nRestart Hermes after changing MCP configuration.\n\nIssue: Skill outputs are low quality\n\nThe most common cause is a vague CLAUDE.md. Return to Section 4 and add more specific detail to every section.\n\nAlso check that the skill's Process section is specific enough. Vague instructions produce vague outputs.\n\nIssue: Hermes is using outdated information\n\nVerify the Brave Search MCP is connected:\n\nWhat MCP servers are connected?\n\nIf Brave Search is not listed check your API key and reinstall the MCP server.\n\nIssue: Skills are running but not saving outputs\n\nCheck the Filesystem MCP is connected and pointing at the correct path.\n\nVerify the output paths in your skill files are relative to the working directory Hermes is running in.\n\n## Section 13: Measuring and Improving Your Operation\n\nA Hermes operation that does not improve over time is not using its memory system correctly.\n\nThe weekly review skill:\n\nCreate skills/weekly-review.md:\n\n# weekly-review\n\n## Purpose\nSynthesize the week's operation and identify \nimprovements for the following week.\n\n## Trigger\nEvery Sunday at 7PM.\nManual: \"Run weekly review\"\n\n## Process\n1. Read all memory entries from the past 7 days.\n\n2. Analyze skill performance:\n   - Which skills ran without issues?\n   - Which skills encountered errors?\n   - Which skills produced the best outputs?\n   - Which skills need improvement?\n\n3. Analyze content performance (if logged):\n   - Which content performed best?\n   - What patterns appear in high performers?\n   - What topics should be prioritized next week?\n\n4. Analyze memory quality:\n   - Are memory entries being created correctly?\n   - Are retrieval results relevant when skills run?\n   - Are there gaps in what is being stored?\n\n5. Generate improvement recommendations:\n   - One skill to improve this week\n   - One new skill to build this week\n   - One process to streamline\n   - One topic to prioritize in content\n\n6. Update CLAUDE.md with any confirmed improvements.\n\n## Output\nWeekly review report in data/outputs/\nCLAUDE.md updates if improvements identified\nMemory entry tagged: weekly-review\n\nThe metrics that matter:\n\nSkill reliability rate: what percentage of scheduled skills run without errors. Target above 95%.\n\nMemory retrieval relevance: when memory is retrieved for a skill is it actually relevant. Review weekly.\n\nOutput quality consistency: are outputs consistently meeting your standards. Track manually.\n\nOperation coverage: what percentage of your intended workflows are actually automated. Expand toward 100% over time.\n\n## Section 14: The 90-Day Build Plan\n\nBuilding a mature Hermes operation takes 90 days of consistent iteration.\n\nDays 1 to 7: Foundation\n\nInstall Hermes. Write your CLAUDE.md. Build the morning briefing skill. Connect the Filesystem and Brave Search MCP servers. Run your first scheduled briefing.\n\nGoal: Hermes is running reliably and producing one useful output daily.\n\nDays 8 to 30: Core Skills\n\nBuild five to eight core skills for your specific operation. Configure the scheduler for all five standard automated workflows. Identify the first MCP server specific to your domain.\n\nGoal: Hermes is automating 30% of your repeating knowledge work.\n\nDays 31 to 60: Optimization\n\nReview memory quality and improve storage conventions. Refine skill outputs based on three to four weeks of results. Build your first advanced skills using conditional execution and quality gates.\n\nGoal: Hermes outputs are consistently meeting quality standards without manual revision.\n\nDays 61 to 90: Multi-Agent\n\nIf your operation justifies it, design your multi-agent architecture. Build the specialist agent CLAUDE.md files. Configure the shared memory layer. Deploy the orchestrator skill.\n\nGoal: Hermes is running a coordinated multi-agent operation handling your most complex workflows end to end.\n\n## The Compounding Reality\n\nThe builders who start their Hermes operation today and run it consistently for 90 days will have something that cannot be replicated quickly.\n\nNot because the technology is hard to access.\n\nBecause the memory layer that accumulates over 90 days of consistent operation is not something you can shortcut.\n\nThe Hermes agent at day 90 knows your operation. It knows which sources produce the best content for your audience. It knows which approaches have worked and which have failed. It knows your voice, your standards, and your priorities because it has executed against them hundreds of times.\n\nThat accumulated intelligence is the moat.\n\nEvery day you run the operation the moat gets deeper.\n\nEvery day you wait to start is a day of compound intelligence you never get back.\n\nBuild the foundation this weekend.\n\nThe skills take an afternoon to write.\n\nThe memory starts accumulating from the first session.\n\nThe compounding starts from the first automated workflow that runs without you.\n\nFollow @cyrilXBT for every Hermes Agent build, skill template, and multi-agent architecture that makes autonomous AI operations actually work."}}