시스템 워크플로우
전체 데이터 흐름과 트리거 경로를 한눈에 파악
프레젠테이션 레이어
사용자가 직접 접근하는 대시보드와 인증 시스템
🖥️ Harness Mission Control
AI 에이전트 운영 현황을 실시간으로 모니터링하는 웹 대시보드. PR 리뷰 이력, 크론잡 상태, 승인 큐를 한눈에 확인하고 원격으로 제어할 수 있습니다.
- 접속 주소
- mission-control.despreadlabs.io
- 기술 스택
- Next.js 16 + Vercel (서울 리전)
- 인증
- GitHub OAuth (DeSpread Org 멤버만)
- 데이터 소스
- Supabase 읽기 + Agent API 쓰기 프록시
5개 탭
PR 리뷰 차트
30초 자동 갱신
👤 DeSpread PE 팀
대시보드 사용자이자 AI 에이전트의 트리거 소스. PR을 올리면 자동 리뷰가 실행되고, 대시보드에서 승인/거절 등의 액션을 수행합니다.
- 로그인
- GitHub OAuth (Org 멤버 검증)
- 트리거 1
- PR 오픈 -> AI PR Review 자동 실행
- 트리거 2
- CloudWatch 알람 -> Alert Analyzer 분석
- 대시보드 액션
- 승인 / 거절 / 크론잡 수동 실행
HTTPS + Supabase + Agent API (:8091)
harness-agent 서버
Alibaba Cloud ECS (agent-api.despreadlabs.io) - AI 에이전트와 API가 실행되는 서버
🤖 OpenClaw Gateway
Claude Code 기반 AI 에이전트 런타임. Alert Analyzer에서 spawn된 Claude Code 세션을 실행하고, 결과를 Discord 채널로 전달합니다.
- 포트
- :18789 (로컬 전용)
- 모델
- claude-opus-4-6
- 동시 실행
- 세션 4개, 서브에이전트 8개
- 결과 전달
- Discord 채널별 라우팅
● 실행 중
🔌 Agent API
Vercel 대시보드와 harness-agent 서버를 연결하는 HTTP 브릿지. 대시보드 액션을 서버의 CLI 명령으로 변환하고, SNS 알람을 수신하여 Claude Code를 spawn합니다.
- 포트
- :8091 (공개, Bearer 토큰 인증)
- 기술 스택
- Hono + tsx (systemd 관리)
- 주요 기능
- 크론 실행, 승인 처리, PR 머지, 파일 서빙
- 알람 수신
- /alert-trigger (SNS -> Claude spawn)
● 실행 중
-> openclaw CLI
-> SNS alert-trigger
Supabase sync (Collector 60초)
클라우드 서비스
Vercel 대시보드와 harness-agent 서버를 연결하는 클라우드 데이터베이스
🐘 Supabase PostgreSQL
harness-agent 서버의 로컬 상태를 클라우드로 동기화하는 중앙 저장소. Vercel 대시보드는 이 DB에서 데이터를 읽고, Collector가 60초마다 최신 데이터를 여기에 씁니다.
스키마: harness_agent - 10개 테이블
AI 에이전트 워크플로우
이벤트에 따라 자동 실행되는 AI 에이전트들
🔍 AI PR Review
PR이 열리면 Claude가 자동으로 코드를 리뷰하고 코멘트를 남깁니다. 10개 레포에 적용되어 있으며, 재사용 워크플로우(Reusable Workflow)로 중앙 관리됩니다.
- 워크플로우
- pr-review.yml
- 트리거
- PR opened / synchronize / reopened
- 모델
- Claude (Anthropic API)
- 적용 범위
- 10개 레포 전체
🚦 Smart Dispatcher
이벤트 유형(PR, Issue)에 따라 적절한 AI 에이전트를 자동 선택하여 실행합니다. 현재 harness-agents 레포에서만 사용됩니다.
- 워크플로우
- dispatcher.yml
- 트리거
- workflow_call (내부 호출)
- 라우팅
- PR Review, Issue Triage
- 적용 범위
- harness-agents 전용
🚨 Alert Analyzer
CloudWatch 알람 발생 시 이중 경로로 분석합니다. Lambda가 즉시 Claude API로 분석하고, Agent API가 harness-agent에서 Claude Code를 spawn합니다.
- 경로 1
- SNS -> Lambda -> Claude API -> Slack
- 경로 2
- SNS -> Agent API :8091 -> Claude Code
- 알림 채널
- #팀-개발-알람-ai-분석
- 상태
- ● 활성
Caller Workflow -> harness-agents/pr-review.yml
적용 레포지토리
AI PR Review가 활성화된 DeSpread 조직의 10개 레포. 각 레포에 caller workflow가 설치되어 있으며, PR 발생 시 harness-agents의 재사용 워크플로우를 호출합니다.
marketing-dashboard-backend
데이터 흐름 요약
각 데이터가 어디서 어디로 흐르는지 한눈에 보는 요약
-
읽기
대시보드가 Supabase의 최신 스냅샷을 읽어 화면에 표시 (30초마다 자동 갱신)
-
쓰기
대시보드에서 버튼 클릭 -> Agent API :8091로 전달 -> 서버에서 openclaw CLI 실행 또는 Supabase 업데이트
-
동기화
Collector가 60초마다 로컬 상태를 수집 -> Supabase에 동기화 (대시보드가 읽을 수 있도록)
-
알람
CloudWatch 알람 -> SNS 이중 전송: ① Lambda -> Claude API -> Slack 즉시 보고 ② Agent API -> Claude Code spawn -> 심층 분석
-
리뷰
GitHub PR 이벤트 -> caller workflow -> harness-agents/pr-review.yml 실행 -> PR에 리뷰 코멘트 자동 작성