본문으로 건너뛰기

Profiles: 여러 Agent 실행

같은 machine에서 여러 개의 독립적인 Hermes agent를 실행할 수 있습니다. 각 profile은 자신만의 config, API keys, memory, sessions, skills, gateway state를 가집니다.

Profile이란?

profile은 별도의 Hermes home directory입니다. 각 profile directory에는 해당 profile만의 config.yaml, .env, SOUL.md, memories, sessions, skills, cron jobs, state database가 들어갑니다. profile을 사용하면 coding assistant, personal bot, research agent처럼 목적이 다른 agent를 Hermes state가 섞이지 않게 운영할 수 있습니다.

profile을 만들면 해당 profile은 자동으로 자기 command가 됩니다. 예를 들어 coder라는 profile을 만들면 곧바로 coder chat, coder setup, coder gateway start 등을 사용할 수 있습니다.

Quick start

hermes profile create coder       # profile과 "coder" command alias 생성
coder setup # API keys와 model 설정
coder chat # 채팅 시작

이제 coder는 자신의 config, memory, state를 가진 독립 Hermes profile입니다.

Profile 만들기

빈 profile

hermes profile create mybot

bundled skills가 seed된 새 profile을 만듭니다. API keys, model, gateway tokens를 설정하려면 mybot setup을 실행하세요.

Config만 clone(--clone)

hermes profile create work --clone

현재 profile의 config.yaml, .env, SOUL.md를 새 profile로 복사합니다. API keys와 model은 같지만 sessions와 memory는 새로 시작합니다. 다른 API keys를 쓰려면 ~/.hermes/profiles/work/.env를, 다른 personality를 쓰려면 ~/.hermes/profiles/work/SOUL.md를 수정하세요.

전부 clone(--clone-all)

hermes profile create backup --clone-all

config, API keys, personality, 모든 memories, 전체 session history, skills, cron jobs, plugins까지 전부 복사합니다. 완전한 snapshot입니다. backup을 만들거나 이미 context를 가진 agent를 fork할 때 유용합니다.

특정 profile에서 clone

hermes profile create work --clone --clone-from coder
Honcho memory + profiles

Honcho가 활성화되어 있으면 --clone은 같은 user workspace를 공유하면서 새 profile 전용 AI peer를 자동으로 만듭니다. 각 profile은 자기 관찰과 정체성을 따로 쌓습니다. 자세한 내용은 Honcho - Multi-agent / Profiles를 참고하세요.

Profile 사용

Command aliases

모든 profile은 ~/.local/bin/<name>에 command alias를 자동으로 받습니다.

coder chat                    # coder agent와 채팅
coder setup # coder 설정
coder gateway start # coder gateway 시작
coder doctor # coder 상태 점검
coder skills list # coder skills 목록
coder config set model.default anthropic/claude-sonnet-4

alias는 모든 hermes subcommand와 함께 동작합니다. 내부적으로는 hermes -p <name>을 호출하는 wrapper입니다.

-p flag

어떤 명령에서도 profile을 명시할 수 있습니다.

hermes -p coder chat
hermes --profile=coder doctor
hermes chat -p coder -q "hello" # 어떤 위치에 놓아도 동작

Sticky default(hermes profile use)

hermes profile use coder
hermes chat # 이제 coder를 대상으로 실행
hermes tools # coder의 tools 설정
hermes profile use default # 다시 기본 profile로 전환

plain hermes 명령이 대상으로 삼을 기본 profile을 설정합니다. kubectl config use-context와 비슷합니다.

현재 위치 확인

CLI는 활성 profile을 항상 표시합니다.

  • Prompt: 기본 prompt 대신 coder가 표시됩니다.
  • Banner: 시작 시 Profile: coder를 표시합니다.
  • hermes profile: 현재 profile name, path, model, gateway status를 표시합니다.

Profiles vs workspaces vs sandboxing

Profiles는 workspace나 sandbox와 혼동되기 쉽지만 서로 다릅니다.

  • profile은 Hermes state directory를 분리합니다. config.yaml, .env, SOUL.md, sessions, memory, logs, cron jobs, gateway state가 해당됩니다.
  • workspace 또는 working directory는 terminal command가 시작되는 위치입니다. 이는 terminal.cwd로 별도 제어합니다.
  • sandbox는 filesystem access를 제한하는 장치입니다. profile은 agent를 sandbox하지 않습니다.

기본 local terminal backend에서는 agent가 여전히 사용자 계정과 같은 filesystem access를 가집니다. profile directory 밖의 folder에 접근하지 못하게 막아 주지는 않습니다.

특정 project folder에서 profile이 시작되게 하려면 해당 profile의 config.yaml에 absolute terminal.cwd를 명시하세요.

terminal:
backend: local
cwd: /absolute/path/to/project

local backend에서 cwd: "."는 "profile directory"가 아니라 "Hermes를 실행한 directory"를 뜻합니다.

추가로 기억할 점:

  • SOUL.md는 model을 안내할 수 있지만 workspace boundary를 강제하지 않습니다.
  • SOUL.md 변경은 새 session에서 가장 깔끔하게 적용됩니다. 기존 session은 이전 prompt state를 계속 쓸 수 있습니다.
  • model에게 "지금 어느 directory에 있나요?"라고 묻는 것은 isolation test로 신뢰할 수 없습니다. tools의 시작 directory가 예측 가능해야 한다면 terminal.cwd를 명시하세요.

Gateway 실행

각 profile은 별도 process와 별도 bot token으로 자신의 gateway를 실행합니다.

coder gateway start           # coder gateway 시작
assistant gateway start # assistant gateway 시작(별도 process)

다른 bot token 사용

각 profile에는 자신의 .env 파일이 있습니다. Telegram/Discord/Slack bot token을 profile마다 다르게 설정하세요.

# coder token 수정
nano ~/.hermes/profiles/coder/.env

# assistant token 수정
nano ~/.hermes/profiles/assistant/.env

Safety: token locks

두 profile이 실수로 같은 bot token을 쓰면, 두 번째 gateway는 충돌하는 profile 이름을 명확히 표시하며 차단됩니다. Telegram, Discord, Slack, WhatsApp, Signal에서 지원됩니다.

Persistent services

coder gateway install         # hermes-gateway-coder systemd/launchd service 생성
assistant gateway install # hermes-gateway-assistant service 생성

profile마다 별도 service name을 가지며 독립적으로 실행됩니다.

Profile 설정

각 profile은 다음 파일을 따로 가집니다.

  • config.yaml - model, provider, toolsets, 모든 settings
  • .env - API keys, bot tokens
  • SOUL.md - personality와 instructions
coder config set model.default anthropic/claude-sonnet-4
echo "You are a focused coding assistant." > ~/.hermes/profiles/coder/SOUL.md

이 profile이 기본적으로 특정 project에서 작업해야 한다면, profile 전용 terminal.cwd도 설정하세요.

coder config set terminal.cwd /absolute/path/to/project

업데이트

hermes update는 code를 한 번만 pull하고(shared), 새 bundled skills를 모든 profile에 자동으로 sync합니다.

hermes update
# Code updated (12 commits)
# Skills synced: default (up to date), coder (+2 new), assistant (+2 new)

사용자가 수정한 skill은 덮어쓰지 않습니다.

Profile 관리

hermes profile list                 # 모든 profile과 상태 표시
hermes profile show coder # 특정 profile 상세 정보
hermes profile rename coder dev-bot # rename(alias + service도 갱신)
hermes profile export coder # coder.tar.gz로 export
hermes profile import coder.tar.gz # archive에서 import

Profile 삭제

hermes profile delete coder

gateway를 중지하고, systemd/launchd service와 command alias를 제거한 뒤 모든 profile data를 삭제합니다. 확인을 위해 profile name을 직접 입력해야 합니다.

확인을 건너뛰려면 --yes를 붙입니다: hermes profile delete coder --yes

노트

기본 profile(~/.hermes)은 삭제할 수 없습니다. 전부 제거하려면 hermes uninstall을 사용하세요.

Tab completion

# Bash
eval "$(hermes completion bash)"

# Zsh
eval "$(hermes completion zsh)"

지속적으로 사용하려면 이 줄을 ~/.bashrc 또는 ~/.zshrc에 추가하세요. -p 뒤의 profile name, profile subcommands, top-level commands를 자동완성합니다.

동작 방식

Profiles는 HERMES_HOME 환경변수를 사용합니다. coder chat을 실행하면 wrapper script가 hermes를 시작하기 전에 HERMES_HOME=~/.hermes/profiles/coder를 설정합니다. codebase의 많은 파일이 get_hermes_home()을 통해 path를 resolve하므로 config, sessions, memory, skills, state database, gateway PID, logs, cron jobs가 profile directory로 자동 scope됩니다.

이는 terminal working directory와 별개입니다. Tool execution은 terminal.cwd에서 시작하며, local backend에서 cwd: "."인 경우 Hermes를 실행한 directory에서 시작합니다. HERMES_HOME에서 자동으로 시작하지 않습니다.

기본 profile은 ~/.hermes 자체입니다. migration은 필요 없으며 기존 설치는 그대로 동작합니다.

Profile을 distribution으로 공유

한 machine에서 만든 profile을 git repository로 package해 다른 machine에 한 명령으로 설치할 수 있습니다. 자신의 workstation, 동료 laptop, community user 환경 모두 가능합니다. 공유 package에는 SOUL, config, skills, cron jobs, MCP connections가 포함됩니다. credentials, memories, sessions는 machine별로 유지됩니다.

# git repo에서 전체 agent 설치
hermes profile install github.com/you/research-bot --alias

# author가 새 version을 배포했을 때 업데이트(.env와 memories 유지)
hermes profile update research-bot

전체 guide는 **Profile Distributions: 전체 agent 공유**를 참고하세요. authoring, publishing, update semantics, security model, use cases를 다룹니다.