이 레포가 무엇을 하는 물건인가.
한 사이클은 단순합니다: ① memory/의 실행 로그·에러 패턴을 스캔하고 ② 가장 잘 맞는 Gene/Capsule을 골라 ③ 프로토콜에 묶인 GEP 프롬프트를 출력하고 ④ EvolutionEvent를 감사 기록으로 남깁니다. 소스 코드를 직접 수정하지 않고, 임의 셸 명령도 실행하지 않으며, 코어는 완전 오프라인으로 돕니다.
git 저장소 안에서 evolver 한 번 치면 끝입니다. 출력된 GEP 프롬프트를 에이전트에 넣거나, 훅을 설정해 두면 세션 시작/종료 때 자동으로 소비됩니다. --review는 사람 확인 후 적용, --loop는 백그라운드 자가 정비 데몬 모드입니다.
트렌딩 이유 · 경쟁 대비 장점.
에이전트 자가개선은 올해 가장 뜨거운 주제인데, 대부분 "스킬 문서를 더 쌓자"는 접근입니다. Evolver 팀은 arXiv 논문으로 정면 반박합니다 — 45개 과학 코딩 시나리오, 4,590회 통제 실험에서 문서형 Skill은 제어 신호가 희박하고 불안정한 반면, 압축된 Gene 표현이 가장 강한 성능과 구조 변형 내성을 보였다는 결과. CritPt 물리 벤치마크에서 Gene 진화 시스템이 기반 모델 점수를 9.1%→18.57%로 끌어올렸습니다.
| 비교 항목 | 임기응변 프롬프트 손질 | Evolver (GEP) |
|---|---|---|
| 경험 축적 | 채팅 기록 속에 증발 | Gene/Capsule 자산으로 저장·재사용 |
| 추적성 | "언제 뭘 바꿨더라?" | EvolutionEvent 감사 로그 의무 기록 |
| 적용 방식 | 에이전트가 코드/프롬프트 직접 수정 | 프로토콜 구속 프롬프트만 출력 (실행 권한 없음) |
| 공유 | 개인 노하우 | EvoMap 허브로 검증된 자산 교환 (선택) |
README 공지에 따르면, 같은 분야의 다른 프로젝트(hermes-agent)가 유사한 메모리/스킬/진화 자산 설계를 출처 표기 없이 내놓았다고 보고, 향후 릴리스를 source-available로 전환한다고 밝혔습니다. 기존 MIT/GPL 버전은 원래 조건대로 계속 사용 가능합니다 — 도입 검토 시 라이선스 추이를 지켜볼 부분.
"왜 Gene인가"에 논문이 답하고, "위험하지 않나"에 프롬프트-생성-전용 설계가 답하고, "추적 가능한가"에 EvolutionEvent가 답합니다. 자가진화 분야에서 보기 드문 3박자입니다.
순수 Node.js — 의존성보다 프로토콜이 무겁다.
| 레이어 | 기술 | 역할 |
|---|---|---|
| 엔진 | Node.js ≥ 22.12 (@evomap/evolver) | CLI 본체. npm 전역 설치, git 저장소 필수(롤백·영향범위 계산에 사용). |
| 진화 파이프라인 | src/evolve/pipeline/ | collect→signals→select→enrich→dispatch 5단계. |
| GEP 자산 계층 | src/gep/ (60+ 모듈) | assetStore·candidateEval·epigenetics·curriculum·crypto — Gene 저장·평가·서명. |
| 런타임 어댑터 | src/adapters/ | Cursor·Claude Code·Codex·Kiro·opencode 훅 설치 + OpenClaw 네이티브. |
| 에이전트 경제 | src/atp/ | ATP — 에이전트 간 작업 거래 프로토콜(merchant/consumer 에이전트, 자동 구매·배달). |
| 네트워크 | EvoMap 허브 (A2A 프로토콜) | 선택 기능 — 자산 공유·리더보드·워커 풀. 코어는 오프라인. |
| 기록 | memory/ + memory_graph.jsonl | 로그·신호·사이클 결과의 로컬 단일 진실원. |
setup-hooks --platform=cursor 한 줄로 이 자리에 자기 스크립트(세션 기록 수집·신호 감지·과제 회상)를 심습니다.한 번의 진화 사이클을 따라가기.
핵심 설계 결정은 권한의 의도적 결핍입니다. Evolver는 코드를 못 고치고 셸을 못 부릅니다. 출력은 언제나 "텍스트"이고, 그걸 실행할지 말지는 숙주 런타임(또는 사람)이 결정합니다. 자가진화 시스템의 최대 공포 — 에이전트가 스스로를 망가뜨리는 폭주 — 를 아키텍처 차원에서 차단한 겁니다. git 필수 요건도 같은 맥락입니다: 롤백과 blast radius (영향 범위, 변경이 미치는 파급권) 계산이 항상 가능해야 하니까요.
재미있는 곁가지는 src/atp/의 ATP(에이전트 거래 프로토콜)입니다. 에이전트가 상인(merchant)과 소비자(consumer)로 나뉘어 작업을 사고팔고, 자동 구매·하트비트·배달 확인까지 구현돼 있습니다 — "에이전트 경제"라는 다음 단계를 미리 깔아둔 모듈로, 본체와 분리돼 있어 따로 읽기 좋습니다.
Evolver는 운동선수(에이전트)를 직접 뛰게 하는 감독이 아니라, 경기 영상(로그)을 분석해 다음 훈련 처방전(GEP 프롬프트)을 써 주는 코치입니다. 처방전엔 항상 일련번호(EvolutionEvent)가 붙어서, 시즌이 끝나면 어떤 처방이 성적을 올렸는지 되짚을 수 있습니다.
어떤 폴더가 무슨 일을 하나.
| 위치 | 주목할 점 |
|---|---|
src/evolve/pipeline/ | 파이프라인이 파일 6개로 단계화(collect·signals·select·enrich·dispatch·hub) — 진화 로직의 뼈대를 여기서 파악. |
src/gep/autoDistillConv.js | 에이전트 대화에서 Gene을 자동 증류 — "경험→자산" 변환의 실체. |
src/gep/epigenetics.js | 이름부터 생물학 은유 — 자산을 바꾸지 않고 발현만 조절하는 계층. |
src/adapters/scripts/ | 모든 런타임이 공유하는 4개 스크립트(session-start/end·signal-detect·task-recall) — 어댑터는 얇게, 로직은 공용으로. |
이 레포에서 배울 만한 것 + 어디를 보면 되는지.
자가진화 도구가 프롬프트 생성만 하도록 권한을 깎은 결정(코드 수정 불가·셸 실행 불가·오프라인 코어)은 에이전트 안전 설계의 좋은 사례입니다. README의 Security Model 절과 evolve/guards.js를 함께 읽어 보세요.
src/adapters/는 Cursor hooks.json·Claude Code 훅·Codex hooks(+전사 로그 없는 한계 보정)·Kiro .kiro.hook·opencode 플러그인을 한 코드베이스에서 다룹니다 — 각 CLI 훅 규약의 차이를 한눈에 비교할 수 있는 드문 자료. OpenClaw는 setup-hooks 대상이 아닌 네이티브 stdout 해석 방식으로 별도 동작합니다.
"Skill 문서 대신 Gene"이라는 제품 철학이 4,590회 실험 논문(arXiv:2604.15097)에 근거합니다. 주장→실험→구현(assetStore·candidateEval)으로 이어지는 흐름을 추적하면 연구 기반 제품 개발의 감을 잡을 수 있습니다.
src/atp/protocol.js부터 merchant/consumer 에이전트, 자동구매, 하트비트까지 — "에이전트끼리 작업을 사고판다"는 아이디어의 동작하는 스케치입니다.
돌리려면 무엇이 필요한가.
| 항목 | 요구사항 |
|---|---|
| 런타임 | Node.js ≥ 22.12. |
| 필수 도구 | Git — 롤백·영향범위 계산에 사용. git 밖에선 명시적 에러로 거부. |
| 네트워크 | 코어는 완전 오프라인. EvoMap 허브 연결(.env의 A2A_NODE_ID)은 공유·리더보드용 선택사항. |
| 숙주 런타임 | 선택 — Cursor·Claude Code·Codex·Kiro·opencode·OpenClaw 중 사용하는 것에 setup-hooks. |
난이도별로 손에 익히는 단계.
npm install -g @evomap/evolver 후 아무 git 프로젝트에서 evolver를 실행해 배너→스캔→Gene 선택→GEP 프롬프트 출력→EvolutionEvent 기록의 5단계를 눈으로 확인합니다. memory/에 뭐가 생겼는지 열어 보세요.
쓰는 에이전트 CLI에 evolver setup-hooks --platform=...을 걸고 며칠 코딩한 뒤, evolver --review로 세션 로그 기반 처방이 어떻게 달라지는지 봅니다. 어떤 파일이 어디 설치됐는지(~/.cursor/hooks 등)도 직접 확인.
출력된 GEP 프롬프트를 뜯어 어떤 구속(프로토콜 규칙)이 걸려 있는지 분석하고, 일부러 규칙을 어기는 응답을 만들어 에이전트가 어떻게 반응하는지 실험해 봅니다.
소스 클론 후 src/evolve/pipeline/signals.js에 내 프로젝트 특유의 신호(예: 특정 테스트 반복 실패)를 추가하고 node index.js로 선택 결과가 바뀌는지 검증합니다.
한 주씩 따라가는 계획.
| 주차 | 주제 | 학습 자료 |
|---|---|---|
| 1주차 | 자가진화 개념 + 첫 사이클 | README · evomap.ai/wiki · 실습 1 |
| 2주차 | Gene vs Skill 논쟁의 근거 | arXiv:2604.15097 · CritPt 평가 리포트 |
| 3주차 | 파이프라인·자산 계층 코드 정독 | src/evolve/pipeline/ · src/gep/assetStore.js |
| 4주차 | 훅 생태계 — 5개 CLI 비교 | src/adapters/ · 각 CLI 훅 문서 |
| 5주차 | ATP·A2A — 에이전트 네트워크 | src/atp/ · examples/atp-consumer-quickstart.md |
본문에 나온 용어 빠른 참조.
| 용어 | 의미 |
|---|---|
| GEP | Genome Evolution Protocol — 에이전트 경험을 유전자 자산으로 다루는 규약. |
| Gene | 경험을 압축한 작은 전략 단위 — 문서형 스킬의 대안. |
| Capsule | Gene의 묶음·전달 단위. |
| EvolutionEvent | 매 진화 사이클을 기록하는 감사 이벤트 — 추적성의 핵심. |
| test-time evolution | 모델 재학습 없이 실행 시점 경험 축적으로 성능을 올리는 접근. |
| blast radius | 변경 하나가 미치는 영향 범위 — git 기반으로 계산. |
| A2A | Agent-to-Agent — EvoMap 허브를 통한 에이전트 간 자산 교환 프로토콜. |
| ATP | Agent Trade Protocol — 에이전트끼리 작업을 사고파는 실험적 경제 계층. |
| epigenetics | 후성유전 은유 — Gene 자체를 바꾸지 않고 발현(적용 강도)만 조절. |
| source-available | 소스는 공개하되 OSI 오픈소스보다 제한적인 라이선스 — 이 레포의 전환 예고 방향. |