<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Vivek Shetye</title>
    <description>The latest articles on DEV Community by Vivek Shetye (@vivek_shetye).</description>
    <link>https://dev.to/vivek_shetye</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3879444%2F8f338ec8-c7f4-48e9-b8cf-3898bccbb1e8.jpg</url>
      <title>DEV Community: Vivek Shetye</title>
      <link>https://dev.to/vivek_shetye</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/vivek_shetye"/>
    <language>en</language>
    <item>
      <title>Run Hermes Agent Inside Docker: A Safer Setup for Autonomous AI Agents 🐳</title>
      <dc:creator>Vivek Shetye</dc:creator>
      <pubDate>Tue, 22 Sep 2026 16:35:22 +0000</pubDate>
      <link>https://dev.to/vivek_shetye/run-hermes-agent-inside-docker-a-safer-setup-for-autonomous-ai-agents-2992</link>
      <guid>https://dev.to/vivek_shetye/run-hermes-agent-inside-docker-a-safer-setup-for-autonomous-ai-agents-2992</guid>
      <description>&lt;p&gt;Giving an AI agent unrestricted access to your entire computer is probably not a great idea.&lt;/p&gt;

&lt;p&gt;Especially when that agent can:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Run terminal commands&lt;/li&gt;
&lt;li&gt;Install packages&lt;/li&gt;
&lt;li&gt;Create and modify files&lt;/li&gt;
&lt;li&gt;Access external services&lt;/li&gt;
&lt;li&gt;Work autonomously through multi-step tasks&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Those capabilities are exactly what make Hermes Agent powerful.&lt;/p&gt;

&lt;p&gt;But they also raise an important question:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Where should all of those actions actually run?&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Instead of running Hermes Agent directly on my host machine, I decided to run it inside a Docker container and explicitly control what the agent can access.&lt;/p&gt;

&lt;p&gt;The goal isn’t to make Hermes magically “secure” by putting it inside Docker.&lt;/p&gt;

&lt;p&gt;The goal is much simpler:&lt;/p&gt;

&lt;p&gt;Give the agent access to what it needs, not your entire computer.&lt;/p&gt;

&lt;p&gt;In this tutorial, I’ll walk through the complete setup.&lt;/p&gt;

&lt;p&gt;We’ll configure:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Hermes Agent inside Docker&lt;/li&gt;
&lt;li&gt;Persistent storage for memory, sessions, and configuration&lt;/li&gt;
&lt;li&gt;A limited filesystem boundary&lt;/li&gt;
&lt;li&gt;Hermes Gateway&lt;/li&gt;
&lt;li&gt;Hermes Dashboard&lt;/li&gt;
&lt;li&gt;Dashboard authentication&lt;/li&gt;
&lt;li&gt;Hermes Desktop connected to the container&lt;/li&gt;
&lt;li&gt;Some important security considerations when containerizing autonomous AI agents&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;🎥 Prefer watching instead?&lt;/p&gt;

&lt;p&gt;I walk through the complete setup step-by-step in the video:&lt;/p&gt;

&lt;p&gt;Watch the full Hermes Agent Docker tutorial on YouTube →&lt;/p&gt;

&lt;p&gt;  &lt;iframe src="https://www.youtube.com/embed/inzB_q34QCA" width="710" height="399"&gt;
  &lt;/iframe&gt;
&lt;/p&gt;




&lt;h2&gt;
  
  
  🤖 Why Run Hermes Agent Inside Docker?
&lt;/h2&gt;

&lt;p&gt;Hermes isn’t just a chatbot.&lt;/p&gt;

&lt;p&gt;It can interact with your environment and perform actions on your behalf.&lt;/p&gt;

&lt;p&gt;For example, depending on the tools you enable, Hermes can work with files, execute terminal commands, install dependencies, use external services, and autonomously work through tasks.&lt;/p&gt;

&lt;p&gt;That’s incredibly useful.&lt;/p&gt;

&lt;p&gt;But if the agent runs directly on your main machine, you need to think carefully about what files, credentials, and system resources it can reach.&lt;/p&gt;

&lt;p&gt;That’s where Docker becomes useful.&lt;/p&gt;

&lt;p&gt;Instead of letting Hermes operate directly across my host environment, I can put it inside a container and explicitly decide what crosses that boundary.&lt;/p&gt;

&lt;p&gt;The architecture we’ll build looks roughly like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;┌──────────────────── HOST MACHINE ────────────────────┐
│                                                      │
│  Docker                                              │
│                                                      │
│  ~/.hermes-docker  ───────────────┐                  │
│                                   │                  │
│                    ┌──────────────▼──────────────┐   │
│                    │      Docker Container       │   │
│                    │                             │   │
│                    │      Hermes Agent           │   │
│                    │                             │   │
│                    │  /opt/data                  │   │
│                    │  Gateway                    │   │
│                    │  Dashboard                  │   │
│                    └─────────────────────────────┘   │
│                                                      │
│  Personal files / SSH keys / other directories       │
│              NOT mounted into container              │
│                                                      │
└──────────────────────────────────────────────────────┘
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Hermes gets a dedicated environment and a directory for its persistent data.&lt;/p&gt;

&lt;p&gt;The rest of the machine stays outside that boundary unless I explicitly expose something.&lt;/p&gt;




&lt;h2&gt;
  
  
  🐳 Step 1: Install Docker
&lt;/h2&gt;

&lt;p&gt;On macOS or Windows, install Docker Desktop and make sure the Docker engine is running.&lt;/p&gt;

&lt;p&gt;On Linux, you can install Docker Engine using the instructions for your distribution.&lt;/p&gt;

&lt;p&gt;You can verify Docker is available with:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;docker &lt;span class="nt"&gt;--version&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Once Docker is working, we can create an isolated environment for Hermes.&lt;/p&gt;




&lt;h2&gt;
  
  
  📁 Step 2: Create a Dedicated Directory for Hermes
&lt;/h2&gt;

&lt;p&gt;First, create a directory specifically for the Dockerized Hermes instance:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;mkdir&lt;/span&gt; &lt;span class="nt"&gt;-p&lt;/span&gt; ~/.hermes-docker
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This directory is important for two reasons.&lt;/p&gt;

&lt;h3&gt;
  
  
  1. Persistence
&lt;/h3&gt;

&lt;p&gt;Docker containers are disposable.&lt;/p&gt;

&lt;p&gt;If we remove and recreate the Hermes container, we don’t want to lose things like:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Configuration&lt;/li&gt;
&lt;li&gt;Sessions&lt;/li&gt;
&lt;li&gt;Memory&lt;/li&gt;
&lt;li&gt;Skills&lt;/li&gt;
&lt;li&gt;Profiles&lt;/li&gt;
&lt;li&gt;Logs&lt;/li&gt;
&lt;li&gt;Other persistent agent data&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;We’ll store those outside the container in ~/.hermes-docker.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. It becomes part of our trust boundary
&lt;/h3&gt;

&lt;p&gt;Anything inside this directory is intentionally available to Hermes.&lt;/p&gt;

&lt;p&gt;Instead of mounting my entire home directory, I’m giving the agent one dedicated location.&lt;/p&gt;

&lt;p&gt;That distinction matters.&lt;/p&gt;




&lt;h2&gt;
  
  
  ⚙️ Step 3: Run the Hermes Setup Inside Docker
&lt;/h2&gt;

&lt;p&gt;Now we can start the official Hermes Agent image and launch the setup process:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;docker run &lt;span class="nt"&gt;--rm&lt;/span&gt; &lt;span class="nt"&gt;-it&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-v&lt;/span&gt; ~/.hermes-docker:/opt/data &lt;span class="se"&gt;\&lt;/span&gt;
  nousresearch/hermes-agent setup
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The most important part here is:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nt"&gt;-v&lt;/span&gt; ~/.hermes-docker:/opt/data
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The -v option creates a bind mount between a directory on the host and a directory inside the container.&lt;/p&gt;

&lt;p&gt;Think of it like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;HOST                           CONTAINER
~/.hermes-docker   ───────▶   /opt/data
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The left side:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;~/.hermes-docker
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;is the directory we just created on the host.&lt;/p&gt;

&lt;p&gt;The right side:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;/opt/data
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;is where that directory appears inside the Docker container.&lt;/p&gt;

&lt;p&gt;So when Hermes saves configuration, sessions, memory, skills, or other persistent data under &lt;strong&gt;&lt;em&gt;/opt/data&lt;/em&gt;&lt;/strong&gt;, those files are actually stored in &lt;strong&gt;&lt;em&gt;~/.hermes-docker&lt;/em&gt;&lt;/strong&gt; on the host.&lt;/p&gt;

&lt;p&gt;That means we can destroy and recreate the container without losing the Hermes environment.&lt;/p&gt;

&lt;p&gt;More importantly, we’re sharing one dedicated directory instead of the entire host filesystem.&lt;/p&gt;




&lt;h2&gt;
  
  
  🧠 Step 4: Configure Hermes Agent
&lt;/h2&gt;

&lt;p&gt;The first run downloads the required Docker image and launches the Hermes setup wizard.&lt;/p&gt;

&lt;p&gt;From there, follow the normal Hermes configuration process.&lt;/p&gt;

&lt;p&gt;In my setup, I:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Use the quick setup&lt;/li&gt;
&lt;li&gt;Authenticate with Nous Portal&lt;/li&gt;
&lt;li&gt;Select a model&lt;/li&gt;
&lt;li&gt;Keep the terminal backend local&lt;/li&gt;
&lt;li&gt;Skip messaging platform configuration for now&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Once setup finishes, the configuration is stored in our persistent directory.&lt;/p&gt;

&lt;p&gt;That means future containers using the same mount can reuse it.&lt;/p&gt;




&lt;h2&gt;
  
  
  🌐 Step 5: Start the Hermes Gateway and Dashboard
&lt;/h2&gt;

&lt;p&gt;Now we can start Hermes as a background container:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;docker run &lt;span class="nt"&gt;-d&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--name&lt;/span&gt; hermes-docker &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--restart&lt;/span&gt; unless-stopped &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-v&lt;/span&gt; ~/.hermes-docker:/opt/data &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-p&lt;/span&gt; 18642:8642 &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-p&lt;/span&gt; 19119:9119 &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-e&lt;/span&gt; &lt;span class="nv"&gt;HERMES_DASHBOARD&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;1 &lt;span class="se"&gt;\&lt;/span&gt;
  nousresearch/hermes-agent gateway run
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;There are a few important things happening here.&lt;/p&gt;

&lt;p&gt;Run in the background&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nt"&gt;-d&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;starts the container in detached mode.&lt;/p&gt;

&lt;p&gt;Give the container a name&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nt"&gt;--name&lt;/span&gt; hermes-docker
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;makes it easier to manage later:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;docker logs hermes-docker
docker stop hermes-docker
docker start hermes-docker
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Keep the persistent directory&lt;/p&gt;

&lt;p&gt;We’re mounting the same directory again:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nt"&gt;-v&lt;/span&gt; ~/.hermes-docker:/opt/data
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;So Hermes sees the configuration we created during setup.&lt;/p&gt;

&lt;p&gt;Enable the dashboard&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nt"&gt;-e&lt;/span&gt; &lt;span class="nv"&gt;HERMES_DASHBOARD&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;1
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;enables the Hermes Dashboard.&lt;/p&gt;




&lt;h2&gt;
  
  
  🔌 Understanding the Port Mapping
&lt;/h2&gt;

&lt;p&gt;You’ll notice I’m using:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nt"&gt;-p&lt;/span&gt; 18642:8642
&lt;span class="nt"&gt;-p&lt;/span&gt; 19119:9119
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Docker port mappings follow this pattern:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;HOST_PORT:CONTAINER_PORT
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;So:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;18642 → 8642
19119 → 9119
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The ports on the right are the ones Hermes uses inside the container.&lt;/p&gt;

&lt;p&gt;The ports on the left are the ones exposed on my Mac.&lt;/p&gt;

&lt;p&gt;I’m deliberately using different host ports because I already have another Hermes instance running locally and don’t want the ports to clash.&lt;/p&gt;

&lt;p&gt;If you’re running only the Docker instance, you can use the default ports 8642 and 9119 instead of 18642 and 19119.&lt;/p&gt;




&lt;h2&gt;
  
  
  ✅ Step 6: Verify the Container Is Running
&lt;/h2&gt;

&lt;p&gt;Run:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;docker ps
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You should see the hermes-docker container running.&lt;/p&gt;

&lt;p&gt;If something isn’t working, one of the first places to look is the container logs:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;docker logs hermes-docker
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This becomes particularly useful when configuring the dashboard.&lt;/p&gt;




&lt;h2&gt;
  
  
  🔐 Step 7: Configure Dashboard Authentication
&lt;/h2&gt;

&lt;p&gt;When I initially opened the dashboard, it didn’t start correctly.&lt;/p&gt;

&lt;p&gt;Instead of hiding that part from the tutorial, I kept it in because it’s a useful troubleshooting example.&lt;/p&gt;

&lt;p&gt;Checking:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;docker logs hermes-docker
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;showed that the dashboard needed an authentication provider.&lt;/p&gt;

&lt;p&gt;Hermes provides authentication options for securing dashboard access.&lt;/p&gt;

&lt;p&gt;I configured mine using Nous Portal authentication.&lt;/p&gt;

&lt;p&gt;Once authentication was configured, the dashboard started successfully.&lt;/p&gt;

&lt;p&gt;With my port mapping, I can access it at:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;localhost:19119
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;And now the Hermes Dashboard is running while Hermes itself remains inside the container.&lt;/p&gt;




&lt;h2&gt;
  
  
  💬 Step 8: Chat With Hermes Inside the Container
&lt;/h2&gt;

&lt;p&gt;You can also enter the running container directly:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;docker &lt;span class="nb"&gt;exec&lt;/span&gt; &lt;span class="nt"&gt;-it&lt;/span&gt; hermes-docker bash
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Then start Hermes:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;hermes
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;At this point you’re interacting with Hermes from a terminal inside the Docker container, rather than running Hermes directly on the host.&lt;/p&gt;

&lt;p&gt;That’s useful for testing.&lt;/p&gt;

&lt;p&gt;But I don’t necessarily want to enter the container every time I want to use the agent.&lt;/p&gt;

&lt;p&gt;There’s a better option.&lt;/p&gt;




&lt;h2&gt;
  
  
  🖥️ Step 9: Connect Hermes Desktop to the Docker Instance
&lt;/h2&gt;

&lt;p&gt;Hermes Desktop can connect to the Gateway running inside our container.&lt;/p&gt;

&lt;p&gt;Open Hermes Desktop and navigate to:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Settings → Gateway → Remote Gateway
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Then configure it to use the Gateway exposed by your Docker container.&lt;/p&gt;

&lt;p&gt;In my setup, that’s my url:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight http"&gt;&lt;code&gt;&lt;span class="err"&gt;http://localhost:19119
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;After authenticating, save the configuration and reconnect.&lt;/p&gt;

&lt;p&gt;Now Hermes Desktop communicates with the Dockerized Hermes instance.&lt;/p&gt;

&lt;p&gt;So from the user’s perspective, I still get the convenient desktop interface.&lt;/p&gt;

&lt;p&gt;But the agent itself is operating inside the container.&lt;/p&gt;




&lt;h2&gt;
  
  
  🛡️ What Does Docker Actually Protect?
&lt;/h2&gt;

&lt;p&gt;This is probably the most important part of the tutorial.&lt;/p&gt;

&lt;p&gt;Running an AI agent inside Docker does not automatically make it safe.&lt;/p&gt;

&lt;p&gt;Docker gives us a useful isolation boundary, but that boundary depends heavily on how the container is configured.&lt;/p&gt;

&lt;p&gt;For example, imagine doing this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Host machine
      │
      ▼
Entire home directory
      │
      ▼
Docker container
      │
      ▼
Hermes Agent
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You’ve technically containerized Hermes.&lt;/p&gt;

&lt;p&gt;But you’ve also exposed a huge portion of your machine to it.&lt;/p&gt;

&lt;p&gt;That’s not the setup I want.&lt;/p&gt;

&lt;p&gt;Instead:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Host machine
      │
      ├── Personal files       ❌
      ├── SSH keys             ❌
      ├── Other projects       ❌
      ├── Docker socket        ❌
      │
      └── ~/.hermes-docker     ✅
                │
                ▼
          Hermes Container
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The container should get access only to the resources required for the task.&lt;/p&gt;




&lt;h3&gt;
  
  
  🚫 1. Don’t Mount Your Entire Home Directory
&lt;/h3&gt;

&lt;p&gt;If you mount your complete home directory into the container, Hermes could potentially access whatever the container’s permissions allow within that mount.&lt;/p&gt;

&lt;p&gt;That might include personal files, source code, configuration files, credentials, or other sensitive data.&lt;/p&gt;

&lt;p&gt;That’s why I’m using:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;~/.hermes-docker
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;as a dedicated location instead.&lt;/p&gt;

&lt;p&gt;If Hermes doesn’t need something, don’t expose it.&lt;/p&gt;




&lt;h3&gt;
  
  
  🔑 2. Be Careful With Credentials
&lt;/h3&gt;

&lt;p&gt;The same principle applies to API keys and tokens.&lt;/p&gt;

&lt;p&gt;Only provide the credentials Hermes actually needs.&lt;/p&gt;

&lt;p&gt;Avoid unnecessarily exposing things such as:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;~/.ssh
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;or unrelated cloud credentials and secrets.&lt;/p&gt;

&lt;p&gt;Containerization doesn’t help much if you put every sensitive credential inside the container anyway.&lt;/p&gt;




&lt;h3&gt;
  
  
  ⚠️ 3. Don’t Expose the Docker Socket Without a Very Good Reason
&lt;/h3&gt;

&lt;p&gt;Another thing I’m deliberately not mounting is:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;/var/run/docker.sock
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Giving a container access to the host Docker daemon can dramatically expand what that container is capable of doing.&lt;/p&gt;

&lt;p&gt;For an autonomous agent, that’s an especially important boundary to think about.&lt;/p&gt;

&lt;p&gt;If Hermes doesn’t need to control Docker on the host, don’t give it that capability.&lt;/p&gt;




&lt;h3&gt;
  
  
  🧩 4. Docker Doesn’t Solve Prompt Injection
&lt;/h3&gt;

&lt;p&gt;There’s another important limitation.&lt;/p&gt;

&lt;p&gt;An AI agent can still encounter malicious or adversarial content.&lt;/p&gt;

&lt;p&gt;For example, content from a webpage, repository, document, or other external source could attempt to manipulate the agent into performing unintended actions.&lt;/p&gt;

&lt;p&gt;Putting the agent inside Docker doesn’t eliminate that problem.&lt;/p&gt;

&lt;p&gt;The difference is what happens after the agent attempts the action.&lt;/p&gt;

&lt;p&gt;If Hermes only has access to:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;/opt/data
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;then we’ve limited the environment available to it.&lt;/p&gt;

&lt;p&gt;If we’ve mounted our entire computer, exposed sensitive credentials, and given it access to the Docker daemon, the potential impact is very different.&lt;/p&gt;

&lt;p&gt;That’s why I think containerization is better understood as blast-radius reduction, not a magic AI security solution.&lt;/p&gt;




&lt;h2&gt;
  
  
  🎯 The Principle: Least Privilege for AI Agents
&lt;/h2&gt;

&lt;p&gt;As AI agents become increasingly capable, I think one traditional security principle becomes even more important:&lt;/p&gt;

&lt;p&gt;Least privilege.&lt;/p&gt;

&lt;p&gt;An agent should receive the minimum access required to complete its task.&lt;/p&gt;

&lt;p&gt;Not:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Agent
  │
  └── Everything on my computer
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;But:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Agent
  │
  ├── Required files
  ├── Required credentials
  ├── Required network services
  └── Required tools
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Nothing more.&lt;/p&gt;

&lt;p&gt;This becomes increasingly important as agents gain longer-running autonomy, terminal access, browser access, external integrations, scheduled execution, and the ability to coordinate multiple tools.&lt;/p&gt;




&lt;h2&gt;
  
  
  Docker vs VM for AI Agents
&lt;/h2&gt;

&lt;p&gt;Docker is not the only way to isolate an autonomous agent.&lt;/p&gt;

&lt;p&gt;You could also use:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A virtual machine&lt;/li&gt;
&lt;li&gt;A dedicated VPS&lt;/li&gt;
&lt;li&gt;A sandboxed execution environment&lt;/li&gt;
&lt;li&gt;A separate physical machine&lt;/li&gt;
&lt;li&gt;More restrictive container runtimes&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;A VM generally provides a stronger isolation boundary than a standard application container because it virtualizes a larger portion of the environment.&lt;/p&gt;

&lt;p&gt;Docker, however, is lightweight and convenient for local development.&lt;/p&gt;

&lt;p&gt;For my Hermes setup, it gives me a useful middle ground:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Direct Host Execution
        ↓
Docker Container
        ↓
Virtual Machine / Dedicated Environment
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The appropriate boundary ultimately depends on what capabilities you’re giving the agent and what resources it can access.&lt;/p&gt;




&lt;h2&gt;
  
  
  Final Architecture
&lt;/h2&gt;

&lt;p&gt;After everything is configured, my setup looks roughly like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;                   ┌─────────────────────────────┐
                   │        Host Machine         │
                   │                             │
                   │      Hermes Desktop         │
                   └──────────────┬──────────────┘
                                  │
                           Remote Gateway
                                  │
                                  ▼
              ┌─────────────────────────────────┐
              │       Docker Container          │
              │                                 │
              │       Hermes Gateway            │
              │       Hermes Dashboard          │
              │       Hermes Agent              │
              │                                 │
              │       /opt/data                 │
              └───────────────┬─────────────────┘
                              │
                         Bind Mount
                              │
                              ▼
                    ~/.hermes-docker
                              │
              ┌───────────────┴──────────────┐
              │ Config • Memory • Sessions   │
              │ Skills • Profiles • Logs     │
              └──────────────────────────────┘
       Rest of host filesystem → NOT MOUNTED
       SSH keys                → NOT EXPOSED
       Docker socket           → NOT EXPOSED
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Hermes still has the environment it needs to work.&lt;/p&gt;

&lt;p&gt;But we’re being much more deliberate about what crosses the boundary.&lt;/p&gt;




&lt;h2&gt;
  
  
  Final Thoughts
&lt;/h2&gt;

&lt;p&gt;Autonomous AI agents are becoming capable of doing much more than generating text.&lt;/p&gt;

&lt;p&gt;They’re increasingly able to:&lt;/p&gt;

&lt;p&gt;⚡ Execute commands&lt;br&gt;
🗂️ Manipulate files&lt;br&gt;
🌍 Interact with external systems&lt;br&gt;
🧰 Use specialized tools&lt;br&gt;
🔄 Run multi-step workflows autonomously&lt;/p&gt;

&lt;p&gt;That’s exciting.&lt;/p&gt;

&lt;p&gt;But the more capable the agent becomes, the more important its execution environment becomes.&lt;/p&gt;

&lt;p&gt;Running Hermes Agent inside Docker doesn’t solve every security problem.&lt;/p&gt;

&lt;p&gt;It does, however, give us a practical way to control what the agent can access and reduce the potential blast radius when something unexpected happens.&lt;/p&gt;

&lt;p&gt;The rule I follow is simple:&lt;/p&gt;

&lt;p&gt;Only give an AI agent access to what it actually needs.&lt;/p&gt;

&lt;p&gt;Everything else should stay outside the boundary.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>hermes</category>
      <category>agents</category>
      <category>docker</category>
    </item>
    <item>
      <title>🚀 What if your AI agent wasn’t tied to a single model provider?

I connected Hermes Agent to OmniRoute to route across free AI models from multiple providers. Here’s the full setup 👇

#AI #AIAgents #OpenSource</title>
      <dc:creator>Vivek Shetye</dc:creator>
      <pubDate>Tue, 15 Sep 2026 15:14:45 +0000</pubDate>
      <link>https://dev.to/vivek_shetye/what-if-your-ai-agent-wasnt-tied-to-a-single-model-provider-i-connected-hermes-agent-to-101n</link>
      <guid>https://dev.to/vivek_shetye/what-if-your-ai-agent-wasnt-tied-to-a-single-model-provider-i-connected-hermes-agent-to-101n</guid>
      <description>&lt;div class="ltag__link--embedded"&gt;
  &lt;div class="crayons-story "&gt;
  &lt;a href="https://dev.to/vivek_shetye/how-i-run-hermes-agent-on-free-ai-models-with-omniroute-3103" class="crayons-story__hidden-navigation-link"&gt;How I Run Hermes Agent on FREE AI Models with OmniRoute 🚀&lt;/a&gt;


  &lt;div class="crayons-story__body crayons-story__body-full_post"&gt;
    &lt;div class="crayons-story__top"&gt;
      &lt;div class="crayons-story__meta"&gt;
        &lt;div class="crayons-story__author-pic"&gt;

          &lt;a href="/vivek_shetye" class="crayons-avatar  crayons-avatar--l  "&gt;
            &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3879444%2F8f338ec8-c7f4-48e9-b8cf-3898bccbb1e8.jpg" alt="vivek_shetye profile" class="crayons-avatar__image"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
        &lt;div&gt;
          &lt;div&gt;
            &lt;a href="/vivek_shetye" class="crayons-story__secondary fw-medium m:hidden"&gt;
              Vivek Shetye
            &lt;/a&gt;
            &lt;div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"&gt;
              
                Vivek Shetye
                
                
              
              &lt;div id="story-author-preview-content-4660383" class="profile-preview-card__content crayons-dropdown branded-7 p-4 pt-0"&gt;
                &lt;div class="gap-4 grid"&gt;
                  &lt;div class="-mt-4"&gt;
                    &lt;a href="/vivek_shetye" class="flex"&gt;
                      &lt;span class="crayons-avatar crayons-avatar--xl mr-2 shrink-0"&gt;
                        &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3879444%2F8f338ec8-c7f4-48e9-b8cf-3898bccbb1e8.jpg" class="crayons-avatar__image" alt=""&gt;
                      &lt;/span&gt;
                      &lt;span class="crayons-link crayons-subtitle-2 mt-5"&gt;Vivek Shetye&lt;/span&gt;
                    &lt;/a&gt;
                  &lt;/div&gt;
                  &lt;div class="print-hidden"&gt;
                    
                      Follow
                    
                  &lt;/div&gt;
                  &lt;div class="author-preview-metadata-container"&gt;&lt;/div&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;

          &lt;/div&gt;
          &lt;a href="https://dev.to/vivek_shetye/how-i-run-hermes-agent-on-free-ai-models-with-omniroute-3103" class="crayons-story__tertiary fs-xs"&gt;&lt;time&gt;Sep 15&lt;/time&gt;&lt;span class="time-ago-indicator-initial-placeholder"&gt;&lt;/span&gt;&lt;/a&gt;
        &lt;/div&gt;
      &lt;/div&gt;

    &lt;/div&gt;

    &lt;div class="crayons-story__indention"&gt;
      &lt;h2 class="crayons-story__title crayons-story__title-full_post"&gt;
        &lt;a href="https://dev.to/vivek_shetye/how-i-run-hermes-agent-on-free-ai-models-with-omniroute-3103" id="article-link-4660383"&gt;
          How I Run Hermes Agent on FREE AI Models with OmniRoute 🚀
        &lt;/a&gt;
      &lt;/h2&gt;
        &lt;div class="crayons-story__tags"&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/ai"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;ai&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/hermes"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;hermes&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/agents"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;agents&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/opensource"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;opensource&lt;/a&gt;
        &lt;/div&gt;
      &lt;div class="crayons-story__bottom"&gt;
        &lt;div class="crayons-story__details"&gt;
          &lt;a href="https://dev.to/vivek_shetye/how-i-run-hermes-agent-on-free-ai-models-with-omniroute-3103" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left"&gt;
            &lt;div class="multiple_reactions_aggregate"&gt;
              &lt;span class="multiple_reactions_icons_container"&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/exploding-head-daceb38d627e6ae9b730f36a1e390fca556a4289d5a41abb2c35068ad3e2c4b5.svg" width="18" height="18"&gt;
                  &lt;/span&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/multi-unicorn-b44d6f8c23cdd00964192bedc38af3e82463978aa611b4365bd33a0f1f4f3e97.svg" width="18" height="18"&gt;
                  &lt;/span&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/sparkle-heart-5f9bee3767e18deb1bb725290cb151c25234768a0e9a2bd39370c382d02920cf.svg" width="18" height="18"&gt;
                  &lt;/span&gt;
              &lt;/span&gt;
              &lt;span class="aggregate_reactions_counter"&gt;7&lt;span class="hidden s:inline"&gt;&amp;nbsp;reactions&lt;/span&gt;&lt;/span&gt;
            &lt;/div&gt;
          &lt;/a&gt;
            &lt;a href="https://dev.to/vivek_shetye/how-i-run-hermes-agent-on-free-ai-models-with-omniroute-3103#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center"&gt;
              

              1&lt;span class="hidden s:inline"&gt;&amp;nbsp;comment&lt;/span&gt;
            &lt;/a&gt;
        &lt;/div&gt;
        &lt;div class="crayons-story__save"&gt;
          &lt;small class="crayons-story__tertiary fs-xs mr-2"&gt;
            7 min read
          &lt;/small&gt;
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;


</description>
      <category>agents</category>
      <category>ai</category>
      <category>opensource</category>
    </item>
    <item>
      <title>How I Run Hermes Agent on FREE AI Models with OmniRoute 🚀</title>
      <dc:creator>Vivek Shetye</dc:creator>
      <pubDate>Tue, 15 Sep 2026 15:05:20 +0000</pubDate>
      <link>https://dev.to/vivek_shetye/how-i-run-hermes-agent-on-free-ai-models-with-omniroute-3103</link>
      <guid>https://dev.to/vivek_shetye/how-i-run-hermes-agent-on-free-ai-models-with-omniroute-3103</guid>
      <description>&lt;p&gt;Free AI models are great.&lt;/p&gt;

&lt;p&gt;Until your agent hits a quota halfway through a task.&lt;/p&gt;

&lt;p&gt;Then suddenly you’re:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Searching for another provider&lt;/li&gt;
&lt;li&gt;Generating another API key&lt;/li&gt;
&lt;li&gt;Changing endpoints&lt;/li&gt;
&lt;li&gt;Switching models&lt;/li&gt;
&lt;li&gt;Restarting your workflow&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For a simple chat application, that might just be annoying.&lt;/p&gt;

&lt;p&gt;For an AI agent executing multi-step tasks, it becomes a much bigger problem.&lt;/p&gt;

&lt;p&gt;So instead of connecting Hermes Agent directly to a single AI provider, I tried a different architecture:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;                 ┌── OpenRouter ──→ Free Models
                 │
Hermes Agent ─→ OmniRoute
                 │
                 └── NVIDIA ──────→ Available Models
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Hermes talks to one endpoint.&lt;/p&gt;

&lt;p&gt;OmniRoute sits between the agent and the model providers and handles the routing.&lt;/p&gt;

&lt;p&gt;The result is a surprisingly useful setup for experimenting with Hermes Agent on free AI models without tightly coupling the agent to one provider.&lt;/p&gt;

&lt;p&gt;In this tutorial, I’ll walk through exactly how I set it up.&lt;/p&gt;




&lt;h2&gt;
  
  
  🎥 Prefer the Video?
&lt;/h2&gt;

&lt;p&gt;I created a complete step-by-step video showing the setup, configuration, and a real Hermes Agent task running through OmniRoute.&lt;/p&gt;

&lt;p&gt;Watch: How I Run Hermes Agent on FREE AI Models&lt;/p&gt;

&lt;p&gt;  &lt;iframe src="https://www.youtube.com/embed/nH9eVRxKuug" width="710" height="399"&gt;
  &lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;If you’d rather understand the architecture and follow the setup at your own pace, keep reading.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Problem With Depending on One Free AI Provider
&lt;/h2&gt;

&lt;p&gt;There are now plenty of ways to experiment with capable AI models without immediately paying for API usage.&lt;/p&gt;

&lt;p&gt;That’s great for:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Learning agent development&lt;/li&gt;
&lt;li&gt;Building prototypes&lt;/li&gt;
&lt;li&gt;Testing AI workflows&lt;/li&gt;
&lt;li&gt;Experimenting with different models&lt;/li&gt;
&lt;li&gt;Running personal automation&lt;/li&gt;
&lt;li&gt;Comparing model capabilities&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;But there’s an obvious limitation:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Free access is rarely unlimited or guaranteed.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;A provider may impose request limits.&lt;/p&gt;

&lt;p&gt;A particular model might become unavailable.&lt;/p&gt;

&lt;p&gt;Traffic might affect access.&lt;/p&gt;

&lt;p&gt;A model could disappear from the free catalog.&lt;/p&gt;

&lt;p&gt;Or you might simply exhaust your quota.&lt;/p&gt;

&lt;p&gt;If your architecture looks like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Hermes Agent
     │
     ▼
Provider A
     │
     ▼
Model
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;your agent is directly dependent on that provider.&lt;/p&gt;

&lt;p&gt;Once Provider A stops serving your requests, your workflow stops too.&lt;/p&gt;

&lt;p&gt;Instead, I wanted something closer to this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;                     ┌── Provider A
                     │
                     ├── Provider B
Hermes Agent ──→ Gateway
                     ├── Provider C
                     │
                     └── Provider D
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;That’s where OmniRoute comes in.&lt;/p&gt;




&lt;h2&gt;
  
  
  🧠 What Is Hermes Agent?
&lt;/h2&gt;

&lt;p&gt;Hermes Agent is an open-source agent harness from Nous Research for building AI agents capable of doing much more than generating chat responses.&lt;/p&gt;

&lt;p&gt;Depending on the tools and configuration available to it, Hermes can perform tasks involving things like:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;User Request
     ↓
Hermes Agent
     ↓
Reasoning
     ↓
Tool Calls
     ↓
Files / Terminal / Web / Other Tools
     ↓
Tool Results
     ↓
More Reasoning
     ↓
Final Result
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This makes model availability particularly important.&lt;/p&gt;

&lt;p&gt;A multi-step agent workflow might require many model calls before the task is finished.&lt;/p&gt;

&lt;p&gt;If your model becomes unavailable halfway through, that can interrupt the entire workflow.&lt;/p&gt;




&lt;h2&gt;
  
  
  🚦 What Is OmniRoute?
&lt;/h2&gt;

&lt;p&gt;Think of OmniRoute as a traffic director for AI models.&lt;/p&gt;

&lt;p&gt;Rather than forcing your application to manage every model provider individually, OmniRoute provides a gateway between your application and those providers.&lt;/p&gt;

&lt;p&gt;Instead of:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Application → Provider
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;you get:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Application → OmniRoute → Providers
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;For this experiment, our application happens to be Hermes Agent.&lt;/p&gt;

&lt;p&gt;So the architecture becomes:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;                       ┌──────────────┐
                       │  OpenRouter  │
                       └──────┬───────┘
                              │
┌──────────────┐      ┌───────▼───────┐
│ Hermes Agent │ ───→ │   OmniRoute   │
└──────────────┘      └───────┬───────┘
                              │
                       ┌──────▼──────┐
                       │   NVIDIA    │
                       └─────────────┘
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;OmniRoute is open source, can run locally, and supports a large number of AI providers.&lt;/p&gt;

&lt;p&gt;More importantly for this experiment, it allows us to expose a single endpoint to Hermes while managing multiple model/provider connections behind it.&lt;/p&gt;




&lt;h2&gt;
  
  
  ⚡ Why Put an AI Gateway Between Hermes and the Models?
&lt;/h2&gt;

&lt;p&gt;You could simply connect Hermes directly to OpenRouter, NVIDIA, or another provider.&lt;/p&gt;

&lt;p&gt;So why add another layer?&lt;/p&gt;

&lt;p&gt;Because it separates two responsibilities.&lt;/p&gt;

&lt;p&gt;Hermes Agent handles the task.&lt;/p&gt;

&lt;p&gt;OmniRoute handles model access and routing.&lt;/p&gt;

&lt;p&gt;Conceptually:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Hermes:
"What should I do next?"

        ↓

OmniRoute:
"Which configured model should serve this request?"
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;That separation becomes increasingly useful as you add more providers.&lt;/p&gt;

&lt;p&gt;Instead of reconfiguring the agent every time your model strategy changes, Hermes continues talking to the same gateway.&lt;/p&gt;

&lt;p&gt;You manage providers behind it.&lt;/p&gt;




&lt;h2&gt;
  
  
  🛠️ Step 1: Install OmniRoute Locally
&lt;/h2&gt;

&lt;p&gt;The first thing I did was install OmniRoute locally.&lt;/p&gt;

&lt;p&gt;After following the installation instructions, OmniRoute can be started from the terminal.&lt;/p&gt;

&lt;p&gt;Once the server starts, it provides access to its local dashboard.&lt;/p&gt;

&lt;p&gt;From there you can manage things like:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Providers
Models
Endpoints
API Keys
Routing
Analytics
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This becomes the control plane for our model infrastructure.&lt;/p&gt;

&lt;p&gt;Important security note 🔐&lt;/p&gt;

&lt;p&gt;If you’re running a gateway locally or exposing it beyond your machine, don’t leave default credentials unchanged.&lt;/p&gt;

&lt;p&gt;Create proper API keys and configure authentication appropriate for your environment.&lt;/p&gt;




&lt;h2&gt;
  
  
  🔌 Step 2: Connect OpenRouter
&lt;/h2&gt;

&lt;p&gt;The first provider I added was OpenRouter.&lt;/p&gt;

&lt;p&gt;Inside OmniRoute:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Providers
   ↓
OpenRouter
   ↓
Add Connection
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You’ll need an OpenRouter API key.&lt;/p&gt;

&lt;p&gt;Once the connection is configured, OmniRoute can import the models available through that account.&lt;/p&gt;

&lt;p&gt;For this experiment, I enabled the option to import only free models.&lt;/p&gt;

&lt;p&gt;The result looks conceptually like:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;OpenRouter
     │
     ├── Free Model A
     ├── Free Model B
     ├── Free Model C
     └── ...
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You can also perform health checks to see whether configured models are currently available.&lt;/p&gt;

&lt;p&gt;That’s already useful but we’re still relying on one provider.&lt;/p&gt;

&lt;p&gt;So let’s add another.&lt;/p&gt;




&lt;h2&gt;
  
  
  🟢 Step 3: Add NVIDIA as Another Provider
&lt;/h2&gt;

&lt;p&gt;I repeated essentially the same process with NVIDIA.&lt;/p&gt;

&lt;p&gt;Generate an API key through NVIDIA’s model/API platform and add the connection inside OmniRoute.&lt;/p&gt;

&lt;p&gt;Now our gateway has multiple provider connections:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;                OmniRoute
                   │
          ┌────────┴────────┐
          ▼                 ▼
     OpenRouter           NVIDIA
          │                 │
      Free Models      Available Models
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;And this is where the architecture starts becoming interesting.&lt;/p&gt;

&lt;p&gt;Hermes doesn’t need separate configurations for both providers.&lt;/p&gt;

&lt;p&gt;As far as Hermes is concerned, there is still only:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;One API endpoint
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;OmniRoute handles what happens behind it.&lt;/p&gt;




&lt;h2&gt;
  
  
  🤖 Step 4: Connect Hermes Agent to OmniRoute
&lt;/h2&gt;

&lt;p&gt;Now we need to point Hermes toward the gateway.&lt;/p&gt;

&lt;p&gt;Hermes supports configuring a custom model endpoint.&lt;/p&gt;

&lt;p&gt;Using the Hermes model configuration flow, I selected the custom endpoint option and provided:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;API Base URL → OmniRoute local endpoint

API Key → OmniRoute API key

Compatibility → Auto Detect
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;For the model configuration, I used OmniRoute’s:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;auto/best-coding
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This is where the model selection gets abstracted away from Hermes.&lt;/p&gt;

&lt;p&gt;Instead of telling Hermes:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Always use Model X
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;we’re effectively saying:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Send the request to OmniRoute.

Let the routing layer determine the appropriate
configured model for the request.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Once that configuration is saved, OmniRoute becomes a model endpoint available to Hermes Agent.&lt;/p&gt;




&lt;h2&gt;
  
  
  🧪 Step 5: Give Hermes a Real Agent Task
&lt;/h2&gt;

&lt;p&gt;A simple “Hello World” wouldn’t tell us much.&lt;/p&gt;

&lt;p&gt;So I gave Hermes something closer to an actual agent workflow.&lt;/p&gt;

&lt;p&gt;The task was essentially:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Find the latest and most important AI news from reliable sources, summarize the key developments, and create a polished single-page visual report presenting the major stories, trends, and sources.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;That means Hermes needs to do much more than answer a single prompt.&lt;/p&gt;

&lt;p&gt;Conceptually:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Research
   ↓
Collect Information
   ↓
Evaluate Sources
   ↓
Summarize
   ↓
Identify Trends
   ↓
Generate Web Page
   ↓
Write Files
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;And here’s the important part:&lt;/p&gt;

&lt;p&gt;Hermes was sending its model requests through OmniRoute throughout the workflow.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Hermes Task
    │
    ▼
OmniRoute
    │
    ▼
Best Available Configured Model
    │
    ▼
Response
    │
    ▼
Hermes Continues Task
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;After a minute or two, Hermes completed the task and generated the visual AI news report.&lt;/p&gt;




&lt;h2&gt;
  
  
  📊 Step 6: See Which AI Models Actually Handled the Requests
&lt;/h2&gt;

&lt;p&gt;This was one of my favorite parts of the experiment.&lt;/p&gt;

&lt;p&gt;After Hermes finished, I went back into OmniRoute.&lt;/p&gt;

&lt;p&gt;Under its usage analytics, I could inspect information about the requests being sent through the gateway.&lt;/p&gt;

&lt;p&gt;That included things such as:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Requests&lt;/li&gt;
&lt;li&gt;Input tokens&lt;/li&gt;
&lt;li&gt;Output tokens&lt;/li&gt;
&lt;li&gt;Model usage&lt;/li&gt;
&lt;li&gt;Which models actually served requests&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;So instead of the model-routing layer being a complete black box, I could inspect what happened after the task.&lt;/p&gt;

&lt;p&gt;The workflow effectively becomes:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;             ┌───────────────┐
             │ Hermes Agent  │
             └───────┬───────┘
                     │
                     ▼
             ┌───────────────┐
             │   OmniRoute   │
             └───────┬───────┘
                     │
            Routing Decision
                     │
          ┌──────────┴──────────┐
          ▼                     ▼
      Model A                Model B
          │                     │
          └──────────┬──────────┘
                     ▼
                 Response

                     +

              Usage Analytics
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;For agent development, that observability is useful.&lt;/p&gt;

&lt;p&gt;It gives you visibility into what your model-routing infrastructure is actually doing rather than only seeing the final agent output.&lt;/p&gt;




&lt;h2&gt;
  
  
  🧩 Why This Architecture Matters Beyond Free Models
&lt;/h2&gt;

&lt;p&gt;The interesting part isn’t actually the word free.&lt;/p&gt;

&lt;p&gt;It’s the abstraction.&lt;/p&gt;

&lt;p&gt;Without a gateway:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Agent → Specific Provider → Specific Model
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;With a gateway:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Agent → Model Gateway → Routing Strategy → Provider/Model
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;That means the agent doesn’t necessarily need to care whether the underlying request eventually reaches one provider or another.&lt;/p&gt;

&lt;p&gt;This becomes useful when experimenting with:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Multi-provider AI infrastructure&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Different providers can sit behind one gateway.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Model fallback strategies&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Your application doesn’t have to own every routing decision.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Cost optimization 💰&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Different models can potentially be selected based on your infrastructure strategy.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Model experimentation&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;You can change the models behind the gateway without redesigning your entire agent integration.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Observability&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;A centralized gateway can give you a better view of model usage across your agent workflows.&lt;/p&gt;

&lt;p&gt;And these patterns aren’t limited to Hermes.&lt;/p&gt;

&lt;p&gt;The broader architecture is applicable to many AI applications:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;AI Application
      ↓
AI Gateway
      ↓
Routing / Policies
      ↓
Multiple Models &amp;amp; Providers
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;As AI systems become more agentic, this layer becomes increasingly interesting.&lt;/p&gt;




&lt;h2&gt;
  
  
  ⚠️ But There’s a Catch: “Free” Doesn’t Mean Unlimited
&lt;/h2&gt;

&lt;p&gt;This is important.&lt;/p&gt;

&lt;p&gt;Using multiple free-model providers does not magically create unlimited free inference.&lt;/p&gt;

&lt;p&gt;Every provider has its own policies and constraints.&lt;/p&gt;

&lt;p&gt;For example:&lt;/p&gt;

&lt;p&gt;OpenRouter free models have limits.&lt;/p&gt;

&lt;p&gt;NVIDIA access can vary depending on the model, account, availability, and traffic.&lt;/p&gt;

&lt;p&gt;Free models may also:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Respond more slowly&lt;/li&gt;
&lt;li&gt;Become temporarily unavailable&lt;/li&gt;
&lt;li&gt;Change their limits&lt;/li&gt;
&lt;li&gt;Disappear from catalogs&lt;/li&gt;
&lt;li&gt;Have different context windows&lt;/li&gt;
&lt;li&gt;Behave differently across tasks&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;And there’s another important consideration:&lt;/p&gt;

&lt;p&gt;Always read the provider’s terms.&lt;/p&gt;

&lt;p&gt;Some services have specific rules around:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Automation
API usage
Processing
Redistribution
Rate limits
Free-tier usage
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;A few minutes checking those requirements before building automation around a provider can save you problems later.&lt;/p&gt;

&lt;p&gt;Think of this architecture as a way to use available resources more flexibly, not as a way to bypass provider limits.&lt;/p&gt;




&lt;h2&gt;
  
  
  🏗️ The Bigger Lesson: Decouple Your Agent From Your Model Provider
&lt;/h2&gt;

&lt;p&gt;This experiment reinforced something I’ve increasingly found useful when working with AI agents:&lt;/p&gt;

&lt;p&gt;The agent and the model infrastructure don’t have to be the same layer.&lt;/p&gt;

&lt;p&gt;Your agent should focus on:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Reasoning
Tools
Memory
Tasks
Workflows
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Your model gateway can focus on:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Providers
Models
Routing
Availability
Usage
Policies
Observability
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Put those together and you get a much cleaner architecture:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;┌──────────────────────────────┐
│          AI Agent            │
│                              │
│ Tools • Memory • Workflows   │
└──────────────┬───────────────┘
               │
               ▼
┌──────────────────────────────┐
│          AI Gateway          │
│                              │
│ Routing • Models • Analytics │
└──────────────┬───────────────┘
               │
       ┌───────┼───────┐
       ▼       ▼       ▼
   Provider Provider Provider
      A        B        C
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;For small experiments, this might feel like an extra layer.&lt;/p&gt;

&lt;p&gt;But once you’re testing multiple models and providers—or building longer-running agent workflows—the separation starts making much more sense.&lt;/p&gt;




&lt;h2&gt;
  
  
  🎯 Final Thoughts
&lt;/h2&gt;

&lt;p&gt;If you’re learning AI agent development and want to experiment without immediately spending heavily on API calls, Hermes Agent + OmniRoute + free AI model providers is an interesting setup to explore.&lt;/p&gt;

&lt;p&gt;You get:&lt;/p&gt;

&lt;p&gt;✅ One endpoint for Hermes Agent&lt;/p&gt;

&lt;p&gt;🔀 Multiple model/provider options behind the gateway&lt;/p&gt;

&lt;p&gt;🧠 Automatic model selection strategies&lt;/p&gt;

&lt;p&gt;📈 Centralized usage analytics&lt;/p&gt;

&lt;p&gt;🛠️ The flexibility to add or change providers later&lt;/p&gt;

&lt;p&gt;Just remember that the free tiers still have their own quotas, availability constraints, and terms.&lt;/p&gt;

&lt;p&gt;The real value here isn’t “unlimited free AI.”&lt;/p&gt;

&lt;p&gt;It’s building an agent architecture that isn’t unnecessarily coupled to one model provider.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>hermes</category>
      <category>agents</category>
      <category>opensource</category>
    </item>
    <item>
      <title>Hermes Agent goes far beyond basic prompting. 🤖

I broke down /loop, /goal, Cron, Delegation, Bot Mode, Kanban &amp; Mixture of Agents and when each actually makes sense.

A practical mental model for building more autonomous AI agents. 👇</title>
      <dc:creator>Vivek Shetye</dc:creator>
      <pubDate>Tue, 08 Sep 2026 15:29:15 +0000</pubDate>
      <link>https://dev.to/vivek_shetye/hermes-agent-goes-far-beyond-basic-prompting-i-broke-down-loop-goal-cron-delegation-bot-f89</link>
      <guid>https://dev.to/vivek_shetye/hermes-agent-goes-far-beyond-basic-prompting-i-broke-down-loop-goal-cron-delegation-bot-f89</guid>
      <description>&lt;div class="ltag__link--embedded"&gt;
  &lt;div class="crayons-story "&gt;
  &lt;a href="https://dev.to/vivek_shetye/hermes-agent-advanced-features-explained-loop-goal-cron-delegation-bot-mode-kanban--3058" class="crayons-story__hidden-navigation-link"&gt;🤖 Hermes Agent Advanced Features Explained: Loop, Goal, Cron, Delegation, Bot Mode, Kanban &amp;amp; Mixture of Agents&lt;/a&gt;


  &lt;div class="crayons-story__body crayons-story__body-full_post"&gt;
      &lt;a href="https://dev.to/vivek_shetye/hermes-agent-advanced-features-explained-loop-goal-cron-delegation-bot-mode-kanban--3058" class="crayons-article__context-note crayons-article__context-note__feed"&gt;&lt;p&gt;Hermes Agent Challenge Submission: Write About Hermes Agent&lt;/p&gt;

&lt;/a&gt;
    &lt;div class="crayons-story__top"&gt;
      &lt;div class="crayons-story__meta"&gt;
        &lt;div class="crayons-story__author-pic"&gt;

          &lt;a href="/vivek_shetye" class="crayons-avatar  crayons-avatar--l  "&gt;
            &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3879444%2F8f338ec8-c7f4-48e9-b8cf-3898bccbb1e8.jpg" alt="vivek_shetye profile" class="crayons-avatar__image"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
        &lt;div&gt;
          &lt;div&gt;
            &lt;a href="/vivek_shetye" class="crayons-story__secondary fw-medium m:hidden"&gt;
              Vivek Shetye
            &lt;/a&gt;
            &lt;div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"&gt;
              
                Vivek Shetye
                
                
              
              &lt;div id="story-author-preview-content-4607605" class="profile-preview-card__content crayons-dropdown branded-7 p-4 pt-0"&gt;
                &lt;div class="gap-4 grid"&gt;
                  &lt;div class="-mt-4"&gt;
                    &lt;a href="/vivek_shetye" class="flex"&gt;
                      &lt;span class="crayons-avatar crayons-avatar--xl mr-2 shrink-0"&gt;
                        &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3879444%2F8f338ec8-c7f4-48e9-b8cf-3898bccbb1e8.jpg" class="crayons-avatar__image" alt=""&gt;
                      &lt;/span&gt;
                      &lt;span class="crayons-link crayons-subtitle-2 mt-5"&gt;Vivek Shetye&lt;/span&gt;
                    &lt;/a&gt;
                  &lt;/div&gt;
                  &lt;div class="print-hidden"&gt;
                    
                      Follow
                    
                  &lt;/div&gt;
                  &lt;div class="author-preview-metadata-container"&gt;&lt;/div&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;

          &lt;/div&gt;
          &lt;a href="https://dev.to/vivek_shetye/hermes-agent-advanced-features-explained-loop-goal-cron-delegation-bot-mode-kanban--3058" class="crayons-story__tertiary fs-xs"&gt;&lt;time&gt;Sep 8&lt;/time&gt;&lt;span class="time-ago-indicator-initial-placeholder"&gt;&lt;/span&gt;&lt;/a&gt;
        &lt;/div&gt;
      &lt;/div&gt;

    &lt;/div&gt;

    &lt;div class="crayons-story__indention"&gt;
      &lt;h2 class="crayons-story__title crayons-story__title-full_post"&gt;
        &lt;a href="https://dev.to/vivek_shetye/hermes-agent-advanced-features-explained-loop-goal-cron-delegation-bot-mode-kanban--3058" id="article-link-4607605"&gt;
          🤖 Hermes Agent Advanced Features Explained: Loop, Goal, Cron, Delegation, Bot Mode, Kanban &amp;amp; Mixture of Agents
        &lt;/a&gt;
      &lt;/h2&gt;
        &lt;div class="crayons-story__tags"&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/ai"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;ai&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/agents"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;agents&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/hermesagentchallenge"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;hermesagentchallenge&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/opensource"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;opensource&lt;/a&gt;
        &lt;/div&gt;
      &lt;div class="crayons-story__bottom"&gt;
        &lt;div class="crayons-story__details"&gt;
          &lt;a href="https://dev.to/vivek_shetye/hermes-agent-advanced-features-explained-loop-goal-cron-delegation-bot-mode-kanban--3058" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left"&gt;
            &lt;div class="multiple_reactions_aggregate"&gt;
              &lt;span class="multiple_reactions_icons_container"&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/exploding-head-daceb38d627e6ae9b730f36a1e390fca556a4289d5a41abb2c35068ad3e2c4b5.svg" width="18" height="18"&gt;
                  &lt;/span&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/multi-unicorn-b44d6f8c23cdd00964192bedc38af3e82463978aa611b4365bd33a0f1f4f3e97.svg" width="18" height="18"&gt;
                  &lt;/span&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/sparkle-heart-5f9bee3767e18deb1bb725290cb151c25234768a0e9a2bd39370c382d02920cf.svg" width="18" height="18"&gt;
                  &lt;/span&gt;
              &lt;/span&gt;
              &lt;span class="aggregate_reactions_counter"&gt;8&lt;span class="hidden s:inline"&gt;&amp;nbsp;reactions&lt;/span&gt;&lt;/span&gt;
            &lt;/div&gt;
          &lt;/a&gt;
            &lt;a href="https://dev.to/vivek_shetye/hermes-agent-advanced-features-explained-loop-goal-cron-delegation-bot-mode-kanban--3058#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center"&gt;
              

              1&lt;span class="hidden s:inline"&gt;&amp;nbsp;comment&lt;/span&gt;
            &lt;/a&gt;
        &lt;/div&gt;
        &lt;div class="crayons-story__save"&gt;
          &lt;small class="crayons-story__tertiary fs-xs mr-2"&gt;
            6 min read
          &lt;/small&gt;
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;


</description>
      <category>agents</category>
      <category>ai</category>
      <category>automation</category>
    </item>
    <item>
      <title>🤖 Hermes Agent Advanced Features Explained: Loop, Goal, Cron, Delegation, Bot Mode, Kanban &amp; Mixture of Agents</title>
      <dc:creator>Vivek Shetye</dc:creator>
      <pubDate>Tue, 08 Sep 2026 15:03:20 +0000</pubDate>
      <link>https://dev.to/vivek_shetye/hermes-agent-advanced-features-explained-loop-goal-cron-delegation-bot-mode-kanban--3058</link>
      <guid>https://dev.to/vivek_shetye/hermes-agent-advanced-features-explained-loop-goal-cron-delegation-bot-mode-kanban--3058</guid>
      <description>&lt;p&gt;Using Hermes Agent as a normal AI assistant is pretty straightforward.&lt;/p&gt;

&lt;p&gt;You give it a task. It reasons about the problem, uses tools when necessary, and gives you a result.&lt;/p&gt;

&lt;p&gt;But Hermes gets much more interesting when you ask a different question:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;How do I get an AI agent to keep working without constantly prompting it?&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Hermes Agent gives you several ways to do this.&lt;/p&gt;

&lt;p&gt;You can create recurring loops, give the agent a persistent goal, schedule Cron Jobs, delegate work to sub-agents, create persistent specialist bots, coordinate multiple agents through Kanban, or even use multiple LLMs through Mixture of Agents.&lt;/p&gt;

&lt;p&gt;The confusing part?&lt;/p&gt;

&lt;p&gt;These features all increase agent autonomy, but they solve very different problems.&lt;/p&gt;

&lt;p&gt;I recently published a video breaking down how these advanced Hermes Agent features work under the hood and, more importantly, when you should use each one.&lt;/p&gt;

&lt;h3&gt;
  
  
  🎥 Watch the full video:
&lt;/h3&gt;

&lt;p&gt;  &lt;iframe src="https://www.youtube.com/embed/E_tj3VgHAUY" width="710" height="399"&gt;
  &lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;Here’s the mental model I use to distinguish them.&lt;/p&gt;




&lt;h2&gt;
  
  
  🔁 1. Loop: Repeat Something Inside the Current Session
&lt;/h2&gt;

&lt;p&gt;The easiest way to understand Hermes Agent’s /loop command is:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;“Do this again later while I’m working in this session.”&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;A loop takes a prompt and reruns it on a recurring cadence.&lt;/p&gt;

&lt;p&gt;For example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Check my deployment every 5 minutes and tell me when it goes live.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The key distinction is that Loop is time-driven and session-scoped.&lt;/p&gt;

&lt;p&gt;Use it for monitoring, repeated checks, polling, or other temporary recurring work associated with your current Hermes session.&lt;/p&gt;




&lt;h2&gt;
  
  
  🎯 2. Goal: Keep Working Until the Objective Is Complete
&lt;/h2&gt;

&lt;p&gt;/goal solves a completely different problem.&lt;/p&gt;

&lt;p&gt;Instead of saying:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;“Do this again later.”&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;You’re saying:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;“Keep working until this is actually done.”&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Some tasks can’t reliably be completed in a single agent turn.&lt;/p&gt;

&lt;p&gt;Maybe Hermes needs to modify code, run tests, inspect failures, make another change, and repeat the process.&lt;/p&gt;

&lt;p&gt;That’s where Goal becomes useful.&lt;/p&gt;

&lt;p&gt;After each continuation, the result can be evaluated to determine whether the objective has actually been completed.&lt;/p&gt;

&lt;p&gt;Hermes also supports a completion contract, which can describe:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The desired outcome&lt;/li&gt;
&lt;li&gt;How success should be verified&lt;/li&gt;
&lt;li&gt;Constraints that must remain true&lt;/li&gt;
&lt;li&gt;What is inside or outside the task’s scope&lt;/li&gt;
&lt;li&gt;When Hermes should stop and ask for help&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Instead of:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Fix authentication.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You can define something closer to:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Fix authentication so all tests pass.

Keep the existing login API response unchanged.

Only modify the authentication service and its tests.

Stop and ask me if a database migration becomes necessary.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Now both execution and evaluation have a much clearer definition of “done.”&lt;/p&gt;

&lt;p&gt;One important misconception:&lt;/p&gt;

&lt;p&gt;Goal does not automatically create an agent team, Kanban workflow, or independent background process.&lt;/p&gt;

&lt;p&gt;It keeps the current Hermes session focused on a standing objective.&lt;/p&gt;

&lt;p&gt;So:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Loop → Do this again later.

Goal → Keep working until this is done.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  ⏰ 3. Cron Jobs: Scheduled, Unattended AI Agent Workflows
&lt;/h2&gt;

&lt;p&gt;Both Loop and Goal are connected to an active Hermes session.&lt;/p&gt;

&lt;p&gt;But what if you want Hermes to wake up every morning and perform some work even when you’re not interacting with it?&lt;/p&gt;

&lt;p&gt;That’s where Cron Jobs come in.&lt;/p&gt;

&lt;p&gt;For example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Every morning at 9 AM:

- Check my news feeds
- Find important AI developments
- Summarize them
- Send me a report on Telegram
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;When the scheduled time arrives, Hermes can launch a fresh agent session specifically for that run.&lt;/p&gt;

&lt;p&gt;This makes Cron useful for things like:&lt;/p&gt;

&lt;p&gt;📊 Daily reports&lt;br&gt;
🔍 Recurring research&lt;br&gt;
🛡️ Security audits&lt;br&gt;
🧪 CI health checks&lt;br&gt;
📰 News monitoring&lt;br&gt;
📨 Scheduled summaries&lt;/p&gt;

&lt;p&gt;The fundamental distinction is:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Loop
↓
Keep checking while this session is active.

Cron
↓
Wake up independently on a schedule and run the task.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;If I’m watching a deployment for the next 20 minutes, I’d probably use Loop.&lt;/p&gt;

&lt;p&gt;If I want a report generated every morning whether I’m there or not, I’d use Cron.&lt;/p&gt;




&lt;h2&gt;
  
  
  🧩 4. Sub-Agent Delegation: Temporary Parallel Workers
&lt;/h2&gt;

&lt;p&gt;Now we move from one autonomous agent to multiple agents working simultaneously.&lt;/p&gt;

&lt;p&gt;Suppose I ask Hermes:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Compare three approaches for implementing authentication
and recommend the best one.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The main agent could investigate each approach sequentially.&lt;/p&gt;

&lt;p&gt;Or it could delegate:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Parent Agent
     │
     ├── Sub-Agent A → Research approach A
     ├── Sub-Agent B → Research approach B
     └── Sub-Agent C → Research approach C
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The sub-agents can perform those tasks independently and return their findings to the parent.&lt;/p&gt;

&lt;p&gt;This provides two major advantages.&lt;/p&gt;

&lt;h3&gt;
  
  
  ⚡ Parallelism
&lt;/h3&gt;

&lt;p&gt;Independent work can happen simultaneously rather than forcing the main agent to perform everything sequentially.&lt;/p&gt;

&lt;h3&gt;
  
  
  🧱 Context Isolation
&lt;/h3&gt;

&lt;p&gt;Large research, coding, refactoring, and analysis tasks can consume significant context.&lt;/p&gt;

&lt;p&gt;Delegating them means much of the intermediate work stays inside the sub-agent’s context rather than flooding the parent’s conversation.&lt;/p&gt;

&lt;p&gt;The important distinction is that delegation is temporary.&lt;/p&gt;

&lt;p&gt;A sub-agent exists to perform a focused task, return its result, and finish.&lt;/p&gt;

&lt;p&gt;If you want a specialist identity that persists over time, you need something else.&lt;/p&gt;




&lt;h2&gt;
  
  
  🤖 5. Profiles &amp;amp; Bot Mode: Persistent AI Specialists
&lt;/h2&gt;

&lt;p&gt;Imagine having separate Hermes agents for:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;👨‍💻 Coding
🔬 Research
✍️ Content
📈 Analysis
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You probably don’t want your research agent’s accumulated context and workflows constantly mixed with your coding agent.&lt;/p&gt;

&lt;p&gt;That’s what &lt;strong&gt;Hermes Profiles&lt;/strong&gt; help solve.&lt;/p&gt;

&lt;p&gt;A profile acts like a separate Hermes environment with its own configuration and state.&lt;/p&gt;

&lt;p&gt;This allows specialist agents to develop independently.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Bot Mode&lt;/strong&gt; builds a more intuitive multi-agent experience on top of these persistent profiles.&lt;/p&gt;

&lt;p&gt;The key distinction from delegation is persistence:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Sub-Agent
↓
Temporary worker for a task

Bot / Profile
↓
Persistent specialist identity
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Multiple bots can also communicate with one another, allowing you to create workflows involving specialist agents.&lt;/p&gt;

&lt;p&gt;But once those workflows become complicated, messages alone aren’t enough.&lt;/p&gt;




&lt;h2&gt;
  
  
  📋 6. Kanban: Durable Multi-Agent Orchestration
&lt;/h2&gt;

&lt;p&gt;Suppose you have three persistent Hermes specialists:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Researcher
    ↓
Analyst
    ↓
Writer
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You want the researcher to collect evidence.&lt;/p&gt;

&lt;p&gt;Only after the research is finished should the analyst evaluate it.&lt;/p&gt;

&lt;p&gt;And only after the analysis is complete should the writer produce the final report.&lt;/p&gt;

&lt;p&gt;You could coordinate everything through agent messages.&lt;/p&gt;

&lt;p&gt;But what happens when the workflow introduces:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Dependencies&lt;/li&gt;
&lt;li&gt;Failures&lt;/li&gt;
&lt;li&gt;Retries&lt;/li&gt;
&lt;li&gt;Artifacts&lt;/li&gt;
&lt;li&gt;Structured handoffs&lt;/li&gt;
&lt;li&gt;Human review&lt;/li&gt;
&lt;li&gt;Work lasting hours or days&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Messages alone become fragile.&lt;/p&gt;

&lt;p&gt;That’s where Hermes Kanban becomes useful.&lt;/p&gt;

&lt;p&gt;Instead of the workflow existing only inside agent conversations, the work becomes structured, persistent task state.&lt;/p&gt;

&lt;p&gt;Conceptually:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Research Topic
      ↓
Analyze Evidence
      ↓
Human Review
      ↓
Write Final Report
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;If Analyze Evidence depends on Research Topic, it waits.&lt;/p&gt;

&lt;p&gt;Once the research task is completed, the dependent task can proceed.&lt;/p&gt;

&lt;p&gt;This makes Kanban useful for durable, long-running multi-agent workflows.&lt;/p&gt;

&lt;p&gt;And Kanban and delegation aren’t competing ideas.&lt;/p&gt;

&lt;p&gt;A persistent Kanban worker could own a research task and then delegate parts of that research to several temporary sub-agents.&lt;/p&gt;

&lt;p&gt;Think of it this way:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Delegation → temporary help

Bot Mode → persistent specialists

Kanban → coordination between specialists
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  🧠 7. Mixture of Agents: Multi-Model Reasoning
&lt;/h2&gt;

&lt;p&gt;This is probably the easiest concept to confuse with multi-agent orchestration.&lt;/p&gt;

&lt;p&gt;Mixture of Agents (MoA) operates at the model layer.&lt;/p&gt;

&lt;p&gt;Imagine you’re solving a difficult software architecture problem.&lt;/p&gt;

&lt;p&gt;Instead of asking one LLM to immediately decide what to do, you could ask several models to independently analyze the problem.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Reference Model A ──┐
                    │
Reference Model B ──┼──→ Aggregator Model → Hermes Agent Loop
                    │
Reference Model C ──┘
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;One model might notice a security problem.&lt;/p&gt;

&lt;p&gt;Another might suggest a much simpler architecture.&lt;/p&gt;

&lt;p&gt;Another might identify an assumption everyone else missed.&lt;/p&gt;

&lt;p&gt;Their perspectives are then provided to an aggregator model, which becomes the model responsible for acting.&lt;/p&gt;

&lt;p&gt;This is why Mixture of Agents is better understood as a model strategy rather than a traditional multi-agent workflow.&lt;/p&gt;

&lt;p&gt;You’re not necessarily creating:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Research Agent
+
Coding Agent
+
Review Agent
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Instead, you’re giving the acting model multiple model perspectives before it makes decisions.&lt;/p&gt;

&lt;p&gt;The Hermes session, tools, and underlying agent loop can remain the same.&lt;/p&gt;

&lt;p&gt;What changes is the model strategy powering that loop.&lt;/p&gt;




&lt;h2&gt;
  
  
  🗺️ The Mental Model
&lt;/h2&gt;

&lt;p&gt;If you remember only one thing from this article, make it this:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Hermes Feature&lt;/th&gt;
&lt;th&gt;Mental Model&lt;/th&gt;
&lt;th&gt;Best For&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;🔁 &lt;strong&gt;Loop&lt;/strong&gt;
&lt;/td&gt;
&lt;td&gt;Repetition&lt;/td&gt;
&lt;td&gt;Repeated checks in the current session&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;🎯 &lt;strong&gt;Goal&lt;/strong&gt;
&lt;/td&gt;
&lt;td&gt;Completion&lt;/td&gt;
&lt;td&gt;Working toward a clearly defined outcome&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;⏰ &lt;strong&gt;Cron&lt;/strong&gt;
&lt;/td&gt;
&lt;td&gt;Scheduling&lt;/td&gt;
&lt;td&gt;Unattended scheduled workflows&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;🧩 &lt;strong&gt;Delegation&lt;/strong&gt;
&lt;/td&gt;
&lt;td&gt;Temporary parallelism&lt;/td&gt;
&lt;td&gt;Independent subtasks&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;🤖 &lt;strong&gt;Profiles / Bot Mode&lt;/strong&gt;
&lt;/td&gt;
&lt;td&gt;Persistent identity&lt;/td&gt;
&lt;td&gt;Long-lived specialist agents&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;📋 &lt;strong&gt;Kanban&lt;/strong&gt;
&lt;/td&gt;
&lt;td&gt;Durable orchestration&lt;/td&gt;
&lt;td&gt;Dependencies, handoffs, retries, and review&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;🧠 &lt;strong&gt;Mixture of Agents&lt;/strong&gt;
&lt;/td&gt;
&lt;td&gt;Multi-model reasoning&lt;/td&gt;
&lt;td&gt;Multiple LLM perspectives on difficult problems&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;The features become much easier to reason about once you stop grouping all of them under “autonomous AI agents.”&lt;/p&gt;

&lt;p&gt;They’re different primitives for controlling different dimensions of autonomy.&lt;/p&gt;




&lt;h2&gt;
  
  
  🚀 Putting It All Together
&lt;/h2&gt;

&lt;p&gt;The interesting part is that these concepts can be combined.&lt;/p&gt;

&lt;p&gt;Imagine a software development workflow where:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Cron
  ↓
Starts scheduled workflow
  ↓
Kanban coordinates persistent specialist profiles
  ↓
Research Agent delegates work to temporary sub-agents
  ↓
Architecture Agent uses Mixture of Agents
  ↓
Goal keeps implementation focused until verification passes
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Now you’re moving beyond a chatbot that happens to call tools.&lt;/p&gt;

&lt;p&gt;You’re designing an agentic system where scheduling, persistence, parallelism, identity, orchestration, and model reasoning are separate architectural decisions.&lt;/p&gt;

&lt;p&gt;And that distinction becomes increasingly important as AI agents become more autonomous.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>agents</category>
      <category>hermesagentchallenge</category>
      <category>opensource</category>
    </item>
    <item>
      <title>Choosing an enterprise MCP gateway isn’t about the longest feature list. 👀

I compared Bifrost, Docker, Kong, Lunar MCPX &amp; Microsoft MCP Gateway across identity, security, tool governance, deployment, and failure handling.

Here’s what I found 👇</title>
      <dc:creator>Vivek Shetye</dc:creator>
      <pubDate>Mon, 31 Aug 2026 15:05:34 +0000</pubDate>
      <link>https://dev.to/vivek_shetye/choosing-an-enterprise-mcp-gateway-isnt-about-the-longest-feature-list-i-compared-bifrost-38p</link>
      <guid>https://dev.to/vivek_shetye/choosing-an-enterprise-mcp-gateway-isnt-about-the-longest-feature-list-i-compared-bifrost-38p</guid>
      <description>&lt;div class="ltag__link--embedded"&gt;
  &lt;div class="crayons-story "&gt;
  &lt;a href="https://dev.to/vivek_shetye/best-enterprise-mcp-gateway-for-your-ai-agents-in-2026-43hl" class="crayons-story__hidden-navigation-link"&gt;Best Enterprise MCP Gateway for Your AI Agents in 2026&lt;/a&gt;


  &lt;div class="crayons-story__body crayons-story__body-full_post"&gt;
      &lt;a href="https://dev.to/vivek_shetye/best-enterprise-mcp-gateway-for-your-ai-agents-in-2026-43hl" class="crayons-article__context-note crayons-article__context-note__feed"&gt;&lt;p&gt;Compares Bifrost to LiteLLM&lt;/p&gt;

&lt;/a&gt;
    &lt;div class="crayons-story__top"&gt;
      &lt;div class="crayons-story__meta"&gt;
        &lt;div class="crayons-story__author-pic"&gt;

          &lt;a href="/vivek_shetye" class="crayons-avatar  crayons-avatar--l  "&gt;
            &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3879444%2F8f338ec8-c7f4-48e9-b8cf-3898bccbb1e8.jpg" alt="vivek_shetye profile" class="crayons-avatar__image"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
        &lt;div&gt;
          &lt;div&gt;
            &lt;a href="/vivek_shetye" class="crayons-story__secondary fw-medium m:hidden"&gt;
              Vivek Shetye
            &lt;/a&gt;
            &lt;div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"&gt;
              
                Vivek Shetye
                
                
              
              &lt;div id="story-author-preview-content-4532590" class="profile-preview-card__content crayons-dropdown branded-7 p-4 pt-0"&gt;
                &lt;div class="gap-4 grid"&gt;
                  &lt;div class="-mt-4"&gt;
                    &lt;a href="/vivek_shetye" class="flex"&gt;
                      &lt;span class="crayons-avatar crayons-avatar--xl mr-2 shrink-0"&gt;
                        &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3879444%2F8f338ec8-c7f4-48e9-b8cf-3898bccbb1e8.jpg" class="crayons-avatar__image" alt=""&gt;
                      &lt;/span&gt;
                      &lt;span class="crayons-link crayons-subtitle-2 mt-5"&gt;Vivek Shetye&lt;/span&gt;
                    &lt;/a&gt;
                  &lt;/div&gt;
                  &lt;div class="print-hidden"&gt;
                    
                      Follow
                    
                  &lt;/div&gt;
                  &lt;div class="author-preview-metadata-container"&gt;&lt;/div&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;

          &lt;/div&gt;
          &lt;a href="https://dev.to/vivek_shetye/best-enterprise-mcp-gateway-for-your-ai-agents-in-2026-43hl" class="crayons-story__tertiary fs-xs"&gt;&lt;time&gt;Aug 31&lt;/time&gt;&lt;span class="time-ago-indicator-initial-placeholder"&gt;&lt;/span&gt;&lt;/a&gt;
        &lt;/div&gt;
      &lt;/div&gt;

    &lt;/div&gt;

    &lt;div class="crayons-story__indention"&gt;
      &lt;h2 class="crayons-story__title crayons-story__title-full_post"&gt;
        &lt;a href="https://dev.to/vivek_shetye/best-enterprise-mcp-gateway-for-your-ai-agents-in-2026-43hl" id="article-link-4532590"&gt;
          Best Enterprise MCP Gateway for Your AI Agents in 2026
        &lt;/a&gt;
      &lt;/h2&gt;
        &lt;div class="crayons-story__tags"&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/ai"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;ai&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/mcp"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;mcp&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/agents"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;agents&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/llm"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;llm&lt;/a&gt;
        &lt;/div&gt;
      &lt;div class="crayons-story__bottom"&gt;
        &lt;div class="crayons-story__details"&gt;
          &lt;a href="https://dev.to/vivek_shetye/best-enterprise-mcp-gateway-for-your-ai-agents-in-2026-43hl" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left"&gt;
            &lt;div class="multiple_reactions_aggregate"&gt;
              &lt;span class="multiple_reactions_icons_container"&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/exploding-head-daceb38d627e6ae9b730f36a1e390fca556a4289d5a41abb2c35068ad3e2c4b5.svg" width="18" height="18"&gt;
                  &lt;/span&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/multi-unicorn-b44d6f8c23cdd00964192bedc38af3e82463978aa611b4365bd33a0f1f4f3e97.svg" width="18" height="18"&gt;
                  &lt;/span&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/sparkle-heart-5f9bee3767e18deb1bb725290cb151c25234768a0e9a2bd39370c382d02920cf.svg" width="18" height="18"&gt;
                  &lt;/span&gt;
              &lt;/span&gt;
              &lt;span class="aggregate_reactions_counter"&gt;15&lt;span class="hidden s:inline"&gt;&amp;nbsp;reactions&lt;/span&gt;&lt;/span&gt;
            &lt;/div&gt;
          &lt;/a&gt;
            &lt;a href="https://dev.to/vivek_shetye/best-enterprise-mcp-gateway-for-your-ai-agents-in-2026-43hl#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center"&gt;
              

              7&lt;span class="hidden s:inline"&gt;&amp;nbsp;comments&lt;/span&gt;
            &lt;/a&gt;
        &lt;/div&gt;
        &lt;div class="crayons-story__save"&gt;
          &lt;small class="crayons-story__tertiary fs-xs mr-2"&gt;
            10 min read
          &lt;/small&gt;
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;


</description>
      <category>agents</category>
      <category>ai</category>
      <category>architecture</category>
      <category>security</category>
    </item>
    <item>
      <title>Best Enterprise MCP Gateway for Your AI Agents in 2026</title>
      <dc:creator>Vivek Shetye</dc:creator>
      <pubDate>Mon, 31 Aug 2026 15:00:32 +0000</pubDate>
      <link>https://dev.to/vivek_shetye/best-enterprise-mcp-gateway-for-your-ai-agents-in-2026-43hl</link>
      <guid>https://dev.to/vivek_shetye/best-enterprise-mcp-gateway-for-your-ai-agents-in-2026-43hl</guid>
      <description>&lt;p&gt;The best enterprise MCP gateway is not the product with the longest feature list. It is the one whose identity, policy, deployment, and failure model match your agents. After reviewing the current MCP specification and the leading gateway options, &lt;a href="https://www.getmaxim.ai/bifrost" rel="noopener noreferrer"&gt;Bifrost&lt;/a&gt; is one of my strongest shortlist choices for application teams that want model routing and MCP tool access in the same self-hostable gateway, an embeddable Go SDK, and an explicit application-controlled tool-execution step. Its &lt;a href="https://github.com/maximhq/bifrost" rel="noopener noreferrer"&gt;open-source&lt;/a&gt; codebase also gives platform teams an inspectable starting point.&lt;/p&gt;

&lt;p&gt;That recommendation has boundaries. Bifrost Enterprise, not the open-source edition alone, is the relevant tier if you require high-availability clustering, enterprise identity federation, admin RBAC, and audit-grade logs. And if your main problem is container isolation, Kubernetes lifecycle management, or extending an existing API gateway, another product may fit better.&lt;/p&gt;




&lt;h2&gt;
  
  
  The short answer
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Bifrost is a strong enterprise MCP gateway for teams that want one Go-based, self-hosted data plane for LLM provider traffic and MCP tools.&lt;/strong&gt; It connects to multiple MCP servers, exposes their tools through one endpoint, supports &lt;a href="https://docs.getbifrost.ai/mcp/connecting-to-servers" rel="noopener noreferrer"&gt;shared and per-user upstream authentication&lt;/a&gt;, applies layered tool allow-lists, and keeps tool execution explicit by default.&lt;/p&gt;

&lt;p&gt;It is not universally “the best.” Docker MCP Gateway is compelling for isolated local server runtimes; Kong is a natural extension of an existing Kong estate; Microsoft MCP Gateway targets Kubernetes-managed server lifecycle; and Lunar MCPX focuses on dedicated MCP aggregation and tool controls.&lt;/p&gt;




&lt;h2&gt;
  
  
  What is an enterprise MCP gateway?
&lt;/h2&gt;

&lt;p&gt;An enterprise MCP gateway is an infrastructure layer between AI agents and Model Context Protocol servers. It gives agents one governed entry point for discovering and calling tools while centralizing identity, credential handling, authorization, routing, logging, and policy enforcement.&lt;/p&gt;

&lt;p&gt;Without a gateway, every agent must connect to every server independently:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Direct connections

Agent A ─┬─ GitHub MCP server
         ├─ database MCP server
         └─ internal API MCP server
Agent B ─┬─ GitHub MCP server
         └─ database MCP server

With a gateway

Agents ── MCP gateway ─┬─ GitHub MCP server
                       ├─ database MCP server
                       └─ internal API MCP server
             │
             └─ identity, tool policy, credentials,
                approvals, traces, limits, audit
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The direct model is fine for one developer and a few trusted tools. At enterprise scale, it duplicates configuration and secrets, scatters logs, and makes it difficult to answer a basic incident question: &lt;em&gt;which user, through which agent, called which tool with what authority?&lt;/em&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  “MCP gateway” describes several different products
&lt;/h2&gt;

&lt;p&gt;Flat comparison tables are misleading because the category contains at least four architectures:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Combined LLM and MCP gateways&lt;/strong&gt;, such as Bifrost, govern model requests and MCP tool access in one gateway.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Dedicated MCP aggregation and control layers&lt;/strong&gt;, such as Lunar MCPX, emphasize MCP federation, tool policy, and observability.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;API gateways with MCP support&lt;/strong&gt;, such as Kong, apply an established gateway and plugin ecosystem to MCP traffic and API-to-tool conversion.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Runtime and lifecycle gateways&lt;/strong&gt;, such as Docker and Microsoft MCP Gateway, focus on where MCP servers run and how they are isolated or managed.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Before picking a vendor, decide which problem you actually have. A platform team replacing separate model and tool proxies has a different requirement from a security team placing policy in front of existing remote MCP servers.&lt;/p&gt;




&lt;h2&gt;
  
  
  Six tests for an enterprise MCP gateway
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1. Whose identity reaches the tool?
&lt;/h3&gt;

&lt;p&gt;Ask whether every caller collapses into one shared service account or whether the gateway preserves end-user identity. Shared credentials are simpler, but per-user OAuth lets the downstream system retain its own permission model and audit trail. Bifrost documents the available patterns in its &lt;a href="https://docs.getbifrost.ai/mcp/connecting-to-servers" rel="noopener noreferrer"&gt;MCP connection and authentication guide&lt;/a&gt; and lets operators &lt;a href="https://docs.getbifrost.ai/mcp/sessions" rel="noopener noreferrer"&gt;inspect and revoke per-user MCP sessions&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;The current &lt;a href="https://modelcontextprotocol.io/specification/draft/basic/authorization" rel="noopener noreferrer"&gt;MCP authorization specification&lt;/a&gt; requires each access token to be used only for its intended service. An MCP gateway must not reuse a client’s token to call another API; it should use a separate token with only the permissions that API requires.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Where is tool policy enforced?
&lt;/h3&gt;

&lt;p&gt;Filtering &lt;code&gt;tools/list&lt;/code&gt; reduces what the model sees, but discovery-time filtering alone is not authorization. Re-check access when &lt;code&gt;tools/call&lt;/code&gt; executes. For destructive operations, the gateway or application should also support approval, argument validation, or a hardened read-only variant. Bifrost’s &lt;a href="https://docs.getbifrost.ai/features/governance/mcp-tools" rel="noopener noreferrer"&gt;virtual-key MCP controls&lt;/a&gt; enforce an allow-list at inference and again at tool execution.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. How are credentials stored and refreshed?
&lt;/h3&gt;

&lt;p&gt;Verify shared OAuth, per-user OAuth, workload identities, static-key storage, token refresh, revocation, and secret redaction. Also check whether request headers are forwarded automatically. Bifrost’s &lt;a href="https://docs.getbifrost.ai/mcp/connecting-to-servers#forwarding-request-headers-to-mcp-servers" rel="noopener noreferrer"&gt;connection documentation&lt;/a&gt; says incoming headers are not forwarded by default and describes per-client allow-lists. Safe defaults matter because a convenience feature can become a credential-exfiltration path.&lt;/p&gt;

&lt;h3&gt;
  
  
  4. Are logs actually audit evidence?
&lt;/h3&gt;

&lt;p&gt;Operational logs, OpenTelemetry traces, and immutable administrative audit trails solve different problems. You normally need all three: traces for latency and failures, request logs for debugging, and retained audit events for security investigations and change accountability. Bifrost documents &lt;a href="https://docs.getbifrost.ai/features/observability/default" rel="noopener noreferrer"&gt;built-in observability and request logging&lt;/a&gt;, &lt;a href="https://docs.getbifrost.ai/features/observability/otel" rel="noopener noreferrer"&gt;OpenTelemetry export&lt;/a&gt;, and separate &lt;a href="https://docs.getbifrost.ai/enterprise/audit-logs" rel="noopener noreferrer"&gt;Enterprise audit logs&lt;/a&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  5. What fails, and how?
&lt;/h3&gt;

&lt;p&gt;Test a dead upstream server, expired OAuth token, changed tool schema, slow tool, gateway-node loss, and duplicate call. “Retries supported” is not enough; retrying a read is different from retrying &lt;code&gt;create_invoice&lt;/code&gt; after a timeout. Bifrost documents its &lt;a href="https://docs.getbifrost.ai/mcp/connecting-to-servers#connection-resilience-and-retry-logic" rel="noopener noreferrer"&gt;MCP connection states, health checks, and retry behavior&lt;/a&gt;, but your proof of concept should still validate the failure semantics of each tool.&lt;/p&gt;

&lt;h3&gt;
  
  
  6. Which MCP specification does it implement?
&lt;/h3&gt;

&lt;p&gt;The finalized &lt;a href="https://blog.modelcontextprotocol.io/posts/2026-07-28/" rel="noopener noreferrer"&gt;MCP &lt;code&gt;2026-07-28&lt;/code&gt; release&lt;/a&gt; made the HTTP protocol core stateless and added &lt;code&gt;Mcp-Method&lt;/code&gt; and &lt;code&gt;Mcp-Name&lt;/code&gt; routing headers. Many product pages still describe legacy SSE or session-affinity behavior. Require a version-compatibility matrix for your actual clients and servers rather than accepting “MCP compatible” as a complete answer.&lt;/p&gt;




&lt;h2&gt;
  
  
  How Bifrost’s MCP gateway works
&lt;/h2&gt;

&lt;p&gt;Bifrost occupies a useful position because it is both an AI model gateway and an MCP gateway. According to its &lt;a href="https://docs.getbifrost.ai/architecture/core/mcp" rel="noopener noreferrer"&gt;MCP architecture documentation&lt;/a&gt;, it acts as an MCP client to external tool servers and can act as an MCP server to clients such as Claude Desktop.&lt;/p&gt;

&lt;p&gt;The verified request path looks like this:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Bifrost connects to upstream MCP servers and discovers their tools. Its &lt;a href="https://docs.getbifrost.ai/mcp/connecting-to-servers" rel="noopener noreferrer"&gt;connection guide&lt;/a&gt; documents STDIO, HTTP, and SSE connections.&lt;/li&gt;
&lt;li&gt;Remote connections can use static headers, shared OAuth, or per-user OAuth. The &lt;a href="https://docs.getbifrost.ai/mcp/connecting-to-servers" rel="noopener noreferrer"&gt;connection and authentication documentation&lt;/a&gt; explains when each option applies.&lt;/li&gt;
&lt;li&gt;Bifrost applies &lt;a href="https://docs.getbifrost.ai/mcp/filtering" rel="noopener noreferrer"&gt;stacked tool filtering&lt;/a&gt; at client configuration, request, and virtual-key levels. Empty client tool lists deny access by default.&lt;/li&gt;
&lt;li&gt;The model receives only the allowed tool definitions. Tool names are prefixed by client, avoiding collisions between servers.&lt;/li&gt;
&lt;li&gt;By default, the model only proposes a tool call. Your application reviews it and invokes the separate &lt;a href="https://docs.getbifrost.ai/mcp/tool-execution" rel="noopener noreferrer"&gt;tool-execution endpoint&lt;/a&gt;. &lt;a href="https://docs.getbifrost.ai/mcp/agent-mode" rel="noopener noreferrer"&gt;Agent Mode&lt;/a&gt; can opt selected tools into automatic execution.&lt;/li&gt;
&lt;li&gt;Requests and model operations can be exported through Bifrost’s &lt;a href="https://docs.getbifrost.ai/features/observability/otel" rel="noopener noreferrer"&gt;OpenTelemetry integration&lt;/a&gt;.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;That separation between proposal and execution is valuable. It creates a clean approval and validation point without claiming that a human is automatically in the loop. Your application still has to implement the approval policy.&lt;/p&gt;

&lt;h3&gt;
  
  
  Open source versus Enterprise
&lt;/h3&gt;

&lt;p&gt;Bifrost’s open-source gateway is Apache 2.0 and includes the MCP connection/aggregation path, &lt;a href="https://docs.getbifrost.ai/features/governance/virtual-keys" rel="noopener noreferrer"&gt;virtual-key governance&lt;/a&gt;, tool filtering, &lt;a href="https://docs.getbifrost.ai/features/governance/budget-and-limits" rel="noopener noreferrer"&gt;rate and budget controls&lt;/a&gt;, and observability plugins. The &lt;a href="https://docs.getbifrost.ai/enterprise/overview" rel="noopener noreferrer"&gt;Enterprise overview&lt;/a&gt; describes a strict superset that adds high-availability clustering, identity-provider integrations, &lt;a href="https://docs.getbifrost.ai/enterprise/rbac" rel="noopener noreferrer"&gt;RBAC&lt;/a&gt;, audit-grade logging, and private deployment options. The &lt;a href="https://docs.getbifrost.ai/enterprise/clustering" rel="noopener noreferrer"&gt;clustering documentation&lt;/a&gt; covers peer discovery, state synchronization, and node failover.&lt;/p&gt;

&lt;p&gt;Keep that boundary in your evaluation sheet. “Open source” does not mean every enterprise control is in the community edition. For deployment planning, Bifrost also provides an &lt;a href="https://docs.getbifrost.ai/deployment-guides/helm" rel="noopener noreferrer"&gt;official Helm guide&lt;/a&gt; for OSS and Enterprise installations on Kubernetes.&lt;/p&gt;

&lt;p&gt;Bifrost publishes impressive gateway-overhead figures, but I would treat them as vendor benchmarks. They measure Bifrost’s gateway path, not your end-to-end MCP tool latency, and there is no common independent benchmark here for ranking all six products.&lt;/p&gt;




&lt;h2&gt;
  
  
  Bifrost compared with enterprise MCP gateway alternatives
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Gateway&lt;/th&gt;
&lt;th&gt;Best fit&lt;/th&gt;
&lt;th&gt;Verified differentiator&lt;/th&gt;
&lt;th&gt;Watch before choosing&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Bifrost&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;One self-hosted LLM + MCP gateway&lt;/td&gt;
&lt;td&gt;Layered tool filtering, explicit execution, per-user upstream auth, Go gateway&lt;/td&gt;
&lt;td&gt;Enterprise-only HA/identity/audit features; verify &lt;code&gt;2026-07-28&lt;/code&gt; compatibility&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Docker MCP Gateway&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Docker-native development and server isolation&lt;/td&gt;
&lt;td&gt;Runs MCP servers in restricted containers and manages lifecycle/credentials&lt;/td&gt;
&lt;td&gt;Enterprise governance is a separate, invite-only offering in &lt;a href="https://docs.docker.com/ai/mcp-catalog-and-toolkit/mcp-gateway/" rel="noopener noreferrer"&gt;current docs&lt;/a&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Kong AI Gateway&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Existing Kong/API platform estates&lt;/td&gt;
&lt;td&gt;MCP passthrough, API-to-MCP conversion, ACLs, rate limits, metrics&lt;/td&gt;
&lt;td&gt;The &lt;a href="https://developer.konghq.com/plugins/ai-mcp-proxy/" rel="noopener noreferrer"&gt;AI MCP Proxy&lt;/a&gt; requires an AI Gateway Enterprise license&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Lunar MCPX&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Dedicated MCP aggregation and tool hardening&lt;/td&gt;
&lt;td&gt;Tool groups, hardened tool variants, agent access control&lt;/td&gt;
&lt;td&gt;Confirm which identity, audit, and secret capabilities require the Lunar platform beyond &lt;a href="https://docs.lunar.dev/mcpx/features/" rel="noopener noreferrer"&gt;MCPX core&lt;/a&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Microsoft MCP Gateway&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Azure/Kubernetes server lifecycle&lt;/td&gt;
&lt;td&gt;Reverse proxy plus adapter deployment, session-aware routing, Entra integration&lt;/td&gt;
&lt;td&gt;A heavier, Kubernetes-oriented control plane; review the &lt;a href="https://github.com/microsoft/mcp-gateway" rel="noopener noreferrer"&gt;repository architecture&lt;/a&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h3&gt;
  
  
  Why Bifrost belongs on the shortlist
&lt;/h3&gt;

&lt;p&gt;Bifrost's case is strongest when the same application needs governed model routing and MCP tool access. Three documented design choices support that fit:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Bifrost &lt;a href="https://docs.getbifrost.ai/mcp/tool-execution" rel="noopener noreferrer"&gt;returns proposed tool calls for review&lt;/a&gt; before the application invokes a separate execution API, creating an explicit point for approvals and argument validation.&lt;/li&gt;
&lt;li&gt;Teams can deploy it as a gateway or &lt;a href="https://docs.getbifrost.ai/quickstart/go-sdk/setting-up" rel="noopener noreferrer"&gt;integrate it directly through the Go SDK&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Its &lt;a href="https://docs.getbifrost.ai/mcp/sessions" rel="noopener noreferrer"&gt;MCP Sessions UI&lt;/a&gt; supports inspection, re-authentication, editing, and revocation of per-user OAuth and header credentials.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Those capabilities do not make Bifrost the automatic winner for every deployment. They explain why it is a credible proof-of-concept candidate for the buyer profile in this article.&lt;/p&gt;

&lt;p&gt;Kong’s configuration surface is an advantage if you already run Kong and overhead if you do not. Docker’s container isolation is excellent for local STDIO servers but does not automatically answer enterprise identity governance. Microsoft’s lifecycle manager is useful when the gateway should deploy servers, which Bifrost does not position as its primary job.&lt;/p&gt;




&lt;h2&gt;
  
  
  When I would choose Bifrost
&lt;/h2&gt;

&lt;p&gt;I would put Bifrost on the proof-of-concept shortlist when:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;the platform already needs multi-provider model routing as well as MCP;&lt;/li&gt;
&lt;li&gt;the team prefers an inspectable, self-hosted Go service or wants to &lt;a href="https://docs.getbifrost.ai/quickstart/go-sdk/setting-up" rel="noopener noreferrer"&gt;embed the gateway through its Go SDK&lt;/a&gt;;&lt;/li&gt;
&lt;li&gt;explicit tool execution fits the approval design;&lt;/li&gt;
&lt;li&gt;virtual-key and per-request tool allow-lists are sufficient for application-level access;&lt;/li&gt;
&lt;li&gt;OpenTelemetry and private deployment are operational requirements; and&lt;/li&gt;
&lt;li&gt;there is a clear path to Enterprise if clustering, SSO/SCIM, RBAC, and audit logs become mandatory.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I would look elsewhere first when the primary requirement is a curated connector catalog, container-per-server isolation, Kubernetes-managed MCP server deployment, or deep integration with an existing API gateway.&lt;/p&gt;




&lt;h2&gt;
  
  
  A proof-of-concept checklist
&lt;/h2&gt;

&lt;p&gt;Do not evaluate an MCP security gateway from a demo dashboard alone. Run these tests with one read tool and one destructive tool:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;two users with different upstream permissions;&lt;/li&gt;
&lt;li&gt;discovery and execution denial for the restricted user;&lt;/li&gt;
&lt;li&gt;OAuth expiry, refresh, and revocation;&lt;/li&gt;
&lt;li&gt;attempted forwarding of an unapproved authorization header;&lt;/li&gt;
&lt;li&gt;a tool description/schema change after approval;&lt;/li&gt;
&lt;li&gt;gateway restart and upstream-server failure during a call;&lt;/li&gt;
&lt;li&gt;trace correlation from agent through gateway to server;&lt;/li&gt;
&lt;li&gt;audit export and actor attribution;&lt;/li&gt;
&lt;li&gt;concurrent clients using the exact MCP protocol versions you deploy; and&lt;/li&gt;
&lt;li&gt;edition/license mapping for every control in the acceptance criteria.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Final recommendation
&lt;/h2&gt;

&lt;p&gt;Bifrost is one of the strongest enterprise MCP gateway options in 2026 &lt;strong&gt;for application teams that want unified LLM and MCP infrastructure, self-hosting or Go embedding, per-user MCP credential operations, layered tool governance, and an explicit execution boundary&lt;/strong&gt;. That is a specific architectural fit, not a universal victory.&lt;/p&gt;

&lt;p&gt;Choose the shape before the brand. Then require primary-source evidence and a failure-oriented proof of concept. For a Bifrost evaluation, compare the OSS and Enterprise editions explicitly and make &lt;code&gt;2026-07-28&lt;/code&gt; protocol conformance part of acceptance testing.&lt;/p&gt;




&lt;h2&gt;
  
  
  Frequently asked questions
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Do AI agents always need an MCP gateway?
&lt;/h3&gt;

&lt;p&gt;No. A single trusted agent connected to a few local servers may be simpler without one. A gateway becomes valuable when multiple agents, users, credentials, policies, or audit requirements need one enforcement point.&lt;/p&gt;

&lt;h3&gt;
  
  
  What is the difference between an MCP gateway and an API gateway?
&lt;/h3&gt;

&lt;p&gt;An API gateway primarily understands routes, services, and HTTP consumers. An MCP gateway understands MCP operations and entities such as tool discovery and execution. Products like Kong add MCP-aware capabilities to an API gateway; Bifrost combines MCP with model-provider routing.&lt;/p&gt;

&lt;h3&gt;
  
  
  Can Bifrost manage multiple MCP servers?
&lt;/h3&gt;

&lt;p&gt;Yes. Bifrost connects to multiple upstream MCP servers, discovers their tools, filters them, and can expose the allowed aggregate through its &lt;a href="https://docs.getbifrost.ai/mcp/gateway" rel="noopener noreferrer"&gt;&lt;code&gt;/mcp&lt;/code&gt; gateway endpoint&lt;/a&gt;. It calls each upstream connection an MCP client.&lt;/p&gt;

&lt;h3&gt;
  
  
  Is Bifrost an open-source MCP gateway?
&lt;/h3&gt;

&lt;p&gt;Yes. The &lt;a href="https://github.com/maximhq/bifrost" rel="noopener noreferrer"&gt;Bifrost repository&lt;/a&gt; uses the Apache 2.0 license. Clustering, enterprise identity/RBAC, audit-grade logs, and some private deployment capabilities belong to Bifrost Enterprise, so evaluate the edition as well as the project.&lt;/p&gt;

&lt;h3&gt;
  
  
  How do you secure MCP servers behind a gateway?
&lt;/h3&gt;

&lt;p&gt;Authenticate users and workloads, use audience-bound tokens, obtain separate upstream credentials, allow-list tools, enforce policy again at execution, require approval for risky calls, restrict header forwarding, trace every call, and retain security-relevant audit events. Also test protocol versions and tool-schema changes rather than treating the gateway as a complete security boundary by itself.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>mcp</category>
      <category>agents</category>
      <category>llm</category>
    </item>
    <item>
      <title>🤖 Hermes Agent Bot Mode or Kanban which should you use?

I break down the difference, when each makes sense, and build a real workflow combining both for parallel AI agent research + automation. ⚡

Would love to hear how you’re using them! 👇</title>
      <dc:creator>Vivek Shetye</dc:creator>
      <pubDate>Tue, 25 Aug 2026 15:23:17 +0000</pubDate>
      <link>https://dev.to/vivek_shetye/hermes-agent-bot-mode-or-kanban-which-should-you-use-i-break-down-the-difference-when-each-825</link>
      <guid>https://dev.to/vivek_shetye/hermes-agent-bot-mode-or-kanban-which-should-you-use-i-break-down-the-difference-when-each-825</guid>
      <description>&lt;div class="ltag__link--embedded"&gt;
  &lt;div class="crayons-story "&gt;
  &lt;a href="https://dev.to/vivek_shetye/hermes-agent-bot-mode-vs-kanban-when-to-use-each-and-why-i-use-both-2che" class="crayons-story__hidden-navigation-link"&gt;Hermes Agent Bot Mode vs Kanban: When to Use Each (and Why I Use Both)&lt;/a&gt;


  &lt;div class="crayons-story__body crayons-story__body-full_post"&gt;
    &lt;div class="crayons-story__top"&gt;
      &lt;div class="crayons-story__meta"&gt;
        &lt;div class="crayons-story__author-pic"&gt;

          &lt;a href="/vivek_shetye" class="crayons-avatar  crayons-avatar--l  "&gt;
            &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3879444%2F8f338ec8-c7f4-48e9-b8cf-3898bccbb1e8.jpg" alt="vivek_shetye profile" class="crayons-avatar__image"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
        &lt;div&gt;
          &lt;div&gt;
            &lt;a href="/vivek_shetye" class="crayons-story__secondary fw-medium m:hidden"&gt;
              Vivek Shetye
            &lt;/a&gt;
            &lt;div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"&gt;
              
                Vivek Shetye
                
                
              
              &lt;div id="story-author-preview-content-4479836" class="profile-preview-card__content crayons-dropdown branded-7 p-4 pt-0"&gt;
                &lt;div class="gap-4 grid"&gt;
                  &lt;div class="-mt-4"&gt;
                    &lt;a href="/vivek_shetye" class="flex"&gt;
                      &lt;span class="crayons-avatar crayons-avatar--xl mr-2 shrink-0"&gt;
                        &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3879444%2F8f338ec8-c7f4-48e9-b8cf-3898bccbb1e8.jpg" class="crayons-avatar__image" alt=""&gt;
                      &lt;/span&gt;
                      &lt;span class="crayons-link crayons-subtitle-2 mt-5"&gt;Vivek Shetye&lt;/span&gt;
                    &lt;/a&gt;
                  &lt;/div&gt;
                  &lt;div class="print-hidden"&gt;
                    
                      Follow
                    
                  &lt;/div&gt;
                  &lt;div class="author-preview-metadata-container"&gt;&lt;/div&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;

          &lt;/div&gt;
          &lt;a href="https://dev.to/vivek_shetye/hermes-agent-bot-mode-vs-kanban-when-to-use-each-and-why-i-use-both-2che" class="crayons-story__tertiary fs-xs"&gt;&lt;time&gt;Aug 25&lt;/time&gt;&lt;span class="time-ago-indicator-initial-placeholder"&gt;&lt;/span&gt;&lt;/a&gt;
        &lt;/div&gt;
      &lt;/div&gt;

    &lt;/div&gt;

    &lt;div class="crayons-story__indention"&gt;
      &lt;h2 class="crayons-story__title crayons-story__title-full_post"&gt;
        &lt;a href="https://dev.to/vivek_shetye/hermes-agent-bot-mode-vs-kanban-when-to-use-each-and-why-i-use-both-2che" id="article-link-4479836"&gt;
          Hermes Agent Bot Mode vs Kanban: When to Use Each (and Why I Use Both)
        &lt;/a&gt;
      &lt;/h2&gt;
        &lt;div class="crayons-story__tags"&gt;
            &lt;a class="crayons-tag crayons-tag--filled  " href="/t/showdev"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;showdev&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/ai"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;ai&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/hermes"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;hermes&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/agents"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;agents&lt;/a&gt;
        &lt;/div&gt;
      &lt;div class="crayons-story__bottom"&gt;
        &lt;div class="crayons-story__details"&gt;
          &lt;a href="https://dev.to/vivek_shetye/hermes-agent-bot-mode-vs-kanban-when-to-use-each-and-why-i-use-both-2che" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left"&gt;
            &lt;div class="multiple_reactions_aggregate"&gt;
              &lt;span class="multiple_reactions_icons_container"&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/exploding-head-daceb38d627e6ae9b730f36a1e390fca556a4289d5a41abb2c35068ad3e2c4b5.svg" width="18" height="18"&gt;
                  &lt;/span&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/multi-unicorn-b44d6f8c23cdd00964192bedc38af3e82463978aa611b4365bd33a0f1f4f3e97.svg" width="18" height="18"&gt;
                  &lt;/span&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/sparkle-heart-5f9bee3767e18deb1bb725290cb151c25234768a0e9a2bd39370c382d02920cf.svg" width="18" height="18"&gt;
                  &lt;/span&gt;
              &lt;/span&gt;
              &lt;span class="aggregate_reactions_counter"&gt;9&lt;span class="hidden s:inline"&gt;&amp;nbsp;reactions&lt;/span&gt;&lt;/span&gt;
            &lt;/div&gt;
          &lt;/a&gt;
            &lt;a href="https://dev.to/vivek_shetye/hermes-agent-bot-mode-vs-kanban-when-to-use-each-and-why-i-use-both-2che#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center"&gt;
              

              1&lt;span class="hidden s:inline"&gt;&amp;nbsp;comment&lt;/span&gt;
            &lt;/a&gt;
        &lt;/div&gt;
        &lt;div class="crayons-story__save"&gt;
          &lt;small class="crayons-story__tertiary fs-xs mr-2"&gt;
            7 min read
          &lt;/small&gt;
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;


</description>
      <category>agents</category>
      <category>ai</category>
      <category>automation</category>
      <category>productivity</category>
    </item>
    <item>
      <title>Hermes Agent Bot Mode vs Kanban: When to Use Each (and Why I Use Both)</title>
      <dc:creator>Vivek Shetye</dc:creator>
      <pubDate>Tue, 25 Aug 2026 15:15:28 +0000</pubDate>
      <link>https://dev.to/vivek_shetye/hermes-agent-bot-mode-vs-kanban-when-to-use-each-and-why-i-use-both-2che</link>
      <guid>https://dev.to/vivek_shetye/hermes-agent-bot-mode-vs-kanban-when-to-use-each-and-why-i-use-both-2che</guid>
      <description>&lt;p&gt;Hermes Agent gives you Bot Mode and Kanban for working with teams of AI agents.&lt;/p&gt;

&lt;p&gt;At first, they can look like two different ways of solving the same problem:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;How do I get multiple AI agents to work together?&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;But they solve different layers of the problem.&lt;/p&gt;

&lt;p&gt;Use the wrong one and you can easily end up with a group chat that becomes difficult to follow or a full task board for something that could have been handled by a single bot.&lt;/p&gt;

&lt;p&gt;The simplest mental model I’ve found is:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;🤖 Bot Mode = the team&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;📋 Kanban = the work&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;And when a workflow needs both persistent specialists and structured execution, you can combine them.&lt;/p&gt;

&lt;p&gt;In this tutorial, I’ll explain the difference between Hermes Agent Bot Mode and Kanban, when I would choose each one, and how I combined both to build an automated AI-powered YouTube research workflow.&lt;/p&gt;


&lt;h2&gt;
  
  
  🎥  Full Video Walkthrough
&lt;/h2&gt;

&lt;p&gt;  &lt;iframe src="https://www.youtube.com/embed/icPati7-atQ"&gt;
  &lt;/iframe&gt;
&lt;/p&gt;




&lt;h2&gt;
  
  
  The Problem: Not Every Multi-Agent Workflow Is a Project
&lt;/h2&gt;

&lt;p&gt;Imagine I have three AI agents:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;a research agent&lt;/li&gt;
&lt;li&gt;an editor&lt;/li&gt;
&lt;li&gt;an operations agent&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Sometimes I simply want to talk to one of them.&lt;/p&gt;

&lt;p&gt;Sometimes I want one agent to hand something to another.&lt;/p&gt;

&lt;p&gt;And sometimes I have a much larger assignment:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Research Topic
     ↓
 ┌───┼──────────────┐
 ↓   ↓              ↓
A    B              C
 └───┼──────────────┘
     ↓
 Final Synthesis
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Those are very different workflows.&lt;/p&gt;

&lt;p&gt;The first doesn’t necessarily need project management.&lt;/p&gt;

&lt;p&gt;The second might.&lt;/p&gt;

&lt;p&gt;That’s where the distinction between Hermes Bot Mode and Kanban becomes useful.&lt;/p&gt;




&lt;h2&gt;
  
  
  🤖 What Is Hermes Agent Bot Mode?
&lt;/h2&gt;

&lt;p&gt;Bot Mode gives you a roster of persistent, named AI bots inside Hermes.&lt;/p&gt;

&lt;p&gt;Each bot can be backed by a Hermes profile with its own:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;soul&lt;/li&gt;
&lt;li&gt;model&lt;/li&gt;
&lt;li&gt;memory&lt;/li&gt;
&lt;li&gt;skills&lt;/li&gt;
&lt;li&gt;instructions/personality&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Instead of treating every interaction as a new generic AI session, you can create specialists.&lt;/p&gt;

&lt;p&gt;For example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Research Bot
Editing Bot
Operations Bot
Source Checker
Audience Researcher
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You can then interact with those bots directly.&lt;/p&gt;

&lt;p&gt;More importantly, bots can participate in workflows involving delegation and communication between specialists.&lt;/p&gt;

&lt;p&gt;That makes Bot Mode particularly useful when you want persistent AI workers rather than creating a new agent configuration for every task.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;When I would use Bot Mode&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Bot Mode makes sense when I need:&lt;/p&gt;

&lt;p&gt;🔹 Persistent specialist bots&lt;br&gt;
🔹 Direct conversations with individual agents&lt;br&gt;
🔹 Recurring routines&lt;br&gt;
🔹 Agent-to-agent handoffs&lt;br&gt;
🔹 Group discussions between specialists&lt;br&gt;
🔹 Different models, memories, or skills for different roles&lt;/p&gt;

&lt;p&gt;For example, suppose I regularly collect three articles and want my Research Bot to summarize them.&lt;/p&gt;

&lt;p&gt;I probably don’t need a project board.&lt;/p&gt;

&lt;p&gt;I can simply give the job to that bot.&lt;/p&gt;


&lt;h2&gt;
  
  
  📋 What Does Hermes Kanban Add?
&lt;/h2&gt;

&lt;p&gt;Things change when the request becomes a project.&lt;/p&gt;

&lt;p&gt;Suppose I don’t want one researcher anymore.&lt;/p&gt;

&lt;p&gt;Instead, I want four specialists to investigate the same topic independently:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;                  Topic
                    │
        ┌───────────┼───────────┐
        │           │           │
        ▼           ▼           ▼
     Sources      Audience   Competition
        │           │           │
        └───────────┼───────────┘
                    │
                    ▼
                 Synthesis
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Now I have additional requirements.&lt;/p&gt;

&lt;p&gt;Who owns each task?&lt;/p&gt;

&lt;p&gt;Which tasks can run simultaneously?&lt;/p&gt;

&lt;p&gt;Which task depends on another?&lt;/p&gt;

&lt;p&gt;What happens if one fails?&lt;/p&gt;

&lt;p&gt;When should synthesis begin?&lt;/p&gt;

&lt;p&gt;This is where Kanban becomes useful.&lt;/p&gt;

&lt;p&gt;Instead of keeping the entire workflow inside conversations, Hermes can represent the work as explicit tasks.&lt;/p&gt;

&lt;p&gt;That gives the multi-agent system structure.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Kanban is useful when you need:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;⚡ Parallel execution&lt;br&gt;
👤 Named task owners&lt;br&gt;
🔗 Dependencies between tasks&lt;br&gt;
🔍 Review stages&lt;br&gt;
♻️ Recovery when something fails&lt;br&gt;
📊 Visibility into larger assignments&lt;/p&gt;

&lt;p&gt;The key difference is that Bot Mode organizes your agents while Kanban organizes their work.&lt;/p&gt;


&lt;h2&gt;
  
  
  Bot Mode vs Kanban: A Simple Rule
&lt;/h2&gt;

&lt;p&gt;Here’s the rule I use.&lt;/p&gt;
&lt;h3&gt;
  
  
  Use Bot Mode when:
&lt;/h3&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;You need persistent specialists and conversations between them.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3&gt;
  
  
  Use Kanban when:
&lt;/h3&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;You need structured execution across multiple tasks.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3&gt;
  
  
  Use both when:
&lt;/h3&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;You have persistent specialists executing a repeatable, multi-step  workflow.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Consider three examples.&lt;/p&gt;
&lt;h3&gt;
  
  
  Example 1
&lt;/h3&gt;

&lt;p&gt;You want one bot to summarize three documents.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Documents → Research Bot → Summary
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Use Bot Mode.&lt;/strong&gt;&lt;/p&gt;




&lt;h3&gt;
  
  
  Example 2
&lt;/h3&gt;

&lt;p&gt;You want four specialists to research a topic and a final agent to wait until every researcher finishes.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;        ┌→ Researcher A ─┐
Topic ──┼→ Researcher B ─┼→ Final Agent
        ├→ Researcher C ─┤
        └→ Researcher D ─┘
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Use Kanban.&lt;/strong&gt;&lt;/p&gt;




&lt;h3&gt;
  
  
  Example 3
&lt;/h3&gt;

&lt;p&gt;You want that research workflow to automatically happen every weekday.&lt;/p&gt;

&lt;p&gt;Now we need:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;persistent specialists&lt;/li&gt;
&lt;li&gt;recurring execution&lt;/li&gt;
&lt;li&gt;agent handoffs&lt;/li&gt;
&lt;li&gt;parallel tasks&lt;/li&gt;
&lt;li&gt;dependencies&lt;/li&gt;
&lt;li&gt;final synthesis&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That’s where I would combine &lt;strong&gt;Bot Mode + Kanban.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;And that’s exactly what I built for the video.&lt;/p&gt;




&lt;h2&gt;
  
  
  🧪 Building an AI YouTube Research Team
&lt;/h2&gt;

&lt;p&gt;For the demo, I wanted to answer a practical question:&lt;/p&gt;

&lt;p&gt;What AI agent topic should I make my next YouTube video about?&lt;/p&gt;

&lt;p&gt;Instead of asking one LLM for ideas, I created a small specialist research team.&lt;/p&gt;

&lt;p&gt;The team contains several bots with different responsibilities.&lt;/p&gt;

&lt;h3&gt;
  
  
  🔎 News Scout
&lt;/h3&gt;

&lt;p&gt;The News Scout is responsible for finding the initial opportunity.&lt;/p&gt;

&lt;p&gt;Its job is simple:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Find the latest AI agent news
and send it to the Orchestrator.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Rather than manually triggering this every day, I created a recurring cron job.&lt;/p&gt;

&lt;p&gt;The workflow can therefore begin automatically.&lt;/p&gt;

&lt;h3&gt;
  
  
  🎯 Orchestrator
&lt;/h3&gt;

&lt;p&gt;The Orchestrator receives the news discovered by the News Scout.&lt;/p&gt;

&lt;p&gt;But instead of trying to research everything itself, it turns the request into a Kanban workflow.&lt;/p&gt;

&lt;p&gt;It creates tasks for several specialist agents.&lt;/p&gt;

&lt;p&gt;This is the bridge between Bot Mode and Kanban.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Bot Mode
News Scout
     │
     │ handoff
     ▼
Orchestrator
     │
     │ creates tasks
     ▼
Kanban
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  🧠 The Specialist Research Team
&lt;/h3&gt;

&lt;p&gt;Once the Orchestrator receives a potential story, several specialists investigate it.&lt;/p&gt;

&lt;h4&gt;
  
  
  📚 Source Checker
&lt;/h4&gt;

&lt;p&gt;The Source Checker focuses on the evidence.&lt;/p&gt;

&lt;p&gt;It asks questions such as:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Are there credible sources?&lt;/li&gt;
&lt;li&gt;What claims can actually be verified?&lt;/li&gt;
&lt;li&gt;Is there enough evidence to build a useful video around the topic?&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  👥 Audience Researcher
&lt;/h4&gt;

&lt;p&gt;A topic can be technically interesting and still make a terrible YouTube video.&lt;/p&gt;

&lt;p&gt;The Audience Researcher looks at the topic from the viewer’s perspective.&lt;/p&gt;

&lt;p&gt;It tries to determine:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Why would viewers care?&lt;/li&gt;
&lt;li&gt;What questions might they have?&lt;/li&gt;
&lt;li&gt;What problem does this topic solve?&lt;/li&gt;
&lt;li&gt;Is there a useful educational angle?&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  📈 Competition Researcher
&lt;/h4&gt;

&lt;p&gt;Next comes competition.&lt;/p&gt;

&lt;p&gt;If dozens of creators have already published nearly identical videos, simply repeating the same information isn’t particularly useful.&lt;/p&gt;

&lt;p&gt;The Competition Researcher investigates existing coverage and helps identify where there may still be room for differentiation.&lt;/p&gt;

&lt;h4&gt;
  
  
  💡 Angle Editor
&lt;/h4&gt;

&lt;p&gt;Finally, the Angle Editor looks for the strongest way to turn the research into an actual video.&lt;/p&gt;

&lt;p&gt;Instead of stopping at:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;“This is trending.”&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;I want the system to answer:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;“Why should I cover this, and what should the video actually demonstrate?”&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;That distinction matters.&lt;/p&gt;




&lt;h2&gt;
  
  
  ⚙️ Running the Workflow
&lt;/h2&gt;

&lt;p&gt;The complete workflow looks roughly like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;CRON JOB
   │
   ▼
🔎 News Scout
   │
   │ Finds AI agent news
   ▼
🎯 Orchestrator
   │
   │ Creates Kanban tasks
   ▼
┌─────────────────────────────┐
│        KANBAN BOARD         │
│                             │
│ 📚 Source Research          │
│ 👥 Audience Research        │
│ 📈 Competition Research     │
│ 💡 Angle Research           │
└──────────────┬──────────────┘
               │
        tasks complete
               │
               ▼
        🧠 Final Synthesis
               │
               ▼
     📄 Video Recommendation
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The research tasks can execute in parallel.&lt;/p&gt;

&lt;p&gt;The final synthesis task waits for the research to finish.&lt;/p&gt;

&lt;p&gt;That’s exactly the kind of workflow where Kanban becomes much more useful than relying purely on conversational handoffs.&lt;/p&gt;




&lt;h2&gt;
  
  
  🚀 What Did the AI Team Find?
&lt;/h2&gt;

&lt;p&gt;During my demo, the News Scout found a potential topic around Microsoft Agent Lightning.&lt;/p&gt;

&lt;p&gt;But discovering the topic was only the beginning.&lt;/p&gt;

&lt;p&gt;The specialist agents investigated it, and the final recommendation included information such as:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;viewer questions around the topic&lt;/li&gt;
&lt;li&gt;why the audience might care&lt;/li&gt;
&lt;li&gt;evidence supporting the opportunity&lt;/li&gt;
&lt;li&gt;a potential demonstration for the video&lt;/li&gt;
&lt;li&gt;alternative video angles&lt;/li&gt;
&lt;li&gt;audience considerations&lt;/li&gt;
&lt;li&gt;competitive considerations&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;So instead of receiving:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;“Microsoft Agent Lightning is trending. Make a video about it.”&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;I received something much closer to a research-backed content brief.&lt;/p&gt;

&lt;p&gt;That’s a far more useful output.&lt;/p&gt;




&lt;h2&gt;
  
  
  🧩 Why I Like Combining Bot Mode and Kanban
&lt;/h2&gt;

&lt;p&gt;One of the common mistakes when experimenting with multi-agent AI systems is assuming that more agents automatically means better orchestration.&lt;/p&gt;

&lt;p&gt;It doesn’t.&lt;/p&gt;

&lt;p&gt;Giving five AI agents access to the same conversation doesn’t necessarily create a good workflow.&lt;/p&gt;

&lt;p&gt;The real questions are:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Who should do the work?
What should they own?
What can happen in parallel?
What depends on something else?
Who reviews the result?
What happens next?
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Bot Mode solves part of this by giving you persistent specialists.&lt;/p&gt;

&lt;p&gt;Kanban solves another part by giving their work explicit structure.&lt;/p&gt;

&lt;p&gt;Together, they create an interesting pattern:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Persistent Agents
       +
Specialized Roles
       +
Agent Handoffs
       +
Task Dependencies
       +
Parallel Execution
       +
Recurring Automation
       ↓
Repeatable Multi-Agent Workflow
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;And I think that’s a much more useful way to think about AI agent teams than simply asking:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;“How many agents should I use?”&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  🎯 The Mental Model I Use
&lt;/h2&gt;

&lt;p&gt;If you remember only one thing from this article, make it this:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;🤖 Bot Mode gives you the team.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Your persistent specialists.&lt;/p&gt;

&lt;p&gt;Their roles.&lt;/p&gt;

&lt;p&gt;Their memories.&lt;/p&gt;

&lt;p&gt;Their skills.&lt;/p&gt;

&lt;p&gt;Their conversations.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;📋 Kanban gives the team structure.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Tasks.&lt;/p&gt;

&lt;p&gt;Owners.&lt;/p&gt;

&lt;p&gt;Parallel execution.&lt;/p&gt;

&lt;p&gt;Dependencies.&lt;/p&gt;

&lt;p&gt;Reviews.&lt;/p&gt;

&lt;p&gt;Recovery.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;⚡ Bot Mode + Kanban gives you repeatable workflows.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;That’s when the two features become especially interesting together.&lt;/p&gt;

&lt;p&gt;You can have a recurring bot discover work, hand it to an orchestrator, turn that work into a structured task graph, execute research in parallel, and finally synthesize everything into an artifact.&lt;/p&gt;




&lt;h2&gt;
  
  
  When Should You NOT Use Kanban?
&lt;/h2&gt;

&lt;p&gt;This might actually be the most important part.&lt;/p&gt;

&lt;p&gt;Not every AI agent task needs orchestration.&lt;/p&gt;

&lt;p&gt;If your workflow is:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Prompt → Agent → Answer
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;don’t build a task graph.&lt;/p&gt;

&lt;p&gt;If your workflow is:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Prompt → Specialist Bot → Artifact
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;you may still not need one.&lt;/p&gt;

&lt;p&gt;Kanban starts becoming valuable when your workflow begins looking more like:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;              ┌→ Agent A ─┐
Input → Plan ─┼→ Agent B ─┼→ Review → Final Output
              └→ Agent C ─┘
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;At that point you have coordination problems rather than simply prompting problems.&lt;/p&gt;

&lt;p&gt;And that’s where explicit workflow structure starts paying off.&lt;/p&gt;




&lt;h2&gt;
  
  
  🏁 Final Thoughts
&lt;/h2&gt;

&lt;p&gt;The interesting part of Hermes Agent Bot Mode and Kanban isn’t choosing which feature is “better.”&lt;/p&gt;

&lt;p&gt;They’re designed for different jobs.&lt;/p&gt;

&lt;p&gt;Bot Mode is useful for creating persistent AI specialists and enabling conversations and handoffs between them.&lt;/p&gt;

&lt;p&gt;Kanban is useful when those specialists need to execute a larger assignment with explicit tasks, ownership, parallelism, dependencies, and review.&lt;/p&gt;

&lt;p&gt;And when you’re building a recurring workflow involving both?&lt;/p&gt;

&lt;p&gt;Use them together.&lt;/p&gt;

&lt;p&gt;For my YouTube research system:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Bot Mode → creates the persistent AI team
Cron → starts the recurring workflow
Bot handoff → passes the opportunity
Kanban → coordinates the project
Specialists → perform parallel research
Synthesis → produces the recommendation
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;That’s the architecture.&lt;/p&gt;

&lt;p&gt;Not a giant group chat.&lt;/p&gt;

&lt;p&gt;Not a Kanban board for every tiny request.&lt;/p&gt;

&lt;p&gt;Just enough orchestration for the complexity of the work.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>hermes</category>
      <category>showdev</category>
      <category>agents</category>
    </item>
    <item>
      <title>Can AI agents actually hand work off to each other? 🤖 I tested Hermes Agent’s new Bot Mode with 3 specialists: research challenge synthesis. Here’s what worked, what failed, and where Bot Mode fits vs Kanban. 👇</title>
      <dc:creator>Vivek Shetye</dc:creator>
      <pubDate>Wed, 19 Aug 2026 18:40:52 +0000</pubDate>
      <link>https://dev.to/vivek_shetye/can-ai-agents-actually-hand-work-off-to-each-other-i-tested-hermes-agents-new-bot-mode-with-3-3dfk</link>
      <guid>https://dev.to/vivek_shetye/can-ai-agents-actually-hand-work-off-to-each-other-i-tested-hermes-agents-new-bot-mode-with-3-3dfk</guid>
      <description>&lt;div class="ltag__link--embedded"&gt;
  &lt;div class="crayons-story "&gt;
  &lt;a href="https://dev.to/vivek_shetye/hermes-bot-mode-i-built-a-team-of-ai-agents-that-hand-off-work-to-each-other-a49" class="crayons-story__hidden-navigation-link"&gt;Hermes Bot Mode: I Built a Team of AI Agents That Hand Off Work to Each Other&lt;/a&gt;


  &lt;div class="crayons-story__body crayons-story__body-full_post"&gt;
      &lt;a href="https://dev.to/vivek_shetye/hermes-bot-mode-i-built-a-team-of-ai-agents-that-hand-off-work-to-each-other-a49" class="crayons-article__context-note crayons-article__context-note__feed"&gt;&lt;p&gt;Hermes Agent Challenge Submission: Write About Hermes Agent&lt;/p&gt;

&lt;/a&gt;
    &lt;div class="crayons-story__top"&gt;
      &lt;div class="crayons-story__meta"&gt;
        &lt;div class="crayons-story__author-pic"&gt;

          &lt;a href="/vivek_shetye" class="crayons-avatar  crayons-avatar--l  "&gt;
            &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3879444%2F8f338ec8-c7f4-48e9-b8cf-3898bccbb1e8.jpg" alt="vivek_shetye profile" class="crayons-avatar__image"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
        &lt;div&gt;
          &lt;div&gt;
            &lt;a href="/vivek_shetye" class="crayons-story__secondary fw-medium m:hidden"&gt;
              Vivek Shetye
            &lt;/a&gt;
            &lt;div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"&gt;
              
                Vivek Shetye
                
                
              
              &lt;div id="story-author-preview-content-4419951" class="profile-preview-card__content crayons-dropdown branded-7 p-4 pt-0"&gt;
                &lt;div class="gap-4 grid"&gt;
                  &lt;div class="-mt-4"&gt;
                    &lt;a href="/vivek_shetye" class="flex"&gt;
                      &lt;span class="crayons-avatar crayons-avatar--xl mr-2 shrink-0"&gt;
                        &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3879444%2F8f338ec8-c7f4-48e9-b8cf-3898bccbb1e8.jpg" class="crayons-avatar__image" alt=""&gt;
                      &lt;/span&gt;
                      &lt;span class="crayons-link crayons-subtitle-2 mt-5"&gt;Vivek Shetye&lt;/span&gt;
                    &lt;/a&gt;
                  &lt;/div&gt;
                  &lt;div class="print-hidden"&gt;
                    
                      Follow
                    
                  &lt;/div&gt;
                  &lt;div class="author-preview-metadata-container"&gt;&lt;/div&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;

          &lt;/div&gt;
          &lt;a href="https://dev.to/vivek_shetye/hermes-bot-mode-i-built-a-team-of-ai-agents-that-hand-off-work-to-each-other-a49" class="crayons-story__tertiary fs-xs"&gt;&lt;time&gt;Aug 18&lt;/time&gt;&lt;span class="time-ago-indicator-initial-placeholder"&gt;&lt;/span&gt;&lt;/a&gt;
        &lt;/div&gt;
      &lt;/div&gt;

    &lt;/div&gt;

    &lt;div class="crayons-story__indention"&gt;
      &lt;h2 class="crayons-story__title crayons-story__title-full_post"&gt;
        &lt;a href="https://dev.to/vivek_shetye/hermes-bot-mode-i-built-a-team-of-ai-agents-that-hand-off-work-to-each-other-a49" id="article-link-4419951"&gt;
          Hermes Bot Mode: I Built a Team of AI Agents That Hand Off Work to Each Other
        &lt;/a&gt;
      &lt;/h2&gt;
        &lt;div class="crayons-story__tags"&gt;
            &lt;a class="crayons-tag crayons-tag--filled  " href="/t/showdev"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;showdev&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/ai"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;ai&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/hermesagentchallenge"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;hermesagentchallenge&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/automation"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;automation&lt;/a&gt;
        &lt;/div&gt;
      &lt;div class="crayons-story__bottom"&gt;
        &lt;div class="crayons-story__details"&gt;
          &lt;a href="https://dev.to/vivek_shetye/hermes-bot-mode-i-built-a-team-of-ai-agents-that-hand-off-work-to-each-other-a49" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left"&gt;
            &lt;div class="multiple_reactions_aggregate"&gt;
              &lt;span class="multiple_reactions_icons_container"&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/exploding-head-daceb38d627e6ae9b730f36a1e390fca556a4289d5a41abb2c35068ad3e2c4b5.svg" width="18" height="18"&gt;
                  &lt;/span&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/multi-unicorn-b44d6f8c23cdd00964192bedc38af3e82463978aa611b4365bd33a0f1f4f3e97.svg" width="18" height="18"&gt;
                  &lt;/span&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/sparkle-heart-5f9bee3767e18deb1bb725290cb151c25234768a0e9a2bd39370c382d02920cf.svg" width="18" height="18"&gt;
                  &lt;/span&gt;
              &lt;/span&gt;
              &lt;span class="aggregate_reactions_counter"&gt;9&lt;span class="hidden s:inline"&gt;&amp;nbsp;reactions&lt;/span&gt;&lt;/span&gt;
            &lt;/div&gt;
          &lt;/a&gt;
            &lt;a href="https://dev.to/vivek_shetye/hermes-bot-mode-i-built-a-team-of-ai-agents-that-hand-off-work-to-each-other-a49#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center"&gt;
              

              5&lt;span class="hidden s:inline"&gt;&amp;nbsp;comments&lt;/span&gt;
            &lt;/a&gt;
        &lt;/div&gt;
        &lt;div class="crayons-story__save"&gt;
          &lt;small class="crayons-story__tertiary fs-xs mr-2"&gt;
            6 min read
          &lt;/small&gt;
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;


</description>
      <category>agents</category>
      <category>ai</category>
      <category>automation</category>
      <category>llm</category>
    </item>
    <item>
      <title>Hermes Bot Mode: I Built a Team of AI Agents That Hand Off Work to Each Other</title>
      <dc:creator>Vivek Shetye</dc:creator>
      <pubDate>Tue, 18 Aug 2026 15:03:23 +0000</pubDate>
      <link>https://dev.to/vivek_shetye/hermes-bot-mode-i-built-a-team-of-ai-agents-that-hand-off-work-to-each-other-a49</link>
      <guid>https://dev.to/vivek_shetye/hermes-bot-mode-i-built-a-team-of-ai-agents-that-hand-off-work-to-each-other-a49</guid>
      <description>&lt;p&gt;What if your AI agents behaved less like isolated chatbots and more like a team of specialists that could actually collaborate? 🤖&lt;/p&gt;

&lt;p&gt;That’s what I wanted to test with the newly released Hermes Bot Mode desktop plugin.&lt;/p&gt;

&lt;p&gt;Instead of manually switching between different Hermes profiles, copying context, and triggering every stage myself, I built a small team of three AI agents:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Researcher → Risk Analyst → Thesis Editor&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Then I gave one task to one agent.&lt;/p&gt;

&lt;p&gt;The goal was simple: see whether the agents could gather evidence, challenge each other’s work, and produce a final answer through agent-to-agent handoffs without me manually operating every stage.&lt;/p&gt;

&lt;p&gt;And it mostly worked.&lt;/p&gt;

&lt;p&gt;But the interesting part isn’t the stock research demo itself.&lt;/p&gt;

&lt;p&gt;It’s what Bot Mode changes about how we interact with Hermes Agent, persistent AI agents, and multi-agent workflows.&lt;/p&gt;




&lt;h2&gt;
  
  
  🎥 Full video walkthrough
&lt;/h2&gt;

&lt;p&gt;  &lt;iframe src="https://www.youtube.com/embed/w3VI6zC4_0I"&gt;
  &lt;/iframe&gt;
&lt;/p&gt;




&lt;h2&gt;
  
  
  🧠 What Is Hermes Bot Mode?
&lt;/h2&gt;

&lt;p&gt;Hermes already supports profiles.&lt;/p&gt;

&lt;p&gt;A profile can have its own configuration, model settings, soul, memory, skills, and tools.&lt;/p&gt;

&lt;p&gt;That means you could already create multiple specialized Hermes agents.&lt;/p&gt;

&lt;p&gt;Bot Mode doesn’t replace that system.&lt;/p&gt;

&lt;p&gt;Instead, it adds a visual usability and orchestration layer on top of Hermes profiles.&lt;/p&gt;

&lt;p&gt;The easiest way I can describe it is:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Hermes Profiles give you multiple isolated brains. Bot Mode gives those brains faces, rooms, and a team interface.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Instead of remembering profile names or managing everything through the CLI, you get a visible roster of bots.&lt;/p&gt;

&lt;p&gt;Each bot can have its own:&lt;/p&gt;

&lt;p&gt;🪪 Name and visual identity&lt;br&gt;
🎯 Specialized role&lt;br&gt;
🧠 Personality and memory&lt;br&gt;
🛠️ Tools and skills&lt;br&gt;
💬 Persistent conversation&lt;br&gt;
🔄 Ability to communicate with other bots&lt;/p&gt;

&lt;p&gt;That last capability is where things get interesting.&lt;/p&gt;




&lt;h2&gt;
  
  
  🧪 The Experiment: Can 3 AI Agents Complete One Research Task?
&lt;/h2&gt;

&lt;p&gt;I wanted a task where simply generating an answer wasn’t enough.&lt;/p&gt;

&lt;p&gt;The workflow needed different types of judgment.&lt;/p&gt;

&lt;p&gt;So I created three specialized bots.&lt;/p&gt;

&lt;h3&gt;
  
  
  🔎 Bot 1: Stock Market Researcher
&lt;/h3&gt;

&lt;p&gt;The first agent gathers evidence.&lt;/p&gt;

&lt;p&gt;Its job is to research two U.S.-listed companies in the same sector using public filings and reputable market data.&lt;/p&gt;

&lt;p&gt;For the demo, I compared NVIDIA and AMD across areas such as:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Revenue growth&lt;/li&gt;
&lt;li&gt;Margins&lt;/li&gt;
&lt;li&gt;Balance-sheet risk&lt;/li&gt;
&lt;li&gt;Valuation context&lt;/li&gt;
&lt;li&gt;Business catalysts&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;But I didn’t want the first agent’s answer to automatically become the final answer.&lt;/p&gt;

&lt;p&gt;That is where the second bot comes in.&lt;/p&gt;

&lt;h3&gt;
  
  
  ⚠️ Bot 2: Risk Analyst
&lt;/h3&gt;

&lt;p&gt;The Risk Analyst is deliberately adversarial.&lt;/p&gt;

&lt;p&gt;Instead of expanding the researcher’s conclusions, its job is to attack them.&lt;/p&gt;

&lt;p&gt;It checks things like:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Are the reporting periods comparable?&lt;/li&gt;
&lt;li&gt;Are the numbers supported?&lt;/li&gt;
&lt;li&gt;Are valuation assumptions reasonable?&lt;/li&gt;
&lt;li&gt;What downside risks are missing?&lt;/li&gt;
&lt;li&gt;Is there contradictory evidence?&lt;/li&gt;
&lt;li&gt;Does any language sound like an unjustified forecast?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This creates an important separation between generating research and reviewing research.&lt;/p&gt;

&lt;h3&gt;
  
  
  📝 Bot 3: Thesis Editor
&lt;/h3&gt;

&lt;p&gt;Finally, the reviewed material goes to the Thesis Editor.&lt;/p&gt;

&lt;p&gt;Its job is not to research everything again.&lt;/p&gt;

&lt;p&gt;It takes the evidence and critique from the previous agents and produces a balanced comparison containing:&lt;/p&gt;

&lt;p&gt;📚 Sources&lt;br&gt;
📅 Relevant dates&lt;br&gt;
🎚️ Confidence notes&lt;br&gt;
❓ Known unknowns&lt;br&gt;
⚖️ A more balanced final analysis&lt;/p&gt;

&lt;p&gt;Now we have a simple multi-agent pipeline:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Research → Challenge → Synthesis&lt;/strong&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  🔄 The Interesting Part: I Only Talked to One Agent
&lt;/h2&gt;

&lt;p&gt;This was the actual test.&lt;/p&gt;

&lt;p&gt;I gave my instructions to the Stock Market Researcher.&lt;/p&gt;

&lt;p&gt;That was my only initial task instruction.&lt;/p&gt;

&lt;p&gt;I wasn’t manually taking its output and pasting it into the Risk Analyst.&lt;/p&gt;

&lt;p&gt;I wasn’t opening the Thesis Editor and telling it what to do next.&lt;/p&gt;

&lt;p&gt;Instead, the researcher gathered its evidence and then attempted to hand the work to the Risk Analyst.&lt;/p&gt;

&lt;p&gt;The Risk Analyst reviewed it and attempted to pass the reviewed material further down the chain.&lt;/p&gt;

&lt;p&gt;The bots were composing and routing these handoffs themselves.&lt;/p&gt;

&lt;p&gt;That’s a much more interesting interaction model than:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Human → Agent A → Human → Agent B → Human → Agent C&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Instead, we’re moving toward:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Human → Agent A → Agent B → Agent C → Human&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The human defines the objective while specialized agents handle parts of the coordination.&lt;/p&gt;




&lt;h2&gt;
  
  
  👀 Persistent Conversations Make the Workflow Easier to Understand
&lt;/h2&gt;

&lt;p&gt;One thing I like about Bot Mode is that these aren’t just invisible background calls.&lt;/p&gt;

&lt;p&gt;Each specialist exists as a recognizable bot with its own persistent conversation.&lt;/p&gt;

&lt;p&gt;I can open the researcher and inspect what it did.&lt;/p&gt;

&lt;p&gt;I can open the Risk Analyst and see what it received.&lt;/p&gt;

&lt;p&gt;I can inspect what happened during a handoff.&lt;/p&gt;

&lt;p&gt;That matters when you’re experimenting with multi-agent AI systems.&lt;/p&gt;

&lt;p&gt;If an AI team produces a bad result, you don’t just want the final answer.&lt;/p&gt;

&lt;p&gt;You want to understand:&lt;/p&gt;

&lt;p&gt;Where did the workflow go wrong?&lt;/p&gt;

&lt;p&gt;Was the original research weak?&lt;/p&gt;

&lt;p&gt;Did the critic miss something?&lt;/p&gt;

&lt;p&gt;Did information disappear during a handoff?&lt;/p&gt;

&lt;p&gt;Did the final agent overstate the evidence?&lt;/p&gt;

&lt;p&gt;Making the agents and their conversations visible gives you a much better mental model of the system.&lt;/p&gt;




&lt;h2&gt;
  
  
  🛠️ Creating Specialized Bots
&lt;/h2&gt;

&lt;p&gt;Creating a bot from the desktop interface is fairly straightforward.&lt;/p&gt;

&lt;p&gt;You can give it a:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Name&lt;/li&gt;
&lt;li&gt;Title&lt;/li&gt;
&lt;li&gt;Description&lt;/li&gt;
&lt;li&gt;Avatar&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The advanced configuration is where the specialization becomes more powerful.&lt;/p&gt;

&lt;p&gt;You can configure the bot’s soul, assign skills, control its available tools, or clone it from an existing Hermes profile.&lt;/p&gt;

&lt;p&gt;That means these don’t have to be three copies of the same generic assistant with different names.&lt;/p&gt;

&lt;p&gt;You can design genuinely different specialists.&lt;/p&gt;

&lt;p&gt;For example:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Research Agent&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Web access + research skills + evidence-focused instructions.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Critic Agent&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Verification instructions + skeptical personality + strict rules around unsupported claims.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Editor Agent&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Strong synthesis instructions + limited mandate to introduce new claims.&lt;/p&gt;

&lt;p&gt;The architecture becomes interesting when the agents have different responsibilities, context, tools, and behavioral instructions rather than simply different labels.&lt;/p&gt;




&lt;h2&gt;
  
  
  ⏰ Bots Can Also Run Recurring Jobs
&lt;/h2&gt;

&lt;p&gt;Another useful feature is scheduled jobs.&lt;/p&gt;

&lt;p&gt;You can configure a bot with an instruction and schedule it to run at a particular frequency.&lt;/p&gt;

&lt;p&gt;For example, the stock research bot could potentially run a recurring morning research task.&lt;/p&gt;

&lt;p&gt;That opens up use cases beyond manually initiated conversations:&lt;/p&gt;

&lt;p&gt;📊 Daily market research&lt;br&gt;
📰 News monitoring&lt;br&gt;
🔍 Competitive intelligence&lt;br&gt;
📈 Recurring business analysis&lt;br&gt;
📋 Periodic reporting&lt;br&gt;
🧭 Research updates&lt;/p&gt;

&lt;p&gt;Persistent specialists become much more useful when they can perform recurring work instead of waiting for a new chat every time.&lt;/p&gt;




&lt;h2&gt;
  
  
  ⚡ But Bot Mode Is NOT a Full Workflow Engine
&lt;/h2&gt;

&lt;p&gt;This distinction is important.&lt;/p&gt;

&lt;p&gt;It’s easy to see agents communicating and assume you’ve suddenly built a full multi-agent orchestration system.&lt;/p&gt;

&lt;p&gt;That’s not what Bot Mode currently is.&lt;/p&gt;

&lt;p&gt;The handoffs are real, but they’re per invocation.&lt;/p&gt;

&lt;p&gt;A receiving bot might respond later, and a bot already processing something might not be interrupted immediately.&lt;/p&gt;

&lt;p&gt;Bot Mode also does not guarantee parallel execution.&lt;/p&gt;

&lt;p&gt;My demo was effectively sequential:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Researcher → Risk Analyst → Thesis Editor&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;So I wouldn’t treat Bot Mode as a replacement for a proper DAG or structured workflow engine.&lt;/p&gt;




&lt;h2&gt;
  
  
  🐛 It’s Also Still Beta
&lt;/h2&gt;

&lt;p&gt;I actually encountered a failed handoff during the demo.&lt;/p&gt;

&lt;p&gt;The Risk Analyst completed its review but failed to successfully pass the work to the Thesis Editor.&lt;/p&gt;

&lt;p&gt;Rather than hiding the failure, I kept it in the video because it demonstrates an important limitation.&lt;/p&gt;

&lt;p&gt;Bot Mode is currently beta release.&lt;/p&gt;

&lt;p&gt;Failures can happen.&lt;/p&gt;

&lt;p&gt;In my case, I instructed the researcher that the previous delegation had failed and asked it to retry.&lt;/p&gt;

&lt;p&gt;The researcher then communicated with the Thesis Editor, passed along the reviewed material, and the workflow continued.&lt;/p&gt;

&lt;p&gt;For production-grade autonomous workflows, that distinction matters.&lt;/p&gt;

&lt;p&gt;A good agent interface doesn’t automatically give you guarantees around:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;retries&lt;/li&gt;
&lt;li&gt;dependencies&lt;/li&gt;
&lt;li&gt;execution state&lt;/li&gt;
&lt;li&gt;parallelism&lt;/li&gt;
&lt;li&gt;deterministic routing&lt;/li&gt;
&lt;li&gt;failure recovery&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Those are orchestration problems.&lt;/p&gt;




&lt;h2&gt;
  
  
  🆚 Hermes Bot Mode vs Hermes Profiles vs Hermes Kanban
&lt;/h2&gt;

&lt;p&gt;These three concepts solve different problems.&lt;/p&gt;

&lt;p&gt;Hermes Profiles provide the underlying specialization.&lt;/p&gt;

&lt;p&gt;They give agents separate configurations, model settings, memories, souls, tools, and skills.&lt;/p&gt;

&lt;p&gt;Hermes Bot Mode makes those specialists easier to operate as a visible team.&lt;/p&gt;

&lt;p&gt;You get identities, persistent conversations, a roster, and agent-to-agent communication.&lt;/p&gt;

&lt;p&gt;Hermes Kanban is still more appropriate when I need a structured project with explicit tasks, dependencies, and organized multi-agent collaboration.&lt;/p&gt;

&lt;p&gt;I have used Kanban extensively for more complex AI-agent workflows because those tasks need more structure.&lt;/p&gt;

&lt;p&gt;So I wouldn’t think about Bot Mode as:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;“Bot Mode replaces Hermes Profiles or Kanban.”&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;I would think about it as another interaction model.&lt;/p&gt;

&lt;p&gt;Profiles = specialization 🧠&lt;/p&gt;

&lt;p&gt;Bot Mode = persistent specialists + communication 💬&lt;/p&gt;

&lt;p&gt;Kanban = structured task orchestration 🗂️&lt;/p&gt;

&lt;p&gt;The right choice depends on the workflow.&lt;/p&gt;




&lt;h2&gt;
  
  
  💡 Why I Think This Direction Is Interesting
&lt;/h2&gt;

&lt;p&gt;Most AI assistants still revolve around one interface:&lt;/p&gt;

&lt;p&gt;one user ↔ one chatbot&lt;/p&gt;

&lt;p&gt;But many real tasks aren’t naturally one-role problems.&lt;/p&gt;

&lt;p&gt;Consider startup research.&lt;/p&gt;

&lt;p&gt;You might want:&lt;/p&gt;

&lt;p&gt;Market Researcher → Competitor Analyst → Skeptic → Founder Memo Editor&lt;/p&gt;

&lt;p&gt;For software development:&lt;/p&gt;

&lt;p&gt;Architect → Developer → Reviewer → QA Agent&lt;/p&gt;

&lt;p&gt;For content:&lt;/p&gt;

&lt;p&gt;Researcher → Scriptwriter → Fact Checker → Editor&lt;/p&gt;

&lt;p&gt;For sales:&lt;/p&gt;

&lt;p&gt;Lead Researcher → Account Analyst → Outreach Writer&lt;/p&gt;

&lt;p&gt;The value isn’t simply having “more agents.”&lt;/p&gt;

&lt;p&gt;Adding ten agents to a workflow doesn’t automatically make it better.&lt;/p&gt;

&lt;p&gt;The interesting question is whether we can give specialists clear responsibilities and useful handoffs while keeping the system understandable to the human operating it.&lt;/p&gt;

&lt;p&gt;Bot Mode is an interesting step toward making that experience more accessible.&lt;/p&gt;




&lt;p&gt;I’m particularly interested in where this model goes next.&lt;/p&gt;

&lt;p&gt;Because the bigger opportunity isn’t just giving AI agents better answers.&lt;/p&gt;

&lt;p&gt;It’s giving us better ways to organize, observe, and operate teams of specialized AI agents.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>hermesagentchallenge</category>
      <category>automation</category>
      <category>showdev</category>
    </item>
    <item>
      <title>I stopped asking one AI chatbot for startup ideas. 🤖

Instead, I built a 4-agent Startup Intelligence team with Hermes Agent to research markets, challenge weak evidence &amp; design validation experiments.

Here’s how it works 👇</title>
      <dc:creator>Vivek Shetye</dc:creator>
      <pubDate>Tue, 11 Aug 2026 18:58:37 +0000</pubDate>
      <link>https://dev.to/vivek_shetye/i-stopped-asking-one-ai-chatbot-for-startup-ideas-instead-i-built-a-4-agent-startup-2amd</link>
      <guid>https://dev.to/vivek_shetye/i-stopped-asking-one-ai-chatbot-for-startup-ideas-instead-i-built-a-4-agent-startup-2amd</guid>
      <description>&lt;div class="ltag__link--embedded"&gt;
  &lt;div class="crayons-story "&gt;
  &lt;a href="https://dev.to/vivek_shetye/i-built-a-team-of-ai-agents-to-find-startup-opportunities-3309" class="crayons-story__hidden-navigation-link"&gt;I Built a Team of AI Agents to Find Startup Opportunities&lt;/a&gt;


  &lt;div class="crayons-story__body crayons-story__body-full_post"&gt;
      &lt;a href="https://dev.to/vivek_shetye/i-built-a-team-of-ai-agents-to-find-startup-opportunities-3309" class="crayons-article__context-note crayons-article__context-note__feed"&gt;&lt;p&gt;Hermes Agent Challenge Submission: Build With Hermes Agent&lt;/p&gt;

&lt;/a&gt;
    &lt;div class="crayons-story__top"&gt;
      &lt;div class="crayons-story__meta"&gt;
        &lt;div class="crayons-story__author-pic"&gt;

          &lt;a href="/vivek_shetye" class="crayons-avatar  crayons-avatar--l  "&gt;
            &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3879444%2F8f338ec8-c7f4-48e9-b8cf-3898bccbb1e8.jpg" alt="vivek_shetye profile" class="crayons-avatar__image"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
        &lt;div&gt;
          &lt;div&gt;
            &lt;a href="/vivek_shetye" class="crayons-story__secondary fw-medium m:hidden"&gt;
              Vivek Shetye
            &lt;/a&gt;
            &lt;div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"&gt;
              
                Vivek Shetye
                
                
              
              &lt;div id="story-author-preview-content-4371382" class="profile-preview-card__content crayons-dropdown branded-7 p-4 pt-0"&gt;
                &lt;div class="gap-4 grid"&gt;
                  &lt;div class="-mt-4"&gt;
                    &lt;a href="/vivek_shetye" class="flex"&gt;
                      &lt;span class="crayons-avatar crayons-avatar--xl mr-2 shrink-0"&gt;
                        &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3879444%2F8f338ec8-c7f4-48e9-b8cf-3898bccbb1e8.jpg" class="crayons-avatar__image" alt=""&gt;
                      &lt;/span&gt;
                      &lt;span class="crayons-link crayons-subtitle-2 mt-5"&gt;Vivek Shetye&lt;/span&gt;
                    &lt;/a&gt;
                  &lt;/div&gt;
                  &lt;div class="print-hidden"&gt;
                    
                      Follow
                    
                  &lt;/div&gt;
                  &lt;div class="author-preview-metadata-container"&gt;&lt;/div&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;

          &lt;/div&gt;
          &lt;a href="https://dev.to/vivek_shetye/i-built-a-team-of-ai-agents-to-find-startup-opportunities-3309" class="crayons-story__tertiary fs-xs"&gt;&lt;time&gt;Aug 11&lt;/time&gt;&lt;span class="time-ago-indicator-initial-placeholder"&gt;&lt;/span&gt;&lt;/a&gt;
        &lt;/div&gt;
      &lt;/div&gt;

    &lt;/div&gt;

    &lt;div class="crayons-story__indention"&gt;
      &lt;h2 class="crayons-story__title crayons-story__title-full_post"&gt;
        &lt;a href="https://dev.to/vivek_shetye/i-built-a-team-of-ai-agents-to-find-startup-opportunities-3309" id="article-link-4371382"&gt;
          I Built a Team of AI Agents to Find Startup Opportunities
        &lt;/a&gt;
      &lt;/h2&gt;
        &lt;div class="crayons-story__tags"&gt;
            &lt;a class="crayons-tag crayons-tag--filled  " href="/t/showdev"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;showdev&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/ai"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;ai&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/hermesagentchallenge"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;hermesagentchallenge&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/startup"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;startup&lt;/a&gt;
        &lt;/div&gt;
      &lt;div class="crayons-story__bottom"&gt;
        &lt;div class="crayons-story__details"&gt;
          &lt;a href="https://dev.to/vivek_shetye/i-built-a-team-of-ai-agents-to-find-startup-opportunities-3309" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left"&gt;
            &lt;div class="multiple_reactions_aggregate"&gt;
              &lt;span class="multiple_reactions_icons_container"&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/exploding-head-daceb38d627e6ae9b730f36a1e390fca556a4289d5a41abb2c35068ad3e2c4b5.svg" width="18" height="18"&gt;
                  &lt;/span&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/multi-unicorn-b44d6f8c23cdd00964192bedc38af3e82463978aa611b4365bd33a0f1f4f3e97.svg" width="18" height="18"&gt;
                  &lt;/span&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/sparkle-heart-5f9bee3767e18deb1bb725290cb151c25234768a0e9a2bd39370c382d02920cf.svg" width="18" height="18"&gt;
                  &lt;/span&gt;
              &lt;/span&gt;
              &lt;span class="aggregate_reactions_counter"&gt;6&lt;span class="hidden s:inline"&gt;&amp;nbsp;reactions&lt;/span&gt;&lt;/span&gt;
            &lt;/div&gt;
          &lt;/a&gt;
            &lt;a href="https://dev.to/vivek_shetye/i-built-a-team-of-ai-agents-to-find-startup-opportunities-3309#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center"&gt;
              

              8&lt;span class="hidden s:inline"&gt;&amp;nbsp;comments&lt;/span&gt;
            &lt;/a&gt;
        &lt;/div&gt;
        &lt;div class="crayons-story__save"&gt;
          &lt;small class="crayons-story__tertiary fs-xs mr-2"&gt;
            7 min read
          &lt;/small&gt;
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;


</description>
    </item>
  </channel>
</rss>
