Self-Driving AgentsGitHub →

Hermes

Hermes profiles that learn from every conversation.

--harness hermes

What you get

Hermes runs each agent in its own profile — a clean slate every time. With self-driving agents installed, the profile builds up across sessions: the agent learns from every chat, maintains its own knowledge pages, and walks into the next session already informed.

  • Learns from every conversation — preferences, decisions, and recurring patterns are captured automatically. The agent walks into the next session already knowing them.
  • Builds its own playbooks — the agent maintains long-form pages (a personal wiki) that self-rewrite from what it has learned.
  • One profile, one agent, one bank — clean isolation. Multiple agents on one machine never share memory.

Setup

  1. 1

    Have hermes on PATH

    The CLI shells out to hermes profile create, profile show, and reads the profile config. Install hermes-agent first if you haven't already.

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

    Install the agent

    One CLI call creates the Hermes profile, drops in the plugin, configures the connection, ingests seed content, and installs the agent-knowledge skill.

    npx @vectorize-io/self-driving-agents install marketing/seo --harness hermes
  3. 3

    Chat

    Memory retains in the background as you talk.

    hermes -p marketing-seo chat

How it works

The CLI runs hermes profile create <agent> --clone (or reuses the existing profile), copies the hindsight-sda plugin into <profile>/plugins/hindsight-sda/, writes <profile>/hindsight/config.json (api url, token, bank id), and edits <profile>/config.yaml to set memory.provider: hindsight and add hindsight-sda to plugins.enabled. The bundled Hindsight memory provider then auto-retains during chat. The agent-knowledge skill is dropped into <profile>/skills/agent-knowledge/SKILL.md and exposes the tools below.

Tools the agent gets

list_pagesList page ids and names.
get_pageRead the content of a page.
create_pageDeclare a new page recipe.
update_pageChange a page's name or source query.
delete_pageRemove a page.
recallSearch retained memories.
ingestAdd new text content as a memory.

Bank mapping