본문으로 건너뛰기

© 2026 Molayo

Dev.to헤드라인2026. 06. 25. 16:18

OpenHands Review 2026: 76K 스타 코딩 에이전트

요약

OpenHands는 76K 스타를 보유한 강력한 오픈 소스 자율 코딩 에이전트입니다. Claude Sonnet 4.5와 같은 최첨단 모델과 결합할 때 GitHub 이슈를 엔드투엔드로 해결하는 뛰어난 성능을 발휘합니다.

핵심 포인트

  • 자율적인 이슈 해결 및 PR 생성이 가능한 오픈 소스 에이전트
  • SWE-bench Verified 벤치마크에서 높은 성능 입증
  • 연결된 LLM의 성능에 따라 결과물의 품질이 결정됨
  • Python 3.12 환경 및 uv를 통한 간편한 CLI 설치 지원

본 기사는 원래 aifoss.dev에 게시되었습니다.

요약: OpenHands는 2026년 가장 뛰어난 오픈 소스 자율 코딩 에이전트입니다. MIT 라이선스를 따르며, 76K 스타를 보유하고 있고, 실제 GitHub 이슈를 엔드투엔드로 해결합니다. 강력한 클라우드 모델을 사용할 때 특히 뛰어나지만, 작은 로컬 모델에서는 어려움을 겪습니다. 작업자가 승인하지 않아도 PR(Pull Request)을 생성하는 에이전트를 원한다면 사용해 보세요. 가벼운 인-에디터 편집만 원한다면 건너뛰어도 됩니다.

OpenHandsAiderCline
최적의 용도자율적인 이슈-PR, 비동기 작업CLI 페어 프로그래밍, git 우선VS Code 다중 파일 편집
...

솔직한 평가: Claude Opus 4.6을 백엔드로 사용하기 때문에 OpenHands는 현재 직접 호스팅할 수 있는 가장 강력한 오픈 소스 코딩 에이전트입니다. 7B 로컬 모델로는 기술 데모 수준입니다. 따라서 사용하는 모델에 맞춰 선택해야 합니다.

OpenHands가 실제로 무엇인지

OpenHands (구 OpenDevin)는 자율 소프트웨어 개발 에이전트입니다. 사용자가

성능 지표: SWE-bench 수치

OpenHands의 핵심 지표는 SWE-bench Verified입니다. 이는 에이전트가 인기 있는 Python 저장소(repos)의 실제 GitHub 이슈를 해결할 수 있는지 측정하는 벤치마크 (benchmark)입니다.

설정 (Configuration)SWE-bench Verified비고 (Notes)
OpenHands + Claude Sonnet 4.5~53%대부분의 사용자에게 안정적인 기본 설정
...

두 가지 시사점이 있습니다. 첫째, 에이전트 스캐폴딩 (scaffolding)은 실질적인 가치를 더합니다. 동일한 모델이라도 직접 프롬프트를 입력할 때보다 OpenHands 내부에서 사용할 때 더 많은 이슈를 해결합니다. 둘째, 점수는 거의 전적으로 연결된 모델의 성능에 달려 있습니다. 최첨단 모델 (frontier model)을 장착한 OpenHands는 어떤 오픈 소스 (open-source)와도 경쟁할 수 있지만, qwen2.5-coder:7b를 사용하는 OpenHands는 계획 수립 능력이 떨어지고, 오류에서 루프 (loop)에 빠지며, 시간을 낭비할 것입니다. 이것이 설치 전 반드시 이해해야 할 가장 중요한 사항입니다.

CLI 설치 (가장 빠른 방법)

OpenHands를 시도하는 가장 빠른 방법은 CLI (Command Line Interface)를 사용하는 것입니다. 반드시 Python 3.12가 필요합니다. 3.14는 아직 지원되지 않으며, 3.11은 실패할 것입니다. 전역 환경 (global environment)을 오염시키지 않는 가장 깔끔한 실행 방법은 uv를 사용하는 것입니다:

# 설치가 필요 없는 한 줄 실행 명령
uvx --python 3.12 --from openhands-ai openhands

...

pip를 선호하시나요? 패키지 이름은 openhands가 아니라 openhands-ai입니다 (openhands는 관련 없는 다른 패키지이며, 처음 실행 시 흔히 하는 실수입니다):

pip install openhands-ai
openhands

처음 실행하면 모델 설정 과정을 안내합니다. Anthropic 키가 있다면 모델을 anthropic/claude-sonnet-4-5로 설정하고 키를 붙여넣으면 됩니다. 그러면 터미널에서 작업을 명령할 준비가 끝납니다.

채팅 패널, 파일 브라우저, 라이브 터미널이 포함된 전체 GUI (웹 인터페이스)를 사용하려면 서버를 실행하세요:

uvx --python 3.12 --from openhands-ai openhands serve
# 현재 디렉토리를 권한 부여하려면 --mount-cwd를 추가하세요
# 동일한 장비에서 로컬 모델을 실행 중이라면 --gpu를 추가하세요

이것은 localhost에서 열리며, 에이전트의 샌드박스 (sandbox)로 사용할 Docker 컨테이너를 실행합니다. 여기서 문제가 발생하기 전까지는 아무도 언급하지 않는 필수 요구 사항이 등장합니다. 바로 Docker가 실행 중이어야 한다는 점입니다. 샌드박스는 OpenHands가 작성한 명령어를 호스트 (host)로부터 격리된 상태로 실행하는 공간입니다. Docker가 없으면 에이전트도 없습니다.

Ollama를 사용하여 OpenHands를 완전히 로컬에서 실행하기

이것이 대부분의 aifoss.dev 독자들이 이곳에 있는 이유입니다. 클라우드 호출 없이 실행할 수 있을까요? 네, 가능합니다. OpenHands는 내부적으로 LiteLLM을 사용하므로, Ollama와 llama.cpp를 포함하여 100개 이상의 프로바이더 (provider)를 사용할 수 있습니다.

Ollama를 시작하고 코딩 모델을 가져오세요 (pull):

docker run -d --name ollama --gpus all -p 11434:11434 \
  -v ollama-data:/root/.ollama ollama/ollama:latest
docker exec ollama ollama pull qwen2.5-coder:7b

그런 다음 OpenHands가 이를 가리키도록 설정하세요. 만약 OpenHands 자체를 Docker에서 실행 중이라면, 네트워크 관련 주의 사항(gotcha)이 실제로 존재합니다. localhost를 사용할 수 없습니다. 컨테이너는 호스트의 localhost를 볼 수 없으므로, host.docker.internal을 사용해야 합니다:

LLM_MODEL=ollama/qwen2.5-coder:7b
LLM_BASE_URL=http://host.docker.internal:11434
LLM_API_KEY=ollama

LLM_API_KEY=ollama 줄은 의미 없어 보일 수 있습니다. Ollama는 이를 확인하지 않기 때문입니다. 하지만 LiteLLM은 비어 있지 않은 값을 기대하며, 이 값이 없으면 연결에 실패합니다. 아무 문자열로든 설정해 두세요.

제가 겪은 실제 문제와 해결 방법

가장 흔한 로컬 설정 실패 사례(OpenHands issue #8318에서 추적됨)는 Docker화된 OpenHands가 호스트의 Ollama에 접속하려고 할 때 LLM 연결이 실패하는 경우입니다. 증상은 다음과 같습니다: 에이전트가 시작되지만, 첫 번째 모델 호출 시 즉시 에러가 발생합니다. 해결 방법 두 가지를 순서대로 제시합니다:

  1. localhost127.0.0.1 대신 host.docker.internal을 사용하세요. Linux의 경우, 해당 호스트 이름이 해석될 수 있도록 OpenHands 컨테이너를 실행할 때 --add-host=host.docker.internal:host-gateway 옵션을 추가해야 할 수도 있습니다.
  2. UI뿐만 아니라 환경 변수(environment)에서도 기본 URL(base URL)을 설정하세요. UI 설정은 과거 여러 버전에 걸쳐 환경 변수 값을 혼란스러운 방식으로 덮어쓰는 경향이 있었습니다. 안전을 위해 두 곳 모두 동일한 값으로 설정하십시오.

그렇게 하면 에이전트가 연결됩니다. 7B 모델로 유용한 작업을 수행할 수 있는지 여부는 별개의 문제입니다. 이는 한계(limitations) 섹션을 참조하십시오.

하드웨어: 실제로 필요한 사양

오케스트레이터(orchestrator)로서의 OpenHands는 가볍습니다. 부하의 핵심은 전적으로 모델에 있습니다.

설정RAMVRAM현실적인 결과
OpenHands + 클라우드 API8 GB없음최상의 결과, 토큰당 비용 지불
...

32B 이상의 로컬 모델을 사용하려면 RTX 4090과 같은 24GB 그래픽 카드나 통합된 VRAM(pooled VRAM)이 필요합니다. 만약 해당 하드웨어를 보유하고 있지 않고 에이전트가 가끔씩만 필요하다면, 작업을 수행하는 동안 RunPod에서 GPU를 대여하는 것이 카드를 구매하는 것보다 훨씬 저렴한 경우가 많습니다. 가정용 GPU 박스 구성을 위한 규모 산정은 runaihome.com의 빌드 가이드를 참고하십시오.

OpenHands의 부족한 점

이 부분은 프로젝트 자체의 README에는 나와 있지 않은 내용입니다.

로컬 소형 모델은 실망스럽습니다. 에이전트 루프(agent loop)는 모델이 계획을 세우고, 실패한 명령으로부터 복구하며, 여러 단계에 걸쳐 일관성을 유지할 수 있다고 가정합니다. 약 30B 미만의 모델들은 흐름을 놓치는 일이 빈번합니다. 동일한 잘못된 명령을 재실행하거나, 파일 경로를 환각(hallucinate)하거나, 완료되지 않은 작업에 대해 승리를 선언하곤 합니다. 만약 개인정보 보호 요구 사항 때문에 7B 모델을 강제로 사용해야 한다면, OpenHands는 적절한 도구가 아닙니다. Aider와 같은 더 단순한 페어 프로그래머(pair-programmer)가 훨씬 더 완만하게 성능이 저하됩니다.

설정 과정이 대안들보다 무겁습니다. Docker, Pyth

AI 자동 생성 콘텐츠

본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.

원문 바로가기
0

댓글

0