헤르메스 /goal 자율 목표 루프 가이드
직원에게 일을 시키면 곧잘 해냅니다. 문제는 그다음이에요. "다 했습니다"라는 보고가 올라왔을 때, 그게 진짜 기준대로 끝난 건지 누가 확인할까요. 지금까지는 사람이 일일이 열어서 확인했습니다. 이번 가이드에서는 그 확인까지 맡겨버립니다. 목표를 주면 심판 모델이 매 턴 검사하고, 미달이면 알아서 다시 하는 자율 목표 루프, /goal입니다.
마지막에는 디자이너 Mia에게 디자인 스킬과 Canva 연결을 달아주고, MAGMA 브랜드 디자인 시스템을 통째로 위임해 Canva 프레젠테이션 발행까지 완주시킵니다.
💡 사전 요구사항: 헤르메스 멀티 프로필 가이드에서 MAGMA 팀(Mia 포함)을 채용해 두셔야 합니다. MCP가 처음이라면 헤르메스 MCP 가이드를 먼저 보시는 걸 권합니다.
## 잠깐, 이 기능의 역사
이 방식에는 재밌는 계보가 있습니다. 2025년 5월에 Geoffrey Huntley라는 개발자가 아주 단순한 기법을 공개했어요. 에이전트에게 같은 지시를 무한 반복으로 던지는 셸 루프입니다. 끝났는지 보고, 안 끝났으면 또 던지고요. 심슨 가족의 단순하지만 끈질긴 캐릭터 이름을 따서 Ralph Wiggum 기법이라고 불렀습니다. 그해 말 커뮤니티에 폭발적으로 퍼졌고, 2026년에는 제품들이 이를 내장하기 시작했어요. Claude Code에 플러그인과 내장 명령으로 들어왔고, 2026년 4월에는 OpenAI Codex CLI가 /goal이라는 공식 명령으로 채택했습니다. 내부 이름이 그대로 Ralph Loop예요. 헤르메스의 /goal도 같은 이름, 같은 철학의 기능입니다.
동작 원리의 핵심은 단순 반복이 아니라 피드백입니다. 목표를 걸면 매 턴이 끝날 때마다 작은 심판(judge)이 점검하는데, 합격 여부만 내는 게 아니라 무엇이 부족한지를 한 줄로 적어줍니다. 그리고 그 지적이 다음 턴 입력으로 그대로 전달돼요. 에이전트는 그걸 보고 부족한 부분을 채웁니다. 그러니까 같은 일을 다시 시키는 재시도가 아니라, 매 턴 피드백을 받고 고쳐가며 수렴하는 자율 개선입니다.
💡 judge 모델은 따로 설정하지 않으면 여러분의 메인 모델이 그 판정을 겸합니다. 그래서 별도 설치 없이 바로 작동해요. 매 턴 도는 호출이라 비용을 아끼고 싶으면, 설정에서
auxiliary.goal_judge.model에 더 싸고 빠른 모델을 지정해 judge 전용으로 뺄 수 있습니다(선택 사항).
예를 들어 사계절 시를 한 턴에 한 계절씩만 쓰라고 목표를 걸면, judge가 "봄만 했다"고 짚어 다음 턴에 여름을 채우고, 또 "여름만 했다"고 짚어 가을을 채우는 식으로 한 칸씩 완성해 갑니다. 사람이 옆에서 다음 단계를 알려주지 않아도 이 피드백 고리가 알아서 굴러갑니다. 기본 스무 턴 예산 안에서 돌고, judge가 판단을 못 하면 진행하는 쪽으로 열려 있습니다.
> 💡 그래서 명확한 목표와 성공 기준이 출발점입니다. judge는 여러분이 적은 목표 문구를 기준으로 피드백을 만들기 때문에, 목표가 또렷할수록 피드백도 또렷하고 개선도 정확해집니다. 반대로 문구가 모호하면 판정도 피드백도 모호해집니다.
1단계. 일반 요청과 /goal, 직접 비교해 보기
먼저 Mia 세션에 들어갑니다.
hermes -p mia chat
같은 일을 두 방식으로 시켜봅니다. 먼저 일반 메시지로 보내 보세요.
MAGMA 브랜드 디자인 시스템 v1의 핵심을 요약해줘. 컬러 팔레트, 타이포그래피, 로고 사용 규칙을 포함해줘.
꽤 잘 해냅니다. 일반 요청이 부족해서 /goal을 쓰는 게 아니에요. 차이는 끝나는 방식과 고치는 방식에 있습니다. 방금 그 일은 한 번 하고 "완료했습니다" 보고로 끝났고, 기준이 다 들어갔는지는 아무도 검사하지 않았어요. 이번엔 같은 일을 /goal로 겁니다.
/goal MAGMA 브랜드 디자인 시스템 v1의 핵심을 요약하라. 컬러 팔레트, 타이포그래피, 로고 사용 규칙을 포함한다
이렇게 보이면 성공입니다.
⊙ Goal set (20-turn budget): MAGMA 브랜드 디자인 시스템 v1의 핵심을 요약하라. …
After each turn, a judge model will check if the goal is done. …
작업이 끝나면 judge의 판정이 따라 붙습니다.
✓ Goal achieved: 응답이 컬러 팔레트, 타이포그래피, 로고 사용 규칙을 포함해 …
같은 직원, 같은 실력인데 하나는 한 번 하고 보고로 끝나고, 하나는 매 턴 검사받고 부족하면 고치기를 반복하다 검증으로 끝납니다. 이게 /goal의 본질이에요.
💡 judge는 생각보다 깐깐합니다. 실측에서 직원이 "다 했습니다"라고 말만 하고 산출물을 안 보여주자, judge가 증거가 없다며 반려하고 계속 돌렸습니다. 보고만 잘하는 직원은 안 통합니다.
⚠️ 대신 judge의 기준은 여러분이 적은 목표 문구입니다. 실측에서 "홈 디렉터리에 정본 문서를 만들어라"라고 모호하게 적었더니, 엉뚱한 폴더에 만들어도 통과됐습니다. 경로와 기준은 구체적으로 적어주세요.
## 2단계. 디자인 스킬 달기 (보안 스캔을 거쳐 설치)
자율 위임 실습에서 Mia가 디자인 작업을 더 잘하도록 디자인 시스템 스킬을 하나 달아줍니다. skills.sh에서 "디자인 시스템"을 검색하면 여러 스킬이 나오는데, 안전하고 검증된 것을 고르는 게 좋습니다. 여기서는 Claude를 만든 Anthropic이 제공하는 design-system 스킬을 설치합니다.
마켓플레이스가 안내하는 설치 명령은 npx로 바로 받는 형태인데, 우리는 그대로 쓰지 않고 헤르메스 설치 명령으로 바꿔서 넣습니다. 그래야 헤르메스의 보안 스캔을 거쳐 안전한지 확인하고 설치할 수 있어요.
hermes -p mia skills install skills-sh/anthropics/knowledge-work-plugins/design-system
실행하면 보안 스캔이 돌고, 문제가 없으면 설치할지 묻습니다. y를 입력해 설치하세요. MCP 편에서 봤던 그 보안 스캔이에요. 만약 위험이 발견되면 여기서 막히는데, 강제로 설치하는 옵션이 있어도 쓰지 않는 게 안전합니다.
설치되면 확인합니다.
hermes -p mia skills list
맨 위에 design-system 스킬이 보이면 성공입니다.
3단계. Canva MCP 연결 (대시보드에서 로컬 stdio 방식)
산출물을 올릴 Canva를 MCP로 붙입니다. 지난 MCP 편에서 Bright Data를 붙이던 그 방식 그대로, 대시보드 폼에서 로컬(stdio) 방식으로 추가합니다.
먼저 Canva의 MCP 설치 정보를 확인합니다. 구글에 "캔바 MCP"로 검색하면 Canva의 MCP 서버 안내 페이지가 나오고, 로컬 방식의 npx 명령을 알려줍니다. 우리가 폼에 넣을 값은 이것입니다.
- command:
npx - args:
-y @canva/cli@latest mcp
이제 Mia 대시보드를 띄웁니다. 반드시 mia로 띄워야 Canva가 mia에게 설치됩니다.
hermes -p mia dashboard
브라우저에서 대시보드가 열리면 상단 프로필이 mia(active)인지 확인하고, 사이드패널의 MCP 탭에서 Add Server를 누릅니다. 폼을 이렇게 채웁니다.
- 이름: canva
- 방식: stdio (기본값이 HTTP나 SSE라면 stdio로 바꿔주세요)
- command: npx
- args: -y @canva/cli@latest mcp
💡 Canva 페이지의 설정은 JSON 표기라 따옴표와 콤마가 붙어 있습니다. 폼에는 그것들을 빼고 인자 세 개를 한 칸씩 띄워 적으면 됩니다.
저장하면 항목이 추가됩니다. 이제 그 항목의 번개 모양 버튼을 눌러 활성화하세요. 그러면 Canva 인증이 시작되고, 브라우저에 권한 승인 창이 뜹니다. 허용을 누르면 인증이 끝납니다. Canva는 고정 키가 아니라 여러분 계정으로 로그인해 권한을 승인하는 OAuth 방식이에요.
승인 뒤 다시 보면 Canva 도구들이 들어와 있습니다. 디자인 생성, 페이지 가져오기, 내보내기 같은 도구가 보이면 성공입니다.
⚠️ 대시보드를 띄운 주인이 mia가 맞는지 꼭 확인하세요. 상단 프로필이 active는 mia인데 괄호에 다른 이름이 붙어 있으면, 설치가 그 프로필에게 갑니다. 그럴 때는
hermes -p mia dashboard로 대시보드를 다시 띄우고 새로 고침한 뒤 Add Server를 진행하세요. MCP 편에서 본 그 함정입니다.
💡 발급된 인증은 프로필별로 저장됩니다. 다른 프로필에서 Canva를 쓰려면 그 프로필 대시보드에서 다시 번개 버튼으로 인증해야 합니다.
스킬과 MCP를 설치했으니 게이트웨이를 재시작해 반영합니다. 대시보드의 재시작 버튼을 누르거나 터미널에서 실행하세요.
hermes -p mia gateway restart
4단계. 완전 자율 위임 — 여러 장으로 쪼개 던지기
장비를 다 달았으니 진짜 위임입니다. 여기서 핵심은 산출물을 여러 장으로 쪼개고 "한 턴에 하나씩"을 강제하는 것입니다. 그래야 judge가 매 턴 "아직 덜 됐다"고 짚으며 자율 개선 루프가 눈에 보입니다.
```bash
hermes -p mia chat
```text
/goal ~/.hermes/profiles/mia/DESIGN.md를 기준으로 MAGMA 디자인 시스템 자료를 여러 장으로 나눠 만든다. 반드시 한 턴에 한 장씩만 만들고, 한 턴에 두 장 이상 만들지 마라. 1장 컬러 토큰 13개를 hex와 색 견본으로, 2장 타이포 위계 4단계를 실제 크기로, 3장 UI 컴포넌트 4종(버튼 카드 뱃지 입력필드)을. 각 장을 HTML로 만들고 크롬 헤드리스로 PNG로 변환해 Canva 슬라이드에 그 PNG를 전체 화면으로 삽입한다. Canva가 자동 생성한 콘텐츠가 아니라 우리 PNG가 각 슬라이드를 채워야 한다. 세 장 모두 우리 PNG가 삽입돼야 완료다
💡 경로를 그대로 적은 이유가 있습니다.
~/.hermes/profiles/mia/DESIGN.md는 Mia 프로필 폴더 안에 있는 우리 시드 파일이에요. 그냥 "홈의 DESIGN.md"라고만 적으면 Mia는 프로필 폴더가 아니라 운영체제 홈 폴더를 보게 돼서, 우리가 넣어둔 시드가 아니라 엉뚱한 파일을 집을 수 있습니다. 프로필 폴더는 에이전트의 홈이 아니라서 그래요. 그러니 기준 파일을 가리킬 때는 이렇게 프로필 폴더 경로를 그대로 적어주세요.
한 장을 만들 때마다 judge가 나머지를 확인하고 다음 장으로 넘깁니다.
↻ Continuing toward goal (1/20): 1번 파일만 생성되었고 2번·3번은 아직 존재하지 않아 목표가 충족되지 않았다.
↻ Continuing toward goal (2/20): 3번 ds-3-components.html 파일이 아직 존재하지 않는다.
✓ Goal achieved: 세 번째 파일을 생성했고 세 파일이 모두 존재한다고 검증해 완료를 확인했습니다.
judge가 "1장만 됐고 나머지 없다"고 짚으면, Mia가 그걸 보고 다음 장을 채웁니다. 여러분이 "다음은 타이포"라고 지시하지 않아도 이 피드백 고리가 알아서 굴러갑니다.
💡 왜 쪼개느냐가 중요합니다. 한 장(한 파일)에 다 만들라고 하면 요즘 모델은 한 턴 안에서 스스로 점검하며 다 끝내버려서 루프가 안 보입니다. 산출물을 여러 장으로 나누고 "한 턴에 하나"를 걸어야 judge가 매 턴 진행을 확인하는 모습이 또렷이 드러납니다.
💡 산출물 품질의 비결입니다. 이건 Canva에게 알아서 만들라고 맡기는 게 아니라, DESIGN.md 토큰을 그대로 박은 HTML을 만들고 그걸 이미지로 변환해 올리는 방식입니다. 그래서 브랜드 색과 글자 위계가 정확히 지켜집니다. 자동 생성에 맡기면 이만큼 정밀하게 나오지 않습니다.
5단계. 돌던 루프에 개입하기
자율로 돈다고 손을 놓는 게 아닙니다. 돌던 중에 합격 기준을 더 얹을 수 있어요.
/subgoal 모든 슬라이드는 DESIGN.md의 브랜드 토큰을 따른다
✓ Added subgoal 1: 모든 슬라이드는 DESIGN.md의 브랜드 토큰을 따른다
기준 없이 /subgoal만 입력하면 현재 목표와 기준 목록이 나옵니다.
⊙ Goal (active, 3/20 turns, 1 subgoal): MAGMA 브랜드 디자인 시스템 v1을 완성하라. …
- 1. 모든 슬라이드는 DESIGN.md의 브랜드 토큰을 따른다
이제 judge는 원래 목표에 이 기준까지 전부 충족돼야 완료로 판정합니다. 기준을 빼려면 /subgoal remove에 번호를, 전부 지우려면 /subgoal clear를 씁니다. 상태 확인과 일시정지는 이렇게요.
/goal status
/goal pause
⏸ Goal paused: MAGMA 브랜드 디자인 시스템 v1을 완성하라. …
⚠️ 멈추라고 해도 지금 돌고 있던 턴은 마저 끝내고 멈춥니다. 즉시 중단이 아니라 "이번 턴까지만 하고 쉬는" 방식이에요. 다시 돌리려면
/goal resume, 목표를 내리려면/goal clear입니다. 슬랙 같은 게이트웨이에서는 새 목표를 걸기 전에 stop으로 돌던 걸 먼저 세워주세요.
6단계. 산출물 확인
세 장이 모두 들어가면 judge의 확인과 함께 끝납니다.
✓ Goal achieved: 세 번째 파일을 생성했고 세 파일이 모두 존재한다고 검증해 완료를 확인했습니다.
Mia가 보고한 Canva 링크를 브라우저로 열면, DESIGN.md 토큰을 그대로 따른 디자인 시스템 자료가 한 장씩 들어가 있습니다. 브랜드 색과 글자 위계가 정확히 지켜진 것을 확인해 보세요. 여러분은 목표와 기준만 적었고, 장을 나눈 것도 이미지로 만든 것도 검사한 것도 Mia와 judge가 했습니다.
⚠️ Canva 업로드 함정: 로컬 PNG 파일을 Canva에 곧바로 올리면
invalid_file로 거부될 수 있습니다. 이럴 때는 이미지를 공개 주소(URL)로 먼저 올린 뒤 Canva에 넣어야 합니다. Mia는 이 경로를 자동으로 처리하지만, 직접 업로드가 안 될 때 당황하지 마시고 "공개 URL로 올린 뒤 Canva에 추가"를 떠올리세요.
/goal을 쓸 때와 안 쓸 때
| 맞는 일 | 안 맞는 일 |
|---|---|
| 완료 기준을 글로 적을 수 있는 다단계 작업 | 한 턴이면 끝나는 단순 요청 |
| 산출물이 검증 가능한 일(문서, 발행물, 테스트) | 기준이 모호한 탐색이나 아이디어 회의 |
| 자리를 비우는 동안 완주시켜야 하는 일 | 중간마다 사람 판단이 필요한 결정 |
| 보고만으로 못 믿어서 검사가 필요한 일 | 외부 부작용이 큰 작업(judge가 위험을 못 거릅니다) |
## 자주 만나는 문제
Canva 도구 호출에서 "MCP server canva is not connected"가 나옵니다.Canva가 활성화되지 않은 경우입니다. 대시보드 MCP 탭에서 canva 항목의 번개 버튼을 눌러 도구 리스트가 떠 있는지, 그리고 그 대시보드의 주인이 mia가 맞는지 확인하세요. 설치 뒤 게이트웨이를 재시작했는지도 보고, 세션을 새로 여세요.
번개 버튼을 눌렀는데 Canva 인증이 끝나지 않습니다.번개 버튼을 누르면 브라우저에 Canva 권한 승인 창이 뜹니다. 이 창에서 시간이 지나면 인증이 실패할 수 있으니, 창이 뜨면 바로 허용을 눌러주세요. 승인 창이 안 보이면 팝업 차단 설정을 확인하고, 원격 서버라 브라우저가 안 열리는 환경이면 터미널에 출력된 주소를 다른 브라우저에서 열어 승인하세요.
/goal을 입력했는데 Goal set이 안 뜨고 그냥 일반 답변이 옵니다.세션이 켜지는 중에 입력하면 슬래시 명령이 일반 글자로 처리될 수 있습니다. 입력 프롬프트가 완전히 표시된 뒤에 입력해 주세요. /goal status를 쳤을 때 "No active goal"이 나오면 등록이 안 된 겁니다.
judge 판정 사유가 영어로 나옵니다.정상입니다. judge 판정 사유는 한국어와 영어가 섞여 나올 수 있습니다. 판정 자체에는 영향이 없습니다.
스무 턴을 다 써도 못 끝냈습니다.목표가 너무 크거나 기준이 너무 많은 경우입니다. 목표를 쪼개서 다시 걸거나, /subgoal clear로 기준을 줄여 보세요.
Canva 자동 생성 품질이 마음에 안 들어 그 도구를 꺼버리고 싶습니다.끄지 마세요. Canva 연결에는 빈 디자인을 새로 만드는 전용 도구가 따로 없어서, 디자인을 만드는 입구가 자동 생성 도구 하나뿐입니다. 이걸 비활성화하면 HTML을 이미지로 바꿔 올리는 경로 자체가 끊어집니다. 품질은 도구를 막아서가 아니라 목표 문구의 완료 조건으로 잡습니다. 4단계 목표에 "우리 PNG가 각 슬라이드를 채워야 완료다"가 들어 있어서, 자동 생성으로 만든 빈 틀만으로는 judge가 통과시키지 않고 우리가 만든 이미지가 채워질 때까지 돕니다.
마무리
오늘 여러분은 일을 시키고 검사하는 사람에서, 목표와 합격 기준을 설계하는 사람이 됐습니다. 한 직원에게 걸던 이 자율 루프는 나중에 칸반 보드에서 직원마다 하나씩 걸리게 됩니다. 다음 시간에는 조사 거리가 한꺼번에 쏟아질 때 임시 일손을 여럿 띄워 병렬로 처리하는 delegate_task를 알아봅니다.

