일반
- 이름 Flow의 이름을 바꿉니다. 워크스페이스에서 이미 사용 중인 이름은 저장할 수 없습니다.
- 활성화 배포 상태는 유지한 채 새로운 호출을 받을지 정합니다.
- 켜면 외부 API·Webhook·Schedule 트리거가 정상적으로 동작합니다.
- 끄면 외부 API·Webhook 호출에 즉시
503을 반환하고 Schedule 트리거로 예약된 실행은 건너뜁니다. - 소유자(Owner) 또는 매니저(Manager)만 이 설정을 변경할 수 있습니다.
한도
- 최대 턴 한 번의 실행에서 에이전트 모델 호출의 총 턴 수 상한을 Flow 단위로 설정합니다. Agent 블록별 한도와 함께 적용 — 어느 쪽이 먼저 걸리든 실행이 멈춥니다. 비워 두면 Flow 단위 상한 없음.
- 최대 토큰 한 번의 실행에서 모든 모델 호출의 총 토큰 상한. 최대 턴과 같은 “먼저 걸리는 쪽 승” 규칙.
- 최대 비용 한 번의 실행에 쓸 수 있는 비용 상한을 USD 로 설정합니다. 실행이 이 값을 초과하려 하면 중단되고 Trace 에 표시됩니다.
- Agent 블록별 최대 비용의 합보다 Flow 최대 비용이 낮으면 저장할 때 경고가 표시됩니다.
외부 API
승인 웹훅
- 승인 웹훅 사람의 승인이 필요한 이벤트가 발생하면 입력한 URL로 요청을 보냅니다. 비워 두면 Nora 대시보드의 승인 큐에서 처리됩니다.
- 결정 엔드포인트
POST /api/v1/{workspaceId}/approvals/{id}/decide- Agent 블록의 매 턴 시작 전 승인, 라우팅 결정 승인, 누적 비용 임계 초과 승인과 Tool의 승인 필요가 함께 사용합니다.
{id}에 들어가는 승인 티켓에 따라 승인 대상이 구분됩니다. - 승인 결과를 보내려면 웹훅 payload의
decideUrl로decision값을 POST하세요.
- Agent 블록의 매 턴 시작 전 승인, 라우팅 결정 승인, 누적 비용 임계 초과 승인과 Tool의 승인 필요가 함께 사용합니다.
- 본문
- decision 필수,
"approved"또는"rejected" - reason 선택, Trace의 skip 사유로 그대로 반영
- decidedByExternal 선택, Nora가 호출자를 식별할 수 없으므로 감사용으로 Trace에 남기는 앱 쪽 사용자 id
- decision 필수,
취소 API
POST /api/v1/{workspaceId}/flows/runs/{traceId}/cancel- 인증 없이 호출할 수 있습니다.
- 취소를 요청해도 진행 중인 LLM 호출은 즉시 중단되지 않습니다. 해당 호출이 끝나면 다음 블록을 실행하지 않고 Flow를 종료합니다.
- API 엔드포인트로 시작된 실행만 취소할 수 있습니다. 웹훅과 스케줄로 시작된 실행은 취소할 수 없습니다.
- URL에
?stream=1을 붙이지 않으면 JSON 응답 본문의traceId필드에, 붙이면x-nora-trace-id응답 헤더에 담깁니다. - 취소에 성공하면
204응답을 반환합니다. 실행이 이미 완료됐거나, 존재하지 않거나, 다른 워크스페이스에 속하면404응답을 반환합니다.
성능
- Read-once 컨텍스트 여러 Agent가 같은 데이터 소스(문서·메모리)를 참조하면 첫 Agent가 읽은 컨텍스트를 재사용합니다. 소스를 한 번만 조회하므로 리트리벌 비용과 지연이 줄어듭니다.
- Cross-agent 캐시 한 번의 실행에서 여러 Agent가 프롬프트 캐시의 공통 앞부분을 공유합니다. 여러 Agent가 같은 시스템 프롬프트나 앞부분을 사용할 때 프롬프트 캐시를 더 많이 재사용할 수 있습니다.