[Day 18] Claude Code로 AI 에이전트 회사 구축하기 — 그리고 관리자로 합류한 로컬 LLM (qwen)
요약
Claude Code를 활용하여 개인의 작업 관리를 자동화하는 'AI 에이전트 회사' 구축 사례를 소개합니다. Slack, Notion, Ledger를 연동하여 조직, 작업 흐름, 협업 규칙을 설계하고 로컬 LLM(Qwen)과 함께 배포하는 과정을 다룹니다.
핵심 포인트
- Claude Code를 리드로 활용한 AI Chief of Staff 패턴 구현
- Slack(입력), Notion(저장), Ledger(기록)를 활용한 워크플로우 구축
- API 비용 절감 및 보안을 위한 로컬 LLM(Qwen) 병행 사용
- Git 저장소를 통한 멀티 머신 환경의 에이전트 배포 및 동기화
서론 (Intro)
Day 18!
Day 17에서는 저의 AI 대화 33,469건을 감사(audit)했습니다. 이를 바탕으로, 오늘은 제 작업 관리(task management)를 수행할 고양이 회사(company of cats)를 구축했습니다 🐱
사용 도구: Claude Code / DGX Spark / Slack & Notion.
오늘의 계획 (Today's plan)
- 목표: 작업 관리의 귀찮은 부분들을 고양이 회사에 맡기기
- 접근 방식: 조직(org), 작업 흐름(task flow), 원장(ledger), AI 협업 규칙을 순서대로 구축한 후 두 대의 머신에 모두 배포
- 완료의 정의: 매일 아침, Necco와 제가 "오늘의 세 가지 작업"을 선정함
- 결과:
- 6마리의 고양이로 구성된 회사. Inbox = Slack, 단일 진실 공급원(source of truth) = Notion, 메모리 = 원장(ledger)
- 프로젝트 목록 작성 완료: 총 80개. 이제 모두 원장에 기록됨
- Claude Code / Codex / qwen을 위한 한 페이지 분량의 협업 규칙
① 조직 구축 (Built the org)
역할 기반의 직원(subagents)들로, 모두 이름 뒤에 "__-neko"("neko" = 고양이)를 붙였습니다.
| 이름 | 역할 |
|---|---|
| Necco | 수석 비서: 아침 회의, 작업 분류(triage), 라우팅, 원장 유지 관리 |
| ... |
구축하기 전에 기존 사례(prior art)를 살펴보았습니다. 개인이 자신의 관리를 AI에게 위임하는 것은 AI Chief of Staff 패턴으로 확립된 것으로 보입니다.
직원들의 내부 구조는 내일 Day 19에서 다룹니다.
② 작업 흐름 구축 (Built the task flow)
작업 발생 → 휴대폰으로 Slack에 한 줄 입력 (3초)
→ [아침 회의] Necco가 수신함(inbox)을 훑음
→ 정리 후 마감일 추가, Notion에 등록
...
생각나는 것을 Slack에 한 줄 남기세요. 아침이면 Notion에 들어가 있습니다. 저녁에 "완료: ___"라고 한 줄 남기면 다음 날 아침의 원장 업데이트와 작업 종료로 이어집니다.
③ 원장 구축 (Built the ledger)
원장(LEDGER.md)이란? 모든 프로젝트를 나열한 하나의 파일로, Necco가 "그 프로젝트가 어디 있었지?"라는 질문에 즉각 답변할 수 있게 합니다.
초기 데이터를 위해 제 두 대의 머신을 모두 조사했습니다. 집계 결과: 80개의 프로젝트. 이렇게 많을 줄은 몰랐습니다...
④ AI 협업 규칙 설정 (Set the AI collaboration rules)
매번 "어떤 AI에게 이 일을 맡길지" 결정하는 대신, 이제 한 페이지로 정리되었습니다:
| AI | 역할 (Role) |
|---|---|
| Claude Code | 리드 (설계, 계획, 리뷰, 대화) |
| ... |
Rusuban-neko는 이 규칙의 DGX 측면입니다. API 비용이 전혀 들지 않으며, 데이터가 외부로 유출되지 않습니다.
⑤ 두 머신 모두에 배포 완료
이 회사는 하나의 git 저장소(repository)입니다. 저는 이 저장소에 프라이빗 GitHub 원격 저장소(remote)를 부여하고 DGX에 클론(clone)했습니다. 설치 스크립트는 스태프와 기술(skills)을 ~/.cla/에 배치합니다.
이제 어느 머신에서든 동일한 회사를 소환할 수 있습니다.
첫 번째 아침 회의
사무실에서 Claude Code를 열고 첫 번째 아침 회의를 실행했습니다.
전날 밤 Slack에 던져두었던 한 줄짜리 메시지는 Necco에 의해 정리되어 Notion에 등록되었습니다. 이것은 진정으로 편안한 경험입니다.
전체 그림
| 수석 비서 | Necco (Claude Code) |
| ... | |
| 레이어 (Layer) | 역할 (Role) |
| --- | --- |
| Slack | 인박스 (inbox) — 휘발성, 자유 형식, 게시까지 3초 소요 |
| ... |
secretary/ ← 사무실 (두 머신 모두에 클론됨)
CLAUDE.md ← Necco의 페르소나, 내부 규칙, 회의 런북 (runbook)
LEDGER.md ← 원장 (80개 프로젝트)
...
Notion은 그대로 유지되며, 입구만 바뀌었을 뿐입니다. Necco가 포맷팅과 등록을 수행합니다.
오늘의 교훈 (Takeaways)
- 인박스(inbox)와 신뢰할 수 있는 단일 출처(source of truth)를 분리할 것: Notion이 두 가지 역할을 모두 수행하고 있었기 때문에 번거롭게 느껴졌습니다.
- 회사의 기억을 git에 보관할 것: AI의 자동 메모리 (auto-memory)가 두 머신에 걸쳐 분산됩니다.
- 기본 패턴을 활용해도 괜찮음: 기존 사례(prior art)에서 형태를 빌려오고, 세부 사항은 자신의 설정에 맞게 조정하세요.
세부 사항
아침 회의 런북 (8단계)
git pull(다른 머신의 업데이트를 가져옴)- Rusuban-neko가
input/에 있는 새로운 항목들을 사전 처리 (pre-processes) - 어제의 세 가지 항목 마무리 (Notion 상태 업데이트)
- Slack 인박스 정리 → TODO로 변환 → Notion에 등록
- Notion + 캘린더 + 인박스 + 원장(ledger) → "오늘의 세 가지" 제안
- 저녁의 한 줄 메시지들을 원장에 반영
- 최종 요약본을 Slack에 게시
git push
Git 동기화(1번 및 8번)와 마무리(3번)는 런북 (runbook)에 내장되어 있습니다. 인간은 오직 "게시"하고 "답변"할 뿐입니다.
미리 파악해 둔 함정 (Pitfalls)
| 함정 (Pitfall) | 대응책 (Countermeasure) |
|---|---|
| 원장 (ledger)이 최신 상태를 유지하지 못함 | 저녁의 한 줄 메시지 습관 |
| ... |
두 대의 기기 동기화 (Two-machine sync)
- 스태프 정의 (
agents/) 및 기술 (skills/)는 신뢰할 수 있는 단일 원천 (source of truth)으로서 저장소 (repository)에 존재합니다. install.sh(Linux) /install.ps1(Windows)가 이를~/.claude/에 배치합니다.- 스태프 구성원을 추가하는 과정 = 커밋 (commit) → 다른 기기에서 풀 (pull) → 설치 실행
기존 사례 (Prior-art) 참고 사항
- mimurchison/claude-chief-of-staff: CLAUDE.md가 핵심이며, 목표 (goals)가 모든 우선순위를 필터링하고, 인간이 최종 결정권을 가집니다.
- Claudia: 약속과 관계를 기억하며, 휴대폰을 통한 메시징 게이트웨이 역할을 합니다.
- loganhc-09/claude-chief-of-staff: 예약된 스크립트를 통해 상주형 운영 (resident operation)을 수행합니다.
공통 규칙: 상시 적용 규칙 → CLAUDE.md / 간헐적 방법 → 기술 (skills) / 컨텍스트 (context) 집약적 작업 → 하위 에이전트 (subagents). 이번 빌드 역시 이 규칙을 따릅니다.
내일: Day 19
스태프의 날 — 4개의 하위 에이전트 (subagent) 정의 파일과 더불어, Rusuban-neko (로컬 LLM)를 상주 서비스 (resident service)로 실행하는 과정을 다룹니다.
읽어주셔서 감사합니다!
AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기