Hermes Agent: Profile Configuration
Last updated: 2026-08-31
Profiles are Hermes Agent's user identity cards — different people have different preferences, and Profiles let the same Agent serve multiple users, each with their own memory, skills, and style.
💡 Tip: Profiles store not only basic user information but also link to independent memory spaces, skill sets, user models, and platform preferences. In multi-user scenarios, Profile isolation ensures privacy.
📋 Prerequisites: Lesson 6 Memory System
1. What You Will Learn
| # | Content |
|---|---|
| ❶ | Profile concepts and structure |
| ❷ | Creating and managing Profiles |
| ❸ | Multi-user isolation mechanism |
| ❹ | Team Profiles and sharing |
| ❺ | Profile migration and backup |
2. Story
(1) Pain Point: Team Sharing One Bot Causes Confusion
Bob and a colleague share a Telegram Bot, but Bob prefers Chinese while the colleague uses English. Bob works on frontend, the colleague on backend. The Agent gets confused.
(2) Solution: One Profile Per Person
BASH
# Bob's Profile
hermes chat --user bob
> Hello Bob! Preferences: React + TypeScript + Chinese
# Colleague's Profile
hermes chat --user carol
> Hi Carol! Preference: Python + FastAPI + English
3. Profile Structure
(1) Profile File
YAML
# ~/.hermes/profiles/bob.yaml
user:
id: "bob"
name: "Bob"
language: "zh-CN"
timezone: "Asia/Shanghai"
preferences:
tech_stack:
- "React"
- "TypeScript"
- "Tailwind CSS"
code_style: "concise"
communication: "direct"
model:
default: "gpt-4o"
temperature: 0.7
personality:
tone: "friendly"
verbosity: "balanced"
platforms:
telegram:
chat_id: 123456789
slack:
user_id: "U12345"
skills:
custom:
- "react-component-review"
- "git-commit-helper"
disabled:
- "java-code-review"
memory:
isolated: true # Independent memory space
share_with: [] # Not shared with others
4. Profile Management
(1) Command Line Operations
BASH
# Create a Profile
hermes profile create --name "bob"
# Interactive creation
hermes profile create --interactive
? Name: Bob
? Language: zh-CN
? Default model: gpt-4o
? Tech stack: React, TypeScript
? Communication style: Concise and direct
# List all Profiles
hermes profile list
# Switch Profile
hermes profile switch bob
# View current Profile
hermes profile show
# Edit Profile
hermes profile edit bob
# Delete Profile
hermes profile delete bob
(2) In-Conversation Management
BASH
me: /profile
Agent: Current Profile: Bob
Language: zh-CN | Model: gpt-4o | Tech stack: React, TypeScript
me: /profile switch carol
Agent: Switched to Carol's Profile
Language: en | Model: claude-3.5-sonnet | Tech stack: Python, FastAPI
5. Multi-User Isolation Mechanism
(1) Data Isolation
~/.hermes/
├── profiles/
│ ├── bob.yaml # Bob's Profile
│ ├── carol.yaml # Carol's Profile
│ └── team-frontend.yaml # Team Profile
├── memory/
│ ├── bob/ # Bob's independent memory
│ │ ├── working/
│ │ ├── long_term/
│ │ └── user_model/
│ └── carol/ # Carol's independent memory
│ ├── working/
│ ├── long_term/
│ └── user_model/
└── skills/
├── bob/ # Bob's custom skills
└── carol/ # Carol's custom skills
(2) Isolation Rules
| Data | Isolation Level | Description |
|---|---|---|
| Memory | Full isolation | Each user has independent memory space |
| Skills | Selective isolation | Custom skills isolated, built-in skills shared |
| User Model | Full isolation | Honcho builds a model for each user |
| Configuration | Selective isolation | Can override global config |
| Platform Binding | Full isolation | Each user binds their own platform accounts |
6. Team Profiles and Sharing
(1) Team Profile
YAML
# ~/.hermes/profiles/team-frontend.yaml
user:
id: "team-frontend"
name: "Frontend Team"
type: "team"
shared:
skills:
- "react-component-review"
- "eslint-rules"
- "deploy-frontend"
memory:
categories:
- "team-conventions" # Team conventions (shared)
- "project-info" # Project info (shared)
conventions:
code_style: "ESLint + Prettier"
commit_style: "Conventional Commits"
review_checklist:
- "TypeScript strict mode"
- "Accessibility (WCAG 2.1)"
- "Performance (Lighthouse > 90)"
(2) Shared Skills
BASH
# Alice creates a skill and shares it with the team
/learn --share team-frontend When reviewing components, check team conventions
# Team members use shared skills
hermes chat --user bob --team team-frontend
Agent: [Loading team skills] react-component-review, eslint-rules
[Loading personal memory] Bob's preferences and projects...
7. Profile Migration and Backup
(1) Export and Import
BASH
# Export Profile (including memory and skills)
hermes profile export bob --include-memory --include-skills
# Output: bob-profile-20260315.tar.gz
# Contains: profile.yaml + memory/ + skills/
# Import on another machine
hermes profile import bob-profile-20260315.tar.gz
(2) Synchronization
BASH
# Git sync (recommended for teams)
cd ~/.hermes
git init
git remote add origin git@github.com:team/hermes-config.git
git add profiles/ skills/
git commit -m "sync profiles"
git push
# Pull on another machine
git pull
❓ FAQ
Q What is the default Profile?
A The
default Profile, created during first hermes init. Used when no --user is specified.Q Is there a limit on Profile count?
A No limit. Each Profile is stored independently without affecting others.
Q How to achieve "partial sharing"?
A Team Profiles share skills and conventions, while personal Profiles maintain independent memory and preferences. Combine with
--team parameter.Q Does switching Profiles affect running tasks?
A No. Already running tasks continue. New conversations use the switched Profile.
Q Are API Keys in Profiles secure?
A API Keys are stored in environment variables or .env files, not in Profile YAML. Profiles only reference variable names.
Q How to delete a Profile and all its data?
A
hermes profile delete <name> --purge deletes Profile files, memory, and skills. Export backup first.📖 Summary
- Profiles are user identity cards, linked to independent memory, skills, and user models
- Multi-user isolation: memory fully isolated, skills selectively isolated
- Team Profiles: shared skills and conventions, personal preferences independent
- Three management methods: command line, in-conversation, edit YAML
- Support export/import and Git synchronization
📝 Exercises
- Basic (⭐): Create your personal Profile, set language preferences and tech stack, verify the Agent uses the correct configuration.
- Intermediate (⭐⭐): Create two Profiles (work/personal), implement automatic configuration switching for different scenarios.
- Advanced (⭐⭐⭐): Design a team Profile solution including shared skills, team conventions, and member-specific configurations for team collaboration.