# Best Practices and Workflow Patterns

**Source:** r/hermesagent community discussion (May 2026)

---

## Core Philosophy from Top Post (298 Upvotes)

u/itsdodobitch's "One month with Hermes Agent - what I wish I knew earlier" distilled:

1. **Hermes works impressively well out of the box** - Don't over-optimize before using
2. **The model is THE most important decision** - Wrong model ruins everything
3. **Don't chase perfect setup** - Build something you'll actually use first
4. **Treat profiles as separate agents with separate state** - Not presets
5. **Memory system matters** - Don't use default, set up proper memory early

---

## Workflow Patterns That Work

### Pattern 1: Plan-Execute-QC Loop (u/An-R-Nguyen)

**For coding and complex tasks:**

1. **Planning phase:** Dedicated chat for planning only. Tell Hermes to create persistent project directory. Define parameters, desired output, limitations, available infrastructure.
2. **Execution phase:** Coder profile one-shots the request aiming for 80%+ quality.
3. **QC phase:** Main profile reviews, makes minor adjustments, or nukes and restarts if quality < 80%.

**Key rule:** "When a job is not one shotted and have at least 80% quality pass, not worth the effort fixing it. Best to just start over."

### Pattern 2: Persistent Project State (u/trashacct383)

**For large projects exceeding context window:**

1. Start with planning chat - create persistent project directory
2. Maintain a **project plan document** in the directory
3. Keep a **state file** tracking current progress and next steps
4. Use these files to maintain continuity across new sessions after context compaction

### Pattern 3: GitHub Integration Pipeline (u/Xiaomin4114)

**For development workflows:**

1. Create separate GitHub account for Hermes
2. Generate SSH key, add pubkey to GitHub
3. Share repos with bot account
4. Hermes pushes code, shows up as bot's commits
5. Check server logs -> find errors -> correlate to code -> make PR -> human reviews and merges -> deploy

**Advanced:** Auto-fix bugs by checking logs, making PRs, and deploying after approval.

### Pattern 4: News Digest Automation (Community Favorite First Project)

**Simple but practical:**

1. Create cron job for daily news fetch
2. Configure sources and categories
3. Deliver to Telegram/Discord/Email
4. Refine over time based on quality feedback

**Variation:** Separate Telegram groups for different digest types (news, SEO reports, general chat) - u/dontforgetthef

---

## SOUL.md Best Practices

### What Works

- **Clear role definition** - "You are a [specific role]"
- **Explicit capabilities list** - List available tools and access patterns
- **Output format specifications** - Define expected response structure
- **Boundary setting** - What NOT to do is as important as what to do
- **Tone guidelines** - Professional, concise, or whatever fits your use case

### What Doesn't Work

- Overly long SOUL.md files that bloat context
- Vague instructions that leave too much interpretation
- Conflicting directives that confuse the agent

---

## Cost Management Strategies

### Daily Budget Framework (u/Almarma)

| Model | Use Case | Daily Spend Target |
|-------|----------|-------------------|
| DeepSeek V4 Pro (direct API) | Main driver | \\$1-1.50/day |
| Qwen 3.6-27B (local vLLM) | Main driver | Free (electricity only) |
| MiniMax M2.7 (\\$10 plan) | Auxiliary tasks | Included in plan |
| Claude/GPT | Complex reasoning only | As-needed spike |

### Token Optimization Checklist

- [ ] Use direct API instead of OpenRouter when settled on model
- [ ] Enable caching (DeepSeek direct API excels here)
- [ ] Minimize model switching during active sessions
- [ ] Start new conversations for different topics
- [ ] Set context compression at ~70%
- [ ] Use cheaper auxiliary models for subtasks
- [ ] Consider free-tier pooling with llm-keypool

---

## Messaging Best Practices

### Telegram Setup (Most Popular)

**Structure:**
- Main chat for general conversation
- Separate groups for automated tasks (news, reports, monitoring)
- Topics within groups for session management (upcoming feature: topic-to-profile routing)

**Tips:**
- Use dedicated Gmail account for Hermes bot
- Forward emails to Hermes email rather than giving full inbox access
- Share specific calendar events rather than full calendar access

### Multi-Platform Management

**Running Hermes on Telegram, Discord, WhatsApp simultaneously:**
- Each platform gets its own gateway configuration
- Sessions are isolated per platform
- Memory system provides cross-platform continuity
- Use profiles for different platforms if you want separate personalities

---

## Security Best Practices

### Principle of Least Privilege

1. **Dedicated accounts** - Separate Gmail, GitHub, and service accounts for Hermes
2. **Shared resources over full access** - Shared calendar > full calendar access; email forwarding > inbox access
3. **Burner accounts for testing** - Use disposable accounts during setup phase
4. **Guardrails in SOUL.md** - Explicitly define what files/directories are off-limits

### Prompt Injection Awareness

- Calendar invite injection is a real threat (u/mseewald)
- Local models have FEWER safeguards than frontier models
- Maintain snapshots and backups regularly
- Use sandboxes for untrusted input processing

---

## Obsidian Integration Best Practices

### Vault Structure (u/dontforgetthef)

\`\`\`
Hermes Vault/
  README.md (master index)
  Sessions/ (conversation logs, meeting notes)
  Skills/ (custom skill documentation)
  Automations/ (cron job configs, workflow docs)
  Projects/ (project-specific folders)
  References/ (static reference material)
\`\`\`

### Sync Strategy

- **Syncthing** (free, community favorite) - PC + Raspberry Pi or other devices
- **Obsidian Sync** (paid, simpler) - Official sync service
- Have Hermes save file locations to memory for recall
- Use consistent naming conventions across vault

---

## Common Anti-Patterns to Avoid

1. **Using external "experts" to optimize Hermes config** - Just ask Hermes about itself (u/CaliZ06)
2. **Installing second Hermes instance for profiles** - Profiles are built-in (u/Beckland)
3. **Chasing setup perfection before building anything** - Start using, iterate later
4. **Not verifying agent actions** - Always check file writes independently
5. **Single massive profile doing everything** - Use purpose-built profiles instead
6. **Ignoring memory system setup** - Default memory is insufficient for serious use

---

## Community Wisdom Quotes

> "If you're constantly chasing the perfect setup, you'll never actually build anything." - u/Jealous_Alarm_1383

> "The easiest thing to build first is a scheduled news digest that sends you interesting news on what you're interested in. Simple and something you'll actually use." - u/Jealous_Alarm_1383

> "Don't simply use the default memory default setup. You have plenty of local and powerful options available which I overlooked at first." - u/Almarma

> "The wrong main model will ruin your life, your experience with hermes and probably even the setup. Don't cheap too much in the main model." - u/Almarma

> "I don't treat profiles as presets. I treat them as separate agents with separate state. That was the part that made them click for me." - u/itsdodobitch