惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

量子位
小众软件
小众软件
S
SegmentFault 最新的问题
人人都是产品经理
人人都是产品经理
博客园 - 【当耐特】
博客园 - 三生石上(FineUI控件)
C
Check Point Blog
S
Schneier on Security
Microsoft Azure Blog
Microsoft Azure Blog
N
Netflix TechBlog - Medium
Engineering at Meta
Engineering at Meta
GbyAI
GbyAI
罗磊的独立博客
有赞技术团队
有赞技术团队
V
V2EX
Y
Y Combinator Blog
博客园 - 叶小钗
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
F
Fortinet All Blogs
W
WeLiveSecurity
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
Stack Overflow Blog
Stack Overflow Blog
The Cloudflare Blog
S
Security @ Cisco Blogs
TaoSecurity Blog
TaoSecurity Blog
MyScale Blog
MyScale Blog
Hugging Face - Blog
Hugging Face - Blog
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
www.infosecurity-magazine.com
www.infosecurity-magazine.com
PCI Perspectives
PCI Perspectives
H
Heimdal Security Blog
Schneier on Security
Schneier on Security
Security Latest
Security Latest
AWS News Blog
AWS News Blog
月光博客
月光博客
Security Archives - TechRepublic
Security Archives - TechRepublic
Recent Announcements
Recent Announcements
Google DeepMind News
Google DeepMind News
博客园 - Franky
Cisco Talos Blog
Cisco Talos Blog
T
Threat Research - Cisco Blogs
M
MIT News - Artificial intelligence
T
Troy Hunt's Blog
N
News and Events Feed by Topic
Cloudbric
Cloudbric
Scott Helme
Scott Helme
云风的 BLOG
云风的 BLOG
Attack and Defense Labs
Attack and Defense Labs

DEV Community

Authentication Security Deep Dive: From Brute Force to Salted Hashing (With Java Examples) Why AI Systems Don’t Fail — They Drift Spilling beans for how i learn for exam😁"Reinforcement Learning Cheat Sheet" I Replaced Chrome with Safari for AI Browser Automation. Here's What Broke (and What Finally Worked) How Python Borrows Other People's Work The $40 Architecture: Processing 1 Billion API Requests with 99.99% Uptime Vibe Coding: A Workflow Guide (From Zero to SaaS) Most webhook security guides protect the wrong side. The scary part is delivery. Headless CMS for TanStack Start: Build a Blog with Cosmic EU Age Verification App "Hacked in 2 Minutes" — What Actually Happened Comfy Cloud’s delete function does not actually remove files Running AI Models on GPU Cloud Servers: A Beginner Guide Event-driven media intelligence with AWS Step Functions and Bedrock I scored 500 AI prompts across 8 quality dimensions — here's what broke How to Call Google Gemini API from Next.js (Free Tier, No Backend Needed) The Portal Protocol: Reclaiming Human Connection in the Age of AI How to Fix Your Team's Scattered Knowledge Problem With a Self-Hosted Forum Intro to tc Cloud Functors: A Graph-First Mental Model for the Modern Cloud Designing Multi-Tenant Backends With Both Ownership and Team Access I Built a Neumorphic CSS Library with 77+ Components — Here's What I Learned PostgreSQL Performance Optimization: Why Connection Pooling Is Critical at Scale Cómo construí un SaaS multi-rubro para gestionar expensas en Argentina con FastAPI + Vue 3 🚀 I Built an Ethical Hacking Scanner Tool – Open Source Project I Replaced /usage and /context in Claude Code With a Single Statusline A Pythonic Way to Handle Emails (IMAP/SMTP) with Auto-Discovery and AI-Ready Design I Collected 8.9 Million Polymarket Price Points — Here's What I Found About How Markets Really Move EcoTrack AI — Carbon Footprint Tracker & Dashboard Everyone's Using AI. No One Agrees How. 5 self-hosted ebook managers worth trying in 2026 Building Your First AI Agent with LangChain: From Chatbot to Autonomous Assistant Common SOC 2 Failures (Real World) Stop Vibe-Checking Your AI App: A Practical Guide to Evals How to Use SonarQube and SonarScanner Locally to Level Up Your Code Quality Your Next To-Do App Is Dead — I Replaced Mine with an OpenClaw AI Sign a Nostr event in 60 lines of Python using coincurve — no nostr-sdk, no nbxplorer, no rust toolchain ITGC Audit Explained Like You’re in Big 4 Patch Tuesday abril 2026: Microsoft parcha 163 vulnerabilidades y un zero-day en SharePoint Stop scraping everything: a better way to track competitor price changes Listing on MCPize + the Official MCP Registry while routing payments OUTSIDE the marketplace — how I kept 100% of my x402 revenue Building an AI-Powered Risk Intelligence System Using Serverless Architecture Why We Ripped Function Overloading Out of Our AI Toolchain Testing AI-Generated Code: How to Actually Know If It Works SaaS Churn Is Killing Your Business. Here Is What to Do About It (Without a Support Team) The Speed of AI Is No Longer Linear - And Self-Improving Models Are Why How to Implement RBAC for MCP Tools: A Practical Guide for Engineering Teams From Standard Quote to Persuasive Proposal: AI Automation for Arborists I built a CLI that scaffolds complete multi-tenant SaaS apps Axios CVE-2025–62718: The Silent SSRF Bug That Could Be Hiding in Your Node.js App Right Now The dashboard that ended our friendship Data Pipelines Explained Simply (and How to Build Them with Python) The Hidden Cost of AI Systems Nobody Talks About. undefined vs undeclared, and how typeof behaves Switching from file-based jobs to NATS/Kafka in Rust without changing code io_uring Adventures: Rust Servers That Love Syscalls Why Agentic AI is Killing the Traditional Database The POUR principles of web accessibility for developers and designers Quantum Neural Network 3D — A Deep Dive into Interactive WebGL Visualization How To Install Caveman In Codex On macOS And Windows Automation Pipeline Reliability: Why Your Workflow Breaks When Nobody Is Watching I Built an 'Open World' AI Coding Agent — It Works From ANY Folder From Freelancing to Product: A Tech Service Company's SaaS Transformation China's AI Giants: Adding Tencent Hunyuan & ByteDance Doubao to AI University (74 Providers) On the Vibe Coders and Their Lies clerk: Auto-Summarize Your Claude Code Sessions AI Weekly — 2026/04/10–04/17 | The Model Lockdown Is Here, but the Toolchain Is the Real Battleground AI 週報 — 2026/04/10–2026/04/17 模型封鎖潮來了,但工具鏈才是真戰場 Maybe this is how Open-Source apps are born... 🚀 Fine-Tune LLMs with LoRA and QLoRA: 2026 Guide tRPC v11 + Next.js App Router: End-to-End Type Safety Without the Boilerplate ShadCN UI in 2026: Why I Stopped Installing Component Libraries and Started Owning My Components SaaS Billing in React Server Components: Stripe + Supabase Without a Single `useEffect` Join our DEV Weekend Challenge — $1,000 in Prizes Across TEN winners! Submissions Due April 20 at 6:59 AM UTC. Implementing FSRS Spaced Repetition in Flutter + Supabase — Adding Memory Science to an AI Learning App "I Texted My Localhost From the Train — Claude Code Fixed the Bug Before I Got Home" I Built a Sales Prep AI and It Went Deeper Than Expected Design to Code #2: One JSON, Eleven Outputs Solving the 100M-Row Problem: A Summary Table Pattern for High-Volume Push Notification Logs Flutter Web With Wasm: What Actually Changes For Developers I Built 50 Royalty-Free Soundtracks for My Side Project in a Weekend Using AI Music Generation The Vibe Coding Security Checklist: 7 Things to Check Before You Ship Stop Letting Googlebot Guess Fix Your React App's SEO Right Desconstruindo o Streaming do LinkedIn: Como Criar um Engine de Extração de Vídeo de Alta Performance com HLS e FFmpeg (EDA Part-1) EDA (Exploratory Data Analysis) Explained With Real Life — Why Looking at Your Data Is the Most Important Step in Machine Learning Brand Relationship Management at Scale: Our 4-Touch Outreach System for 200+ Brands Why String.fromEnvironment() Might Return an Empty String in Dart JGuardrails 1.0.0 — Hardening Java LLM Apps Against Jailbreaks, Toxicity, and Prompt Injection Plan and Schedule a Full Week of Threads Content From One Claude Conversation Coding Cat Oran Ep3, Five Tables Changed Everything Updated: BFF Pattern I'm done watching freelancers get buried by 200 proposals. So I'm building the alternative. This is my first post BFS Algorithm in Java Step by Step Tutorial with Examples Tracking LLM Pricing Monthly: An Open Dataset for 22 AI Models How We Measure Content ROI on a Comparison Site: Revenue Attribution Without Perfect Data Introducing Nova AI Ops: The AI-Native Operating System for SRE Teams I built a free desktop video downloader for Windows — Grabbit How Talkie OCR Helps Vision-Impaired & Dyslexic Users Read the World Around Them VRCFaceTracking安装和iPhone面捕配置教程,有bug Even CrowdStrike Can't See Your Agents The Automation Gold Rush: What n8n Workflows and Claude Are Opening Up for Developers Right Now
Hermes, The Self-Improving Agent You Can Actually Run Yourself
Emmanuel Aiy · 2026-05-22 · via DEV Community

This is a submission for the Hermes Agent Challenge

Introduction

Many AI agents have a shelf life. You set one up, it handles a few tasks, and then you discover it has no idea what it did last week, requires you to repeat context every session, and collapses the moment you try to connect it to something it was not explicitly designed for. The agent market is full of impressive demos that do not hold up as long-running, real-world tools.

Hermes Agent, built by Nous Research and released under the MIT license, takes a fundamentally different approach to the problem. Instead of being optimized for a single impressive demo, it is designed to compound over time. The longer it runs, the more context it builds about your projects and preferences. The more tasks you throw at it, the more reusable skills it generates. It is not a coding copilot, a chatbot wrapper, or a one-trick pipeline. It is a persistent agent that lives on your infrastructure, reaches you across messaging platforms, and genuinely gets more capable the longer you use it.

At the time of writing, the project sits at 160,000 stars on GitHub and v0.14.0, which is a meaningful signal for a tool this young. This article walks through what Hermes actually is under the hood, how to get it running locally and connected to real tools, and how it stacks up against OpenClaw and LangGraph so you can make an honest decision about when to reach for it.

What Hermes Agent Actually Is

Before walking through setup, it is worth spending a moment on the architecture, because understanding how Hermes works explains why the setup steps matter.

At the core of Hermes is what Nous Research calls a closed learning loop. When you give Hermes a complex task, it does not just complete it and discard the work. Instead, it automatically generates a reusable skill from that interaction, a structured procedure it can recall and improve upon in future sessions. These skills live in your local filesystem under ~/.hermes/skills/ and are indexed so the agent can search and invoke them without you having to remember they exist. Over time, this means Hermes builds a growing library of procedures tailored to your specific workflows.

Alongside the skills system, Hermes maintains persistent memory across conversations. This includes project context, user preferences, and a searchable session history powered by SQLite FTS5 with LLM-summarized recall. When you return to a project after two weeks, Hermes can surface relevant prior context without you having to re-explain everything from scratch.

Beyond memory, the architecture supports isolated subagents. When a task has parallel components, Hermes can spawn isolated child agents with their own terminal environments and Python RPC sessions, then aggregate the results. This is particularly useful for long-running research or code tasks where you want to avoid context blowout in a single conversation thread.

Finally, Hermes ships with a gateway process that connects the agent to messaging platforms. You can run a task from your laptop terminal, switch to Telegram while commuting, and pick up the same session without any ceremony. This cross-platform continuity is something most agentic frameworks simply do not address.

Setting Up Hermes Agent Locally

The install process is straightforward on Linux, macOS, WSL2, and Termux. A single curl command handles the dependency chain, including uv, Python 3.11, Node.js, ripgrep, and ffmpeg.

Step 1: Install

Open your terminal and run:

curl -fsSL https://raw.githubusercontent.com/NousResearch/hermes-agent/main/scripts/install.sh | bash

Enter fullscreen mode Exit fullscreen mode

After the installer finishes, reload your shell so the hermes command is available:

source ~/.bashrc   # or: source ~/.zshrc

Enter fullscreen mode Exit fullscreen mode

If you are on Windows, the project supports native PowerShell as an early beta, though WSL2 is the more battle-tested path. The PowerShell one-liner is:

iex (irm https://raw.githubusercontent.com/NousResearch/hermes-agent/main/scripts/install.ps1)

Enter fullscreen mode Exit fullscreen mode

Step 2: Choose a Model Provider

One of the more useful design decisions in Hermes is that it has no default model lock-in. Before starting a conversation, run:

 hermes model

Enter fullscreen mode Exit fullscreen mode

This opens an interactive selector where you can configure your provider and model. Hermes supports OpenAI, Anthropic, OpenRouter (which gives access to 200+ models), Nous Portal, NVIDIA NIM, Hugging Face, and several others including Kimi, MiniMax, and z.ai. You can also point it at a local Ollama endpoint if you want to run fully offline. Switching providers later requires only running hermes model again. No code changes, no environment variable archaeology.

To set up your API key for, say, OpenRouter, you configure it once through the setup wizard and Hermes stores it securely in ~/.hermes/.env rather than requiring you to export it in every session.

Step 3: Run the Setup Wizard

Rather than manually editing config files, Hermes provides a guided setup that walks you through the most important configuration decisions:

hermes setup

Enter fullscreen mode Exit fullscreen mode

The wizard covers your preferred model, which toolsets to enable, your execution backend (more on this shortly), and whether to set up the messaging gateway. If you are migrating from OpenClaw, the wizard automatically detects a ~/.openclaw directory and offers to import your settings, memories, skills, and API keys in one step.

Step 4: Start the Agent

Once setup is complete, you start an interactive session with:

hermes

Enter fullscreen mode Exit fullscreen mode

This opens the full TUI, which includes multiline editing, slash-command autocomplete, streaming tool output, and conversation history. From here, you can issue natural language tasks and watch Hermes reason through them using whatever tools are enabled.

Next, let's talk about how you can connect Hermes to tools.

Connecting Hermes to Tools

This is where Hermes earns its keep. The tool ecosystem is organized into toolsets, which are named groups of capabilities you enable or disable as needed. To see what is available and toggle individual tools, run:

hermes tools

Enter fullscreen mode Exit fullscreen mode

Out of the box, Hermes ships with more than 40 tools spanning web search, browser automation, vision and image generation, text-to-speech, file operations, shell execution, and multi-model reasoning. These cover the vast majority of everyday agent workflows without requiring any additional setup.

Execution Backends

One of the more operationally significant features in Hermes is its support for seven distinct execution backends: local, Docker, SSH, Singularity, Modal, Daytona, and Vercel Sandbox. Most agents run shell commands directly on your local machine, which is fine for personal use but problematic when you want isolation, reproducibility, or serverless cost profiles.

If you are running tasks that touch sensitive files or need a clean environment for each run, switching to the Docker backend takes a single configuration change:

hermes config set sandbox docker

Enter fullscreen mode Exit fullscreen mode

For production workloads where you want the agent to hibernate between sessions and only incur compute costs when actively running, the Modal and Daytona backends offer serverless persistence. The agent's environment wakes on demand and sleeps when idle, which makes running Hermes on a cloud VM genuinely cost-efficient for non-continuous workloads.

MCP Integration

Hermes supports the Model Context Protocol (MCP), which means you can connect it to any MCP-compatible server and immediately expose those capabilities as native tools. If you have an MCP server for your database, your internal APIs, or a third-party service, Hermes can use it without requiring any custom adapter code. The MCP configuration lives in ~/.hermes/config.yaml and follows the same server definition format used by other MCP hosts.

For example, to connect Hermes to an MCP server running on localhost:

# ~/.hermes/config.yaml
mcp_servers:
  my-tool-server:
    command: node
    args: ["/path/to/mcp-server/index.js"]

Enter fullscreen mode Exit fullscreen mode

Once added, the tools exposed by that server appear automatically in the hermes tools list and become available to the agent in every subsequent session.

Messaging Gateway and Cron

Beyond the terminal, Hermes supports a gateway process that connects the agent to Telegram, Discord, Slack, WhatsApp, Signal, and email. Setting up the gateway takes a few minutes:

hermes gateway setuphermes gateway start

Enter fullscreen mode Exit fullscreen mode

The setup wizard walks you through generating bot tokens for each platform. Once the gateway is running, messages you send through any connected platform reach the same agent, with the same memory and skills, as your CLI sessions. Cross-platform conversation continuity is handled automatically.

Hermes also ships a built-in cron scheduler that lets you describe recurring tasks in natural language. Rather than writing cron syntax and wiring up shell scripts, you tell the agent what you want:

During a conversation:"Every weekday at 7am, send me a summary of unread GitHub notifications to Telegram."

The agent translates that instruction into a scheduled task and runs it unattended through the gateway, delivering the result to whichever platform you specified.

How Hermes Compares to OpenClaw and LangGraph

To make an honest recommendation, it helps to put Hermes next to two frameworks that represent meaningfully different philosophies: OpenClaw, which shares a direct lineage with Hermes, and LangGraph, which represents the programmatic, graph-based end of the spectrum.

Hermes vs. OpenClaw

OpenClaw is the predecessor to Hermes. The migration command in the Hermes CLI (hermes claw migrate) exists specifically to help OpenClaw users move their settings, memories, skills, and API keys across, which tells you most of what you need to know about the relationship.

OpenClaw established many of the patterns that Hermes inherits: persistent memory, a skills system, multi-platform messaging, and model-agnostic configuration. If you are currently running OpenClaw and it is meeting your needs, the case for migrating is largely about access to what has been added since the fork. Hermes extends the architecture in several concrete directions.

The execution backend system is considerably broader. Hermes supports seven backends where OpenClaw effectively assumes local execution. If you want Docker isolation, SSH-based remote execution, or serverless backends like Modal, Hermes is where that work has happened.

The subagent system is also more mature in Hermes. Spawning isolated child agents with their own terminals and Python RPC sessions, and collapsing multi-step pipelines into zero-context-cost turns, is a Hermes-specific capability. OpenClaw does not have an equivalent.

The skills system has also evolved. In Hermes, skills are compatible with the agentskills.io open standard, which means you can pull community-contributed skills from the Skills Hub rather than building everything from scratch. The cross-session search is powered by SQLite FTS5 with LLM summarization, which is a meaningful step up from simple key-value memory storage.

So when should you stick with OpenClaw rather than migrating? Honestly, the cases are narrow. If you have a heavily customized OpenClaw setup with skills and personas that you rely on daily and do not want to risk disrupting, waiting until you have time for a proper migration is reasonable. The hermes claw migrate command handles most of the work, but any migration carries some risk of edge cases. Otherwise, the feature trajectory strongly favors Hermes, and the migration tooling makes the switch low-cost.

Hermes vs. LangGraph

LangGraph is a Python framework from LangChain for building stateful, multi-actor agent applications using directed graphs. It is a genuinely different tool serving a genuinely different use case, so comparing them is less about which is better and more about which fits your situation.

LangGraph's core proposition is control. You define your agent as an explicit graph where nodes are computation steps and edges control flow. You can add conditional branching, loops, checkpoints, and human-in-the-loop interruptions at precisely defined points. When you need to reason carefully about how an agent makes decisions, audit its behavior, or integrate it into a production system with strict reliability requirements, LangGraph gives you the scaffolding to do that. It is a framework for building agents, not an agent itself.

Hermes is an agent. You install it, configure it, and talk to it. The internal reasoning loop is not something you define through code. The tradeoff is that you give up some low-level control in exchange for a system that handles a large surface area of practical tasks without requiring you to write Python to describe how it should think.

Where LangGraph genuinely outperforms Hermes is in situations where you need to embed agentic behavior into a larger software system. If you are building a production workflow where an agent is one component among many, and you need that component to have defined inputs, outputs, retry logic, and observability hooks, LangGraph's programmatic model is the right tool. It integrates naturally with LangSmith for tracing, supports streaming state updates to frontends, and has a large ecosystem of pre-built components.

Where Hermes outperforms LangGraph is in personal and team productivity use cases where you want an agent that can handle a wide variety of tasks, remember what it knows about you and your projects, reach you on Telegram or Slack, run scheduled jobs overnight, and get better the longer you use it. LangGraph requires you to write and maintain code for every new capability. Hermes accumulates new skills automatically from experience.

The persistent memory system is also a meaningful differentiator. LangGraph supports checkpoints and state persistence, but these are designed for resuming specific workflow instances. Hermes's memory operates at a higher level, building a model of who you are, what your projects involve, and how you prefer to work that persists and enriches across all future sessions.

When to Reach for Hermes

Thinking through the comparisons above, a few clear use cases emerge where Hermes is the right choice.

Reach for Hermes when:

  • You want a general-purpose autonomous agent that runs persistently on your own infrastructure. If the core problem is "I need something that can handle a wide variety of tasks across multiple sessions and get smarter over time," Hermes is built exactly for that.

  • Cross-platform availability matters. If you want to kick off a task from your laptop, check on it from your phone via Telegram, and have results delivered to a Slack channel, the messaging gateway handles all of that with a single gateway process running on your server.

  • You are working across many different projects and want the agent to carry context from one to the next. The persistent memory and skills system mean that the work you put into one project gradually informs how the agent handles related work later.

Reach for LangGraph instead when you are building an agentic component that needs to be embedded in a production Python application with defined interfaces, observability, and strict control flow. If your primary concern is software engineering correctness rather than agent productivity, LangGraph gives you the structure to guarantee it.

Reach for OpenClaw instead if you have an existing OpenClaw setup that is working well and the migration overhead is not worth the improvements. But given that the migration tooling is mature and the hermes claw migrate command handles the heavy lifting, the window for that justification is narrowing.

Closing Thoughts

Hermes Agent sits in an interesting position. It is not trying to be a coding assistant that lives in your IDE, and it is not trying to be a framework you build agents on top of. It is trying to be the agent itself, one that earns increasing usefulness by actually learning from what it does.

The install process is genuinely simple. The model-agnostic design means you can point it at whatever provider makes sense for your budget and requirements. The MCP integration means you are not locked out of the tools your team already uses. And the learning loop means the return on the setup cost compounds over time rather than resetting each session.

For developers and technical teams who want an agent they actually control, that runs on their own infrastructure, and that respects the fact that context built over months of work is worth preserving, Hermes is worth a serious look.