Process GPT Lite 튜토리얼
확장과 운영24

구조 — Process GPT 백엔드 위의 Lite

Process GPT Lite는 화면(Vue)과 작은 중계 서버로 이루어져 있고, 실제 일은 손대지 않은 Process GPT 백엔드가 합니다. 이 장에서는 구성 요소를 한 장의 그림으로 보고, 메시지 하나와 문서 하나가 어디를 지나가는지, 어떤 모델이 무엇을 판단하는지 살펴봅니다.

얇은 화면, 그대로 쓰는 백엔드#

앞 장의 작업실에서 에이전트의 작업 폴더를 직접 열어 보았습니다. 이 장에서는 한 걸음 더 물러나, 그 폴더와 채팅·편집기가 서버 안에서 어떻게 이어져 있는지 봅니다. 사내에 설치·운영하는 담당자를 위한 장이라 구성 요소 이름과 포트가 그대로 나옵니다.

지금까지 쓴 기능은 대부분 Lite가 새로 만든 것이 아닙니다. 에이전트 실행, 스킬, 프로세스 엔진, 문서 생성, 저장소는 오픈소스 Process GPT의 서비스를 고치지 않고 부릅니다. Lite가 직접 가진 것은 두 가지입니다.

Lite의 부분 하는 일
화면 (Vue 3) 채팅, 홈, 프로젝트, 폴더, 설정, 작업실. 하늘 배경과 유리 카드
중계 서버 (Express. 화면 하나만을 위해 백엔드를 대신 불러 주는 서버라 흔히 BFF — Backend for Frontend라고 부릅니다) 로그인, 대화·카드 저장, 백엔드 호출, 커넥터·문서·ArtCraft의 MCP(에이전트가 외부 도구를 부르는 표준 규약) 관문, 보관함 암호화, 예약 실행, 브라우저 에이전트

그래서 Process GPT를 이미 운영하고 있다면 Lite는 그 위에 화면을 하나 더 얹는 셈이고, Process GPT가 좋아지면 Lite도 함께 좋아집니다.

구성도#

브라우저 / Android 앱 (화면 :5180)
  │  /api  /office  /craft
  ▼
Lite 중계 서버 (:8787)
  ├─ 채팅 ───▶ context-router (:8895) ── 어느 대화의 후속?
  │               │      └─▶ 판단 서버 (:8896) 작은 모델·임베딩
  │               ▼
  │            deepagents (:8888) ── 에이전트·스킬 ─▶ 샌드박스
  │               │ MCP 도구
  │               ├─▶ office-mcp (:1192)   문서 만들기
  │               ├─▶ office-host (:5390)  편집기·라이브 편집
  │               ├─▶ mcp-hub (:8500)      커넥터 등록
  │               └─▶ Lite /mcp/*          커넥터·폴더·패널 앱
  │                                        ArtCraft CLI (사용자별)
  ├─ 프로세스 ─▶ completion (:8099) + polling-service
  ├─ 작업실 ───▶ cli-agent (:8890)  Claude Code · Codex
  ├─ 마이닝 ───▶ process-miner (:8014)
  ├─ 개선 분석   (중계 서버 안) 리드타임·병목·크리티컬 패스 계산
  ├─ 저장 ─────▶ Supabase  Postgres · 로그인 · 파일 저장소
  └─ 예약 ◀──── pg_cron ─▶ pg_net ─▶ /api/cron/fire
구성 요소 출처 역할
deepagents Process GPT 대화 한 턴의 실제 작업. 스킬을 고르고, 도구(MCP)를 부르고, 샌드박스에서 코드를 돌려 파일을 만듭니다
context-router Process GPT 메시지가 어느 대화의 후속인지 판단해 대화를 나눕니다(4장). 짧은 선택형 판단(/decide)도 맡습니다
판단 서버 Process GPT (참조 구현) 작은 공개 모델(Qwen3-4B)이 선택지 중 하나를 확률로 고릅니다. 같은 서버가 의미 검색용 임베딩(bge-m3)도 냅니다
completion + polling-service Process GPT 프로세스 시작·제출과 다음 단계 진행(17장~18장)
office-mcp Process GPT 한글·워드·엑셀 문서를 만듭니다
office-host Process GPT (이음오피스) 문서를 원본 형식 그대로 열고 고칩니다. 열린 문서를 고치는 office_live_* 도구를 냅니다(7장)
mcp-hub Process GPT MCP 서버 목록과 사용자별 연결을 관리합니다(11장)
cli-agent Process GPT Claude Code·Codex를 작업 폴더에서 실행합니다(23장)
process-miner Process GPT 인계 기록에서 반복 흐름을 찾습니다(19장)
개선 분석 Lite 중계 서버 (Process GPT analytic 서비스의 리드타임 분해 규칙을 옮김) 프로세스 실행 기록을 원천 표에서 바로 읽어 단계별 리드타임·대기·병목·제약·크리티컬 패스를 계산하고, 에이전트에게는 /mcp/improve 도구로 줍니다. 숫자는 모두 계산 결과이고 모델은 설명만 합니다(20장~22장)
Supabase Process GPT가 쓰는 그대로 Postgres(대화·카드·프로세스·팀 데이터), 로그인, 파일 저장소, 예약(pg_cron)
ArtCraft CLI storytold 오픈소스 CAD·벡터·사진·소리·영상 앱의 MCP. Lite가 사용자마다 프로세스를 하나씩 띄워 둡니다(8장)

Lite가 따로 만든 저장 공간

Lite 전용 데이터는 같은 Postgres의 pro_로 시작하는 표(대화, 카드, 예약, 보관함, 패널 앱 …)에 있습니다. 공유 폴더는 서버의 git 저장소(PRO_FOLDERS_ROOT, 기본 ~/pgpt-folders/<테넌트>/<폴더>)에 있어, 에이전트의 샌드박스는 이력과 다른 변형을 보지 못합니다.

메시지 하나가 지나가는 길#

채팅에 달빛커피 2호점 예산표를 엑셀로 만들어 줘라고 보내면:

  1. 화면 → 중계 서버: 메시지가 저장되고, 응답은 스트림(SSE — 서버가 글자를 조금씩 밀어 보내는 방식)으로 돌아옵니다.
  2. 지름길 판단: 중계 서버가 먼저 규칙으로 갈 곳을 봅니다. 스킬 만들기, 패널, 공유 폴더, ArtCraft 앱, 문서 작성 요청은 바로 에이전트로 보냅니다. 그 밖의 말은 작은 모델이 “브라우저 작업인가, 예약인가, 팀원에게 넘기는가, 아니면 에이전트에게 맡길 일인가”를 고릅니다.
  3. 대화 고르기: 메인 채팅이면 context-router를 거칩니다. 라우터는 최근 대화 후보를 6개 이하로 좁힌 뒤 판단 서버에 “어느 대화의 후속인가, 새 주제인가”를 묻습니다. 확신이 낮으면 다음 방법(언어 모델의 확률 → JSON 답)으로 넘깁니다.
  4. 에이전트 실행: deepagents가 스킬과 MCP 도구를 써서 일합니다. 엑셀이면 샌드박스에서 코드를 돌려 파일을 만듭니다.
  5. 카드: 중계 서버가 이번 실행에서 나온 문서를 찾아 파일 저장소에 올리고 파일 카드로 대화에 붙입니다. 답 위에는 어느 대화로 갔는지 알려 주는 “↳ …” 줄이 붙습니다.

도면이나 스킬처럼 긴 작업은 몇 분씩 걸려도 정상입니다. 다만 에이전트가 15분 동안 한 글자도 보내지 않으면(PRO_STREAM_IDLE_MS) 기다리기를 멈추고 다시 보내 달라고 알립니다.

문서 하나가 열리는 길#

파일 카드를 누르면:

  1. 화면이 같은 출처의 /office/<편집기>/?src=…로 이음오피스 편집기를 띄웁니다. 엑셀은 sheets, 한글은 hwp, 워드는 docs 편집기가 엽니다.
  2. 편집기가 준비되면 화면이 중계 서버에 라이브 연결(일회용 티켓으로 여는 웹소켓)을 열고 “이 사람이 이 문서를 열었다”고 알립니다. 머리줄에 「대화와 연결됨」이 뜹니다.
  3. 그다음 채팅 메시지에는 열린 문서를 고치는 도구(office_live_*)가 함께 실립니다. 이 도구는 문서가 열려 있는 동안과 그 뒤 잠시(열린 채 보낸 마지막 메시지부터 30분)만 보입니다. 에이전트가 한 번에 쓸 수 있는 도구 수에 한도(110개)가 있기 때문입니다.
  4. 에이전트가 도구를 부르면 중계 서버가 그 사용자의 로그인 토큰을 붙여 office-host로 넘기고, office-host는 그 사람의 화면에 열린 편집기를 찾아 그 자리에서 고칩니다. 사람은 고쳐지는 모습을 봅니다.
  5. 고친 뒤에는 검수가 돕니다. 고치기 전과 후를 비교해(글 길이, 표·행, 수식, 그림의 선) 빠진 것이 없는지 보고 짧은 메모를 남깁니다(9장).
  6. 사람이 저장하면 편집본이 원본 옆에 올라가고 카드가 편집본을 가리킵니다.

ArtCraft 앱도 같은 모양입니다. 다만 앱의 CLI가 중계 서버가 연 로컬 포트로 붙고, 요청이 화면 속 앱으로 전달됩니다. 그 포트에는 중계 서버가 띄운 그 CLI 프로세스만 붙을 수 있습니다.

어떤 모델을 무엇에 부르나#

모든 일에 큰 모델을 부르면 느리고 비쌉니다. Lite는 일의 성격에 따라 세 층을 나눠 씁니다.

층 설정 맡는 일
판단 서버 (작은 공개 모델, 선택지의 확률만 계산 — 글을 쓰지 않음) PRO_JUDGE_URL, 라우터의 DECIDE_JUDGE_URL 어느 대화의 후속인지(라우터), 브라우저 페이지가 아직 로딩 중인지·목표를 이뤘는지(/decide), 팀 대화 속 업무 요청 감지와 그 종류, 회의 중 “그 견적서 다시 보자”에 띄울 자료, “@” 입력 때 지금 일과 관계된 팀원, 회의 할 일의 종류
빠른 모델 PRO_LLM_FAST_MODEL (기본 gpt-4.1-mini) 메시지의 첫 갈래 나누기, 긴 답의 제목, 프로세스 고르기, 폴더 문서 요약 카드·변경 카드, 스킬 반영 전 검증 시나리오와 채점, 패널의 짧은 질문, 프로세스 개선 분석 결과의 설명(25초 안에 답이 없으면 같은 숫자를 정해진 틀로 보여 줌)
큰 모델 PRO_LLM_MODEL (기본 gpt-4.1) 메일 분류와 초안 결정, 평면도 배치 정하기, 패널 앱 설계, 브라우저 에이전트 조작, 회의록 요약, 마이닝 결과 이름 짓기, 편집 뒤 그림 비교 검수
에이전트 모델 deepagents·cli-agent 자체 설정 대화 한 턴의 실제 작업(문서·도면·스킬·프로세스 만들기)
받아쓰기 PRO_TRANSCRIBE_MODEL (기본 gpt-4o-mini-transcribe) 원격 회의 받아쓰기(동의한 사람만)

자주 일어나는 판단은 큰 모델을 부르지 않습니다

팀 메신저와 회의는 말이 오갈 때마다 판단이 필요합니다. 여기에는 규칙 → 판단 서버 순서만 쓰고, 감지에 큰 모델은 0번 부릅니다(서버가 그 횟수를 따로 셉니다). 판단 서버가 없으면 이런 제안 기능만 조용히 꺼지고, 나머지 기능은 그대로 돕니다.

모델 주소와 키는 OpenAI 호환이면 무엇이든 됩니다(PRO_LLM_BASE_URL, PRO_LLM_API_KEY). 사내 모델로 바꿔도 화면과 흐름은 같습니다.

설치 번들에는 일부만 들어 있습니다

Docker 설치 번들의 기본 lite 프로필에는 context-router·판단 서버, cli-agent, ArtCraft 앱, 프로세스 엔진이 들어 있지 않습니다. 없으면 그 기능만 빠지고 나머지는 돕니다. 프로필로 켜는 것은 1장의 “프로필”을, 따로 붙이는 것은 28장의 “설치했는데 어떤 장의 기능이 안 보입니다”를 보세요.

다음 장에서는 이 구성을 사내에서 운영할 때 챙길 것 — 팀원과 역할, 키가 있는 곳, 보관함 암호화, 백업과 업그레이드 — 을 차례로 봅니다(25장).

확인 문제

  1. 김민지가 메신저에서 “내일까지 견적서 정리해 주실 수 있어요?”라고 보냈을 때, 이것이 업무 요청인지 판단하는 데 큰 모델이 몇 번 불릴까요? 판단 서버가 꺼져 있으면 어떻게 될까요?
  2. 엑셀 카드를 열지 않은 채 B열 합계를 넣어 줘라고 보내면, 에이전트가 화면의 문서를 바로 고칠 수 있을까요? 이유를 문서가 열리는 길에서 찾아보세요.
  3. 사내 LLM으로 바꾸려면 어떤 설정을 바꾸면 될까요?
답
  1. 0번입니다. 규칙(짧은 말·잡담·요청 표현 없음은 건너뜀)을 지나면 판단 서버가 “업무 요청인가”와 “어떤 일인가”를 확률로 고릅니다. 판단 서버가 없으면 제안 카드가 나오지 않을 뿐, 메신저는 그대로 됩니다.
  2. 아니요. office_live_* 도구는 문서가 편집기에 열려 라이브 연결이 된 동안(과 그 뒤 잠시)만 에이전트에게 보이고, 고치는 대상도 화면에 열린 편집기입니다. 열린 문서가 없으면 에이전트는 카드에서 열어 달라고 안내하는 작은 도구만 봅니다.
  3. 중계 서버의 PRO_LLM_BASE_URL·PRO_LLM_API_KEY·PRO_LLM_MODEL·PRO_LLM_FAST_MODEL, 그리고 deepagents(와 라우터의 DECIDE_LLM_*) 쪽 모델 설정을 함께 바꿉니다. OpenAI 호환 주소면 됩니다.
© uEngine Solutions · 문의하기 · 이 튜토리얼의 화면과 결과는 Process GPT Lite 0.1.1 이후 개발판에서 실제로 실행해 얻었습니다.