본문으로 건너뛰기

pi-autoresearch: 무한히 반복하며 최적화하는 자율 실험 루프

정석

pi-autoresearch dashboard

아이디어를 시도하고, 측정하고, 작동하면 유지하고, 아니면 버리고, 영원히 반복하라.

이것이 pi-autoresearch의 철학입니다. Karpathy의 autoresearch에서 영감을 받아, pi AI 에이전트가 무한히 실험을 반복하며 최적화하는 시스템입니다.


1) 무엇을 최적화할 수 있나?

모든 것. pi-autoresearch는 도메인에 독립적입니다:

도메인메트릭명령어
테스트 속도초 ↓pnpm test
번들 크기KB ↓pnpm build && du -sb dist
LLM 학습val_bpb ↓uv run train.py
빌드 속도초 ↓pnpm build
Lighthouseperf score ↑lighthouse http://localhost:3000

2) 아키텍처: Extension + Skill

pi-autoresearch는 두 계층 구조를 사용합니다:

┌──────────────────────┐     ┌──────────────────────────┐
│  Extension (global)  │     │  Skill (per-domain)       │
│                      │     │                           │
│  run_experiment      │◄────│  command: pnpm test       │
│  log_experiment      │     │  metric: seconds (lower)  │
│  widget + dashboard  │     │  scope: vitest configs    │
│                      │     │  ideas: pool, parallel…   │
└──────────────────────┘     └──────────────────────────┘

Extension (도메인 독립적 인프라)

도구설명
init_experiment세션 설정 — 이름, 메트릭, 단위, 방향
run_experiment명령 실행, 시간 측정, 출력 캡처
log_experiment결과 기록, 자동 커밋, 위젯/대시보드 업데이트

Skill (도메인 지식)

autoresearch-create 스킬이 목표, 명령, 메트릭, 파일 범위를 수집하고 세션을 시작합니다.


3) 두 개의 세션 파일

pi-autoresearch는 두 파일로 세션을 유지합니다. 컨텍스트 리셋이나 재시작 후에도 계속할 수 있습니다.

autoresearch.jsonl

모든 실행의 로그 — 한 줄에 하나씩:

{"timestamp":"2026-03-16T14:00:00Z","metric":42.3,"status":"kept","commit":"abc123","description":"parallelize tests"}
{"timestamp":"2026-03-16T14:05:00Z","metric":41.8,"status":"kept","commit":"def456","description":"add test pooling"}
{"timestamp":"2026-03-16T14:10:00Z","metric":45.2,"status":"discarded","commit":"--","description":"cache invalidation broke"}

autoresearch.md

세션의 심장. 컨텍스트 없는 새 에이전트도 이 파일만 읽으면 루프를 계속할 수 있습니다.

# Autoresearch: 테스트 속도 최적화

## Objective
vitest 테스트 스위트 실행 시간을 60초에서 30초 미만으로 단축.

## Metrics
- **Primary**: seconds (lower is better)
- **Secondary**: test_count, pass_rate

## How to Run
`./autoresearch.sh` — outputs `METRIC name=number` lines.

## Files in Scope
- `vitest.config.ts` — 테스트 설정
- `src/**/*.test.ts` — 테스트 파일들

## Off Limits
- `src/lib/` — 프로덕션 코드

## Constraints
- 모든 테스트 통과 필수
- 새 의존성 추가 금지

## What's Been Tried
- ✅ 병렬 실행 (`pool: 'threads'`) — 60s → 45s
- ✅ 테스트 풀링 — 45s → 38s
- ❌ 캐시 무효화 — 테스트 실패, revert

4) 사용법

설치

pi install https://github.com/davebcn87/pi-autoresearch

시작

/skill:autoresearch-create

에이전트가 목표, 명령, 메트릭, 파일 범위를 묻거나 컨텍스트에서 추론합니다. 그 다음:

  1. 브랜치 생성
  2. autoresearch.mdautoresearch.sh 작성
  3. 베이스라인 실행
  4. 즉시 루프 시작

루프

에이전트가 자율적으로 실행: 편집 → 커밋 → run_experiment → log_experiment → keep 또는 revert → 반복. 중단될 때까지 멈추지 않습니다.

모니터링

방법설명
위젯에디터 위에 항상 표시: 🔬 autoresearch 12 runs 8 kept │ best: 42.3s
/autoresearch전체 대시보드
Escape언제든 중단하고 요약 요청

키보드 단축키

단축키설명
Ctrl+X대시보드 확장/축소
Ctrl+Shift+X전체 화면 오버레이

5) 루프 규칙

무한 반복. “계속할까요?”라고 절대 묻지 않습니다.

규칙설명
Primary metric is king개선 → keep. 악화/동일 → discard
단순함이 낫다동일 성능에 코드 제거 = keep. 작은 이득에 복잡성 = discard
스래싱 금지같은 아이디어를 반복해서 revert? 구조적으로 다른 것 시도
충돌 처리자명하면 수정, 아니면 로그하고 진행
막히면 깊이 생각소스 파일 재읽기, 프로파일링 데이터 연구. 깊은 이해에서 최고의 아이디어가 나옴

6) Backpressure Checks (선택)

autoresearch.checks.sh를 만들면 매 벤치마크 후 자동으로 실행:

#!/bin/bash
set -euo pipefail
pnpm test --run
pnpm typecheck

작동 방식:


7) 아이디어 백로그

복잡하지만 유망한 최적화를 발견하면 **autoresearch.ideas.md**에 추가합니다. 좋은 아이디어가 사라지지 않게.

재개 시(컨텍스트 한계, 충돌) autoresearch.ideas.md를 확인 — 오래된/시도된 항목 제거, 나머지 실험.


8) 설정 (선택)

autoresearch.config.json으로 커스터마이즈:

{
  "workingDir": "/path/to/project",
  "maxIterations": 50
}
필드설명
workingDir모든 작업의 디렉토리 오버라이드
maxIterations자동 정지 전 최대 실험 수

마치며: “영원히 반복하라”

pi-autoresearch의 핵심은 무한 루프입니다:

“사용자가 몇 시간 자리를 비워도 계속 진행. 중단될 때까지 멈추지 않는다.”

특히 인상적인 점:

  1. 세션 지속성: 두 파일로 컨텍스트 리셋/재시작 생존
  2. 도메인 독립적: 테스트, 빌드, 학습, 무엇이든 최적화 가능
  3. 실시간 모니터링: 위젯 + 대시보드로 진행 상황 확인
  4. Backpressure checks: 최적화가 정확성을 깨뜨리지 않도록 보장

이 패턴은 AI 에이전트가 자율적으로 개선하는 방식의 좋은 예입니다. 인간이 매 단계를 지시하는 게 아니라, 목표와 메트릭을 설정하면 에이전트가 알아서 반복하며 최적화합니다.


🔗 관련 정보

이전
CLIProxyAPI: CLI 도구의 OAuth 계정으로 OpenAI/Gemini/Claude API 프록시 구축
다음
Hyperspace AGI: 완전히 분산된 P2P AGI 시스템의 시작