TRENDSHIFT 딥다이브 · 2026-06-08

Evolver 딥다이브
— 프롬프트 손질을 '감사 가능한 진화 자산'으로 바꾸는 엔진

에이전트를 쓰다 보면 누구나 프롬프트를 이리저리 고칩니다 — 그런데 뭐가 효과 있었는지는 아무도 기록하지 않죠. Evolver는 이 임기응변을 GEP (Genome Evolution Protocol, 게놈 진화 프로토콜)라는 규약 아래 유전자(Gene)·캡슐(Capsule)이라는 재사용 가능한 자산으로 축적하고, 모든 진화 단계를 감사 로그로 남기는 자가진화 엔진입니다. arXiv 논문(4,590회 통제 실험)이 이론적 근거를 받치고 있고, Cursor·Claude Code·Codex 등 6개 런타임에 훅으로 붙습니다. (저장소: EvoMap/evolver · Node.js · TrendShift 9위 · GPL-3.0)
목차
  1. 프로젝트 한줄 요약
  2. 왜 주목받는가
  3. 기술 스택 전체 지도
  4. 아키텍처 심화 분석
  5. 디렉토리 구조 해부
  6. 학습 포인트 (기술별)
  7. 시스템 요구사항
  8. 직접 해볼 수 있는 실습 과제
  9. 관련 기술 심화 학습 로드맵
  10. 핵심 키워드 사전
  11. 참고 링크

1프로젝트 한줄 요약

이 레포가 무엇을 하는 물건인가.

핵심 메시지

"Evolver는 코드를 고치는 도구가 아니라,
다음 진화 단계를 처방하는 프롬프트 생성기다."

한 사이클은 단순합니다: ① memory/의 실행 로그·에러 패턴을 스캔하고 ② 가장 잘 맞는 Gene/Capsule을 골라 ③ 프로토콜에 묶인 GEP 프롬프트를 출력하고 ④ EvolutionEvent를 감사 기록으로 남깁니다. 소스 코드를 직접 수정하지 않고, 임의 셸 명령도 실행하지 않으며, 코어는 완전 오프라인으로 돕니다.

git 저장소 안에서 evolver 한 번 치면 끝입니다. 출력된 GEP 프롬프트를 에이전트에 넣거나, 훅을 설정해 두면 세션 시작/종료 때 자동으로 소비됩니다. --review는 사람 확인 후 적용, --loop는 백그라운드 자가 정비 데몬 모드입니다.

용어
Gene / Capsule (유전자 / 캡슐)
긴 스킬 문서 대신, 에이전트 경험을 압축한 작은 전략 단위가 Gene, 그 묶음·전달 단위가 Capsule입니다. "이 상황에선 이렇게 움직여라"를 문서가 아니라 유전자처럼 선택·교배·축적 가능한 자산으로 다루자는 발상입니다.

2왜 주목받는가

트렌딩 이유 · 경쟁 대비 장점.

에이전트 자가개선은 올해 가장 뜨거운 주제인데, 대부분 "스킬 문서를 더 쌓자"는 접근입니다. Evolver 팀은 arXiv 논문으로 정면 반박합니다 — 45개 과학 코딩 시나리오, 4,590회 통제 실험에서 문서형 Skill은 제어 신호가 희박하고 불안정한 반면, 압축된 Gene 표현이 가장 강한 성능과 구조 변형 내성을 보였다는 결과. CritPt 물리 벤치마크에서 Gene 진화 시스템이 기반 모델 점수를 9.1%→18.57%로 끌어올렸습니다.

비교 항목임기응변 프롬프트 손질Evolver (GEP)
경험 축적채팅 기록 속에 증발Gene/Capsule 자산으로 저장·재사용
추적성"언제 뭘 바꿨더라?"EvolutionEvent 감사 로그 의무 기록
적용 방식에이전트가 코드/프롬프트 직접 수정프로토콜 구속 프롬프트만 출력 (실행 권한 없음)
공유개인 노하우EvoMap 허브로 검증된 자산 교환 (선택)
알아둘 맥락
오픈소스 → 소스 공개(source-available) 전환 예고

README 공지에 따르면, 같은 분야의 다른 프로젝트(hermes-agent)가 유사한 메모리/스킬/진화 자산 설계를 출처 표기 없이 내놓았다고 보고, 향후 릴리스를 source-available로 전환한다고 밝혔습니다. 기존 MIT/GPL 버전은 원래 조건대로 계속 사용 가능합니다 — 도입 검토 시 라이선스 추이를 지켜볼 부분.

차별점 요약
이론(논문) + 안전(권한 분리) + 감사(이벤트 로그)

"왜 Gene인가"에 논문이 답하고, "위험하지 않나"에 프롬프트-생성-전용 설계가 답하고, "추적 가능한가"에 EvolutionEvent가 답합니다. 자가진화 분야에서 보기 드문 3박자입니다.

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로그·신호·사이클 결과의 로컬 단일 진실원.
용어
훅 (hook, 에이전트 런타임의 특정 시점에 끼어드는 사용자 스크립트)
세션 시작·파일 수정 후·세션 종료 같은 순간에 자동 실행되는 코드 조각. Evolver는 setup-hooks --platform=cursor 한 줄로 이 자리에 자기 스크립트(세션 기록 수집·신호 감지·과제 회상)를 심습니다.

4아키텍처 심화 분석

한 번의 진화 사이클을 따라가기.

evolver 한 사이클 (프롬프트 생성기) ┌────────────────────────────────────────────────────┐ │ $ evolver (git 저장소 안에서) │ │ │ │ │ ▼ │ │ ① collect ── memory/ 스캔: 세션 로그·에러·신호 │ │ │ (훅이 미리 쌓아둔 기록) │ │ ▼ │ │ ② signals ── 신호 추출: 반복 실패 패턴, 미해결 과제, │ │ │ memory_missing 같은 advisory │ │ ▼ │ │ ③ select ── 로컬 GEP 자산 풀에서 가장 맞는 │ │ │ Gene/Capsule 선택 (candidateEval) │ │ ▼ │ │ ④ enrich/dispatch ── 프로토콜 구속 GEP 프롬프트 조립 │ │ │ → stdout 출력 │ │ ▼ │ │ ⑤ EvolutionEvent 기록 (감사 추적) │ │ │ │ ── 이후는 숙주의 몫 ── │ │ 사람: 프롬프트를 에이전트에 복붙 │ │ OpenClaw: stdout의 sessions_spawn(...) 자동 해석 │ │ Cursor/Claude Code: 훅이 다음 세션에 주입 │ └────────────────────────────────────────────────────┘

핵심 설계 결정은 권한의 의도적 결핍입니다. Evolver는 코드를 못 고치고 셸을 못 부릅니다. 출력은 언제나 "텍스트"이고, 그걸 실행할지 말지는 숙주 런타임(또는 사람)이 결정합니다. 자가진화 시스템의 최대 공포 — 에이전트가 스스로를 망가뜨리는 폭주 — 를 아키텍처 차원에서 차단한 겁니다. git 필수 요건도 같은 맥락입니다: 롤백과 blast radius (영향 범위, 변경이 미치는 파급권) 계산이 항상 가능해야 하니까요.

재미있는 곁가지는 src/atp/ATP(에이전트 거래 프로토콜)입니다. 에이전트가 상인(merchant)과 소비자(consumer)로 나뉘어 작업을 사고팔고, 자동 구매·하트비트·배달 확인까지 구현돼 있습니다 — "에이전트 경제"라는 다음 단계를 미리 깔아둔 모듈로, 본체와 분리돼 있어 따로 읽기 좋습니다.

비유

Evolver는 운동선수(에이전트)를 직접 뛰게 하는 감독이 아니라, 경기 영상(로그)을 분석해 다음 훈련 처방전(GEP 프롬프트)을 써 주는 코치입니다. 처방전엔 항상 일련번호(EvolutionEvent)가 붙어서, 시즌이 끝나면 어떤 처방이 성적을 올렸는지 되짚을 수 있습니다.

5디렉토리 구조 해부

어떤 폴더가 무슨 일을 하나.

evolver/ ├── index.js CLI 진입점 (evolver = node index.js) ├── src/ │ ├── evolve/ 진화 파이프라인 ★ │ │ ├── pipeline/ collect·signals·select·enrich· │ │ │ dispatch·hub (5+1 단계) │ │ └── guards.js 안전 가드 │ ├── gep/ GEP 자산 계층 (60+ 모듈) │ │ ├── assetStore.js·assets.js Gene/Capsule 저장 │ │ ├── candidateEval.js·explore.js 선택·탐색 │ │ ├── epigenetics.js·curriculum.js 적응·커리큘럼 │ │ ├── autoDistillConv.js 대화→자산 증류 │ │ └── crypto.js·contentHash.js 서명·무결성 │ ├── adapters/ Cursor·Claude Code·Codex·Kiro· │ │ └── scripts/ opencode 훅 + 공용 스크립트 │ ├── atp/ 에이전트 거래 프로토콜 (상인/소비자) │ └── canary.js·config.js 점진 배포·설정 ├── scripts/ a2a 수출입·리포트·검증 유틸 ├── SKILL.md 스킬/MCP 통합용 Proxy 메일박스 API └── examples/ hello-world·ATP 퀵스타트
위치주목할 점
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) — 어댑터는 얇게, 로직은 공용으로.

6학습 포인트 (기술별)

이 레포에서 배울 만한 것 + 어디를 보면 되는지.

포인트 1 — 안전 설계

"능력을 빼는" 아키텍처

자가진화 도구가 프롬프트 생성만 하도록 권한을 깎은 결정(코드 수정 불가·셸 실행 불가·오프라인 코어)은 에이전트 안전 설계의 좋은 사례입니다. README의 Security Model 절과 evolve/guards.js를 함께 읽어 보세요.

포인트 2 — 멀티 런타임 훅

5개 에이전트 CLI(Cursor·Claude Code·Codex·Kiro·opencode)의 훅 시스템 비교 학습 — OpenClaw는 훅 설치 없이 stdout 해석으로 동작

src/adapters/는 Cursor hooks.json·Claude Code 훅·Codex hooks(+전사 로그 없는 한계 보정)·Kiro .kiro.hook·opencode 플러그인을 한 코드베이스에서 다룹니다 — 각 CLI 훅 규약의 차이를 한눈에 비교할 수 있는 드문 자료. OpenClaw는 setup-hooks 대상이 아닌 네이티브 stdout 해석 방식으로 별도 동작합니다.

포인트 3 — 연구→제품

논문 주장을 제품 결정으로 연결하기

"Skill 문서 대신 Gene"이라는 제품 철학이 4,590회 실험 논문(arXiv:2604.15097)에 근거합니다. 주장→실험→구현(assetStore·candidateEval)으로 이어지는 흐름을 추적하면 연구 기반 제품 개발의 감을 잡을 수 있습니다.

포인트 4 — 프로토콜 설계

ATP — 에이전트 간 거래의 최소 구현

src/atp/protocol.js부터 merchant/consumer 에이전트, 자동구매, 하트비트까지 — "에이전트끼리 작업을 사고판다"는 아이디어의 동작하는 스케치입니다.

7시스템 요구사항

돌리려면 무엇이 필요한가.

항목요구사항
런타임Node.js ≥ 22.12.
필수 도구Git — 롤백·영향범위 계산에 사용. git 밖에선 명시적 에러로 거부.
네트워크코어는 완전 오프라인. EvoMap 허브 연결(.env의 A2A_NODE_ID)은 공유·리더보드용 선택사항.
숙주 런타임선택 — Cursor·Claude Code·Codex·Kiro·opencode·OpenClaw 중 사용하는 것에 setup-hooks.

8직접 해볼 수 있는 실습 과제

난이도별로 손에 익히는 단계.

실습 1

첫 진화 사이클 관찰 난이도 ★☆☆ 입문

npm install -g @evomap/evolver 후 아무 git 프로젝트에서 evolver를 실행해 배너→스캔→Gene 선택→GEP 프롬프트 출력→EvolutionEvent 기록의 5단계를 눈으로 확인합니다. memory/에 뭐가 생겼는지 열어 보세요.

실습 2

훅 연동 + 회고 모드 난이도 ★★☆ 중급

쓰는 에이전트 CLI에 evolver setup-hooks --platform=...을 걸고 며칠 코딩한 뒤, evolver --review로 세션 로그 기반 처방이 어떻게 달라지는지 봅니다. 어떤 파일이 어디 설치됐는지(~/.cursor/hooks 등)도 직접 확인.

실습 3

GEP 프롬프트 해부 난이도 ★★☆ 중급

출력된 GEP 프롬프트를 뜯어 어떤 구속(프로토콜 규칙)이 걸려 있는지 분석하고, 일부러 규칙을 어기는 응답을 만들어 에이전트가 어떻게 반응하는지 실험해 봅니다.

실습 4

파이프라인 개조 난이도 ★★★ 고급

소스 클론 후 src/evolve/pipeline/signals.js에 내 프로젝트 특유의 신호(예: 특정 테스트 반복 실패)를 추가하고 node index.js로 선택 결과가 바뀌는지 검증합니다.

9관련 기술 심화 학습 로드맵

한 주씩 따라가는 계획.

주차주제학습 자료
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

10핵심 키워드 사전

본문에 나온 용어 빠른 참조.

용어의미
GEPGenome Evolution Protocol — 에이전트 경험을 유전자 자산으로 다루는 규약.
Gene경험을 압축한 작은 전략 단위 — 문서형 스킬의 대안.
CapsuleGene의 묶음·전달 단위.
EvolutionEvent매 진화 사이클을 기록하는 감사 이벤트 — 추적성의 핵심.
test-time evolution모델 재학습 없이 실행 시점 경험 축적으로 성능을 올리는 접근.
blast radius변경 하나가 미치는 영향 범위 — git 기반으로 계산.
A2AAgent-to-Agent — EvoMap 허브를 통한 에이전트 간 자산 교환 프로토콜.
ATPAgent Trade Protocol — 에이전트끼리 작업을 사고파는 실험적 경제 계층.
epigenetics후성유전 은유 — Gene 자체를 바꾸지 않고 발현(적용 강도)만 조절.
source-available소스는 공개하되 OSI 오픈소스보다 제한적인 라이선스 — 이 레포의 전환 예고 방향.

11참고 링크