huggingface/ml-intern

Published:

github.com/huggingface/ml-intern

뭐 하는 거

Hugging Face가 낸 오픈소스 ML 인턴 에이전트. 자율적으로 논문 읽고, 데이터셋·모델·docs 뒤지고, 학습 스크립트 짜서 HF 생태계 위에서 돌리는 CLI 에이전트. Apache 2.0, Python 기반.

핵심 구성:

  • Agentic Loopsubmission_loopHandlers.run_agent() → 최대 300 iteration LLM 호출 + tool 실행. litellm로 모델 추상화.
  • ToolRouter — HF docs/research, repos·datasets·jobs·papers, GitHub code search, sandbox/local tool, planning, MCP 서버 도구를 한 라우터로 묶음.
  • ContextManager — 메시지 히스토리 + 170k에서 자동 compaction + 세션을 HF dataset으로 자동 업로드 (개인 private repo, Claude Code JSONL 포맷).
  • Doom Loop Detector — 같은 tool 패턴 반복 감지하면 corrective prompt 주입.
  • Approval flow — jobs, sandbox, destructive op은 사용자 승인 대기. Slack 게이트웨이로 out-of-band 알림 가능.

모델은 Anthropic / OpenAI / 로컬(ollama, vllm, lm_studio, llamacpp) 모두 OpenAI 호환 엔드포인트로 처리. LOCAL_LLM_BASE_URL 한 줄로 로컬 폴백.

왜 킵

당장 쓸 거는 아니고 나중에 코드 뜯어볼 레퍼런스. 특히 보고 싶은 부분:

  • 에이전트 루프(agent_loop.py)에서 submission_queue / event_queue를 어떻게 분리해서 CLI에 묻혔는지
  • Doom Loop Detector 휴리스틱
  • ContextManager의 auto-compaction 트리거와 HF dataset 업로드 파이프라인
  • ToolRouter가 MCP 서버를 어떻게 통합하는지
  • HF 자체 도구(repos / jobs / papers)를 tool spec으로 어떻게 노출했는지

설치 (참고용)

git clone git@github.com:huggingface/ml-intern.git
cd ml-intern
uv sync
uv tool install -e .

ml-intern --model anthropic/claude-opus-4-7 "fine-tune llama on my dataset"