Hillclimb은 Claude Code와 Codex 같은 코딩 에이전트를 활용해 점수를 높이는 파이썬 프로그램을 탐색하는 오픈소스 CLI이자 모듈형 Python 프레임워크다. 사용자는 검증 스크립트로 문제의 점수를 정의하고, 탐색 알고리즘을 선택하거나 직접 작성할 수 있다.
문제는 검증 스크립트 verifier.sh로 무엇이 더 나은지 판정하며, 선택적으로 시작 해법인 solution.py를 포함한다. 탐색 알고리즘인 클라이머는 초기 해법을 만들고 다음 시도에서 어떤 해법을 바탕으로 무엇을 시도할지 결정한다. Hillclimb은 하나의 최적 탐색기를 제공하기보다 여러 탐색 전략을 문제별로 평가하고 더 나은 자동 연구 방법을 찾기 위한 틀을 목표로 한다.
hillclimb run은 검색을 백그라운드에서 시작한다. 사용자가 정한 계산 예산 안에서 클라이머가 코딩 에이전트를 실행해 해법을 작성·수정하고, 검증 스크립트가 각 시도를 채점한다. Hillclimb은 그중 가장 좋은 결과를 보관한다. 실행 중인 에이전트와 점수는 hillclimb watch로 확인할 수 있다.
설치와 기본 실행
Python 3.12 이상에서 설치하고 에이전트를 연결한 뒤, 문제와 클라이머를 가져와 검색을 시작한다.
uv tool install hillclimb # or: pip install hillclimb (Python 3.12+)
hillclimb connect claude # or codex, pi, openrouter; add --agent dummy to any run for no LLM at all
hillclimb init # hillclimb.yaml, problems/, runs/, climbers/ in this folder
hillclimb problem get heilbronn-convex-13 # the verifier is the problem; description.md is the brief
hillclimb climber get greedy # the climber, as Python you can read and edit (climbers/greedy/policy.py)
hillclimb verify heilbronn-convex-13 # score the floor solution
hillclimb run heilbronn-convex-13 --budget 10m
hillclimb watch # live coding agents and scores (also: chart, tree)
hillclimb stop --all
hillclimb summit # copy the best solution.py into this folder
검색별 최선의 결과는 runs/<run-id>/searches/<search-id>/best/에도 저장된다. 단계별 안내는 워크스루에서 볼 수 있다.
탐색 전략 구성과 비교
클라이머는 검색의 각 단계에서 순서대로 작동하는 다섯 모듈로 구성된다. 다음 시도가 바탕으로 삼을 후보를 고르는 selector_policy, 적용할 작업을 정하는 operator_policy, 코딩 에이전트에게 전달할 프롬프트를 다루는 operators, 후보의 매개변수 값을 고르는 tuner, 검색 간에 이어지는 정보를 정하는 memory다. 카탈로그에는 greedy, openevolve, gepa가 있으며, 가져온 클라이머는 파이썬 파일로 읽고 수정할 수 있다.
각 모듈은 내장 기능 이름이나 파이썬 파일·클래스로 지정한다. 외부 라이브러리가 필요한 카탈로그 클라이머는 해당 파일 옆의 requirements.txt에 의존성을 명시하며, tuner: optuna를 쓰려면 hillclimb[optuna]가 필요하다. Python SDK로 검색을 구성할 수도 있고, climber.start(...)와 climber.step()을 이용해 한 단계씩 진행하거나 Problem(name, score=my_function, ...)으로 점수 계산 함수를 정의할 수도 있다. 실행 가능한 예제는 저장소의 examples 디렉터리에 있다.
같은 문제에서 탐색기를 나란히 실행하고 결과를 비교하는 명령은 다음과 같다.
hillclimb climber get openevolve --no-default
hillclimb run heilbronn-convex-13 --climber climbers/greedy/policy.py --climber climbers/openevolve/policy.py # one search each; --parallel-searches 3 runs three of each
hillclimb experiment report <run-id>
문제 정의와 검증기 작성은 문제 문서, 클라이머 구성은 클라이머 문서, 실험 비교는 실험 문서에서 확인할 수 있다. CLI 명령 전체는 CLI 참조, Python 사용법은 Python SDK 문서에 정리돼 있다. 프로젝트는 MIT 라이선스로 배포된다.
댓글 (0)
로그인하면 이 기사에 내 생각을 남길 수 있어요