298 lines
14 KiB
HTML
298 lines
14 KiB
HTML
<!doctype html>
|
|
<html lang="en">
|
|
<head>
|
|
<meta charset="UTF-8" />
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
<meta name="robots" content="index, follow" />
|
|
<link rel="canonical" href="https://derez.ai/blog/posts/hermes-agent-setup-guide.html" />
|
|
<title>Hermes Agent Setup Guide: From Zero to Your First AI Agent — derez.ai Blog</title>
|
|
<meta name="description" content="Step-by-step guide to setting up a Hermes AI agent. Covers installation, agent persona, skills, tools, and cron jobs — no SSH required." />
|
|
<meta name="keywords" content="hermes agent, hermes agent setup, install hermes agent, AI agent tutorial, hermes agent configuration, hermes agent persona, AI agent hosting" />
|
|
<meta property="og:type" content="article" />
|
|
<meta property="og:url" content="https://derez.ai/blog/posts/hermes-agent-setup-guide.html" />
|
|
<meta property="og:title" content="Hermes Agent Setup Guide: From Zero to Your First AI Agent" />
|
|
<meta property="og:description" content="Step-by-step guide to setting up a Hermes AI agent. Covers installation, agent persona, skills, tools, and cron jobs — no SSH required." />
|
|
<meta name="twitter:card" content="summary_large_image" />
|
|
<meta name="twitter:title" content="Hermes Agent Setup Guide: From Zero to Your First AI Agent" />
|
|
<link rel="preconnect" href="https://fonts.googleapis.com" />
|
|
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
|
|
<link href="https://fonts.googleapis.com/css2?family=Inter:opsz,wght@14..32,400;14..32,500;14..32,600;14..32,700&display=swap" rel="stylesheet" />
|
|
<style>
|
|
* { margin: 0; padding: 0; box-sizing: border-box; }
|
|
body {
|
|
background: #08080c;
|
|
color: #e8e8f0;
|
|
font-family: 'Inter', sans-serif;
|
|
line-height: 1.7;
|
|
padding: 40px 20px;
|
|
}
|
|
.container { max-width: 720px; margin: 0 auto; }
|
|
a { color: #6c8cff; text-decoration: none; }
|
|
a:hover { text-decoration: underline; }
|
|
.back { margin-bottom: 32px; display: inline-block; font-size: 0.9rem; color: #787898; }
|
|
.back:hover { color: #6c8cff; }
|
|
h1 { font-size: 1.9rem; font-weight: 700; line-height: 1.3; margin-bottom: 12px; }
|
|
.meta { font-size: 0.85rem; color: #787898; margin-bottom: 40px; display: flex; gap: 12px; align-items: center; }
|
|
.area-tag {
|
|
display: inline-block;
|
|
background: #f472b6;
|
|
color: #000;
|
|
font-size: 0.75rem;
|
|
font-weight: 700;
|
|
padding: 2px 10px;
|
|
border-radius: 20px;
|
|
text-transform: uppercase;
|
|
letter-spacing: 0.5px;
|
|
}
|
|
.chip-tag {
|
|
display: inline-block;
|
|
background: rgba(108,140,255,0.1);
|
|
color: #6c8cff;
|
|
border: 1px solid rgba(108,140,255,0.3);
|
|
font-size: 0.75rem;
|
|
font-weight: 600;
|
|
padding: 2px 10px;
|
|
border-radius: 20px;
|
|
text-transform: uppercase;
|
|
letter-spacing: 0.5px;
|
|
}
|
|
h2 { font-size: 1.3rem; font-weight: 600; margin: 36px 0 12px; color: #f0f0ff; }
|
|
h3 { font-size: 1.1rem; font-weight: 600; margin: 24px 0 8px; color: #e0e0f0; }
|
|
p { margin-bottom: 16px; color: #c8c8d8; }
|
|
ul, ol { margin: 0 0 16px 24px; color: #c8c8d8; }
|
|
li { margin-bottom: 6px; }
|
|
code {
|
|
background: #12121a;
|
|
border: 1px solid #1e1e2a;
|
|
padding: 1px 6px;
|
|
border-radius: 4px;
|
|
font-size: 0.85em;
|
|
color: #00f5ff;
|
|
}
|
|
pre {
|
|
background: #0a0a0f;
|
|
border: 1px solid #1e1e2a;
|
|
border-radius: 8px;
|
|
padding: 16px 20px;
|
|
overflow-x: auto;
|
|
margin: 0 0 20px;
|
|
}
|
|
pre code {
|
|
background: none;
|
|
border: none;
|
|
padding: 0;
|
|
font-size: 0.82rem;
|
|
color: #c8c8d8;
|
|
line-height: 1.6;
|
|
}
|
|
.prompt-box {
|
|
background: #0e0e14;
|
|
border: 1px solid #1e1e2a;
|
|
border-left: 3px solid #6c8cff;
|
|
border-radius: 8px;
|
|
padding: 16px 20px;
|
|
margin: 0 0 16px;
|
|
font-style: italic;
|
|
color: #d0d0e0;
|
|
}
|
|
.tip-box {
|
|
background: rgba(108,140,255,0.06);
|
|
border: 1px solid rgba(108,140,255,0.15);
|
|
border-left: 3px solid #6c8cff;
|
|
border-radius: 8px;
|
|
padding: 14px 18px;
|
|
margin: 0 0 20px;
|
|
font-size: 0.9rem;
|
|
}
|
|
.tip-box strong { color: #6c8cff; }
|
|
.cta-box {
|
|
background: linear-gradient(135deg, rgba(108,140,255,0.08), rgba(0,245,255,0.04));
|
|
border: 1px solid rgba(108,140,255,0.2);
|
|
border-radius: 12px;
|
|
padding: 24px;
|
|
text-align: center;
|
|
margin: 40px 0;
|
|
}
|
|
.cta-box h3 { margin-top: 0; color: #f0f0ff; }
|
|
.cta-box p { margin-bottom: 20px; color: #a0a0b8; }
|
|
.cta-button {
|
|
display: inline-block;
|
|
background: #6c8cff;
|
|
color: #08080c;
|
|
font-weight: 700;
|
|
padding: 12px 32px;
|
|
border-radius: 8px;
|
|
font-size: 1rem;
|
|
transition: all 0.2s;
|
|
}
|
|
.cta-button:hover { background: #8aa4ff; text-decoration: none; }
|
|
.highlight { color: #00f5ff; }
|
|
@media (max-width: 600px) {
|
|
h1 { font-size: 1.5rem; }
|
|
.container { padding: 0; }
|
|
}
|
|
</style>
|
|
</head>
|
|
<body>
|
|
<div class="container">
|
|
|
|
<a href="../../index.html" class="back">← Back to derez.ai</a>
|
|
|
|
<h1>Hermes Agent Setup Guide: From Zero to Your First AI Agent</h1>
|
|
|
|
<div class="meta">
|
|
<span class="area-tag">Tutorial</span>
|
|
<span class="chip-tag">Hermes Agent</span>
|
|
<span>June 10, 2026</span>
|
|
<span>· 6 min read</span>
|
|
</div>
|
|
|
|
<p>Hermes Agent (by <a href="https://nousresearch.com?utm_source=derez" target="_blank" rel="noopener">Nous Research</a>) is an open-source AI agent framework that turns any Linux server into an autonomous digital worker. It reads files, runs shell commands, writes code, manages background processes, and follows chronological schedules — all through a natural language persona that you define.</p>
|
|
|
|
<p>In this guide, you'll go from a blank server to a running Hermes agent with custom skills, a configured persona, and automated cron jobs. <strong>No manual SSH required</strong> — the derez.ai dashboard handles provisioning, so you start at the good part.</p>
|
|
|
|
<h2>What You'll Need</h2>
|
|
|
|
<ul>
|
|
<li>A <a href="https://derez.ai">derez.ai</a> account ($4.99/mo with first-month coupon codes)</li>
|
|
<li>An OpenRouter API key (or any OpenAI-compatible provider)</li>
|
|
<li>About 10 minutes</li>
|
|
</ul>
|
|
|
|
<h2>Step 1: Provision Your Agent Instance</h2>
|
|
|
|
<p>From the derez.ai dashboard at <strong>app.derez.ai</strong>, click <strong>Create Agent</strong>. The platform spins up a dedicated Linux instance pre-configured with Python 3.11, the Hermes runtime, and all dependencies. You'll receive:</p>
|
|
|
|
<ul>
|
|
<li>Full SSH access (root) to your instance</li>
|
|
<li>A dashboard URL for the Hermes web UI</li>
|
|
<li>Automatic daily backups with 7-day retention</li>
|
|
<li>Automatic SSL/TLS certificates</li>
|
|
</ul>
|
|
|
|
<p>Provisioning takes about 60 seconds. When the status changes to <strong>Running</strong>, you're ready.</p>
|
|
|
|
<div class="tip-box">
|
|
<strong>💡 Pro tip:</strong> Use coupon code <code>friends950</code> or <code>creator950</code> at signup to get your first month for $0.50 — a full $9.50 discount.
|
|
</div>
|
|
|
|
<h2>Step 2: Configure Your Agent Persona</h2>
|
|
|
|
<p>The <strong>agent persona</strong> is the single most important file in Hermes. Located at <code>~/.hermes/AGENT_PERSONA.md</code>, it defines the agent's identity, tone, and behavioral rules. Every message the agent sends is shaped by this file — it's not just a system prompt, it's the agent's operating charter.</p>
|
|
|
|
<p>Here's a simple persona for a customer success agent:</p>
|
|
|
|
<div class="prompt-box">
|
|
<strong>AGENT_PERSONA.md</strong><br><br>
|
|
You are Mark, a Customer Success Agent for derez.ai.<br><br>
|
|
- You are helpful, concise, and proactive.<br>
|
|
- You monitor new signups and send welcome messages.<br>
|
|
- You check server health daily and flag issues.<br>
|
|
- You speak like a knowledgeable colleague, not a robot.<br><br>
|
|
Tool-use rules:<br>
|
|
- Always verify before acting — double-check destructive commands.<br>
|
|
- Use terminal for shell commands, process for background tasks.<br>
|
|
- When blocked, report the blocker — never fabricate results.
|
|
</div>
|
|
|
|
<p>You can edit this file directly from the derez.ai dashboard's file manager, or via SSH. The agent reloads it on each conversation turn, so changes take effect immediately.</p>
|
|
|
|
<h2>Step 3: Install Skills</h2>
|
|
|
|
<p>Skills are the agent's capabilities — they extend what it can do. Skills live in <code>~/.hermes/skills/</code> and are plain Markdown files with structured frontmatter and tool-calling instructions.</p>
|
|
|
|
<p>To install a skill, create a file in the skills directory:</p>
|
|
|
|
<pre><code># ~/.hermes/skills/server-health.md
|
|
|
|
---
|
|
name: server-health
|
|
description: Monitor server health metrics and alert on anomalies
|
|
---
|
|
|
|
You are an SRE assistant. Check these metrics daily:
|
|
1. Disk usage — alert above 80%
|
|
2. Memory usage — alert above 85%
|
|
3. Load average — investigate if > 4.0
|
|
4. Uptime — report days since last reboot
|
|
5. Failed SSH logins — flag brute-force attempts
|
|
|
|
Report findings in a single summary block. Escalate critical issues.</code></pre>
|
|
|
|
<p>Hermes scans the skills directory at startup. Each skill file becomes available as a command the agent can invoke contextually. You can also load a skill mid-conversation with <code>skill_view(name='server-health')</code> — a powerful pattern for pulling in specialized knowledge on demand.</p>
|
|
|
|
<h2>Step 4: Set Up Cron Jobs</h2>
|
|
|
|
<p>One of Hermes' most powerful features is its built-in cron scheduler. Instead of writing crontab entries manually, you register schedules that wake the agent at specific times to perform tasks autonomously.</p>
|
|
|
|
<p>Cron jobs live in <code>~/.hermes/cron/</code> as YAML files:</p>
|
|
|
|
<pre><code># ~/.hermes/cron/daily-health-check.yaml
|
|
|
|
schedule: "0 6 * * *" # Every day at 06:00
|
|
skill: server-health
|
|
output: report # Send result as a report
|
|
|
|
---
|
|
|
|
# ~/.hermes/cron/weekly-backup-report.yaml
|
|
|
|
schedule: "0 9 * * 1" # Every Monday at 09:00
|
|
skill: backup-verification
|
|
output: report
|
|
notify_on_complete: true # Get notified when done</code></pre>
|
|
|
|
<p>The agent wakes at the scheduled time, loads the specified skill, runs the task, and reports back. This works even while your agent is in the middle of other conversations — Hermes handles concurrent execution gracefully.</p>
|
|
|
|
<h2>Step 5: Test Your Agent</h2>
|
|
|
|
<p>Open the Hermes web UI (available from your derez.ai dashboard) and start a conversation. Try these test prompts:</p>
|
|
|
|
<ul>
|
|
<li><em>"What's my server health look like today?"</em></li>
|
|
<li><em>"Check which cron jobs are scheduled and show me the next 3 runs."</em></li>
|
|
<li><em>"List all installed skills and describe what each one does."</em></li>
|
|
<li><em>"Run a quick disk usage check and tell me if anything needs attention."</em></li>
|
|
</ul>
|
|
|
|
<p>The agent will reference its persona, load the relevant skills, and execute the appropriate tools — all in one response. You can watch it run commands live in the terminal output panel.</p>
|
|
|
|
<h2>Going Further</h2>
|
|
|
|
<p>Once the basics are running, here's what you can layer on:</p>
|
|
|
|
<ul>
|
|
<li><strong>Plugins</strong> — Drop Python scripts into <code>~/.hermes/plugins/</code> for custom tool integrations (databases, APIs, webhooks)</li>
|
|
<li><strong>Memories</strong> — Persistent knowledge stored in <code>~/.hermes/memories/</code> that survives conversation resets</li>
|
|
<li><strong>Profiles</strong> — Multiple agent configurations (<code>~/.hermes/profiles/<name>/</code>) that you can switch between for different roles</li>
|
|
<li><strong>Background processes</strong> — Launch long-running tasks (web scrapers, data pipelines, monitoring loops) that the agent manages independently</li>
|
|
</ul>
|
|
|
|
<div class="tip-box">
|
|
<strong>🔗 Related:</strong> See our <a href="https://derez.ai/blog/posts/speed-run-odoo-community-agent.html">Speed Run: Odoo Community Agent</a> tutorial for a real-world example — connecting Hermes to an Odoo database and pulling leads automatically.
|
|
</div>
|
|
|
|
<h2>Troubleshooting</h2>
|
|
|
|
<h3>Agent not responding</h3>
|
|
<p>Check that the agent process is running: <code>ps aux | grep hermes</code>. From the derez.ai dashboard, you can restart the agent with one click.</p>
|
|
|
|
<h3>Skills not loading</h3>
|
|
<p>Verify the file is in the correct directory (<code>~/.hermes/skills/</code>) with <code>.md</code> extension. Check the YAML frontmatter is valid — missing <code>---</code> delimiters will silently skip the file.</p>
|
|
|
|
<h3>Cron jobs not firing</h3>
|
|
<p>Make sure the Hermes process that manages cron (typically <code>hermesd</code>) is running as a background service. Check with <code>process(action='list')</code> from the agent, or verify the service status from the dashboard.</p>
|
|
|
|
<h3>Tool errors</h3>
|
|
<p>If the agent reports tool execution failures, check the system dependencies listed in your skill files. The agent will tell you exactly which command failed and why — it never silently drops errors.</p>
|
|
|
|
<div class="cta-box">
|
|
<h3>Ready to build your agent?</h3>
|
|
<p>Get a dedicated Hermes agent instance with full SSH access, automatic backups, and a managed dashboard — starting at $0.50 for your first month.</p>
|
|
<a href="https://derez.ai" class="cta-button">Create Your Agent →</a>
|
|
</div>
|
|
|
|
</div>
|
|
</body>
|
|
</html>
|