| 카테고리 | 노드 |
|---|---|
| General | Start, Output |
| AI | Agent, Model |
| Logic & Data | Condition, Router, Merge, Transform |
| Workspace | Guardrail, Glossary |
General (일반)
Start
플로우 시작점. 사용자 입력을
input State 키로 받아 다음 노드로 전달합니다. 모든 플로우에 반드시 하나 필요. 플로우 변수(Variables)를 정의할 수 있습니다.Output
플로우 종료점. 이전 노드의 결과를 사용자에게 반환합니다. Action Type으로 Passthrough / Response(프롬프트 기반 최종 응답) / Error 모드 선택.
AI
Agent
등록된 에이전트를 실행합니다. KBSphere(향상된 RAG) / DBSphere(데이터베이스) 모드 에이전트도 지원.
Model
에이전트 없이 LLM 모델을 직접 호출. 간단한 텍스트 처리(요약·번역·분류)에 적합.
Logic & Data
Condition
조건에 따라 True / False로 분기. 6종 조건 타입 지원.
Router
다중 경로 라우팅. 여러 Route를 정의하고 LLM 또는 조건 기반으로 분기.
Merge
병렬 처리된 여러 출력을 하나로 결합. concat / template / json 3가지 모드.
Transform
데이터를 변환. Extract Field(특정 데이터 추출) 또는 Format Text(템플릿 생성) 모드.
Workspace
Guardrail
가드레일을 적용해 Pass / Block으로 분기. Block Action으로 차단 시 동작 제어.
Glossary
입력 텍스트에서 용어집 항목과 매칭되는 용어를 찾아 정의를 본문에 첨부. 매칭된 용어는 후속 노드에서 참조 가능.
노드 상세 설정
Start 노드
Start 노드
플로우 시작점. 사용자 메시지가
변수 타입:
input State 키로 전달됩니다.| 설정 | 설명 |
|---|---|
| Label | 노드 표시 이름 |
| Variables | 플로우 전체에서 사용할 변수 정의 (이름, 타입, 기본값) |
String, Number, Boolean, Array, ObjectOutput 노드
Output 노드
플로우 종료점. 이전 노드의 결과를 사용자에게 반환합니다.
Response 모드에서는 추가로 Final Response Prompt와 Model for Response를 설정합니다.
프롬프트에서
| 설정 | 설명 |
|---|---|
| Label | 노드 표시 이름 |
| Action Type | Passthrough(결과 그대로 반환), Response(프롬프트 기반 최종 응답 생성), Error(에러 메시지 반환) |
{input}, {output}, {sources} 및 State Key 변수를 참조할 수 있습니다.UI 라벨은 “Output” 으로 표시됩니다. 내부 타입명은
flowOutput.Agent 노드
Agent 노드
등록된 에이전트를 실행합니다. KBSphere / 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 구조화 출력 필드 정의 (필드명·타입·설명) |
Condition 노드
Condition 노드
조건에 따라 플로우를 분기합니다. True와 False 두 개의 하단 출력 핸들을 가집니다.
지원 조건 타입 (6종):
| 설정 | 설명 |
|---|---|
| State Key | 조건 평가 대상 (input 또는 상류 노드의 State Key) |
| Condition Type | 6종 조건 타입 중 선택 |
| Value | 비교할 값 |
| 조건 타입 | 내부 코드 | 설명 |
|---|---|---|
Contains | contains | 특정 텍스트 포함 여부 |
Does not contain | not_contains | 특정 텍스트 미포함 여부 |
Equals | equals | 정확히 일치 여부 |
Starts with | starts_with | 특정 텍스트로 시작 여부 |
Ends with | ends_with | 특정 텍스트로 끝나는 여부 |
Regex match | regex | 정규식 패턴 매칭 |
수치 비교(Greater than / Less than)나 빈 값 검사(Is empty)는 별도 연산자가 없으므로, 필요하면 Transform 노드로 값을 가공한 뒤
equals / regex로 검사하세요.Router 노드
Router 노드
다중 경로 라우팅. 최소 2개 Route를 정의하고 각 Route에 분기 조건을 설정합니다.
Condition Routing 사용 시 각 Route의 조건은 Condition 노드와 동일한 6종 타입을 지원합니다.
| 설정 | 설명 |
|---|---|
| Routing Type | llm(LLM이 의도 분류로 라우트 선택) 또는 condition(Route별 조건 평가) |
| State Key | 조건 라우팅 시 평가 대상 |
| Routes | 각 경로의 Label, Branch Key, Condition 설정 |
| Default Route | 어떤 조건도 매칭되지 않을 때 기본 경로 |
Merge 노드
Merge 노드
병렬로 처리된 여러 출력을 하나로 결합합니다.
모드별 동작:
| 설정 | 설명 |
|---|---|
| Merge Type | concat(텍스트 연결, 기본값) / template(Jinja2) / json(JSON 객체) |
| Source Keys | 결합할 State Key 목록. 비우면 자동 수집 |
| Separator | concat 모드의 구분자 (기본 \n\n) |
| Template | template 모드의 Jinja2 템플릿 ({{ input }}, {{ variables.x }} 등) |
| 모드 | 결과 형태 | 사용 예 |
|---|---|---|
concat | [key]\nvalue\n\n[key]\nvalue 형태의 단일 텍스트 | 여러 에이전트 출력을 하나의 답변에 모을 때 |
template | Jinja2 렌더링 결과 | 출력을 특정 포맷(메일/리포트)으로 가공할 때 |
json | JSON 문자열 (key: value 매핑) | 후속 시스템에 구조화 데이터를 전달할 때 |
가이드 이전 버전에 있던 “Sum / Use first only / Custom” 등의 옵션은 현재 코드에 구현되어 있지 않습니다. 위 3종이 전체 모드입니다.
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(차단 사유) 필드가 State에 포함됩니다.Glossary 노드
Glossary 노드
입력 텍스트에서 지정한 용어집의 용어·동의어와 매칭되는 항목을 찾아 정의를 본문에 첨부합니다.
동작:
| 설정 | 설명 |
|---|---|
| Glossary | 매칭할 용어집 선택 |
- 입력 텍스트(
current_output또는input)에 용어집 항목의term또는synonyms가 포함되는지 검사 (대소문자 무시) - 매칭된 용어들을 모아 다음과 같이 본문 끝에 추가:
- 후속 LLM 노드가 정의를 참고해 더 정확한 응답 생성
current_output— 정의가 첨부된 enriched 텍스트{node}.matched— 매칭된 용어 객체 배열 (term,matched_form,definition)
추가 노드 (코드 기반)
다음 노드 컴포넌트는 코드베이스에 존재하지만 현재 노드 팔레트에는 노출되지 않습니다. 사용자가 캔버스에서 직접 추가할 수 없으며, 향후 릴리즈에서 활성화될 예정입니다:- Aggregator, Human Input, Subflow, Error Handler, Notification, Knowledge, Tool
노드 간 데이터 흐름 (State)
플로우는 공유 State 객체로 노드 간 데이터를 주고받습니다.| State 키 | 설명 |
|---|---|
input | 사용자 메시지 (Start 노드가 채움) |
current_output | 직전 노드의 출력 (체인 중 갱신) |
variables.{name} | Start 노드에서 정의한 플로우 변수 |
{node_id}.{field} | 각 노드의 출력 필드 (예: {model_node}.response) |
current_output 및 {node_id}.<field> 키에 기록합니다. 후속 노드의 프롬프트·조건에서 {state_key} 또는 Jinja2 {'{{ variables.x }}'}로 참조할 수 있습니다.
