Foreman은 대규모 언어 모델(LLM) 에이전트를 네이티브 Kubernetes 리소스로 변환하여, 팀이 비용과 안전성을 엄격하게 제어하면서도 AI가 생성한 코드를 프로덕션 환경에서 실행할 수 있도록 합니다.
이 아이디어가 오늘날의 개발 워크플로우에 부합하는 방식
기업들은 코드를 작성할 수 있는 LLM을 실험해 왔지만, 대부분의 구현 방식은 모델을 신뢰할 수 있는 블랙박스로 취급합니다. 모델이 보내는 단 한 번의 "완료(done)" 신호가 테스트되지 않은 변경 사항을 저장소에 바로 반영할 수 있어, 보안 및 신뢰성 문제가 발생할 수 있습니다. 동시에, 클라우드에서 AI 서비스를 실행하는 것은 비용이 빠르게 증가할 수 있으며, 특히 CI 파이프라인에서 동일한 모델을 반복적으로 호출할 때 더욱 그렇습니다.
Foreman의 해답은 전체 코딩 루프를 Kubernetes 클러스터 내부에 내장하는 것입니다. Foreman은 Kubernetes 리소스로 실행됩니다.
이를 가능하게 하는 4가지 핵심 객체
- Agent – 워커(worker)를 정의합니다. 호출할 LLM을 지정하고, 모델이 호출할 수 있는 도구(예: file-write 또는 git-push)를 나열하며, 모델 호출 횟수를 제한하는 예산을 설정합니다. 역할(Role)은 여기서 할당됩니다. 예를 들어, coder agent는 코드를 작성하고, verifier agent는 이를 검증합니다.
- Workload – 사용자가 작성한 작업 단위입니다. 상위 수준의 의도(예: "module X에 대한 유닛 테스트 추가"), 대상 저장소에 대한 참조, 그리고 작업을 처리해야 할 에이전트 목록을 보유합니다.
- AgenticTask – Workload가 생성하는 구체적인 작업입니다. 작업이 진행됨에 따라 각 AgenticTask는 상태 업데이트를 기록하여 운영자가 파이프라인을 실시간으로 모니터링할 수 있게 합니다.
- FleetNode – 실제로 작업을 실행하는 Kubernetes 노드입니다. 내장된 스케줄러가 대기 중인 AgenticTask를 필요한 역할과 리소스를 갖춘 FleetNode에 매칭합니다.
맹목적인 신뢰를 대체하는 검증
Foreman은 모델의 출력이 정확하다고 가정하지 않습니다. coder agent가 작업을 마치면 최종 결과 대신 요청을 보냅니다. 그러면 검증기(verifier)—보통 또 다른 LLM이 아닌 결정론적(deterministic) 스크립트—가 린터(linter), 유닛 테스트 또는 전체 빌드를 통해 코드를 실행합니다. 이러한 검사가 통과된 경우에만 Foreman이 새로운 브랜치를 저장소에 다시 작성합니다.
검증에 실패하면 작업은 거부(rejected)로 표시되며 변경 사항은 반영되지 않습니다. 이러한 분리를 통해 모델은 창의적으로 코드를 생성하면서도, 안전망은 온전히 인간의 통제하에 둘 수 있습니다.
클러스터에 스택 설치하기
- Helm을 사용하여 LLMKube 코어 차트를 배포합니다.
- 마찬가지로 Helm을 통해 Foreman 차트를 배포합니다.
- 에이전트 모드를 "native"로 전환하여 실제 요청-응답 루프가 활성화되도록 합니다.
- 작업을 호스팅할 FleetNode에 역할(coder, verifier)을 할당합니다.
두 가지 자격 증명 세트가 필요합니다. 이슈를 읽고 브랜치를 푸시하기 위한 git 자격 증명과, 호스팅된 API 또는 자체 호스팅된 추론 서비스를 호출하기 위한 모델 자격 증명입니다.
실제로 조정 가능한 비용 및 보안 설정
Foreman은 운영자가 에이전트 정의에서 도구를 제거함으로써 모델의 권한을 제한할 수 있게 합니다. "bash" 또는 "write_file"을 제거하면 모델이 임의의 셸 명령을 실행하거나 지정된 작업 공간 외부로 파일을 쓰는 것을 방지할 수 있습니다.
턴 제한(turn limit)은 작업당 모델 호출 횟수를 제한하여 비용을 직접적으로 제어합니다. 모델이 보는 프롬프트의 양인 컨텍스트 윈도우(context window)를 조정하면 토큰 사용량을 더욱 줄일 수 있습니다. 모델이 온프레미스 하드웨어에서 로컬로 실행되는 경우 데이터가 조직 외부로 유출되지 않으므로 엄격한 데이터 개인정보 보호 정책을 준수할 수 있습니다.
플랫폼의 강점과 한계
Foreman은 기계적이고 범위가 명확한 작업에 탁월합니다.
- 문서화된 버그 수정.
- 누락된 테스트 케이스 추가.
- 명확성이나 스타일을 위한 문서 업데이트.
이러한 작업은 검증기가 자동으로 확인할 수 있는 명확한 성공 기준을 가지고 있습니다. 시스템은 여전히 고차원적인 아키텍처 재설계나 "정확성"이 인간의 판단에 달려 있는 모호한 기능 개발 작업에는 어려움을 겪습니다.
요약
LLM 기반 코더를 일급(first-class) Kubernetes 리소스로 취급하고 결정론적인 검증 단계를 강제함으로써, Foreman은 비용을 가시화하고 보안을 통제하면서도 프로덕션 환경에서 AI 코드를 생성할 수 있는 실용적인 경로를 제공합니다. 모든 개발 작업을 위한 만능 해결책은 아니지만, 반복 가능하고 테스트 가능한 작업에 대해서는 기존의 클라우드 네이티브 운영 방식에 자연스럽게 녹아드는 감사 가능한(auditable) 워크플로우를 제공합니다.
