메인 콘텐츠로 건너뛰기
에이전트 플로우는 사용자가 캔버스에서 드래그·드롭으로 사용할 수 있는 10종 노드를 4개 카테고리로 제공합니다. 좌측 Node Palette에서 노드를 드래그해 캔버스에 배치하면 됩니다.
카테고리노드
GeneralStart, Output
AIAgent, Model
Logic & DataCondition, Router, Merge, Transform
WorkspaceGuardrail, 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

입력 텍스트에서 용어집 항목과 매칭되는 용어를 찾아 정의를 본문에 첨부. 매칭된 용어는 후속 노드에서 참조 가능.

노드 상세 설정

플로우 시작점. 사용자 메시지가 input State 키로 전달됩니다.
설정설명
Label노드 표시 이름
Variables플로우 전체에서 사용할 변수 정의 (이름, 타입, 기본값)
변수 타입: String, Number, Boolean, Array, Object
플로우 종료점. 이전 노드의 결과를 사용자에게 반환합니다.
설정설명
Label노드 표시 이름
Action TypePassthrough(결과 그대로 반환), Response(프롬프트 기반 최종 응답 생성), Error(에러 메시지 반환)
Response 모드에서는 추가로 Final Response PromptModel for Response를 설정합니다. 프롬프트에서 {input}, {output}, {sources} 및 State Key 변수를 참조할 수 있습니다.
UI 라벨은 “Output” 으로 표시됩니다. 내부 타입명은 flowOutput.
등록된 에이전트를 실행합니다. KBSphere / DBSphere 에이전트도 지원.
설정설명
Agent실행할 에이전트 선택
User Prompt에이전트에 전달할 사용자 프롬프트. {input}, {state_key} 등 변수 참조 가능
  • KBSphere 에이전트 사용 시 검색된 문서 출처가 함께 반환됩니다
  • DBSphere 에이전트 사용 시 SQL 실행 결과가 포함됩니다
에이전트 노드는 해당 에이전트에 연결된 지식기반·도구·가드레일 설정을 모두 상속합니다.
에이전트 없이 LLM 모델을 직접 호출.
설정설명
Model사용할 LLM 모델 선택
System Prompt모델에 전달할 시스템 지시사항
User Prompt사용자 프롬프트. {input}, {state_key} 등 변수 참조 가능
Output FieldsJSON 구조화 출력 필드 정의 (필드명·타입·설명)
Output Fields를 정의하면 응답이 JSON으로 구조화됩니다. 미정의 시 일반 텍스트 응답.
조건에 따라 플로우를 분기합니다. TrueFalse 두 개의 하단 출력 핸들을 가집니다.
설정설명
State Key조건 평가 대상 (input 또는 상류 노드의 State Key)
Condition Type6종 조건 타입 중 선택
Value비교할 값
지원 조건 타입 (6종):
조건 타입내부 코드설명
Containscontains특정 텍스트 포함 여부
Does not containnot_contains특정 텍스트 미포함 여부
Equalsequals정확히 일치 여부
Starts withstarts_with특정 텍스트로 시작 여부
Ends withends_with특정 텍스트로 끝나는 여부
Regex matchregex정규식 패턴 매칭
수치 비교(Greater than / Less than)나 빈 값 검사(Is empty)는 별도 연산자가 없으므로, 필요하면 Transform 노드로 값을 가공한 뒤 equals / regex로 검사하세요.
다중 경로 라우팅. 최소 2개 Route를 정의하고 각 Route에 분기 조건을 설정합니다.
설정설명
Routing Typellm(LLM이 의도 분류로 라우트 선택) 또는 condition(Route별 조건 평가)
State Key조건 라우팅 시 평가 대상
Routes각 경로의 Label, Branch Key, Condition 설정
Default Route어떤 조건도 매칭되지 않을 때 기본 경로
Condition Routing 사용 시 각 Route의 조건은 Condition 노드와 동일한 6종 타입을 지원합니다.
병렬로 처리된 여러 출력을 하나로 결합합니다.
설정설명
Merge Typeconcat(텍스트 연결, 기본값) / template(Jinja2) / json(JSON 객체)
Source Keys결합할 State Key 목록. 비우면 자동 수집
Separatorconcat 모드의 구분자 (기본 \n\n)
Templatetemplate 모드의 Jinja2 템플릿 ({{ input }}, {{ variables.x }} 등)
모드별 동작:
모드결과 형태사용 예
concat[key]\nvalue\n\n[key]\nvalue 형태의 단일 텍스트여러 에이전트 출력을 하나의 답변에 모을 때
templateJinja2 렌더링 결과출력을 특정 포맷(메일/리포트)으로 가공할 때
jsonJSON 문자열 (key: value 매핑)후속 시스템에 구조화 데이터를 전달할 때
가이드 이전 버전에 있던 “Sum / Use first only / Custom” 등의 옵션은 현재 코드에 구현되어 있지 않습니다. 위 3종이 전체 모드입니다.
데이터를 변환합니다. Extract FieldFormat Text 두 모드.
설정설명
Transform TypeExtract Field 또는 Format Text
Output Key변환 결과의 State Key 이름 (기본값: transformed)
Extract Field 모드 — 상류 노드의 State Key 중 하나를 그대로 전달.
설정설명
State Key추출할 State Key 선택 (input 또는 상류 노드 출력)
Format Text 모드{state_key} 구문으로 State 값을 조합하여 새 텍스트 생성.
설정설명
Output Template{state_key} 플레이스홀더를 포함한 텍스트 템플릿
분석 결과: {guardrail_type} - {guardrail_reason}
Jinja2 템플릿은 기본 모드에서 사용되지 않습니다. Advanced Settings에서 “Use Jinja2 Template”을 활성화하면 {'{{ state.key }}'} 구문으로 Jinja2 사용 가능.
가드레일을 적용해 입력을 검증합니다. Pass(통과)와 Block(차단) 두 출력 핸들.
설정설명
Guardrail적용할 가드레일 선택
Block ActionStop(즉시 종료) / Message(메시지 후 종료) / Continue(Block 출력으로 진행)
Blocked MessageBlock Action이 Message일 때 표시할 메시지
출력 핸들:
  • Pass (녹색, 하단 좌측) — 통과 시 다음 노드로 진행
  • Block (빨간색, 하단 우측) — Block Action이 Continue일 때만 활성화
Block 출력에는 guardrail_type(차단 유형)과 guardrail_reason(차단 사유) 필드가 State에 포함됩니다.
입력 텍스트에서 지정한 용어집의 용어·동의어와 매칭되는 항목을 찾아 정의를 본문에 첨부합니다.
설정설명
Glossary매칭할 용어집 선택
동작:
  1. 입력 텍스트(current_output 또는 input)에 용어집 항목의 term 또는 synonyms가 포함되는지 검사 (대소문자 무시)
  2. 매칭된 용어들을 모아 다음과 같이 본문 끝에 추가:
    [원본 텍스트]
    
    [용어 참조]
    • 용어1: 정의1
    • 용어2: 정의2
    
  3. 후속 LLM 노드가 정의를 참고해 더 정확한 응답 생성
출력 State 키:
  • current_output — 정의가 첨부된 enriched 텍스트
  • {node}.matched — 매칭된 용어 객체 배열 (term, matched_form, definition)
사내 약어·전문 용어가 자주 등장하는 챗봇에서, 에이전트 노드 앞에 Glossary 노드를 배치하면 LLM이 용어 의미를 정확히 인지한 채 답변을 생성합니다.

추가 노드 (코드 기반)

다음 노드 컴포넌트는 코드베이스에 존재하지만 현재 노드 팔레트에는 노출되지 않습니다. 사용자가 캔버스에서 직접 추가할 수 없으며, 향후 릴리즈에서 활성화될 예정입니다:
  • Aggregator, Human Input, Subflow, Error Handler, Notification, Knowledge, Tool
해당 노드가 필요하면 에이전트 플로우 페이지AI 빌더(자연어로 플로우 생성)를 활용하거나, 다음 릴리즈를 기다려 주세요.

노드 간 데이터 흐름 (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 }}'}로 참조할 수 있습니다.
복잡한 플로우 디버깅 시, Start 노드 직후에 Transform(Format Text) 노드를 두고 모든 State 키를 출력하도록 설정하면 어떤 키가 살아있는지 한눈에 확인할 수 있습니다.