OpenClaw·Hermes 마이그레이션 (7/13) — 5주 이사 계획: 11 카테고리 이식 명세

부제: Week 1은 SQLite 스키마, Week 5는 컷오버


핵심 요약

이 글이 전달하는 것: - 이식 단위 설계 기법: 30+개 스크립트를 11 카테고리(A~K)로 압축해 이사 단위를 11번으로 고정하는 방법. - 5주 컷오버 일정 템플릿: Week 1 스키마 → Week 2 마이그 → Week 3 설치 → Week 4 자산 이식 → Week 5 듀얼 실행 + 컷오버. - 산출물 3종 규격: 상세 일정, Profile 정의, memcore API 스펙 — 각 문서의 필수 항목과 연결 관계.

11 카테고리 — 기능 단위로 묶는 기법

이식 명세를 스크립트 단위로 열거하면 이동·검증 단위가 30+개로 늘어난다. 기능 단위로 묶으면 동일 범위가 11 단위로 축소된다. 묶음 기준은 "동일 스키마/프로토콜을 공유하는가"이며, 이 기준을 적용한 결과가 아래 표다.

카테고리 핵심
A 메모리 시스템 4-tier, Retain 태그, U-tag dialectic, Reflect, micro-cycle, Topic-Cued Recall, 의미 검색
B Heartbeat 3-tier + 11 escalation reasons + Quota 체크
C Self-Review 3-stage + Skill Evolution Loop
D Daily Audit Phase A~E (가이드/업데이트 감지, 진단, 집계, 최종 리뷰)
E Researcher Deep Mode 5라운드 AutoSearch + 3-tier 웹 접근
F Channel Routing Discord 주채널 + Telegram Forum 6 토픽
G Profile 매핑 11 워크스페이스 → 5~6 profile
H Hooks PostToolUse, PreToolUse, SessionStart/End/Compact
I 보안 모델 loopback, token, dmPolicy, 단일 사용자 수용
J 자동 업데이트 com.hermes.update-check 신규
K 폐기 대상 OpenClaw 전용 스킬·스크립트

작동 원리

카테고리 묶기는 두 가지 효과를 만든다. 첫째, 이식 체크리스트가 N(스크립트) → K(카테고리)로 축소된다. 둘째, 카테고리 내부는 동일 데이터 구조를 공유하므로 검증 시나리오를 1회만 설계해도 내부 항목 전체에 재사용된다. Heartbeat(B)를 예로 들면 3-tier 로직 · 11 escalation reason · Quota 체크가 모두 동일 메시지 스키마를 공유하므로, 단일 회귀 테스트로 묶음 전체 검증이 가능하다.

한계

카테고리 간 의존(예: A 메모리 ↔ H Hooks)은 별도로 표기해야 한다. 묶음만으로는 순서를 고정할 수 없고, 5주 일정의 실제 순서는 의존 그래프에서 도출된다.

5주 일정 — 의존 순서와 검증 체크포인트

Week 작업
1 memcore SQLite 스키마 설계 + 라이브러리 골격
2 bank/memcore 변환 (rsync 스냅샷 + 마이그)
3 Hermes 설치 + 1 profile + MemoryProvider 어댑터
4 보존 자산 8개 이식 + Hermes profile 5~6개 정의
5 듀얼 실행 + 검증 + 컷오버

각 주차는 입력 / 출력 / 검증 / 롤백 조건을 Day 단위로 쪼갠다. 이식 중단점에서 "현재 어느 단계인지"를 재구성할 수 있어야 하며, Week 5의 듀얼 실행은 두 시스템을 동시에 가동한 상태에서 한쪽을 중단하는 절차이므로 롤백 조건이 가장 조밀하게 정의된다.

산출물 3종 규격

1. Hermes-Migration-Detailed-Plan.md

5주 일정을 Day 1~35로 항목화. 각 Day의 입력 / 출력 / 검증 / 롤백 조건을 표로 정의한다. 목적은 이식 중 임의 시점에서 "현재 상태 · 다음 액션 · 실패 시 복구 경로"가 단일 문서로 조회 가능하게 하는 것.

2. Hermes-Profile-Definitions.md

Hermes profile 5~6개의 AGENTS.md 초안. - mir-coordinator — 사용자 페르소나, 라우팅 - research — 웹 리서치 + Deep Mode - writer — 글쓰기 - coder — 코딩 + CLI - google-workspace — Gmail / Calendar - memory-ops — Reflect, audit, housekeeping

각 profile은 활성 스킬 카테고리를 명시한다. 11 워크스페이스 → 6 profile 압축이 핵심 설계 포인트이며, 이 압축이 G 카테고리(Profile 매핑)의 실질 산출물이다.

3. memcore-API-Spec.md

memcore 라이브러리의 외부 API 시그니처. Hermes의 MemoryProvider 인터페이스 — initialize / system_prompt_block / prefetch / sync_turn / get_tool_schemas / handle_tool_call / shutdown / on_session_end / on_pre_compress / on_memory_write / on_delegation — 와의 매핑 표를 함께 둔다. 이 매핑이 있어야 Week 3의 어댑터 작업이 기계적으로 진행된다.

적용 가능 범위와 열린 질문

적용 범위. 기능 묶음 + 5주 컷오버 템플릿은 다음 조건을 만족하는 이식에 재사용 가능하다 — (1) 대상 시스템이 스크립트/스킬 단위로 분해되어 있음, (2) 원본과 신규를 병행 가동할 수 있는 리소스, (3) 메모리·상태를 공유하는 어댑터 레이어를 설계할 수 있음. 세 조건이 빠지면 Week 5의 듀얼 실행이 성립하지 않는다.

열린 질문. - 카테고리 수가 11보다 커지면 묶음 이득이 감소한다. 상한은 어디인가. - Week 5 컷오버 시 롤백 조건의 granularity는 Day 단위로 충분한가, 아니면 Hour 단위까지 내려야 하는가. - MemoryProvider 인터페이스의 on_pre_compress 훅은 기존 OpenClaw의 압축 로직과 1:1 매핑되지 않는다. 이 간극을 어댑터에서 흡수할지, 인터페이스 자체를 조정할지.

다음 글에서는 Week 1~2 실행 결과를 다룬다 — SQLite 스키마 구조, FTS5 인덱스 구성, 보존 자산 7/8 이식 완료 시점의 측정값.

시리즈 전체 안내: 시리즈 목차

댓글

이 블로그의 인기 게시물

"LLM 핵심 학습 (1/6) — 기본: 토큰화·임베딩·어텐션·위치 인코딩"

"LLM 핵심 학습 (2/6) — 파인튜닝: LoRA·QLoRA·증류·Adapter"

"ML 기초 학습 (1/9) — 머신러닝과 sklearn: 학습의 좌표계"