상태: 🟢 active - 실제 구현 시작
버전: 0.2.0
업데이트: 2025-11-11
저자: Junghan Kim (junghanacs)
"Agents all the way down: from orchestration to specialization"
"메타에서 도메인까지, 계층으로 조직된 지능"
emacs/agent-shell-config.el- ACP + meta-config 통합- 디바이스 컨텍스트 인식 (LAPTOP/STORAGE-01/GPU-0X)
- 토큰 사용량 실시간 추정 및 경고
- Git 브랜치 자동 표시
CLAUDE.md- 에이전트용 간결한 지침docs/- Denote 형식 기술 문서emacs/README.md- 사용자 가이드
바로 사용하기: Quick Start
"agents all the way down: from orchestration to specialization" "메타에서 도메인까지, 계층으로 조직된 지능"
현재 ai 에이전트의 한계:
- ❌ 모든 도메인을 하나의 에이전트가 담당 → 컨텍스트 과부하
- ❌ 메모리 혼재 (개인/가족/업무) → 프라이버시 위험
- ❌ 템플릿 재사용 어려움 → 반복 작업
- ❌ 도메인 지식 부족 → 일반론적 답변
계층적 에이전트의 이점:
- ✅ 책임 분리: meta agent (조율) + domain agents (전문화)
- ✅ 컨텍스트 격리: 도메인별 독립 메모리
- ✅ 재사용성: 도메인 에이전트를 템플릿으로 배포
- ✅ 확장성: 새 도메인 = 새 에이전트 추가
- ✅ 병렬 실행: 여러 도메인 동시 처리
개인 시스템 (personal):
- 시간(time): 재현 가능한 환경, git 버전 관리
- 정신(mind): 인간지능 + ai 협업
- 방(room): ai agent 워크스페이스
계층적 시스템 (hierarchical):
- 시간(time): 도메인별 독립 히스토리 (~/org/{domain}/)
- 정신(mind): meta intelligence + domain intelligence
- 방(room): 계층적 에이전트 오케스트레이션
┌─────────────────────────────────────────────────┐
│ layer 6: user interface (emacs) │
│ - acp: agent-shell (acp.el by xenodium) │
│ - natural language 대화 │
│ - org-agenda: raw dashboard │
└─────────────────────────────────────────────────┘
↓ acp (json-rpc 2.0)
┌─────────────────────────────────────────────────┐
│ layer 5: meta agent (claude-config) │
│ ┌───────────────────────────────────────────┐ │
│ │ 역할: │ │
│ │ - 사용자 의도 파악 (intent recognition) │ │
│ │ - 도메인 라우팅 (domain routing) │ │
│ │ - 작업 위임 (task delegation) │ │
│ │ - 결과 통합 (result aggregation) │ │
│ │ - 전체 오케스트레이션 │ │
│ └───────────────────────────────────────────┘ │
│ │
│ 메모리: ~/claude-memory/ │
│ 지침서: claude.md │
└─────────────────────────────────────────────────┘
↓ delegate
┌─────────────────────────────────────────────────┐
│ layer 3: domain agents │
│ ┌───────────────────────────────────────────┐ │
│ │ family-config agent (가족 생활) │ │
│ │ - 메모리: ~/org/family/ │ │
│ │ - 지침서: family.md │ │
│ │ - 도메인: travel, finance, education... │ │
│ └───────────────────────────────────────────┘ │
│ ┌───────────────────────────────────────────┐ │
│ │ work-config agent (업무) [미래] │ │
│ │ - 메모리: ~/org/work/ │ │
│ │ - 지침서: work.md │ │
│ │ - 도메인: projects, clients, meetings... │ │
│ └───────────────────────────────────────────┘ │
│ ┌───────────────────────────────────────────┐ │
│ │ health-config agent (건강) [미래] │ │
│ │ - 메모리: ~/org/health/ │ │
│ │ - 지침서: health.md │ │
│ │ - 도메인: fitness, diet, medical... │ │
│ └───────────────────────────────────────────┘ │
└─────────────────────────────────────────────────┘
↓ a2a (json-rpc 2.0)
┌─────────────────────────────────────────────────┐
│ layer 4: human-ai shared interface (memacs) 🆕 │
│ ┌───────────────────────────────────────────┐ │
│ │ memacs = memex의 실현 (1945 → 2025) │ │
│ │ "텍스트 기반 프론트엔드" │ │
│ │ │ │
│ │ 역할: universal translator │ │
│ │ - 모든 데이터 소스 → org-mode 통일 │ │
│ │ - 시간 기반 통합 (타임스탬프) │ │
│ │ - 메타데이터 표준화 (properties, tags) │ │
│ │ │ │
│ │ input: │ │
│ │ - self-tracking-data (수면, 시간 추적) │ │
│ │ - samsung health, atimelogger │ │
│ │ - git commits, photos, zotero │ │
│ │ - diary.org clock entries │ │
│ │ │ │
│ │ output: ~/org/memacs/*.org │ │
│ │ │ │
│ │ 인간용: org-agenda (raw dashboard) │ │
│ │ - 투명한 텍스트 기반 시각화 │ │
│ │ - 시간축 중심 통합 뷰 │ │
│ │ - 완전한 통제 (git 버전 관리) │ │
│ │ │ │
│ │ ai용: 동일한 org 파일 (context) │ │
│ │ - life-context agent가 직접 읽음 │ │
│ │ - 수면-생산성 패턴 분석 │ │
│ │ - 컨텍스트 기반 의사결정 │ │
│ └───────────────────────────────────────────┘ │
│ │
│ 핵심 가치: │
│ - 단일 진실의 원천 (single source of truth) │
│ - 완전한 투명성 (텍스트 파일) │
│ - 완전한 통제 (외부 서비스 불필요) │
│ - ai 접근성 (api 비용 0원) │
└─────────────────────────────────────────────────┘
↓ mcp (json-rpc 2.0)
┌─────────────────────────────────────────────────┐
│ layer 3: domain agents │
│ (위와 동일) │
└─────────────────────────────────────────────────┘
↓ mcp
┌─────────────────────────────────────────────────┐
│ layer 2: mcp tools │
│ - web_search (정보 검색) │
│ - n8n (워크플로우 자동화) │
│ - playwright (웹 자동화) │
│ - git (버전 관리) │
│ - calendar (일정 관리) │
│ - supabase (데이터 쿼리) │
└─────────────────────────────────────────────────┘
↓ http/apis
┌─────────────────────────────────────────────────┐
│ layer 1: external services │
│ - google calendar/drive │
│ - banking apis │
│ - airlines, hotels │
│ - educational platforms │
│ - healthcare systems │
└─────────────────────────────────────────────────┘
문제: 인간과 ai가 서로 다른 인터페이스를 사용
- 인간: 대시보드, 그래프, ui
- ai: api, 데이터베이스, json
→ 데이터 중복, 동기화 문제, 진실의 원천 불명확
해결: memacs = 단일 진실의 원천
- 인간: org-agenda로 시각화
- ai: 동일한 org 파일을 읽음
- 형식: 텍스트 (투명), git (버전 관리), org-mode (표준화)
예시:
* 2025-10-15 화요일
** [2025-10-15 화 23:30]--[2025-10-16 수 07:15] 수면 😴
:properties:
:duration: 7.75h
:quality: 85%
:deep_sleep: 2.1h
:end:
** 09:00-11:30 deepwork 🎯
:properties:
:category: work
:duration: 2.5h
:project: family-config
:end:
→ 인간은 org-agenda로 보고, ai는 파일을 읽어서 패턴 분석
사용자 요청
↓
meta agent (layer 4)
↓
intent recognition (의도 파악)
↓
├─ personal domain? → claude-memory
├─ family domain? → family-config agent
├─ work domain? → work-config agent
└─ mixed? → multiple agents (병렬)
↓
domain agent(s) (layer 3)
↓
├─ load {domain}.md (지침서)
├─ load ~/org/{domain}/ (메모리)
├─ load templates/ (템플릿)
└─ execute with mcp tools
↓
mcp tools (layer 2)
↓
external services (layer 1)
↓
results → domain agent
↓
results → meta agent
↓
unified response → user
사용자: "여름에 제주도 가족 여행 계획 좀 도와줘"
[meta agent]
1. intent: "가족 여행" → family domain
2. task type: travel.plan
3. delegate to: family-config agent
[family-config agent]
1. family.md 로드
2. ~/org/family/travel/ 확인
3. 과거 패턴 분석:
- 2024년 부산 여행: 300만원, 4박 5일
- 선호: 자연 체험, 가족 친화적 숙소
4. travel/templates/trip-planning.org 사용
5. mcp 도구 실행:
- web_search: 제주도 항공권
- web_search: 가족 숙소
- web_search: 액티비티
6. 결과를 org 파일로 생성:
~/org/family/travel/20250720-jeju.org
7. 예산 자동 계산 (ledger)
8. calendar 이벤트 생성
[meta agent]
결과 통합 및 사용자에게 보고:
"제주도 여행 계획이 완성되었습니다:
- 파일: ~/org/family/travel/20250720-jeju.org
- 예산: 285만원 (목표 300만원 이내)
- 항공권 옵션: 5개 (가장 저렴: 68만원)
- 숙박 옵션: 12개 (추천: 힐튼 리조트)
- 다음 단계: 항공권 예약 (마감: 4월 30일)"
사용자: "오늘 할 일 정리 좀 해줘"
[meta agent]
1. multiple domains 감지
2. 병렬 실행:
├─ personal: claude-memory/
├─ family: family-config agent
└─ work: work-config agent
[personal domain] (meta agent 직접 처리)
- ~/claude-memory/projects/ 스캔
- 활성 프로젝트: "family-config 구축"
- todo: readme.md 완성
[family-config agent] (백그라운드)
- ~/org/family/events/ 스캔
→ "내일: 친구 결혼식" 발견
- ~/org/family/finance/ 확인
→ "이번 달 예산 90% 사용" 경고
- ~/org/family/education/ 확인
→ "아이1 시험: 다음 주 수요일"
[work-config agent] (백그라운드)
- ~/org/work/projects/ 스캔
→ "프로젝트 a: 코드 리뷰 대기"
- ~/org/work/meetings/ 확인
→ "오후 3시: 팀 미팅"
[meta agent]
결과 통합:
"오늘 할 일 (우선순위순):
개인:
- [ ] family-config readme.md 완성
가족:
- [ ] 결혼식 부조금 준비 (5만원)
- ⚠️ 이번 달 예산 90% 사용 (주의)
- 📅 아이1 시험 준비 확인 (다음 주)
업무:
- [ ] 프로젝트 a 코드 리뷰
- [ ] 15:00 팀 미팅 준비"
[family-config agent] (cron: 매일 06:00)
1. events/ 디렉토리 스캔
2. 이번 주 경조사 발견:
- 토요일: 외삼촌 생신
3. 과거 기록 조회:
- 2024년: 5만원 (전화 + 선물)
- 2023년: 5만원 (전화 + 식사)
4. meta agent에 알림 전송
[meta agent]
사용자에게 프롬프트:
"🎂 이번 주 토요일은 외삼촌 생신입니다.
- 과거 패턴: 5만원 (전화 + 선물)
- 제안: 전화 드리기 + 온라인 선물 배송
- 예산: finance/gifts 카테고리
- 일정: calendar에 추가할까요?"
-
요청 형식 (request)
# meta agent → domain agent delegation: version: 1.0.0 agent: family-config task: type: family.travel.plan priority: high deadline: "2025-04-30" context: destination: "제주도" start_date: "2025-07-20" end_date: "2025-07-27" budget: 3000000 participants: - role: dad - role: mom - role: child1 age: 8 - role: child2 age: 5 preferences: accommodation: "가족 친화적 리조트" activities: ["자연 체험", "문화 관광"] output: format: org_file location: ~/org/family/travel/ filename_pattern: "{date}-{destination}.org" notify: true
-
응답 형식 (response)
# domain agent → meta agent result: status: success agent: family-config task_id: 20251014t130500 execution_time: 45s output: file_path: ~/org/family/travel/20250720-jeju.org format: org summary: flights_found: 5 flights_best_price: 680000 accommodations_found: 12 accommodations_recommended: "힐튼 제주" total_budget_estimated: 2850000 days_planned: 7 next_actions: - action: book_flight deadline: "2025-04-30" estimated_cost: 680000 - action: book_accommodation deadline: "2025-05-15" estimated_cost: 1400000 - action: book_rental_car deadline: "2025-06-01" estimated_cost: 420000 metadata: mcp_calls: 8 tokens_used: 1200 templates_used: ["trip-planning.org"] patterns_matched: ["jeju", "family-4", "summer"]
-
family domain
family.travel.plan: 여행 계획family.travel.track: 여행 경비 추적family.events.manage: 경조사 관리family.events.remind: 경조사 알림family.finance.budget: 예산 수립family.finance.track: 지출 추적family.finance.report: 재무 리포트family.education.schedule: 교육 일정family.education.track: 학습 추적family.childcare.routine: 육아 루틴family.childcare.health: 건강 관리family.calendar.sync: 일정 동기화
-
work domain (미래)
work.project.plan: 프로젝트 계획work.task.assign: 작업 할당work.meeting.schedule: 회의 일정work.report.generate: 리포트 생성
-
health domain (미래)
health.fitness.plan: 운동 계획health.diet.track: 식단 추적health.medical.schedule: 진료 예약
~/repos/gh/meta-config/
├── readme.org # 이 문서
├── docs/
│ ├── delegation-protocol.org # 위임 프로토콜 상세
│ ├── task-types.org # 작업 타입 정의
│ └── examples/ # 시나리오 예시
└── schemas/
├── delegation-request.yaml # 요청 스키마
└── delegation-response.yaml # 응답 스키마
~/.config/claude-code/ # meta agent 설정
~/claude-config/ # meta agent 메모리
├── claude.md # meta agent 지침서
└── memory/ # 개인 메모리 (para)
~/repos/gh/family-config/ # family agent 템플릿
├── family.md # family agent 지침서
├── memory/ # 패턴 축적
└── {domain}/templates/ # 도메인별 템플릿
~/org/family/ # family 실제 데이터
├── travel/
├── finance/
├── education/
└── ...
~/repos/gh/work-config/ # work agent 템플릿 (미래)
~/org/work/ # work 실제 데이터 (미래)
~/repos/gh/health-config/ # health agent 템플릿 (미래)
~/org/health/ # health 실제 데이터 (미래)
- family-config agent 템플릿 구축
- meta agent 위임 프로토콜 설계
- 단일 도메인 위임 테스트
- travel 영역 검증
- work-config agent 추가
- 다중 도메인 병렬 실행
- 결과 통합 최적화
- 백그라운드 에이전트 구현
- 패턴 학습 및 추천
- 도메인 간 인사이트 공유
- 능동적 제안 시스템
- 사용자 선호도 학습
- health/finance/… 도메인 추가
- 커뮤니티 에이전트 템플릿 허브
- 에이전트 마켓플레이스
- 표준화 및 상호운용성
문제: 도메인별 컨텍스트를 어떻게 격리하면서도 필요시 공유할 것인가?
해결 방향:
- 도메인별 독립 메모리 (~org/{domain}/)
- 명시적 컨텍스트 전달 (delegation protocol)
- 공유 컨텍스트는 meta agent가 중재
문제: 에이전트 간 효율적 통신 프로토콜
해결 방향:
- yaml 기반 구조화된 메시지
- 비동기 실행 (백그라운드 에이전트)
- 결과 캐싱 및 재사용
문제: 여러 도메인 에이전트의 결과를 어떻게 통합?
해결 방향:
- 표준화된 출력 형식 (org-mode)
- meta agent의 결과 검증
- 충돌 해결 규칙
문제: 도메인별 민감도가 다른 데이터 보호
해결 방향:
- 물리적 분리 (별도 git 저장소)
- 접근 제어 (도메인 에이전트만 접근)
- 선택적 공유 (명시적 동의)
각 {domain}.md 파일은:
- 단순한 설정이 아님
- 에이전트 계약서(contract)
- 도메인 언어 정의
- 위임 인터페이스 명세
meta intelligence (조율)
↓
domain intelligence (전문화)
↓
tool intelligence (실행)
↓
service intelligence (외부)
각 레벨은:
- 독립적 책임
- 명확한 인터페이스
- 재사용 가능한 컴포넌트
- meta agent: what (무엇을 할까?)
- domain agent: how (어떻게 할까?)
- mcp tools: execute (실행)
- services: provide (제공)
- family-config: actionable intelligence for family life
- family.md - agent 지침서
- claude.md - meta agent 지침서
- hierarchical task networks (htn): ai planning 이론
- microservices architecture: 서비스 분리 및 오케스트레이션
- actor model: erlang/akka 메시지 기반 시스템
- delegation pattern: oop 설계 패턴
- autogpt: 자율 에이전트
- langchain agents: 도구 체인
- n8n: 워크플로우 오케스트레이션
- emacs org-mode: 구조화된 텍스트
- emacs + org-mode
- claude code (meta agent)
- mcp 도구 설정
- git
git clone https://github.com/junghan0611/family-config.git ~/repos/gh/family-config
cd ~/repos/gh/family-configmkdir -p ~/org/family
cd ~/org/family
git init사용자: "제주도 여행 계획 좀 도와줘"
meta agent가:
- "여행" 키워드 감지
- family.md 로드
- family-config agent에 위임
- 결과 통합 및 보고
- 에이전트 간 분산 실행을 어떻게?
- 에이전트 버전 관리는?
- 에이전트 디버깅 도구는?
- 에이전트 성능 측정은?
- 사용자가 도메인을 어떻게 정의?
- 에이전트 간 충돌 해결은?
- 사용자 피드백 반영은?
- 에이전트 신뢰도 평가는?
- 커뮤니티 에이전트 공유는?
- 표준화된 인터페이스는?
- 에이전트 마켓플레이스는?
- 상업적 에이전트는?
mit license
junghan kim (junghanacs)
- website: 힣's 디지털가든
- github: @junghanacs
- 시간과정신의방: 개인 컴퓨팅 환경 통합 철학
- para method: 정보 조직 방법론
- denote: 타임스탬프 기반 파일 관리
- org-mode: 구조화된 텍스트의 힘
—
**"the future is hierarchical, specialized, and collaborative."** **"미래는 계층적이고, 전문화되며, 협업한다."**
;; ~/.emacs.d/init.el 또는 ~/.doom.d/config.el
(add-to-list 'load-path "~/repos/gh/meta-config/emacs/")
(require 'agent-shell-config)echo "LAPTOP" > ~/.current-device
# 또는 STORAGE-01, GPU-01, GPU-02, GPU-03M-x agent-shell-anthropic
;; 모드라인에 [LAPTOP] [main] [Always Ask] [45%] 표시됨자세한 내용: emacs/README.md