Goal 잘 쓰는법

업무의 판단을 LLM 에게 위임하는 방법

2026.07.09 | 조회 444 |
0
|

Goal 이란?

첨부 이미지

예전에 Team Attention 의 정구봉님과 함께 Naver D2SF 행사에서 모든 에이전트 하네스는 Goal 로 수렴할 것 이다. 라고 다같이 점심을 먹으며 이야기를 했었는데요. 이제는 모든 에이전트 하네스에는 Goal 이라는 기능이 존재합니다.

Goal 이란 기능은 왜 갑자기 등장했고 무슨 의도로 등장하게 된걸까요? 오늘은 Goal 에 대한 이야기를 조금 해보려고 합니다.

루프 엔지니어링(loop engineering)

Goal 에 대해서 이야기 하기전에 최근 핫한 루프 엔지니어링에 대해서 한번 이야기 해봐야 합니다. 루프 엔지니어링에서 루프(loop)에이전트가 어떠한 작업을 목표에 도달할 때 까지 반복하는 과정 이라고 이해하는게 좋습니다.

이를 이해하기 위해서는 우리가 기존에 클로드 코드 또는 코덱스를 사용했을때 어떻게 사용했는지를 다시 되짚어 봐야 합니다. 우리는 흔히 암묵지라 불리는 우리 머릿속에 있는 목표를 생각하며 클로드 코드와 코덱스에게 작업을 해달라고 명령을 하게 됩니다.

첨부 이미지

예를 들어, 우리가 "클로드 코드 느낌의 싸이트를 만들어줘" 라고 클로드에게 명령했다고 해봅시다. 근데 결과물을 보니 색감이 클로드 색감이 아니여서 다시 클로드 코드에게 이렇게 명령합니다. "아니 클로드 코드의 색감을 먼져 파악하고 작업해야지. 이거 색감이 너무나 다르잖아"

즉, 잘못된 결과가 있을때 우리가 프롬프트 입력을 통해 항상 재개(Resume) 해야만 작업이 다시 시작됬습니다. 이때까지는 루프(loop) 를 재개하는 역할을 사람이 하고 있었던 것 이죠.

이걸 보통 HITL(human-in-the-loop) 라고 부릅니다. 즉, 사람이 반복되는 루프 안에 계속해서 감독관처럼 들어가 있었던 것 이죠.

루프를 디자인 해라(Design a loop)

우리가 이 반복되는 루프 안에서 나오려면 어떻게 해야할까요? 우리가 입력해야 하는 프롬프트를 우리가 스스로 입력하는 것이 아닌 에이전트가 루프를 재개하는 프롬프트를 입력하게 만드는 구조를 설계(Design) 해야 합니다.

이게 바로 최근에 클로드 코드의 제작자인 보리스(Boris cherny) 가 말했던 문장과 같은 의미이죠.

Boris cherny - 클로드 코드 제작자
Boris cherny - 클로드 코드 제작자

I don't prompt claude anymore i write loops

즉, 기존에 목표에 도달하기 위해 사람이 프롬프트를 반복적으로 입력했다면 무언가 잘못됬다고 말 하는 겁니다. 

그렇다면 이 루프는 어떻게 설계해야 할까요? 어떻게 해야 에이전트가 사람 대신 루프를 재개시키는 프롬프트를 입력하게 만들 수 있는 것 일까요?

명확한 목표를 설정해라

사실 이전에 잘 만들어진 하니스(Harness) 들은 이미 루프 엔지니어링 기법을 이용하고 있었습니다. 여러분의 머릿속에 있는 암묵지를 목표화 하고, 이 목표를 에이전트가 도달할 때 까지 고삐를 채워 목표에 도달하게 합니다. 여러분이 많이 사용하시던 OmO(oh-my-opencode), OmX(oh-my-codex), Ouroboros 와 같은 도구들이죠.

첨부 이미지

즉, 여러분은 루프를 잘 설계하기 위해서는 반복되는 과정을 종료하기 위한 목표를 설계하셔야 합니다. 아까의 "클로드 코드 느낌의 웹싸이트를 만들어줘" 라는 프롬프트를 목표(Goal) 로 만드려면 우리는 어떻게 프롬프트를 입력하는게 좋을까요?

/goal 클로드 코드 느낌의 웹싸이트를 만들어줘. 목표는 아래와 같아

 

  1. 처음에 리서치로 수집한 클로드 코드의 컬러셋과 90% 이상 일치하는 컬러셋으로 우리 싸이트가 디자인 되었는지
  2. 처음에 리서치로 클로드 코드에서 수집한 폰트와 같은 폰트셋을 사용해주세요.

위와 같이 수치적인 목표를 설정하게 되면 에이전트가 더 비교하기 쉽습니다.

한번 루프를 진행시키고 나면 검증해야할 시간에 수치적으로 90% 이상 유사한지 테스트 해보고, 유사하지 않다면 루프를 다시 진행시키면 되기 때문입니다.

안드레 카파시(Andrej Karpathy)
안드레 카파시(Andrej Karpathy)

예전에, 안드레 카파시(Andrej karpathy) 의 오토-리서치(Auto-Research) 가 잘 동작했던 이유도, 수치적인 목표가 존재하고 내부에서 에이전트를 목표에 도달할때 까지 잘 굴릴 수 있는 루프(loop) 를 디자인했기 때문입니다.

근데 이렇게 수치적으로 검증 가능한 루프를 디자인 하면 좋을텐데 일상생활에서는 수치적으로 변환히 어려운 정성적인 평가만이 가능한 부분이 존재합니다. 이러한 루프는 어떻게 디자인해야 할까요?

모호한 루프 디자인

개발단이 아닌 기획단의 정성적인 업무를 진행하다보면 정성적(Qualitative) 으로 평가해야 하는 경우가 많은데요.  이 경우에는 루프를 어떻게 설계해야 할까요?

함께, 모호하다고 느껴지는 목표에 도달하는 루프를 한번 설계해보도록 합시다. 예시로, 네이버에서 "강남역에서 회식하기 좋으면서 남자들이 가기 좋으면서 분위기가 좋은 맛있는 장소 20곳 선정" 이라고 해봅시다.

수치적인 목표가 있는지 파악해라

첨부 이미지

일단 정성적인것 같아도 꽤나 내부적으로 수치적으로 만들 수 있는 지표들이 보입니다. 예를 들면, "회식하기 좋은", "20 곳" 같은 부분이죠. 첫번째로 "회식하기 좋은" 이라는 목표를 달성하기 위해서는 아래와 같이 목표를 설정해 볼 수 있을 것 같습니다.

회식하기 좋은: 해당 음식점 이름 기준으로 네이버 블로그 후기 기준으로 10곳 이상 "회식하기 좋은", "회식" 이라는 단어가 쓰여져있는 경우

이 경우 에이전트에게 음식점 마다 네이버 블로그 리뷰를 보게 하여 이를 수치화 하게 하면 비교 가능한 수치가 됩니다.

두번째로는 "20곳" 이라는 목표를 달성하는 부분입니다. 이건 꽤나 쉽습니다. 에이전트가 한번 루프를 반복했을때 8곳 밖에 조사를 못했다멵 목표에 도달하지 못했으므로 자동적으로 루프가 재개되는 것이죠.

LLM-as-judge

그렇다면 "남자들이 가기 좋으면서 분위기가 좋은" 과 같은 부분은 어떻게 목표를 설계해볼 수 있을까요? 이것도 "회식하기 좋은" 과 같이 키워드 기반의 메트릭을 수집하여 수치적으로 비교하게 해볼 수도 있습니다.

다만 여기서는 조금 더 다른 방법을 이용해볼까 합니다. 바로 검증관(verifier) 를 만들어 보는 것 입니다. 대부분의 하네스에서는 서브에이전트(SubAgent) 라는 기능을 제공하는데요. 이 서브에이전트를 바로 감독관으로 활용하는 방법입니다.

첨부 이미지

루프를 돌리는 작업자가 맛집을 검색하고 나서 리스트업을 하면 검증관 에이전트들이 루프에 검증구간에서 소환(spawn) 되어 작업 내용을 검증해줍니다. 이를 보통 worker - validator 패턴[1]​이라고 부릅니다. 앤트로픽이 장기간 에이전트를 돌리는 방법에서 소개되었던 패턴이죠.

근데 여기서 검증관의 판단 조건이나 페르소나를 설정해주면 조금 더 우리의 취향에 맞게 판단하도록 할 수 있습니다. LLM 이 커먼(common) 한 지식은 대부분 학습이 되었기 때문에 아래와 같은 내용도 일반적으로 잘 판단합니다.

검증 구간에 3명의 깐깐한 검증관을 소환해주세요. 검증관은 작업자가 준 맛집 리스트에서 아래의 목표를 아주 깐깐하게 검증하여야 합니다.

 

  1. 남자들끼리 이야기 할 수 있는 조용한 술집인지 파악해주세요.
  2. 너무 밝은 분위기의 술집인지 아닌지 이미지를 확인하여 파악해주세요.
  3. 소주/맥주 1병 가격이 6000원 이하여야 합니다.
  4. 포장마차 분위기면 더 좋습니다
  5. 너무 시끄럽다는 후기가 많으면 절대 허용해서는 안됩니다

이렇게 검증자를 마지막 구간에서 소환하게 되면 좋은 점은 확률 기계인 LLM 의 특성상 자신이 한 작업에 대해서 리뷰를 시키면 옳다고 판단하는 경향이 있는데, 검증자는 아예 새로운 문맥(Context) 에서 시작되므로 이러한 경향성이 줄어들게 됩니다[2]​. 그래서 조금 더 객관적으로 평가가 가능하게 되는 것이죠.

클로드 코드와 헤르메스 에이전트(Hermes Agent) 의 Goal 은 자동으로 검증관을 소환하도록 설계되어 있습니다.

최대 턴 횟수 지정(Max turn)

이제 이렇게 검증관을 소환하여 20곳을 찾는 경우 검증관이 너무 빡빡하게 검수하여 10시간이 지나도 검색이 완료되지 않는 경우가 존재할 수 있습니다. 이러한 경우에는 토큰만 엄청나게 소비하게 되고, 원하는 결과를 얻지 못할 수도 있겠죠?

그래서 항상 시작하기 전에 최대 턴 횟수를 지정해주어야 합니다. 예를 들면, 아래와 같이 프롬프트를 입력해주는 것이죠.

/goal ~ 를 해주세요. 근데 최대 턴 횟수는 20회 입니다. 절대로 이 턴 횟수를 넘겨서 루프를 반복시키지 마세요.

이렇게 되면 여러분의 토큰이 비정상적으로 쓰이는 케이스를 막을 수 있습니다. 헤르메스 에이전트(Hermes Agent) 의 Goal 은 기본으로 N 턴이상 반복이 안되도록 설계되어 있습니다.

마치며

오늘은 목표 중심의 루프 엔지니어링을 알아보았는데요. 최근 Anthropic 팀의 트위터에 올라온 루프 엔지니어링 기법을 보면 목표 중심의 루프엔지니어링 이외에도 3가지의 기법이 더 존재합니다. 다음 시간에는 나머지 기법에 대해서 다뤄보도록 할게요.

항상 읽어주셔서 감사합니다 :)

 

 

각주

  1. [1] 작업자 - 검증자를 나누는 패턴 (builder - validator 패턴이라고 불리기도 함)
  2. [2] Judging LLM-as-a-Judge with MT-Bench and Chatbot Arena(https://arxiv.org/abs/2306.05685)

다가올 뉴스레터가 궁금하신가요?

지금 구독해서 새로운 레터를 받아보세요

✉️

이번 뉴스레터 어떠셨나요?

로치의 뉴스레터 님에게 ☕️ 커피와 ✉️ 쪽지를 보내보세요!

댓글

의견을 남겨주세요

확인
의견이 있으신가요? 제일 먼저 댓글을 달아보세요 !

다른 뉴스레터

© 2026 로치의 뉴스레터

최신 AI 소식, 프로덕션 레벨의 자동화 방법 소개

메일리 로고

도움말 오류 및 기능 관련 제보

서비스 이용 문의admin@team.maily.so 채팅으로 문의하기

메일리 사업자 정보

메일리 (대표자: 이한결) | 사업자번호: 717-47-00705 | 서울특별시 송파구 위례광장로 199, 5층 501-2-31호

이용약관 | 개인정보처리방침 | 정기결제 이용약관 | 라이선스