Are you the author? Sign in to claim
Slack에 상주하는 멀티 에이전트 AI 동료 플랫폼 - Claude Agent SDK + MCP 219개 도구, 오케스트레이션/메모리/능동제안/자체 MCP 서버/AICC (포트폴리오 공개본)
Slack에 상주하는 AI 동료. 데스크톱 앱 하나를 설치하면 백그라운드에서 Python AI 서버가 떠서, 동료가 던진 메시지를 받아 역할별 전문 에이전트가 협업해 처리하고, Gmail·Google Workspace·Jira· Confluence·CRM·전화까지 219개+ 도구를 자율적으로 사용한다. 단순 챗봇이 아니라 라우팅 → 멀티 에이전트 오케스트레이션 → 메모리 → 능동적 제안을 갖춘, 약 50K LOC 규모의 프로덕션 시스템.
포트폴리오 공개본 — 이 저장소는 실무 프로젝트에서 회사·고객·개인 식별 정보(사내 데이터, 실사용 메모리·녹취·DB, 규제 문서 코퍼스, 하드코딩 크리덴셜)를 모두 제거하고 코드 아키텍처만 남긴 버전입니다. 전화(AICC)·데모 CRM 시드 데이터 등 회사 특화 데이터는 포함하지 않으며, 모든 시크릿은 환경변수로 주입됩니다.
🔗 Built on KRAFTON KIRA-Slack (Apache-2.0). 에이전트 런타임 하니스·Slack 연동·오케스트레이터·메모리/프로액티브 서브시스템·3-Tier 라우팅은 KIRA-Slack에서 파생되었으며, 이 저장소는 그 위에 Session Lane 동시성 재설계·병렬 실행기(TaskExecutor)·실시간 음성 상담(AICC)·Agent Factory·OAuth MCP 서버·8종 서비스 도구 통합(219개)·웹/관리자 대시보드를 단독 확장한 것입니다(신규 약 38K LOC). 자세한 출처·변경 내역은
NOTICE, 라이선스는LICENSE를 참조하세요.
여섯 개의 실제 업무 자동화 장면. 한 문장 지시가 여러 도구(캘린더·Drive·Docs·Gmail·ClickUp·Slack)를 가로질러 하나의 결과물로 끝난다. 각 영상의 ▶ 를 누르면 이 자리에서 바로 재생됩니다.
|
미팅 전날 준비 캘린더 확인 · 아젠다 초안 · Slack DM |
발표자료 제작 PPT 생성 · Google Drive 저장 |
스레드 → 문서화 의사결정을 Google Docs로 정리 |
|
스프린트 마감 보고서 Google Docs 리포트 자동 작성 |
신규 팀원 온보딩 Docs 생성 · 캘린더 등록 · 환영 Gmail |
주간 브리핑 Drive · 캘린더 · ClickUp · Gmail 종합 → Slack |
설치된 데스크톱 앱이 사용자의 유일한 화면이다. 앱은 시작 버튼을 누르면 uv run python -m app.main으로
Python AI 서버를 백그라운드에 띄우고 그 생명주기를 관리한다. 서버 안에서는 네 축이 동시에(asyncio) 돈다.
Electron 앱 (설정 GUI · 실시간 로그 · 대시보드)
└─ Python AI 서버 (asyncio)
① Slack Socket Mode 실시간 메시지 수신·응답 (핵심)
② APScheduler 이메일/Jira/Confluence 주기 감시 (능동)
③ FastAPI :8000 웹·음성·전화·CRM·자체 MCP 서버
④ ClawOps 070 전화 AICC 상담
핵심 메시지는 하나다 — 협업·기억·선제 행동의 에이전트 하니스는 KIRA-Slack을 기반으로 하고, 그 위에 실시간 음성 상담(AICC)·도메인 전문 에이전트·자가 확장(Agent Factory)·MCP 서버를 직접 얹어 실서비스로 확장·운영했다. 동료를 한 명 더 채용하는 게 아니라, AI 한 명이 회사 안에서 24시간 살면서 메일·전화·문서·코드·고객 응대를 동시에 처리하고, 필요한 도메인이 생기면 자기가 또 다른 동료를 만들어내는 시스템.
단일 거대 프롬프트는 컨텍스트가 폭주하고, 도구가 많아질수록 정확도가 떨어진다. KIRA 하니스는 이를 계층적 분해로 푼다: 가벼운 분류기(Haiku)가 앞에서 걸러내고, 복잡한 일만 오케스트레이터(Opus)로 올라가며, 오케스트레이터는 도메인 전문 서브에이전트에게 위임한다. 난이도별 Haiku/Sonnet/Opus 3-티어 라우팅도 하니스가 제공한다. MOCO는 이 구조 위에 도메인 에이전트 7종과 자가 확장(Agent Factory) 을 얹었다.
그리고 이 시스템은 API 키 없이 동작한다 — 뒤의 인증 모델 참고. 이 설계가 "앱 설치만으로 동작(Zero-Setup)"을 가능하게 하는 핵심이고, 대신 한도가 계정 레이트리밋이라 견고성 장치들(세마포어·컨텍스트 자동 압축·재시도)이 필요해졌다.
메시지 한 건이 수신되어 라우팅·오케스트레이션을 거쳐 응답·저장까지 처리되는 전체 경로.
{채널}:{유저} 키로 짧게 모아 하나로 병합. 같은 요청에 LLM을 여러 번 부르는 낭비 방지.call_sub_agent로 도메인 전문가에게 위임. 결과는 표준 스키마(status/summary/data/artifacts/next_suggestions/error)로 회수. 병렬은 TaskExecutor, 중간 결과는 TaskWorkspace 공유 메모리에 네임스페이스로 쌓아 다음 에이전트에 넘긴다.여덟 개의 축이 "챗봇"과 "AI 동료"를 가른다.
분류기(Haiku) → 오케스트레이터(Opus) → 도메인 서브에이전트 7종의 계층 구조.
TaskWorkspace 공유 메모리로 결과 전달, 실패 시 최대 2회 재계획대화를 Markdown으로 누적하되 검색·저장 판단에 LLM을 쓰지 않는다.
요청을 기다리지 않고 먼저 일한다.
MOCO가 사용 패턴을 감지해 새 에이전트를 직접 만들어낸다. 자유 코드 작성의 위험은 템플릿 슬롯만 채우게 해 원천 차단하고, 6단계 자동 검증과 사람 승인을 거쳐 재시작 없이 배포한다.
SKILL.md를 올리면 런타임에 능력 추가 (Skill Marketplace)/mcp 엔드포인트로 MCP 서버를 노출, 팀원이 자기 Claude에서 MOCO 능력 호출 (정적 토큰 + OAuth 2.1 PKCE/DCR)/compact 자동 실행 후 재시도/daemon/ 대시보드에서 업타임 · 실행 통계 · 세션 · 리소스 조회자주 받는 질문: "API 키도 안 넣었는데 어떻게 Claude를 쓰지?" MOCO는 Anthropic API를 직접 부르지
않고 claude CLI를 거친다.
MOCO (claude-agent-sdk)
└─ ClaudeSDKClient → claude CLI(자식 프로세스) 실행 → stdio로 대화
└─ CLI가 자기 저장소의 로그인 토큰으로 인증·모델 라우팅
SDK는 HTTP 클라이언트가 아니라 Claude Code CLI를 서브프로세스로 띄운다. claude로 한 번 로그인하면
토큰이 CLI 저장소(~/.claude/·OS 키체인)에 캐시되고, MOCO가 매번 CLI를 띄우면 그 로그인 상태를 그대로
상속한다. 그래서 MOCO 설정에 ANTHROPIC_API_KEY가 없다. (대안: CLAUDE_CODE_USE_VERTEX=1로 GCP
서비스계정을 통한 Vertex AI 인증.) 둘 다 Anthropic API 키가 필요 없다.
moco-ai-coworker/
└─ app/ # Python AI 서버
├─ main.py # 부팅·워커·스케줄러 등록
├─ cc_slack_handlers.py # Slack 이벤트 → 라우팅 결정 트리
├─ queueing_extended.py # Session Lane 동시성
├─ cc_agents/ # 에이전트들
│ ├─ orchestrator/ operator/ # 복잡작업 총괄 (Opus)
│ ├─ simple_chat/ bot_call_detector/ # 경량 분류 (Haiku)
│ ├─ sub_agents/{research,communication,code,pm,document,data,web}/
│ ├─ memory_retriever/ memory_manager/ # 순수 Python 검색 / 저장
│ ├─ agent_factory/ generated/ # 자동 에이전트 생성 + 격리 로더
│ ├─ atticus/ ra_regulatory_expert/ # 도메인 전문 에이전트 (웹 챗)
│ └─ task_executor.py workspace.py # 병렬 실행 / 공유 메모리
├─ cc_checkers/ # Proactive 체커 (ms365, atlassian, skill_sync)
├─ cc_tools/ # MCP 도구 구현 (slack, google, crm, phone…)
├─ cc_mcp/ # 자체 MCP 서버 (JSON-RPC + OAuth 2.1)
├─ cc_utils/ # SDK 재시도·프롬프트·메모리 인덱스·Daemon Plane
├─ cc_web_interface/ # FastAPI: 웹 챗 · 음성 · CRM · AICC 콘솔
└─ config/settings.py # Pydantic 설정 + 피처 플래그
이 공개본은 아키텍처 열람용입니다. 실제 구동에는 Slack 앱, claude CLI 로그인, 각 MCP 자격증명이 필요합니다.
uv sync # 의존성 설치
cp app/config/env/dev.env.example app/config/env/dev.env # 설정 채우기
uv run python -m app.main # 서버 기동
모델·MCP·체커·웹/음성·Agent Factory 등 모든 기능은 settings.py의 피처 플래그(*_ENABLED)로 켜고 끈다.
시크릿은 전부 환경변수(dev.env / ~/.moco/config.env)로 주입되며, 코드에 하드코딩된 키는 없다.
uv run python dev.py # 핫 리로드 개발 서버
uv run python -m py_compile app/**/*.py # 구문 점검
uv run black app/ # 포매팅
실무 프로젝트를 포트폴리오 열람용으로 재구성한 저장소입니다. 코드 열람 목적이며 별도 라이선스는 부여하지 않습니다.
이 저장소는 포트폴리오의 일부입니다. → 전체 프로젝트 보기
Run Claude Code as an MCP server so any agent can delegate coding tasks to it
Browser automation using accessibility snapshots instead of screenshots
Google's universal MCP server supporting PostgreSQL, MySQL, MongoDB, Redis, and 10+ databases
Official GitHub integration for repos, issues, PRs, and CI/CD workflows