📗 02 프로필과 조직 구성
목적
Hermes의 profile을 단순한 캐릭터 변경이 아니라 역할·권한·기억·세션·도구·메신저 연결이 분리된 회사 직원 단위로 사용하게 된 과정을 설명한다.
profile을 직원 단위로 선택한 이유
단테랩스 자료에서는 첫 직원의 SOUL.md를 만들고, 이후 profile을 복제해 여러 직원을 구성하는 흐름을 제시한다. 우리 서버도 이 개념을 출발점으로 삼았지만 직원 이름과 역할은 Littleducks's Company의 실제 AX 업무에 맞게 다시 설계했다.
profile 하나가 분리하는 대상은 다음과 같다.
profile
├─ config.yaml 모델·도구·실행 설정
├─ .env profile별 비밀정보
├─ SOUL.md 역할·책임·말투·금지사항
├─ profile.yaml description과 alias 정보
├─ skills/ profile 전용 절차
├─ memories/ 장기 기억
├─ state.db 세션 상태
└─ gateway service Slack 등 외부 채널 연결
다만 terminal backend가 local이므로 profile끼리 같은 Linux 사용자와 파일 시스템을 공유한다. 따라서 profile은 운영상 역할 분리에는 유효하지만 강한 보안 경계는 아니다.
구축 타임라인
| 시점 | 변화 |
|---|---|
| 2026-06-23 | default Hermes 환경 설치 |
| 2026-06-27 | 개인 비서 성격의 lipa profile 생성 |
| 2026-07-23 | 회사 전략·조정 역할의 lisa profile 생성 |
| 2026-07-24 | 회사 채용 계획서에 따라 직원 profile 9개 생성 |
| 2026-07-31 | Lisa–Frink 기술 delivery 경계와 콘텐츠 책임 구조 보강 |
| 2026-07-31 | 12개 profile 환경에 shared skills 단일 정본 연결 검증 |
2026-07-24에 거의 같은 시각으로 생성된 profile directory의 birth time과 회사 채용 기록을 대조하면 Martin부터 Smithers까지의 회사 profile이 한 작업 단위로 provisioning된 것을 확인할 수 있다.
현재 profile 구성
| profile id | 역할 | 기본 모델 | 현재 Gateway |
|---|---|---|---|
default |
시스템 기본 profile | gpt-5.6-sol-pro | stopped |
lipa |
개인 비서·운영 지원 | gpt-5.5 | running |
lisa |
전략기획·리서치·업무 배정 | gpt-5.6-sol | running |
martin |
데이터분석·수치 검증 | gpt-5.6-sol | running |
marge |
기획·운영·프로젝트 조정 | gpt-5.6-sol | running |
bart |
카피·대외 가독성 편집 | gpt-5.6-sol | running |
maggie |
디자인·브랜드 정보구조 | gpt-5.6-sol | running |
frink |
기술책임·AI 아키텍처·release | gpt-5.6-sol | running |
comicbookguy |
백엔드·플랫폼 개발 | gpt-5.6-sol | running |
database |
자동화·시스템 연동 | gpt-5.6-sol | running |
milhouse |
프론트엔드·QA | gpt-5.6-sol | stopped |
smithers |
총무·경영지원 | gpt-5.6-sol | stopped |
Gateway 상태는 2026-07-31 hermes profile list의 실제 조회값이다. Milhouse와 Smithers는 내부 profile로 유지하되 Slack 상주 인력에서 제외했다.
profile 생성 방식
현재 CLI에서 재현 가능한 기본 형태는 다음과 같다.
hermes profile create <profile-id> --clone-from default
hermes profile describe <profile-id> --text "역할 설명"
hermes profile alias <profile-id>
hermes profile show <profile-id>
우리 구성에서는 profile을 만든 뒤 다음 항목을 별도로 확정했다.
- 회사 채용 계획서의 역할과 권한을
SOUL.md에 반영한다. - Kanban과 업무 라우팅에 쓰일 간결한 description을
profile.yaml에 저장한다. - 역할별 필수 도구는 켜고 승인되지 않은 특수 도구는 끈다.
- model과 provider를 검증한다.
- 공용 skill root를 연결한다.
- 외부 채널이 필요한 직원만 Gateway를 설치한다.
- 새 세션에서 역할·금지사항·책임 경계가 실제 답변에 반영되는지 검사한다.
SOUL.md에 들어간 내용
단테랩스의 Identity / Style / Avoid / Defaults 구분은 페르소나 설계의 기초로 참고했다. 회사 profile은 여기에 업무 책임, 협업 경계, 승인 조건, 보안 기준을 더했다.
Professor Frink를 예로 들면 다음 내용을 명시한다.
- AI architecture, model selection, agent design, security와 비용 검토
- Comic Book Guy·Database·Milhouse의 구현 결과 통합
- 테스트, 보안, 회귀, 운영 준비 상태를 근거로 기술 완료 판단
- commit, push, PR, review 대응과 release 기록 책임
- 대표가 승인한 범위에서만 배포 실행
- 운영 배포를 단독 승인하지 않음
- blocker가 남아 있으면 완료로 보고하지 않음
Lisa는 반대로 사업 목적, 요구사항, 완료 조건, 우선순위와 사업 승인을 담당하고 개발 구현·Git delivery·직접 배포를 하지 않도록 경계를 뒀다. 이 구분으로 전략 승인과 기술 release 책임을 한 profile에 몰지 않았다.
profile description의 역할
SOUL.md는 해당 직원이 어떻게 행동할지를 정하고, profile description은 어떤 업무를 그 직원에게 배정할지 결정하는 짧은 라우팅 정보다.
예를 들면 현재 description은 다음처럼 역할을 구분한다.
- Lisa: 기술 트렌드·시장 분석과 업무 분류, 기술 delivery는 Frink에게 위임
- Frink: AI 기술·아키텍처 글과 기술 통합·release
- Comic Book Guy: API·backend·DB·인증·권한·로그·복구
- Database: 업무 자동화와 외부 시스템 연동
- Milhouse: 사용자 화면·접근성·테스트·품질관리
- Bart: 대외 글 구성과 가독성
- Martin: 중요한 수치·계산·가격·성과 검증
profile을 만들기만 하고 description을 비워두면 멀티 에이전트 배정 시 역할을 안정적으로 구분하기 어렵다.
model과 공통 설정
현재 회사 profile의 공통 기반은 다음과 같다.
provider: openai-codex
terminal.backend: local
approvals.mode: manual
security.redact_secrets: true
memory.memory_enabled: true
skills.external_dirs:
- /home/littleduck/.hermes/shared-skills
default는 고연산 gpt-5.6-sol-pro를 사용하지만 일반 직원은 gpt-5.6-sol로 맞췄다. 이는 모든 작업을 최고 연산 모델로 처리하기보다 일반 실행과 기준 profile을 구분한 구성이다.
skill 구조
공용 절차를 각 직원 폴더에 복사하면 버전이 갈라진다. 이를 피하기 위해 회사 공용 skill은 다음 단일 정본에 둔다.
/home/littleduck/.hermes/shared-skills/<skill-name>/
profile 전용 skill만 다음 위치에 둔다.
/home/littleduck/.hermes/profiles/<profile-id>/skills/
모든 profile이 공용 root를 추가 검색하지만 같은 이름의 local skill이 있으면 local copy가 우선한다. 따라서 공용 skill과 같은 이름의 profile-local copy를 만들지 않는 것이 원칙이다.
profile 선택과 실행
hermes -p frink
frink
hermes profile use frink
hermes profile show frink
-p <id>: 해당 호출에서 profile 지정- alias:
frink,lisa처럼 profile별 wrapper 실행 profile use: 기본 profile을 고정profile show: model, path, Gateway, SOUL과 alias 존재 확인
현재 Dashboard는 machine-level unified server이므로 named profile에서 실행해도 기본적으로 하나의 Dashboard에 연결되고 선택한 profile만 바뀐다. 별도 server가 필요할 때만 --isolated를 사용한다.
검증 방식
profile 구성 완료는 파일 존재만으로 판단하지 않았다.
1. profile show로 path·model·Gateway·SOUL 확인
2. profile describe로 routing description read-back
3. config get으로 provider·model·security·memory 확인
4. skills list 또는 skill_view로 공용 skill 로딩 확인
5. 새 profile session에서 역할 질문 실행
6. 금지된 업무나 역할 경계 질문으로 행동 검증
7. 외부 채널 대상 profile은 Gateway와 Slack 응답 확인
새 세션 검증이 중요한 이유는 이미 시작된 session에는 이전 SOUL.md가 주입되어 있을 수 있기 때문이다.
사실과 해석
사실
- 현재 default 포함 12개 profile 환경이 존재한다.
- 각 named profile에는 독립된 path, config,
.env, SOUL, memory와 session DB가 있다. - 12개 환경 모두 shared skills root를 검색한다.
- 회사 profile 대부분은 OpenAI Codex의
gpt-5.6-sol을 사용한다. - 9개 profile Gateway가 running이며 3개는 stopped다.
해석
역할별 profile은 한 명의 범용 agent에게 모든 책임을 주는 것보다 업무 배정과 결과 검증에 유리하다. 그러나 profile 수가 늘수록 credential, Gateway, skill version과 역할 중복을 관리해야 한다. 직원 수를 늘리는 것 자체가 성과가 아니며 실제 반복 업무와 완료 기준이 있는 역할만 상주시키는 편이 낫다.
결정사항
- profile id는 영문 소문자를 사용한다.
- 직원별 역할 정본은
SOUL.md, 업무 라우팅 요약은 description에 둔다. - 공용 skill은 shared root의 단일 정본으로 관리한다.
- profile별 model·도구·Gateway는 역할과 실제 수요를 기준으로 설정한다.
- 외부 작업과 비가역 변경에는 승인 경계를 명시한다.
- profile 생성 후 새 session에서 역할과 금지사항을 검증한다.
미결정 사항
- 고객별 profile을 같은 VM에 둘 수 있는 보안등급의 한계
- profile별 예산·사용량 상한과 model fallback 정책
- Milhouse와 Smithers의 Slack 상주 전환 조건
- 정기 profile drift 점검 주기
다음 담당자
- 조직·요구사항·채용 승인: Lisa·대표
- 기술 profile 통합·검증: Professor Frink
- role별 구현·운영: 각 전문 profile
출처
- 단테랩스, 「헤르메스 첫 직원 Sophie 페르소나(SOUL.md) 만들기」: https://dante-labs.com/blog/hermes-persona-soul
- 단테랩스, 「헤르메스 멀티 프로필 가이드」: https://dante-labs.com/blog/hermes-multi-profile
- Hermes Agent 공식 문서: https://hermes-agent.nousresearch.com/docs/
- 서버 검증:
hermes profile list,hermes profile show,hermes profile describe,hermes config get, profile directory birth time - 회사 기준:
/home/littleduck/.hermes/company/02-조직과-프로필.md - 확인일: 2026-07-31