evolver
무엇인가
Evolver는 AI 에이전트의 프롬프트·규칙 변경을 즉흥적 수정이 아니라 GEP(protocol-constrained evolution) 자산으로 다루게 하는 자가진화 엔진이다. 규율하는 영역은 프롬프트 거버넌스, 즉 어떤 변경이 어떤 근거로 적용되었고 되돌릴 수 있는지를 남기는 감사 추적이다.
어떻게 동작하나
동작은 CLI 중심이다. `evolver`를 실행하면 `./memory/`를 스캔(없으면 생성)해 로그와 신호를 읽고, 내장 자산 풀에서 매칭되는 Gene 또는 Capsule을 선택한 뒤 GEP 프롬프트를 stdout으로 출력한다. 이 프롬프트가 산출물이며 호스트 런타임이 자동 소비하거나 사람이 복사해 쓴다. 실행 결과는 EvolutionEvent로 `./memory/`에 기록된다. 모드는 기본 단일 실행, `--review`(적용 전 사람 확인 대기), `--loop`(백그라운드 데몬) 세 가지다. 에이전트·스킬 통합 경로는 별도 SKILL.md가 CLI를 감싸는 Proxy mailbox API를 문서화한다.
무엇과 다른가
프롬프트를 직접 쓰거나 문서형 스킬 팩을 쌓는 방식과 구조가 다르다. 경험을 긴 문서가 아니라 Gene과 Capsule로 인코딩한다. README가 인용한 연구에 따르면 문서 지향 Skill 패키지는 제어 신호가 불안정하고 희소한 반면, 압축된 Gene 표현은 전반 성능과 구조 변형에 대한 강건성, 반복 경험 축적에서 우수하다. 엔진에는 git 기반 롤백, blast radius 계산, solidify 절차가 포함된다.
어떻게 쓰나
설치는 `npm install -g @evomap/evolver`이고 `evolver --help`로 PATH 등록을 확인한다. git이 초기화된 프로젝트 디렉터리 안에서 `evolver`를 실행하는 것이 첫 사용이다. 네트워크 기능(스킬 공유, 워커 풀, 진화 리더보드)이 필요하면 실행 디렉터리에 `.env`를 두고 `A2A_HUB_URL`과 `A2A_NODE_ID`를 설정한다. `.env`는 매 실행 시 `process.cwd()`에서 읽히므로 프로젝트마다 따로 둘 수 있다.
전제와 한계
전제는 Node.js 18 이상과 git이다. git 저장소가 아니면 명확한 오류와 함께 실패한다. 오프라인에서 완전히 동작하며 허브 연결은 네트워크 기능만 연다. README의 런타임 연결 절은 OpenClaw, Cursor hook, Claude Code hook을 언급하는 지점에서 잘려 있어 지원 런타임의 전체 목록과 버전 범위는 확인되지 않는다.
유사 도구
- agentic-awesome-skills에이전트가 프로젝트를 직접 검사해 로컬 카탈로그에서 스킬 ID를 고르고, compose_stack으로 선택을 검증해 aas-stack.json과 불변 계획으로 남기게 규율하는 Claude Code 플러그인이다.
- aiden파일·터미널·브라우저·API 작업을 계획-실행-검증 절차로 규율하는 자율 에이전트 런타임이다. npm으로 설치해 aiden 명령과 트리거로 규칙을 주입한다.
- promptfoo프롬프트·에이전트·RAG를 선언적 설정으로 평가하고 레드팀하는 TypeScript CLI다. 결과를 로컬에서 계산하고 CI/CD에 붙인다.
- ArchonAI 코딩 에이전트의 개발 과정을 YAML 워크플로로 정의해 계획·구현·검증·PR 생성을 매번 같은 순서로 실행하는 워크플로 엔진이다.
- code2prompt코드베이스를 소스 트리와 함께 하나의 LLM 프롬프트로 렌더링하는 Rust CLI다. glob 필터와 Handlebars 템플릿, 토큰 추정을 쓴다.
- agentmemory코딩 에이전트의 작업을 자동으로 수집·압축해 검색 가능한 장기 기억으로 저장하고, 다음 세션 시작 시 관련 컨텍스트를 주입하는 TypeScript CLI다.