> ## Documentation Index
> Fetch the complete documentation index at: https://manual.seahorse.dnotitia.ai/llms.txt
> Use this file to discover all available pages before exploring further.

> Flow Studio — 다단계 워크플로 시각적 설계·실행. Studio(편집) · History(실행 이력) 두 탭 + Flows 라이브러리

# Flow studio

# Flow Studio

**경로**: 하단 툴바 **Flow Studio**

복잡한 다단계 워크플로를 시각적으로 설계·실행합니다. LLM 호출·Tool 호출·조건 분기·반복 등을 **노드 그래프** 로 엮어 **재사용 가능한 Flow** 로 저장하고, [Scheduler](/agent-chat/user-menu/scheduler) 에 연결해 정기 실행까지 자동화합니다.

<Frame>
  <img src="https://mintcdn.com/dnotitia-328335e7/3mgjFAVO5t1rKplH/images/image-37.png?fit=max&auto=format&n=3mgjFAVO5t1rKplH&q=85&s=881fa0f135ef78a1c4086be06d2348c9" alt="Image" width="2111" height="1285" data-path="images/image-37.png" />
</Frame>

## 탭 구성

| 탭           | 용도                                                              |
| ----------- | --------------------------------------------------------------- |
| **Studio**  | Flow 편집기 — 노드 추가·연결·변수 설정·테스트 실행                                |
| **History** | 실행 이력 조회 — 상태별 필터 (All / Running / Paused / Completed / Failed) |

## Studio 탭

### 좌측 — Flows 라이브러리

저장된 Flow 목록.

| 요소          | 설명                                     |
| ----------- | -------------------------------------- |
| **+** 버튼    | 신규 Flow 생성                             |
| **Flow 카드** | 이름·최근 수정일                              |
| 빈 상태        | `No flows yet. Click + to create one.` |

### 중앙 — 캔버스

선택한 Flow 의 노드 그래프 편집. 빈 상태에서는 `Select a flow or create a new one to get started.` 안내.

### 우측 상단 헤더

| 버튼            | 기능                               |
| ------------- | -------------------------------- |
| **Variables** | Flow 전역 변수 정의·편집 (입력·중간 계산·결과)   |
| **Generate**  | LLM 으로 자연어 설명을 받아 **Flow 자동 생성** |
| **Save**      | 현재 편집 중인 Flow 저장                 |

## 노드 유형

| 노드              | 용도                                        |
| --------------- | ----------------------------------------- |
| **LLM 호출**      | 프롬프트 + 모델 지정 → 텍스트/JSON 반환                |
| **Tool 호출**     | 등록된 MCP 도구 호출 (GitHub·Slack·PostgreSQL 등) |
| **Sub-agent**   | 다른 에이전트에 태스크 위임                           |
| **Conditional** | `if / else` 분기 — 이전 노드 출력값 기준             |
| **Loop**        | 배열·범위 반복                                  |
| **Template**    | DOCX/PPTX 템플릿에 변수 주입                      |
| **HTTP**        | 외부 REST API 호출                            |

### 변수 (Variables)

| 종류        | 설명                                          |
| --------- | ------------------------------------------- |
| **입력 변수** | Flow 시작 시 외부에서 전달되는 값                       |
| **노드 출력** | 각 노드의 결과. `{{nodeId.field}}` 형태로 다음 노드에서 참조 |
| **전역 변수** | Flow 전체에서 공유하는 상수 (API 토큰 등)                |

## History 탭

`Studio` 탭 옆의 **History** 는 과거 실행 이력입니다.

### 상단 필터

| 필터            | 의미    |
| ------------- | ----- |
| **All**       | 모든 실행 |
| **Running**   | 실행 중  |
| **Paused**    | 일시 정지 |
| **Completed** | 정상 완료 |
| **Failed**    | 실패    |

### 목록 동작

* 목록이 비어 있으면 `No executions found` / `Select an execution to view details` 표시
* 개별 실행 클릭 → 각 노드의 입출력·소요 시간·에러 확인

## 실행 엔진

`app/agents/flow_executor.py` — DAG 기반 Flow 실행기.

* **노드 상태**: Pending → Running → Success / Failed
* **입출력 캐시**: 각 노드 결과를 세션 컨텍스트에 축적
* **에러 처리**: 노드별 `retry` / `fallback` 설정 가능
* **병렬 실행**: 의존성 없는 노드는 동시 실행

## Flow vs Team Control vs Scheduler

| 기능                                                 | 특징                                  | 언제 쓰나                |
| -------------------------------------------------- | ----------------------------------- | -------------------- |
| **Flow Studio**                                    | **결정적(순서·조건 명시)** DAG               | 절차가 명확한 자동화          |
| [Team Control](/agent-chat/user-menu/team-control) | **자율(Supervisor + Worker)** 오케스트레이션 | 목표만 주고 방법은 맡김        |
| [Scheduler](/agent-chat/user-menu/scheduler)       | 트리거·반복 실행                           | Flow 또는 Team 을 정기 실행 |

## 사용 시나리오

| 시나리오                            | 구성                                               |
| ------------------------------- | ------------------------------------------------ |
| **문서 업로드 → 분석 → 요약 → Slack 보고** | HTTP(업로드 감지) → LLM(요약) → Slack(전송)               |
| **고객 문의 분류 → 라우팅 → 응답**         | LLM(분류) → Conditional → 각 큐별 Tool                |
| **야간 배치 데이터 검증 + 리포트**          | PostgreSQL(쿼리) → LLM(요약) → DOCX Template → Slack |
| **Jira 이슈 → PR → 릴리스 노트**       | Jira(이슈 조회) → GitHub(PR 생성) → LLM(노트 작성)         |
| **월간 임원 요약**                    | PostgreSQL × N(쿼리) → LLM(통합) → PPTX Template     |

<Info>
  **Generate 기능** — 자연어로 `"매일 아침 GitHub PR 요약을 Slack 에 보내는 Flow"` 입력 시 LLM 이 초기 Flow 를 생성해 줍니다. 이후 수동으로 세부 조정.
</Info>

## 운영 주의

<Warning>
  * **Flow 는 재사용 자산** — 중요한 Flow 는 버전을 남기고 변경 시 Save 로 새 버전 생성 권장.
  * **민감 값(토큰·비밀번호)** 은 Flow 노드 인자에 직접 넣지 말고, 환경변수 또는 Variables 로 분리.
  * **무한 Loop 위험** — Loop 노드에 종료 조건·최대 반복 수를 반드시 지정.
  * **외부 API 호출 실패 처리** — 네트워크 일시 장애를 감안해 `retry` 3 회 + `fallback` 설정.
  * **비용 폭증** — LLM 노드가 많거나 Loop 내부에 있으면 실행당 비용이 크게 증가. 한도·요금: [Billing](/billing)
</Warning>

## 관련 문서

* [Scheduler](/agent-chat/user-menu/scheduler) — Flow 정기 실행
* [Team Control](/agent-chat/user-menu/team-control) — 자율 오케스트레이션
* [MCP Tools](/agent-chat/toolbar/mcp-tools) — Tool 노드에서 호출할 도구들
* [보고서 자동 발행](/agent-chat/recipes/scheduled-report) — Flow + Scheduler 레시피
