콘텐츠로 이동

🗺️ 구조도

애드캐리 AI 캐리 운영 구조를 한눈에 본다. 모든 다이어그램은 md 코드로 작성, 자동 SVG 렌더링.

다이어그램이 작게 보이면

브라우저 환경에 따라 다이어그램을 클릭하면 원본 크기로 확대됩니다. 전체 화면에서 확인하고 싶으면 창 폭을 1400px 이상으로 는려주세요.


1. 에이전트 ↔ 워크스페이스 ↔ 디스코드

누가 어디서 일하는지 전체 지도.

%%{init: {'theme':'base', 'themeVariables': {'fontSize':'16px','fontFamily':'Pretendard, sans-serif','primaryColor':'#EDE9FE','primaryTextColor':'#0F172A','primaryBorderColor':'#7C3AED','lineColor':'#94A3B8'}, 'flowchart':{'nodeSpacing':40,'rankSpacing':60,'padding':12}}}%% flowchart LR User([👤 장캐리]):::user subgraph DC["💬 Discord 서버"] direction TB DM[DM]:::dm C1[#하네스-설계]:::ch C2[#디자인-시스템]:::ch C3[콘텐츠마케팅 채널<br/>5개]:::ch C4[글로벌셀링 채널<br/>11개]:::ch C5[재무정산 채널<br/>4개]:::ch end subgraph Agents["🦞 AI 캐리 에이전트"] direction TB A1[main<br/>opus 4.7]:::main A2[content-marketing<br/>sonnet 4.6]:::cm A3[global-selling<br/>sonnet 4.6]:::gs A4[finance-ops<br/>sonnet 4.6]:::fo end subgraph WS["📁 워크스페이스"] direction TB W1[workspace/]:::main W2[workspace-cm/]:::cm W3[workspace-gs/]:::gs W4[workspace-fo/]:::fo end User --> DM User --> C1 User --> C2 User --> C3 User --> C4 User --> C5 DM --> A1 C1 --> A1 C2 --> A1 C3 --> A2 C4 --> A3 C5 --> A4 A1 --> W1 A2 --> W2 A3 --> W3 A4 --> W4 classDef user fill:#0F172A,stroke:#0F172A,color:#fff classDef dm fill:#FEF3C7,stroke:#F59E0B,color:#0F172A classDef ch fill:#F1F5F9,stroke:#94A3B8,color:#334155 classDef main fill:#EDE9FE,stroke:#7C3AED,color:#5B21B6 classDef cm fill:#FCE7F3,stroke:#DB2777,color:#831843 classDef gs fill:#CFFAFE,stroke:#0891B2,color:#155E75 classDef fo fill:#DCFCE7,stroke:#16A34A,color:#14532D

핵심 사실:

  • 채널마다 담당 에이전트가 정해져 있음 (config의 bindings)
  • 같은 회사 직원 4명, 각자 다른 책상(워크스페이스) 사용
  • 디스코드 채널 = AI 캐리들이 출근하는 "방"

2. 파일 적용 범위 (현재 상태)

AGENTS / SOUL / MEMORY가 어디에 박혀있는지. 현재는 4개 에이전트가 각자 따로 파일 보유 → drift 위험.

%%{init: {'theme':'base','themeVariables': {'fontSize':'15px','fontFamily':'Pretendard, sans-serif'}, 'flowchart':{'nodeSpacing':30,'rankSpacing':40,'padding':10}}}%% flowchart TB subgraph Row1[" "] direction LR subgraph M["📁 workspace (main)"] direction TB MA[AGENTS.md]:::main MS[SOUL.md]:::main MM[MEMORY.md]:::main MI[IDENTITY.md]:::main MU[USER.md]:::main Mch[memory/channel-*.md<br/>41개]:::ch end subgraph CM["📁 content-marketing"] direction TB CMA[AGENTS.md]:::cm CMS[SOUL.md]:::cm CMM[MEMORY.md]:::cm CMch[channel-*.md<br/>6개]:::ch end end subgraph Row2[" "] direction LR subgraph GS["📁 global-selling"] direction TB GSA[AGENTS.md]:::gs GSS[SOUL.md]:::gs GSM[MEMORY.md]:::gs GSch[channel-*.md<br/>18개]:::ch end subgraph FO["📁 finance-ops"] direction TB FOA[AGENTS.md]:::fo FOS[SOUL.md]:::fo FOM[MEMORY.md]:::fo FOch[channel-*.md<br/>5개]:::ch end end Shared[/"shared/TEAM.md 등"/]:::shared M -.-> Shared CM -.-> Shared GS -.-> Shared FO -.-> Shared classDef main fill:#EDE9FE,stroke:#7C3AED,color:#5B21B6 classDef cm fill:#FCE7F3,stroke:#DB2777,color:#831843 classDef gs fill:#CFFAFE,stroke:#0891B2,color:#155E75 classDef fo fill:#DCFCE7,stroke:#16A34A,color:#14532D classDef ch fill:#F1F5F9,stroke:#94A3B8,color:#334155 classDef shared fill:#FEF3C7,stroke:#F59E0B,color:#78350F

drift 위험

SOUL.md는 4개 워크스페이스에 거의 같은 내용으로 4번 복사되어 있다. 한 군데만 수정되면 다른 3개와 어긋남. 통합 검토 필요.


3. 어떤 파일이 어떤 세션에 로드되나

%%{init: {'theme':'base','themeVariables': {'fontSize':'15px','fontFamily':'Pretendard, sans-serif'}, 'flowchart':{'nodeSpacing':35,'rankSpacing':50}}}%% flowchart LR S([🔄 새 세션 시작]) --> WS{어느 에이전트?} WS -->|main| LM[main 워크스페이스 로드] WS -->|content-marketing| LCM[content-marketing<br/>워크스페이스 로드] WS -->|global-selling| LGS[global-selling<br/>워크스페이스 로드] WS -->|finance-ops| LFO[finance-ops<br/>워크스페이스 로드] LM --> Always[항상 로드] LCM --> Always LGS --> Always LFO --> Always Always --> A1[AGENTS.md] Always --> A2[SOUL.md] Always --> A3[IDENTITY.md] Always --> A4[USER.md] A1 --> CT{채널 유형?} A2 --> CT A3 --> CT A4 --> CT CT -->|DM| DM[+ MEMORY.md 로드] CT -->|채널| CH[+ memory/channel-id.md 로드<br/>※ MEMORY.md는 그룹 노출 X] classDef start fill:#0F172A,stroke:#0F172A,color:#fff classDef decision fill:#FEF3C7,stroke:#F59E0B,color:#78350F classDef load fill:#EDE9FE,stroke:#7C3AED,color:#5B21B6 classDef result fill:#DCFCE7,stroke:#16A34A,color:#14532D class S start class WS,CT decision class LM,LCM,LGS,LFO,Always load class A1,A2,A3,A4,DM,CH result

핵심 사실:

  • MEMORY.md = DM에서만 로드 (그룹/공유 세션에서는 개인정보 보호 위해 제외)
  • 채널 세션은 그 채널의 channel-<id>.md 파일만 추가 로드
  • 같은 에이전트의 모든 세션 = 같은 AGENTS/SOUL 공유

4. 세션 라이프사이클 (휘발 메커니즘)

%%{init: {'theme':'base','themeVariables': {'fontSize':'14px','fontFamily':'Pretendard, sans-serif','actorFontSize':'14px','noteFontSize':'13px','messageFontSize':'13px'}}}%% sequenceDiagram autonumber participant U as 👤 장캐리 participant S as 세션 (in-memory) participant F as 정본 파일<br/>(md) participant G as Git/사이트<br/>(docs.adcarry.ai) Note over S: 04:00 KST 매일 리셋 U->>S: 메시지 S->>F: 합의 → daily 파일에 기록 S-->>U: 응답 Note over S,F: 합의가 daily 파일에만 있으면<br/>다음 세션은 못 봄 (휘발) rect rgba(239, 68, 68, 0.1) Note over S: 04:00 리셋 S--xS: 컨텍스트 초기화 end U->>S: 새 세션 — "어제 그거" S->>F: AGENTS/SOUL/MEMORY만 로드 Note over S: daily 파일은 검색해야 보임 S-->>U: ❌ 어제 합의 모름 rect rgba(16, 185, 129, 0.1) Note over F,G: 해결 — 합의를 MEMORY.md / 위키로 승격 F->>G: 자동 빌드 + push end

현재 휘발 시나리오:

  1. 어제 채널에서 룰 합의 → AI가 daily 파일에 기록
  2. 04:00 리셋 → 새 세션 시작
  3. 새 AI는 AGENTS/SOUL/MEMORY만 자동 로드
  4. daily 파일은 자동 로드 안 됨 → 합의 휘발

해결책 (현재 진행 중):

  • ✅ md 정본 통합 사이트 (docs.adcarry.ai)
  • ⏸ D안: 매일 자정 "어제 인수인계 1장" 자동 생성
  • ⏸ Constitution Registry: 어떤 룰이 어디 박혔는지 메타데이터

5. 현재 docs.adcarry.ai 사이트 구조

%%{init: {'theme':'base','themeVariables': {'fontSize':'15px','fontFamily':'Pretendard, sans-serif'}, 'flowchart':{'nodeSpacing':35,'rankSpacing':50}}}%% flowchart TB Root[🏠 docs.adcarry.ai]:::root Root --> Home[홈] Root --> Arch[🗺️ 구조도<br/>← 지금 페이지]:::current Root --> Const[🏛️ 헌법] Root --> Design[🎨 디자인 시스템] Root --> Ch[💬 채널 가이드] Root --> Ag[🦞 에이전트] Const --> CA[AGENTS] Const --> CS[SOUL] Const --> CM2[MEMORY] Ag --> AM[main] Ag --> ACM[content-marketing] Ag --> AGS[global-selling] Ag --> AFO[finance-ops] classDef root fill:#7C3AED,stroke:#5B21B6,color:#fff classDef current fill:#FEF3C7,stroke:#F59E0B,color:#78350F,stroke-width:3px

사이트 빌드 파이프라인

  1. md 정본 수정 (docs/*.md)
  2. mkdocs build (정적 HTML 생성)
  3. wrangler pages deploy site/ → Cloudflare Pages 즉시 반영
  4. (예정) GitHub repo 연결 시 git push 만으로 자동 빌드

다음 액션 (백로그)

# 작업 효과
1 SOUL.md 4개 → 1개 통합 (shared/SOUL.md + symlink) drift 차단
2 80개 채널 가이드를 사이트에 자동 임포트 정본 통합
3 scope frontmatter 추가 (scope: global/agent:main/channel:ID) 적용 범위 가시화
4 Constitution Registry 자동 생성 "지금 손볼 거 Top 3" 자동 추출
5 D안 인수인계 자동화 휘발 차단
6 GitHub repo + Cloudflare 자동 빌드 수동 deploy 제거