Session Manager
세션 매니저는 입력 받은 메시지(event 또는 message)를 기반으로, 세션 생성 /열기/일시정지/종료를 판단합니다.
•
판단 방식: 어떤 세션이 있는지 목록을 제공하면, 목록 중에서 LLM이 판단함. 만약 목록에 없는 세션인 경우 승인 후 처리 필요
•
주요 기능:
◦
세션 분류 및 판단 : 입력 받은 내용을 기반으로 어떤 세션에 가까운 내용인지 분석 및 판단
◦
세션 생성: 필요에 따라 새로운 세션을 생성.
◦
세션 전환:
▪
현재 열린 세션을 일시정지하거나 종료.
▪
일시정지된 세션을 재개하거나 새로운 세션을 열도록 관리.
▪
세션 매니저는 closed 세션을 다시 열지 않는다. 대신, 동일한 세션 타입의 세션을 새로 생성 가능하다.
Session
세션은 특정 맥락의 시작과 끝을 나타냅니다.
1.
세션의 상태:
•
Open (열림): 세션이 활성화되어 진행 중인 상태. 현재 Open 중인 세션은 전체에서 하나만 존재 가능
•
Paused (일시정지): 일시적으로 멈췄으나 재개 가능
•
Closed (종료): 세션 완전 종료
2.
핵심 특징:
•
각 세션은 대화 히스토리를 포함.
•
세션 타입: 각 세션은 session_type으로 식별되며, 사전에 정의된 특성을 가짐.
•
새로운 세션 타입: 정의되지 않은 세션 타입이 필요할 경우, 시스템이 사용자에게 알리고 승인을 받은 후 생성.
Workflow Manager
워크플로우 매니저는 blueprint 기반으로 워크플로우를 생성하거나 재설정하는 역할입니다.
1.
세션별 관리:
•
각 세션별로 워크플로우 매니저가 존재함
•
세션이 활성화되면 워크플로우 매니저는
◦
새로운 세션일 경우 : 새로운 워크플로우 생성
◦
기존 세션일 경우 : 워크플로우 실행 ? 워크플로우 재설정 필요한지 판단? 새로운 워크플로우 생성 ?
2.
동적 적응:
•
워크플로우 매니저는 현재 정보를 기반으로 워크플로우를 조정하며, 새로운 이벤트가 발생하면 이를 반영하여 업데이트 가능.
Workflow Blueprint
워크플로우 설계도는 워크플로우가 어떻게 구성되어야 하는지에 대한 가이드라인 역할을 합니다.
•
사전 정의: 각 session_type별로 설계도가 미리 정의되어 있음.
•
실시간 수정 가능: 워크플로우 실행 과정에서 발생하는 이벤트에 따라 설계도가 수정될 수 있음.
◦
이 경우 사전 정의된 설계도는 원본으로 유지되며, 수정된 내용은 원본에 영향을 미치지 않음.
워크플로우 (Workflow)
워크플로우는 현재 세션에서 어떤 흐름으로 각 단계(노드)를 실행해야 하는지를 정의하는 과정입니다.
1.
구조:
•
여러 개의 노드를 통해 단계별 실행 과정을 설정.
•
DAG(방향성 비순환 그래프):
◦
이전 단계로 돌아갈 수 없는 방향성 비순환 구조.
◦
여러 단계가 동시에 실행될 수 있어 단순 절차 구조보다는 그래프와 절차의 혼합 구조가 적합.
2.
중단 및 재시작:
•
세션이 중지되면, 실행 중인 노드를 기록하여 저장.
•
이후 해당 정보를 기반으로 새로운 워크플로우를 생성하거나 이전 워크플로우를 재개할 수 있음.
규칙
•
세션이 일시중지 된다면 실행중인 node 종료
•
열려있는 세션은 하나만 존재 가능
•
내가 수행했던 태스크가 올바른가
◦
내가 수행한 태스크가 올바른가.
▪
항상 태스크를 측정할 수 없다.
▪