블로그 · 가이드 · 2026년 10월 28일

오케스트레이터에 승인 단계를 주는 방법: AEGIS를 실제 예시로 한 패턴

다른 언어: English, Español, Português, 日本語, Deutsch, Français, 简体中文, Italiano, हिन्दी · 한국어 가이드 전체

공개: 이 가이드의 실제 예시인 AEGIS는 100monkeys.ai가 만들고 있으므로 AEGIS 부분은 만든 쪽의 설명으로 읽어 주세요. 패턴 자체는 일반적이며 어떤 오케스트레이터에도 적용됩니다. 이 가이드는 저희 AI 에이전트 하나가 공개 AEGIS 문서(영어)를 바탕으로 초안을 쓰고 회사가 검토했으며, 이 한국어판은 영어 원문 가이드의 번역입니다. 매니페스트와 명령은 원문 그대로입니다.

승인 단계는 자동화된 실행에서 일이 멈추고, 사람이 곧 일어날 정확한 일을 읽고, 그 사람의 답에 따라서만 실행이 계속되는 지점입니다. 대부분의 오케스트레이터는 멈출 수 있습니다. 그 멈춤이 실제로 버티게 하는 것은 더 적습니다. 저희가 쓰는 패턴을 단계별로, AEGIS by 100monkeys.ai, in beta를 실제 예시로 설명합니다.

한 문단으로 보는 패턴

게이트는 에이전트가 행위를 준비한 뒤, 그 행위가 일어나기 전에 두세요. 검토자에게는 요약이 아니라 준비된 것 자체를 보여 주세요. 침묵이 무엇을 뜻하는지 미리 정하세요. 두 답 모두에 명시적인 경로를 주세요. 검토자가 이미 있는 곳에서 답하게 하고, 그 답을 실행 기록에 남기세요. 거절된 초안이 영원히 돌지 않도록 재시도를 제한하세요.

1단계. 사람이 필요한 행위 나열하기

모든 단계에 게이트가 필요하지는 않습니다. 모든 것에 게이트를 두면 사람들은 그냥 클릭하고 넘어가는 법을 배웁니다. 샌드박스를 벗어나고 되돌릴 수 없는 행위에 게이트를 두세요. 외부 사람에게 메시지 보내기, 보호된 브랜치에 병합하기, 돈 쓰기, 데이터 삭제하기, 공개하기입니다. 나머지는 미리 작성한 정책 아래 실행될 수 있습니다. 저희 논문 Red levers(영어)는 이를 두 종류의 멈춤이라고 부릅니다. 실행 전에 정하고 런타임이 강제하는 한도, 그리고 행위 하나에 묶인, 그 행위 시점의 승인입니다.

2단계. 에이전트의 일을 그 행위에서 나누기

초안 작성과 발송을 한 단계에서 하는 에이전트는 중간에 게이트를 둘 수 없습니다. 준비하는 상태와 실행하는 상태로 나누어, 게이트가 설 자리를 만드세요. AEGIS에서 워크플로는 선언적인 상태 기계이고, 게이트는 그 자체로 하나의 상태, kind: Human입니다.

spec:
  initial_state: DRAFT
  states:
    DRAFT:
      kind: Agent
      agent: draft-agent
      transitions:
        - condition: on_success
          target: APPROVE
    APPROVE:
      kind: Human
      prompt: |
        About to send:
        {{DRAFT.output}}

        Approve? (yes/no)
      timeout: 86400s
      transitions:
        - condition: input_equals_yes
          target: SEND
        - condition: input_equals_no
          target: DISCARD

이 모양은 AEGIS 문서의 Building Workflows 페이지를 따릅니다. draft-agent, SEND, DISCARD는 여러분 자신의 에이전트와 상태를 나타냅니다.

3단계. 검토자 앞에 정확한 것을 두기

프롬프트가 검토자가 보는 전부이므로, 준비된 출력을 그 안에 렌더링하세요. AEGIS 프롬프트는 Blackboard 템플릿을 받습니다. 위의 {{DRAFT.output}}은 이전 상태의 출력이며, 문서는 {{QUALITY_CHECK.output.score}}처럼 이전 상태의 점수도 보여 줍니다. "에이전트가 이메일을 보내려 합니다"를 본 검토자는 설명을 승인하는 것이고, 이메일을 본 검토자는 이메일을 승인하는 것입니다.

4단계. 침묵이 무엇을 뜻하는지 정하기

모든 게이트에는 타임아웃과, 그것이 지났을 때의 규칙이 필요합니다. Human Approvals 페이지에서 timeout_seconds의 기본값은 3600입니다. 기본값인 reject_on_timeout: false에서는 답이 없는 게이트가 human_input_timeout으로 실행을 실패시킵니다. reject_on_timeout: true에서는 침묵을 거절로 취급하고 실행이 거절 경로를 탑니다. 답이 없는 것이 오류가 아니라 깔끔한 거절이어야 한다면 두 번째를 고르세요. 침묵을 절대 승인으로 만들지 마세요.

필드에 관한 메모: Human Approvals 페이지는 timeout_seconds와 조건 approved, rejected를 쓰고, Building Workflows 페이지는 timeout과 input_equals_yes, input_equals_no를 씁니다. 한 형태를 일관되게 쓰고, 실행하는 버전의 Workflow Manifest Reference를 확인하세요.

5단계. 두 답 모두에 경로를 주고 루프를 제한하기

거절은 나중에 처리할 실패가 아니라 하나의 답입니다. 목표 상태를 주세요. 폐기하거나, 검토자의 피드백과 함께 초안을 에이전트에게 돌려보내는 것입니다. 거절을 초안 상태로 되돌리면 실행에 루프가 생깁니다. AEGIS는 그것을 제한합니다. 상태별 max_state_visits(기본 5, 상한 20)와 실행별 max_total_transitions(기본 50, 상한 100)입니다. 검토자가 참을 수 있는 시도 횟수로 설정하세요.

6단계. 검토자가 있는 곳에서 답하게 하기

아무도 보지 않는 게이트는 타임아웃일 뿐입니다. AEGIS에서는 같은 게이트에 세 가지 방법으로 답할 수 있습니다.

마지막 성질이 어떤 오케스트레이터에서든 찾아야 할 것입니다. 에이전트가 자기 게이트의 열쇠를 쥐고 있어서는 안 됩니다.

7단계. 답을 보관하기

승인은 증거입니다. 게이트가 답을 받거나 타임아웃된 뒤에도 AEGIS는 그것을 목록에 남깁니다. ?status=answered는 각 게이트를 고른 단어, 피드백, 닫힌 시각, 그때 실행이 한 일과 함께 돌려줍니다. 누가 답했는지도 기록하세요. Human Approvals 페이지의 승인 엔드포인트는 approved_by 필드를 받고, 거절에는 reason이 필요합니다.

8단계. 믿기 전에 게이트를 시험하기

워크플로를 세 번 실행하세요. yes로 답하고, no로 답하고, 타임아웃되게 두세요. 각 경로가 의도한 곳에 도착하는지, 그리고 답이 오기 전에 게이트 뒤의 어떤 것도 실행되지 않았는지 확인하세요. 그런 다음 게이트가 올라간 뒤 초안을 바꾸고, 검토자가 실제로 실행될 것을 보는지 확인하세요. 여러분의 오케스트레이터가 승인을 내용이 아니라 설명에 묶는다면, 여기서 알게 됩니다.

다음에 읽을 것

여러분 자신의 서버에서 이 패턴을 처음부터 끝까지 시험하려면 새 Ubuntu VPS에 AEGIS를 설치하고 첫 번째 승인 작업 실행하기를 따르세요. 각 게이트 주변에서 무엇을 기록하고 서명할지는 운영 중인 AI 에이전트를 위한 추적성 체크리스트를 읽으세요. 개인 어시스턴트에서의 같은 승인 아이디어는 이메일과 캘린더를 승인 방식으로 처리하는 Zaru 어시스턴트 설정하기를 보세요.

100monkeys.ai에서 AEGIS 설치하기