itwanger/PaiAgent
🔥轻量级的AI工作流编排系统,类似dify、n8n,全程使用Vibe Coding,AI工具为Qoder+CLI。涉及到的技术栈包括SpringAI、LangGraph4J、SSE、MinIO、DAG自定引擎等。
PaiAgent – 기업용 시각적 AI 워크플로우 조율 플랫폼
무엇인가요
PaiAgent는 자체 호스팅형 풀스택 플랫폼으로, 코드를 작성하지 않고도 AI 기반 파이프라인을 구축, 스케줄링, 실행할 수 있습니다. 프론트엔드의 드래그 앤 드롭 에디터(ReactFlow)를 통해 비즈니스 사용자와 개발자가 대규모 언어 모델(OpenAI, DeepSeek, Alibaba Qwen, ZhiPu 등)과 보조 도구(TTS, 데이터 I/O, 커스텀 플러그인)를 호출하는 노드를 조합할 수 있습니다. 런타임 시 플랫폼은 고전적인 DAG 엔진(위상 정렬 + 사이클 검출) 또는 더 풍부한 조건부 라우팅을 위한 LangGraph4j 상태 그래프 엔진으로 그래프를 실행합니다.
핵심 기능
| 기능 | 제공되는 기능 |
|---|---|
| 제로코드 워크플로우 설계 | 시각적 캔버스, 노드 팔레트, 파라미터 패널 – Java/TS 없이도 파이프라인 조합 가능 |
| 이중 실행 엔진 | DAG: 단순한 선형/분기 흐름용; LangGraph4j: 상태 그래프, 조건부 및 동적 라우팅용 – 워크플로우별로 선택 가능 |
| 통합 LLM 접근 | Spring AI + Spring AI Alibaba 어댑터를 통해 OpenAI 호환, DeepSeek, Qwen, ZhiPu, AIPing 모델을 공통 ChatClient API를 통해 사용 가능 |
| 스킬 시스템 | SKILL.md(YAML 프론트마터 + Markdown)에 선언적으로 "스킬" 정의. 스킬은 자동 등록되며, 지연 로딩(요약 → 상세 → 참조)되며 LLM에 함수 콜백으로 노출되어 모델이 자체적으로 호출할 수 있음 |
| 확장 가능한 노드 모델 | NodeExecutor를 구현하거나 AbstractLLMNodeExecutor를 확장하여 등록하면, 플랫폼이 UI에 자동으로 노드를 노출 |
| 실시간 디버깅 | 서버-전송 이벤트 스트림을 통해 실행 로그를 사이드드로워에 실시간 전송하여 각 노드의 시작/성공/오류 확인 가능 |
| 지속성 및 모니터링 | MySQL이 워크플로우 정의와 실행 로그를 저장; 옵션으로 MinIO를 파일 블롭용 사용; UI에서 실행 이력 확인 가능 |
| 내장 도구 노드 | 입력/출력, TTS(Qwen3 TTS, StepAudio), 그리고 어떤 커스텀 서비스에도 플러그인 훅 제공 |
일반적인 사용 사례
| 도메인 | 예시 워크플로우 |
|---|---|
| 콘텐츠 생성 | 기사 초안 생성 → 번역 → 다듬기 → 오디오 내레이션 합성 |
| 고객 지원 | 사용자 질의 수집 → 적절한 LLM(지식 기반)으로 라우팅 → 응답 생성 → 티켓 기록 |
| 데이터 처리 | 원시 텍스트 추출 → LLM 기반 엔티티 추출 → 데이터베이스에 결과 저장 |
| 미디어 제작 | 스크립트 생성 → TTS → 비디오 메타데이터에 오디오 삽입 |
| 자동화 | 주기적 보고서 생성 → 이메일 발송 → PDF 아카이브 |
아키텍처 개요
프론트엔드 (React 18 + TypeScript)
└─ ReactFlow 캔버스, Ant Design UI, Zustand 상태
백엔드 (Spring Boot 3.4, Java 21)
├─ Controllers → Services → MyBatis-Plus DAOs
├─ 엔진 계층
│ ├─ EngineSelector (dag ↔ langgraph)
│ ├─ DAGParser (Kahn 위상 정렬, DFS 사이클 체크)
│ └─ LangGraphWorkflowEngine (StateGraph, 비동기 노드 액션)
├─ 스킬 서브시스템 (SkillRegistry, 프로그레시브 로딩, FunctionCallback)
└─ AI 모델 계층 (Spring AI + Spring AI Alibaba, ChatClientFactory)
데이터 계층
├─ MySQL (워크플로우 정의, 실행 로그)
└─ MinIO (옵션 블롭 저장소)
기술 스택
| 계층 | 기술 | 버전 |
|---|---|---|
| 프론트엔드 | React, TypeScript, Vite, ReactFlow, Ant Design, Tailwind, Zustand | 18.x / 5.x / latest |
| 백엔드 | Spring Boot, Java 21, MyBatis-Plus, FastJSON2, Maven | 3.4.1 / 21+ |
| AI 통합 | Spring AI (1.0.0-M5), Spring AI Alibaba (1.0.0-M6.1) | – |
| 워크플로우 엔진 | 커스텀 DAG 엔진, LangGraph4j Core (1.1.5) + Spring AI 브리지 (1.8.0-beta3) | – |
| 저장소 | MySQL 8+, 옵션 MinIO | – |
시작하기 (빠른 시작)
- 클론
git clone https://github.com/itwanger/PaiAgent-one.git cd PaiAgent-one - MySQL 데이터베이스 생성 후
backend/src/main/resources내schema.sql실행. - 환경 설정 –
backend/및frontend/의.env.example를.env/.env.local로 복사하고 DB 자격 증명, JWT 시크릿, MinIO 키 등을 입력. - 백엔드 실행
cd backend ./mvnw spring-boot:run # http://localhost:8084에서 실행 - 프론트엔드 실행
cd frontend npm install npm run dev # http://localhost:5173 열림 - 기본 개발 계정(
admin / admin123)으로 로그인하거나 환경 변수로 자체 계정 설정. - 워크플로우 생성 – Input 노드, OpenAI 노드, TTS 노드, Output 노드를 드래그하여 연결하고, 모델 API 키를 설정한 후 Debug를 클릭하여 실시간 SSE 로그 확인.
로드맵 주요 사항
- v1.1 – 조건부 IF/ELSE 노드, 반복(FOR/WHILE) 노드, 더 많은 LLM 제공자(Claude, Gemini, 로컬 모델), 추가 내장 스킬.
- v1.5 – 하위 워크플로우 호출, cron 기반 스케줄링, 버전화된 워크플로우, 템플릿 마켓플레이스, 이미지/비디오 처리 노드.
- v2.0 – 다중 테넌트 RBAC, 공동 편집, 성능 모니터링 및 알림, i18n, 제3자 플러그인 마켓플레이스.
누가 이득을 볼 수 있나요?
- 제품 팀 – 깊은 ML 코드 없이 AI 강화 기능을 구축하고 싶은 사람.
- 기업 – LLM 기반 자동화에 제어 가능하고 감사 가능한 파이프라인을 필요로 하는 사람.
- 개발자 – 복잡한 LLM 오케스트레이션(RAG, 툴 호출, 다중 모델 라우팅 등)을 프로토타이핑하기 위한 즉시 사용 가능한 엔진을 원하는 사람.
위 정보는 리포지토리의 README에서 직접 가져왔으며, 외부 가정은 전혀 추가되지 않았습니다.
관련
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트