플로우 vs 단일 에이전트
| 구분 | 단일 에이전트 | 에이전트 플로우 |
|---|---|---|
| 복잡도 | 단순 질의응답 | 멀티스텝 파이프라인 |
| 에이전트 연결 | 독립 실행 | 에이전트 간 데이터 전달 |
| 조건 분기 | 불가 | Condition / Router 노드로 분기 |
| 데이터 변환 | 불가 | Extract Field / Format Text 변환 |
| 안전 검증 | 에이전트 단위 | Guardrail 노드로 플로우 내 검증 |
| 재사용 | 개별 호출 | Subflow로 파이프라인 중첩 |
플로우 목록
워크스페이스 > 플로우에서 생성된 모든 플로우를 확인할 수 있습니다. 각 플로우 카드에는 다음 정보가 표시됩니다.| 요소 | 설명 |
|---|---|
| 이름 | 플로우 식별 이름 |
| 설명 | 플로우 용도 설명 |
| Active / Inactive 배지 | 플로우 활성/비활성 상태 |
| 노드 수 | 플로우에 포함된 노드 개수 |
| 작성자 | ”By ” 형태로 표시 |
| 수정일 | 마지막 수정 시점 (상대 시간) |
플로우 생성
새 플로우 만들기
워크스페이스 > 플로우에서 우측 상단의 ”+” 버튼(aria-label: “Create Flow”)을 클릭합니다.
| 필드 | 설명 | 예시 |
|---|---|---|
| Flow ID | 영문 소문자, 숫자, 하이픈, 언더스코어 (2~50자) | doc-analysis, 3step-review |
| 이름 | 플로우 표시 이름 | ”문서 분석 플로우” |
| 설명 | 플로우 용도 | ”문서를 요약하고 핵심 내용을 추출합니다” |
노드 연결
노드의 출력 핸들(하단 점)을 드래그하여 다음 노드의 입력 핸들(상단 점)에 연결합니다.
데이터는 위에서 아래(Top → Bottom) 방향으로 흐릅니다.
핸들 위치: 상단(Top) = 입력, 하단(Bottom) = 출력입니다.
Guardrail, Condition 등 분기 노드는 하단에 여러 출력 핸들을 가집니다.
노드 타입
에이전트 플로우는 총 14종의 노드를 5개 카테고리로 제공합니다.Basic (기본)
Start
플로우 시작점. 사용자 입력을 받아 다음 노드로 전달합니다.
모든 플로우에 반드시 하나 이상 필요합니다.
플로우 변수(Variables)를 정의할 수 있습니다.
End
플로우 종료점. 이전 노드의 처리 결과를 사용자에게 반환합니다.
Action Type을 설정하여 Passthrough, Response(프롬프트 기반 최종 응답), Error 모드를 선택할 수 있습니다.
Agent
등록된 에이전트를 실행합니다. KBSphere(향상된 RAG) 또는 DBSphere(데이터베이스) 모드의 에이전트도 지원됩니다.
Model
에이전트 없이 LLM 모델을 직접 호출합니다. 간단한 텍스트 처리(요약, 번역, 분류 등)에 적합합니다.
Control Flow (제어 흐름)
Condition
조건에 따라 플로우를 True/False로 분기합니다. 11종의 조건 타입을 지원합니다.
Router
다중 경로 라우팅. 여러 Route를 정의하고 조건에 따라 분기합니다.
Aggregator
병렬로 처리된 여러 출력을 하나로 결합합니다. Collect, Merge, Concat, Sum 등 다양한 결합 방식을 지원합니다.
Advanced (고급)
Human Input
플로우 실행 중 사용자의 승인 또는 입력을 대기합니다. Approval, Text Input, Multiple Choice 모드를 지원합니다.
Subflow
다른 플로우를 임베드하여 실행합니다. 재사용 가능한 파이프라인을 중첩할 수 있습니다.
Transform
데이터를 변환합니다. Extract Field(특정 데이터 추출)와 Format Text(템플릿 기반 텍스트 생성) 두 가지 모드를 제공합니다.
Safety (안전)
Guardrail
가드레일을 적용하여 통과(Pass) 또는 차단(Block)으로 분기합니다.
Block Action 설정으로 차단 시 동작을 제어합니다.
Error Handler
플로우 실행 중 발생한 오류를 처리합니다. 오류 발생 시 대체 경로를 제공합니다.
Integration (통합)
Notification
Email, Slack, Microsoft Teams, Discord로 알림을 발송합니다.
노드 상세
Start 노드
Start 노드
플로우의 시작점입니다. 사용자 메시지가
변수 타입:
input으로 전달됩니다.| 설정 | 설명 |
|---|---|
| Label | 노드 표시 이름 |
| Variables | 플로우 전체에서 사용할 변수 정의 (이름, 타입, 기본값) |
String, Number, Boolean, Array, ObjectEnd 노드
End 노드
플로우의 종료점입니다. 이전 노드의 결과를 사용자에게 반환합니다.
Response 모드에서는 추가로 Final Response Prompt와 Model for Response를 설정할 수 있습니다.
프롬프트에서
| 설정 | 설명 |
|---|---|
| Label | 노드 표시 이름 |
| Action Type | Passthrough(결과 그대로 반환), Response(프롬프트 기반 최종 응답 생성), Error(에러 메시지 반환) |
{input}, {output}, {sources} 및 State Key 변수를 참조할 수 있습니다.Agent 노드
Agent 노드
등록된 에이전트를 실행합니다. KBSphere(향상된 RAG) 또는 DBSphere(데이터베이스) 모드의 에이전트도 지원됩니다.
| 설정 | 설명 |
|---|---|
| Agent | 실행할 에이전트 선택 |
| User Prompt | 에이전트에 전달할 사용자 프롬프트. {input}, {state_key} 등 변수 참조 가능 |
- KBSphere 에이전트를 사용하면 검색된 문서 출처가 함께 반환됩니다
- DBSphere 에이전트를 사용하면 SQL 실행 결과가 포함됩니다
Model 노드
Model 노드
에이전트 없이 LLM 모델을 직접 호출합니다. 간단한 텍스트 처리(요약, 번역, 분류 등)에 적합합니다.
Output Fields를 정의하면 모델 응답이 JSON 형태로 구조화됩니다.
필드를 추가하지 않으면 일반 텍스트 응답이 반환됩니다.
| 설정 | 설명 |
|---|---|
| Model | 사용할 LLM 모델 선택 |
| System Prompt | 모델에 전달할 시스템 지시사항 |
| User Prompt | 사용자 프롬프트. {input}, {state_key} 등 변수 참조 가능 |
| Output Fields | JSON 구조화 출력 필드 정의 (필드명, 타입, 설명). 하류 노드에서 참조 가능 |
Knowledge 노드
Knowledge 노드
지식기반에서 문서를 검색합니다.
| 설정 | 설명 |
|---|---|
| Label | 노드 표시 이름 |
Knowledge 노드는 현재 Label 설정만 지원합니다. 지식기반 선택이나 검색 임계값 UI는 제공되지 않습니다.
Tool 노드
Tool 노드
외부 도구를 실행합니다.
| 설정 | 설명 |
|---|---|
| Label | 노드 표시 이름 |
Tool 노드는 현재 Label 설정만 지원합니다. 도구 선택 UI는 제공되지 않습니다.
Condition 노드
Condition 노드
조건에 따라 플로우를 분기합니다. True와 False 두 개의 하단 출력 핸들을 가집니다.
지원하는 조건 타입 (11종):
| 설정 | 설명 |
|---|---|
| State Key | 조건 평가 대상 선택 (드롭다운). input(사용자 메시지) 또는 상류 노드의 State Key |
| Condition Type | 11종의 조건 타입 중 선택 |
| Value | 비교할 값 (Is empty, Is not empty 제외) |
| 조건 타입 | 설명 |
|---|---|
Contains | 특정 텍스트 포함 여부 |
Does not contain | 특정 텍스트 미포함 여부 |
Equals | 정확히 일치 여부 |
Not equals | 불일치 여부 |
Starts with | 특정 텍스트로 시작 여부 |
Ends with | 특정 텍스트로 끝나는 여부 |
Greater than | 값이 더 큰지 비교 |
Less than | 값이 더 작은지 비교 |
Is empty | 값이 비어있는지 확인 |
Is not empty | 값이 비어있지 않은지 확인 |
Regex match | 정규식 패턴 매칭 |
Router 노드
Router 노드
다중 경로 라우팅을 수행합니다. 최소 2개의 Route를 정의하며, 각 Route에 조건을 설정할 수 있습니다.
각 Route의 Condition도 Condition 노드와 동일한 11종 타입을 지원합니다.
| 설정 | 설명 |
|---|---|
| State Key | 라우팅 평가 대상 선택 |
| Routes | 각 경로의 Label, Branch Key, Condition 설정 |
| Default Route | 어떤 조건도 매칭되지 않을 때 사용할 기본 경로 |
Aggregator 노드
Aggregator 노드
병렬로 처리된 여러 출력을 하나로 결합합니다.
Advanced Settings에서 Output Name(State Key)과 Merge Mode를 추가 설정할 수 있습니다.
| 설정 | 설명 |
|---|---|
| How to Combine | Collect all as list, Merge into one object, Join as text, Add numbers, Use first only, Use last only, Custom |
| When to Proceed | After all complete, After any one completes, After N complete |
| Timeout | 대기 시간 제한 (초) |
Human Input 노드
Human Input 노드
플로우 실행 중 사용자의 입력이나 승인을 대기합니다.
Advanced Settings에서 Timeout, Required 여부, Output Name, Default Value를 설정할 수 있습니다.
| 설정 | 설명 |
|---|---|
| Input Type | Approval (Yes/No), Text Input, Multiple Choice |
| Prompt Message | 사용자에게 표시할 메시지 |
| Choices | Multiple Choice 선택 시, 선택지 목록 (Label + Value) |
Subflow 노드
Subflow 노드
다른 플로우를 임베드하여 실행합니다. 현재 편집 중인 플로우는 선택 목록에서 제외됩니다.
Advanced Settings에서 Output Name(State Key)을 설정할 수 있습니다.
| 설정 | 설명 |
|---|---|
| Select Flow | 임베드할 플로우 선택 |
Transform 노드
Transform 노드
데이터를 변환합니다. Extract Field와 Format Text 두 가지 모드를 제공합니다.
Extract Field 모드:상류 노드의 State Key 중 하나를 선택하여 그대로 전달합니다.
Format Text 모드:
| 설정 | 설명 |
|---|---|
| Transform Type | Extract Field 또는 Format Text |
| Output Key | 변환 결과의 State Key 이름 (기본값: transformed) |
| 설정 | 설명 |
|---|---|
| State Key | 추출할 State Key 선택 (input 또는 상류 노드 출력) |
{state_key} 구문으로 State 값을 조합하여 새 텍스트를 생성합니다.| 설정 | 설명 |
|---|---|
| Output Template | {state_key} 플레이스홀더를 포함한 텍스트 템플릿 |
Jinja2 템플릿은 기본 모드에서 사용되지 않습니다. Advanced Settings에서 “Use Jinja2 Template” 체크박스를 활성화하면
{'{{ state.key }}'} 구문으로 Jinja2를 사용할 수 있습니다.Guardrail 노드
Guardrail 노드
가드레일을 적용하여 입력을 검증합니다. Pass(통과)와 Block(차단) 두 개의 하단 출력 핸들을 가집니다.
출력 핸들:
| 설정 | 설명 |
|---|---|
| Guardrail | 적용할 가드레일 선택 |
| Block Action | 차단 시 동작: Stop(즉시 종료), Message(메시지 표시 후 종료), Continue(Block 출력으로 계속) |
| Blocked Message | Block Action이 Message일 때 표시할 메시지 |
- Pass (녹색, 하단 좌측) — 가드레일 통과 시 다음 노드로 진행
- Block (빨간색, 하단 우측) — Block Action이
Continue일 때만 활성화. 차단 정보와 함께 다음 노드로 진행
guardrail_type(차단 유형)과 guardrail_reason(차단 사유) 필드가 포함됩니다.Error Handler 노드
Error Handler 노드
플로우 실행 중 발생한 오류를 처리합니다. 오류 발생 시 대체 경로를 제공하여 플로우가 중단되지 않도록 합니다.
| 설정 | 설명 |
|---|---|
| Label | 노드 표시 이름 |
Notification 노드
Notification 노드
외부 서비스로 알림을 발송합니다.
Email 선택 시 추가로 To(수신자)와 Subject(제목)를 설정합니다.
| 설정 | 설명 |
|---|---|
| Notification Type | Email, Slack, Microsoft Teams, Discord |
| Message Template | 알림 메시지 내용 (Jinja2 구문 사용 가능) |
플로우 실행
채팅에서 실행
- 새 채팅을 시작합니다
- 모델 선택기에서 연결 타입 필터에 Flow가 표시됩니다. 이를 선택합니다
- 원하는 플로우를 선택한 후 메시지를 입력합니다
플로우는 모델 선택기에서 별도의 탭이 아닌, 연결 타입(connection type) 필터로 노출됩니다.
실행 흐름
실행 중에는 각 노드의 상태가 실시간으로 표시됩니다.| 상태 | 설명 |
|---|---|
| 실행 중 | 현재 처리 중인 노드 |
| 완료 | 처리 완료된 노드 |
| 출처 | KBSphere 사용 시 검색된 문서 출처 |
유효성 검증
상단 툴바의 Validate 버튼으로 수행할 수 있는 검증 항목입니다.| 검증 항목 | 유형 | 설명 |
|---|---|---|
| Start 노드 누락 | Error | 최소 1개의 Start 노드 필요 |
| End 노드 누락 | Error | 최소 1개의 End 노드 필요 |
| 리소스 미선택 | Error | Agent/Model/Guardrail/Subflow 노드에 리소스 미지정 |
| 순환 참조 | Error | 노드 간 순환 연결 감지 (무한 루프 위험) |
| 연결 안 된 노드 | Warning | 어떤 노드와도 연결되지 않은 노드 존재 |
내보내기 / 가져오기
내보내기와 가져오기는 플로우 편집기(FlowEditor) 상단 툴바에서 수행합니다.- 내보내기
- 가져오기
플로우 편집기 상단 툴바의 Export 버튼을 클릭하면 JSON 파일로 다운로드됩니다.
내보내기 파일에는 플로우 이름, 설명, 노드 구성, 연결 정보가 포함됩니다.
활용 사례
예시 1: 문서 분석 플로우
예시 1: 문서 분석 플로우
예시 2: 조건 분기 고객 지원
예시 2: 조건 분기 고객 지원
예시 3: 데이터 리포트 플로우
예시 3: 데이터 리포트 플로우
예시 4: 가드레일 적용 플로우
예시 4: 가드레일 적용 플로우
Continue로 설정하면 차단 정보를 Transform 노드에서 가공하여 사용자에게 안내할 수 있습니다.접근 권한
플로우에도 다른 워크스페이스 리소스와 동일한 접근 제어가 적용됩니다.| 옵션 | 설명 |
|---|---|
| 공개 (Public) | 모든 사용자가 사용 가능 |
| 비공개 (Private) | 생성자만 사용 가능 |
| 그룹 지정 | 특정 그룹에만 읽기/쓰기 권한 부여 |
FAQ
플로우 메뉴가 보이지 않습니다
플로우 메뉴가 보이지 않습니다
에이전트 플로우는 두 가지 조건이 모두 충족되어야 워크스페이스에 표시됩니다:
- 개발자 모드(
developer_mode)가 활성화되어 있어야 합니다 agent_flow라이선스가 부여되어 있어야 합니다
플로우에서 사용할 수 있는 에이전트는?
플로우에서 사용할 수 있는 에이전트는?
워크스페이스에 등록된 모든 에이전트를 사용할 수 있습니다.
일반 모드, KBSphere(향상된 RAG), DBSphere(데이터베이스) 모드 모두 지원됩니다.
플로우 실행 중 오류가 발생하면?
플로우 실행 중 오류가 발생하면?
오류가 발생한 노드에서 실행이 멈추고 에러 메시지가 표시됩니다.
Error Handler 노드를 사용하면 오류 시 대체 경로를 설정할 수 있습니다.
노드 설정(리소스 선택, 파라미터)을 확인하고 다시 시도하세요.
하나의 플로우에 여러 에이전트를 연결할 수 있나요?
하나의 플로우에 여러 에이전트를 연결할 수 있나요?
네, 여러 에이전트를 순차적으로 연결하거나 Condition/Router 노드로 분기할 수 있습니다.
각 에이전트의 출력이 다음 에이전트의 입력으로 자동 전달됩니다.
플로우의 실행 순서는?
플로우의 실행 순서는?
Start 노드에서 시작하여 연결된 노드를 순서대로 따라갑니다.
Condition 노드에서는 조건 평가 결과에 따라 True 또는 False 경로로 분기하고,
Router 노드에서는 매칭되는 Route 경로로 분기합니다.
Aggregator 노드에서는 여러 병렬 경로가 합류합니다.
플로우를 다른 환경으로 이동하려면?
플로우를 다른 환경으로 이동하려면?
플로우 편집기 상단 툴바의 Export 버튼으로 JSON 파일을 내보내고, 대상 환경의 편집기에서 Import 버튼으로 가져옵니다.
참조하는 에이전트, 모델, 가드레일이 대상 환경에도 존재해야 합니다.
다음 단계
에이전트 생성
플로우에서 사용할 에이전트를 구성합니다
가드레일 설정
플로우 내에서 안전한 응답을 위한 필터를 구성합니다
