Harness 아키텍처

DeSpread 프로덕트 개발팀 - AI 에이전트 인프라 전체 구성도
모든 시스템 정상 운영 중
전체 데이터 흐름과 트리거 경로를 한눈에 파악
Harness MC Vercel (Dashboard) Supabase harness_agent schema PE Team GitHub OAuth Login Agent API :8091 Hono (harness-agent) OpenClaw Gateway Claude Code Runtime Discord Approval Buttons CloudWatch SNS 3ridge + MWAA Alarms Alert Analyzer Lambda Claude API + Slack Slack #팀-개발-알람-ai-분석 GitHub Actions PR Review Workflow 10 Repositories Caller Workflows PR Comments Auto Code Review READ ACCESS PROXY openclaw CLI RESULTS SYNC 60s TRIGGER ANALYSIS SNS /alert-trigger spawn claude CALLER REVIEW harness-agent (agent-api.despreadlabs.io)
사용자가 직접 접근하는 대시보드와 인증 시스템
🖥️ 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)
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개 테이블
dashboard_snapshots
cron_jobs
approval_queue
agent_config
run_history
approvals
agent_pr_reviews
agent_alerts
session_history
steps
이벤트에 따라 자동 실행되는 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의 재사용 워크플로우를 호출합니다.
harness-agents
harness-claude
harness-docs
3ridge-backend
3ridge-frontend
despread-website
despread-airflow-dags
marketing-dashboard-backend
mashboard
gitops-argocd
각 데이터가 어디서 어디로 흐르는지 한눈에 보는 요약
  • 읽기 대시보드가 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에 리뷰 코멘트 자동 작성
대시보드 / API
PR Review / 정상
AI 런타임 / Supabase
사용자 / 승인
알람 / Alert
실행 중 프로세스