🗺️ 구조도¶
애드캐리 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
현재 휘발 시나리오:
- 어제 채널에서 룰 합의 → AI가 daily 파일에 기록
- 04:00 리셋 → 새 세션 시작
- 새 AI는 AGENTS/SOUL/MEMORY만 자동 로드
- 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
사이트 빌드 파이프라인
- md 정본 수정 (
docs/*.md) mkdocs build(정적 HTML 생성)wrangler pages deploy site/→ Cloudflare Pages 즉시 반영- (예정) 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 제거 |