Skip to main content
승인은 특정 에이전트 액션을 출시하기 전 거치는 사람 게이트입니다. approvals로 대기 승인을 나열하고 결정하며, 승인 요청을 외부 시스템(Slack 봇, 커스텀 리뷰 UI)으로 밀어 보내는 웹훅을 설정할 수 있습니다.

명령

approvals list

필터:
  • --status pending|approved|rejected|expired
  • --kind agent|route|tool|action|cost 게이트 종류
  • --source builder_run|api|webhook|schedule 호출이 온 곳
  • --limit <n> 최대 줄. 기본 50
구조화 출력은 --json을 붙입니다.

approvals get

승인 낱건을 전부 출력합니다.
  • 승인 대상(종류, 타겟 블록, 인자)
  • 언제 올라왔는지
  • 관련 트레이스 ID
  • 타임아웃
  • 같은 트레이스의 이전 관련 승인(있다면)
승인자가 근거 있는 결정을 내리는 데 씁니다.

approvals decide

플래그:
  • --approve 또는 --reject(정확히 하나, 필수)
  • --reason <text> 컴플라이언스 모드에선 필수. 늘 강력히 권함
  • --external <id> 외부 추적 ID(예: 티켓 번호, PR 참조)
결정은 한 방향 액션입니다. undo는 안 되지만, 바로잡으려고 같은 트레이스에 새 승인을 올릴 수 있습니다.

approvals describe

웹훅 계약을 출력합니다.
  • 새 승인이 열릴 때 Nora가 POST 하는 URL
  • 서명 헤더 형식
  • 페이로드 모양
  • 외부 시스템이 다시 닿는 콜백 엔드포인트
Slack 봇이나 커스텀 리뷰 UI를 이을 때 씁니다. 기계 출력은 --json을 붙입니다.

approvals set-webhook

웹훅을 설정하면 새 승인이 앱 안과 웹훅에 함께 뜹니다. 지우면 앱 안에서만 뜹니다. 이건 nora flows settings update --set-approval-webhook의 편의 래퍼입니다.

레시피

믿는 소스에서 전부 한꺼번에 승인

주의하세요. 승인은 undo가 안 됩니다. 정말 믿는 소스만 자동 승인합니다.

Slack 연동 승인

엔드포인트가 approvals decide와 같은 페이로드 모양을 받습니다.

타임아웃 정책: 오래된 승인 자동 거부

cron job을 둡니다:
또는 승인 게이트에 직접 타임아웃을 둡니다(agents update --set-cost-approval과 관련 플래그로).

승인 게이트 종류

  • agent Agent 답변이 전송 전 승인 필요
  • route Agent 라우팅 결정(어느 분기로 갈지)이 승인 필요
  • tool 특정 Tool 호출이 실행 전 승인 필요
  • action Action이 걸리기 전 승인 필요
  • cost 실행 비용이 임계값을 넘을 때 승인 필요
각각 블록마다 켭니다(nora agents, nora tools, nora actions 참고).

관련