https://docs.flowiseai.com/using-flowise/agentflowv2#agentflow-v2-node-reference
1. 시작 노드 (Start Node)
- 기능: 워크플로우 실행의 진입점. 모든 워크플로우는 이 노드에서 시작.
- 역할: 워크플로우 트리거 방식과 초기 조건을 정의. 사용자 입력(채팅 또는 폼) 수신, Flow State 변수 초기화, 대화 메모리 관리 설정.
- 설정 파라미터:
- 입력 유형(Input Type): Chat Input(채팅 메시지) 또는 Form Input(커스텀 폼)으로 워크플로우 시작.
- 폼 선택 시: Form Title, Form Description, Form Input Types(입력 필드 유형, 라벨, 변수 이름).
- 임시 메모리(Ephemeral Memory): 활성화 시, 이전 대화 기록을 무시하고 새 메모리로 시작.
- Flow State: 워크플로우의 런타임 상태($flow.state)에 초기 키-값 쌍을 정의.
- 입력: 채팅 메시지 또는 폼 데이터를 통해 초기 데이터 수신.
- 출력: 초기 데이터와 Flow State를 다음 노드에 전달하는 단일 출력 앵커.
2. LLM 노드 (LLM Node)
- 기능: 대형 언어 모델(LLM)에 직접 접근하여 AI 작업 수행(텍스트 생성, 요약, 번역, 분석, 질문 답변, JSON 출력 등).
- 역할: 제공된 지침과 컨텍스트를 기반으로 LLM 요청을 보내고, 대화 스레드 메모리 및 Flow State에 접근/수정 가능.
- 설정 파라미터:
- 모델(Model): LLM 서비스 선택(예: OpenAI GPT-4o, Google Gemini).
- 메시지(Messages): System, User, Assistant, Developer 역할로 대화 입력 정의. 동적 데이터 삽입 가능({{ variable }}).
- 메모리(Memory): 대화 기록 사용 여부.
- Memory Type, Window Size, Max Token Limit: 기록 관리 방식(전체, 최근 대화, 요약 등).
- 입력 메시지(Input Message): 최신 사용자 메시지로 추가할 변수/텍스트.
- 응답 반환 방식(Return Response As): LLM 출력을 User Message 또는 Assistant Message로 분류.
- JSON 구조화 출력(JSON Structured Output): 출력 형식을 특정 JSON 스키마로 지정.
- Flow State 업데이트(Update Flow State): $flow.state의 키 값을 업데이트.
- 입력: 초기 트리거 또는 이전 노드 출력 데이터를 Messages 또는 Input Message에 사용. $flow.state 값 참조 가능.
- 출력: LLM의 응답(텍스트 또는 JSON 객체). 출력 분류는 Return Response As 설정에 따름.
3. 에이전트 노드 (Agent Node)
- 기능: LLM을 활용해 목표 달성을 위한 추론, 계획, 도구/지식 소스 상호작용을 수행하는 자율 AI 엔티티.
- 역할: 사용자 목표에 따라 동적으로 행동 시퀀스를 결정, 도구 사용 또는 문서 저장소 조회 가능. 다단계 추론 또는 외부 시스템 상호작용에 적합.
- 설정 파라미터:
- 모델(Model): 에이전트 추론에 사용할 LLM(예: GPT-4o, Google Gemini).
- 메시지(Messages): 에이전트의 초기 입력/목표/컨텍스트 정의. 동적 데이터 삽입({{ variable }}).
- 도구(Tools): 에이전트가 사용할 Flowise 도구 지정.
- Require Human Input: 도구 실행 전 인간 입력 요구 여부.
- 지식/문서 저장소(Knowledge/Document Stores):
- Document Store: 사전 설정된 문서 저장소 선택.
- Describe Knowledge: 저장소 내용과 목적에 대한 설명.
- 지식/벡터 임베딩(Knowledge/Vector Embeddings):
- Vector Store: 벡터 데이터베이스 선택.
- Embedding Model: 벡터 저장소와 호환되는 임베딩 모델.
- Knowledge Name: 벡터 소스 이름.
- Describe Knowledge: 벡터 저장소 내용 설명.
- Return Source Documents: 소스 문서 정보 포함 여부.
- 메모리(Memory): 대화 기록 사용 여부 및 관리 방식 설정.
- 입력 메시지(Input Message): 최신 사용자 메시지로 추가할 변수/텍스트.
- 응답 반환(Return Response): 출력 분류(User Message 또는 Assistant Message).
- Flow State 업데이트(Update Flow State): $flow.state 키 값 업데이트.
- 입력: 초기 트리거 또는 이전 노드 출력 데이터를 Messages 또는 Input Message에 사용. 도구 및 지식 소스 접근.
- 출력: 에이전트의 추론, 계획, 도구/지식 소스 상호작용 후 최종 결과.
4. 도구 노드 (Tool Node)
- 기능: 특정 Flowise 도구를 워크플로우 내에서 직접, 결정적으로 실행.
- 역할: LLM의 동적 선택 없이, 설계자가 선택한 도구를 명시된 지점에서 실행. 결정적 작업 보장.
- 작동 방식:
- 워크플로우가 도구 노드에 도달 시 활성화.
- 설정에서 선택한 Flowise 도구 식별.
- 입력 인수 확인 및 도구 실행.
- 도구 실행 결과 수신 및 후속 노드에 전달.
- 설정 파라미터:
- 도구 선택(Tool Selection): 실행할 Flowise 도구 선택.
- 입력 인수(Input Arguments): 도구에 필요한 입력 파라미터 정의.
- Map Argument Name: 도구가 요구하는 파라미터 이름.
- Provide Argument Value: 동적 변수({{ previousNode.output }}, {{ $flow.state.someKey }}) 또는 정적 텍스트로 값 설정.
- Flow State 업데이트(Update Flow State): $flow.state 키 값 업데이트.
- 입력: Input Arguments를 통해 이전 노드 출력, $flow.state, 또는 정적 설정에서 데이터 수신.
- 출력: 도구 실행 결과(예: API의 JSON, 텍스트, 숫자).
5. 리트리버 노드 (Retriever Node)
- 기능: 설정된 문서 저장소에서 대상 정보를 검색.
- 역할: LLM의 동적 도구 선택 없이, 의미적 유사성을 기반으로 문서 조각을 검색. 정보 검색에 특화.
- 설정 파라미터:
- 지식/문서 저장소(Knowledge/Document Stores): 검색할 사전 설정된 문서 저장소 지정.
- 리트리버 쿼리(Retriever Query): 검색에 사용할 텍스트 쿼리. 동적 데이터 삽입({{ variables }}).
- 출력 형식(Output Format): Text 또는 Text with Metadata(소스 문서 정보 포함)로 출력.
- Flow State 업데이트(Update Flow State): $flow.state 키 값 업데이트.
- 입력: 이전 단계 또는 사용자 입력에서 제공된 쿼리 문자열. 문서 저장소 접근.
- 출력: 지식 베이스에서 검색된 문서 조각(선택한 출력 형식에 따름).
6. HTTP 노드 (HTTP Node)
- 기능: HTTP를 통해 외부 웹 서비스 및 API와 직접 통신.
- 역할: GET, POST, PUT, DELETE, PATCH 요청을 통해 외부 시스템과 통합, 데이터 가져오기, 웹훅 트리거 등 수행.
- 설정 파라미터:
- HTTP 인증 정보(HTTP Credential): Basic Auth, Bearer Token, API Key 등 인증 정보 선택.
- 요청 메서드(Request Method): GET, POST, PUT, DELETE, PATCH 등.
- 대상 URL(Target URL): 요청을 보낼 엔드포인트 URL.
- 요청 헤더(Request Headers): 요청에 포함할 키-값 쌍 헤더.
- URL 쿼리 파라미터(URL Query Parameters): URL에 추가할 키-값 쌍.
- 요청 바디 유형(Request Body Type): JSON, Raw text, Form Data, x-www-form-urlencoded.
- 요청 바디(Request Body): POST, PUT 등에 사용할 데이터. 동적 데이터 삽입({{ variables }}).
- 응답 유형(Response Type): 서버 응답 처리 방식(JSON, Text, Array Buffer, Base64).
- 입력: URL, 메서드, 헤더, 바디 등 설정 데이터. 이전 단계 또는 $flow.state에서 동적 값 사용.
- 출력: 서버에서 받은 응답(선택한 Response Type에 따라 파싱).
7. 조건 노드 (Condition Node)
- 기능: 정의된 규칙에 따라 결정적 분기 로직 구현.
- 역할: 문자열, 숫자, 부울 값을 논리 연산자(예: 같음, 포함, 크기 비교, 비어 있음)로 비교해 워크플로우 경로 결정.
- 설정 파라미터:
- 조건(Conditions):
- 유형(Type): 비교 데이터 유형(String, Number, Boolean).
- 값 1(Value 1): 비교할 첫 번째 값. 동적 데이터 삽입({{ variables }}).
- 연산(Operation): 논리 연산자(equal, notEqual, contains, larger, isEmpty).
- 값 2(Value 2): 두 번째 값(필요 시). 동적 데이터 삽입 가능.
- 입력: 비교에 필요한 Value 1, Value 2 데이터를 이전 노드 출력 또는 $flow.state에서 수신.
- 출력: 조건 결과(true/false)에 따라 다른 출력 앵커로 워크플로우 진행.
8. 조건 에이전트 노드 (Condition Agent Node)
- 기능: 자연어 지침과 컨텍스트를 기반으로 AI 주도 동적 분기 제공.
- 역할: LLM이 입력 데이터를 분석해 사용자 정의 시나리오(결과/카테고리) 중 하나를 선택, 복잡한 조건부 라우팅 또는 의도 인식에 적합.
- 설정 파라미터:
- 모델(Model): 분석 및 시나리오 분류에 사용할 LLM.
- 지침(Instructions): LLM의 목표/작업을 자연어로 정의(예: "사용자 요청이 판매, 지원, 일반 문의인지 판단").
- 입력(Input): 분석할 데이터(이전 단계 텍스트 또는 사용자 입력, {{ variables }}).
- 시나리오(Scenarios): 워크플로우가 취할 수 있는 결과/경로 배열(예: "판매 문의", "지원 요청", "일반 질문").
- 입력: 분석용 Input 데이터와 LLM 지침.
- 출력: LLM이 선택한 시나리오에 해당하는 출력 앵커로 워크플로우 진행.
9. 반복 노드 (Iteration Node)
- 기능: 입력 배열의 각 항목에 대해 내부의 "서브 플로우"를 실행, "for-each" 루프 구현.
- 역할: 데이터 컬렉션 처리. 배열의 각 요소에 대해 캔버스 내 노드 시퀀스를 순차적으로 실행.
- 설정 파라미터:
- 배열 입력(Array Input): 반복할 배열({{ $flow.state.itemList }} 등).
- 입력: Array Input 파라미터로 배열 제공.
- 출력: 모든 배열 항목에 대한 서브 플로우 실행 완료 후 단일 출력 앵커 제공. 출력 데이터는 서브 플로우 설계에 따라 달라짐.
10. 루프 노드 (Loop Node)
- 기능: 워크플로우 실행을 이전에 실행된 노드로 리디렉션.
- 역할: 워크플로우 내 사이클 또는 반복 재시도 생성. 실행 흐름을 지정된 이전 노드로 "점프".
- 설정 파라미터:
- 루프 대상(Loop Back To): 리디렉션할 이전 노드의 고유 ID.
- 최대 루프 횟수(Max Loop Count): 무한 루프 방지를 위해 최대 반복 횟수 지정(기본값: 5).
- 입력: 실행 활성화 신호 수신. 내부적으로 루프 횟수 추적.
- 출력: 표준 출력 앵커 없음. 지정된 Loop Back To 노드로 흐름 리디렉션.
11. 인간 입력 노드 (Human Input Node)
- 기능: 인간 사용자에게 입력, 승인, 피드백 요청을 위해 워크플로우 실행을 일시 중지.
- 역할: 인간 개입(HITL) 프로세스의 핵심. 채팅 인터페이스를 통해 사용자에게 정보/질문 제시, 선택("진행", "거부") 및 피드백 수집.
- 설정 파라미터:
- 설명 유형(Description Type): 사용자에게 표시할 메시지 생성 방식.
- 고정(Fixed): 정적 텍스트({{ variables }}로 동적 데이터 삽입 가능).
- 동적(Dynamic):
- 모델(Model): 메시지 생성에 사용할 LLM.
- 프롬프트(Prompt): LLM에 제공할 지침.
- 피드백(Feedback): 활성화 시, 사용자 피드백 창 표시 및 출력에 추가.
- 입력: 워크플로우 일시 중지 신호. Description 또는 Prompt 필드에서 이전 단계 또는 $flow.state 데이터 사용.
- 출력: 사용자 선택("진행", "거부")에 해당하는 출력 앵커로 워크플로우 재개.
12. 직접 응답 노드 (Direct Reply Node)
- 기능: 사용자에게 최종 메시지를 보내고 현재 실행 경로 종료.
- 역할: 워크플로우의 특정 브랜치 또는 전체 종료점. 정적/동적 메시지를 채팅 인터페이스로 전달 후 실행 중단.
- 설정 파라미터:
- 메시지(Message): 사용자에게 보낼 텍스트 또는 변수({{ variable }}).
- 입력: 이전 노드 출력 또는 $flow.state에서 메시지 내용 수신.
- 출력: 출력 앵커 없음. 메시지 전송 후 경로 종료.
13. 커스텀 함수 노드 (Custom Function Node)
- 기능: 워크플로우 내에서 사용자 정의 서버 측 JavaScript 코드 실행.
- 역할: 복잡한 데이터 변환, 맞춤 비즈니스 로직, 표준 노드에서 지원되지 않는 리소스 상호작용 구현.
- 작동 방식:
- 입력 변수: $ 접두사로 함수 내 접근 가능(예: $userid).
- 플로우 컨텍스트: $flow.sessionId, $flow.chatId, $flow.input, $flow.state 등 사용 가능.
- 라이브러리: Flowise 백엔드에서 제공하는 라이브러리 사용. 문자열 값 반환 필수.
- 설정 파라미터:
- 입력 변수(Input Variables):
- 변수 이름(Variable Name): JavaScript 코드에서 사용할 변수 이름(예: $myValue).
- 변수 값(Variable Value): 정적 텍스트 또는 동적 값({{ previousNode.output }}, {{ $flow.state.someKey }}).
- JavaScript 함수(Javascript Function): 서버 측 JavaScript 코드 작성. 문자열 반환.
- Flow State 업데이트(Update Flow State): $flow.state 키 값 업데이트.
- 입력: Input Variables, $flow 컨텍스트, $vars에서 데이터 수신.
- 출력: 실행된 JavaScript 함수의 문자열 값.
14. 플로우 실행 노드 (Execute Flow Node)
- 기능: 현재 워크플로우 내에서 다른 Flowise Chatflow 또는 AgentFlow 실행.
- 역할: 모듈식 설계와 로직 재사용 촉진. 별도의 워크플로우 호출, 입력 전달, 출력 수신.
- 설정 파라미터:
- 연결 인증 정보(Connect Credential): 대상 플로우 실행에 필요한 인증 정보.
- 플로우 선택(Select Flow): 실행할 Chatflow/AgentFlow 지정.
- 입력(Input): 대상 워크플로우에 전달할 데이터({{ variable }} 또는 정적 텍스트).
- 설정 재정의(Override Config): 대상 워크플로우의 설정을 임시 변경하는 JSON 객체.
- 기본 URL(Base URL): 대상 플로우의 Flowise 인스턴스 URL(기본값: 현재 인스턴스).
- 응답 반환 방식(Return Response As): 출력 분류(User Message 또는 Assistant Message).
- Flow State 업데이트(Update Flow State): $flow.state 키 값 업데이트.
- 입력: 대상 플로우 선택 및 입력 데이터.
- 출력: 실행된 대상 워크플로우의 최종 출력(Return Response As 형식).