AI를 위한 소스 코드를 찾고 있다면, 일반적으로 세 가지 중 하나가 필요합니다: 모델 코드와 가중치, 계획을 세우고 도구를 사용할 수 있는 오픈소스 코드 에이전트, 또는 모델이 파일을 읽고, 명령을 실행하고, 검토 가능한 결과를 반환할 수 있게 해주는 애플리케이션 스택입니다. 이러한 레이어는 관련되어 있지만 동일한 제품은 아닙니다. 이 공간을 이해하는 가장 빠른 방법은 모델, 에이전트 루프, 작업을 실행하는 샌드박스 런타임을 분리하는 것입니다.
일반적으로 "AI를 위한 소스 코드"가 의미하는 것
이 표현은 두 사람이 사용할 때 완전히 다른 의미를 가질 수 있을 정도로 광범위합니다.
때로는 모델 소스(훈련 코드, 추론 코드, 토크나이저 로직, 오픈 모델의 다운로드 가능한 가중치)를 의미합니다. 때로는 에이전트 소프트웨어(터미널이나 브라우저에 있는 도구로, 저장소를 읽고, 작업을 계획하고, 코드를 작성하고, 테스트를 실행하고, 자신의 출력을 수정합니다)를 의미합니다. 때로는 그 에이전트를 둘러싼 제품 스캐폴딩(API 호출, 인증, 샌드박스 수명 주기, 파일 처리, 로그, 미리보기, 검토 게이트)을 의미합니다.
이러한 구분은 오픈 모델을 찾는 팀이 오픈소스 코딩 에이전트를 찾는 팀과 동일한 기준으로 평가해서는 안 되기 때문에 중요합니다.
이 빠른 필터를 사용하세요:
| 필요한 것이… | 찾아야 할 것… |
|---|---|
| 실행, 미세 조정 또는 API를 통해 호출할 수 있는 모델 | 모델 저장소, 모델 카드, 라이선스, 컨텍스트 제한, 도구 호출 지원 |
| 프로젝트 내에서 작업할 수 있는 코딩 도구 | 오픈소스 코드 에이전트, CLI, 데스크톱 앱 또는 에이전트 플랫폼 |
| 프로덕션 실행 레이어 | 샌드박스 런타임, 작업 공간 격리, 패키지 정책, 비밀 처리, 로그 및 미리보기 |
AI 프로젝트를 위한 소스 코드를 찾는 곳
대부분의 개발자 워크플로우에서 실제 답은 '하나가 아닌 여러 저장소에’입니다.
1. 모델 저장소
여기에서 모델 아키텍처, 사용 설명서, 체크포인트 또는 체크포인트 링크, 라이선스 조건, 벤치마크 노트를 찾을 수 있습니다. 로컬 추론, 미세 조정 또는 모델이 코딩 작업을 위해 어떻게 패키징되었는지 연구하는 것이 목표라면 여기서 시작하세요.
예를 들어, Qwen의 공식 Qwen3-Coder 저장소는 Qwen3-Coder-Next를 코딩 에이전트와 로컬 개발을 위해 특별히 구축된 오픈 가중치 모델로 설명하며, 긴 컨텍스트 지원과 에이전트 워크플로우를 위한 함수 호출 형식을 제공합니다.
2. 에이전트 저장소
여기에서 플래너 루프, 도구 연결, 터미널 UX, 모델 제공자 어댑터, 때로는 브라우저 또는 MCP 통합을 찾을 수 있습니다.
세 가지 유용한 예:
- OpenHands 는 클라우드 코딩 에이전트를 위한 오픈 플랫폼이자 로컬, Docker, VM 또는 클라우드 백엔드에서 에이전트를 실행할 수 있는 컨트롤 센터로 자리매김하고 있습니다.
- Goose 는 데스크톱, CLI 및 API 표면을 갖춘 오픈소스 에이전트로, 사용자 머신에서 실행되며 코드 작업에 국한되지 않습니다.
- Qwen Code 는 Qwen의 터미널 지향 코딩 도구로, 일반 채팅보다는 에이전트 코딩 워크플로우에 중점을 둡니다.
주요 질문이 '어떤 오픈소스 코드 에이전트를 먼저 살펴봐야 할까?'라면 모델 가중치가 아닌 에이전트 저장소부터 시작하세요.
3. 샌드박스 및 런타임 문서
이것은 많은 팀이 처음에는 건너뛰었다가 에이전트가 실제 작업을 시작할 때 다시 돌아오는 레이어입니다.
Novita의 Sandbox 문서는 런타임을 코드 실행, 종속성 설치, 파일 액세스, 브라우저 사용, 세션 간 상태 유지가 필요한 에이전트를 위한 격리된 상태 저장 환경으로 설명합니다. 이는 단순한 편의 래퍼가 아니라 실행 경계입니다. 에이전트가 명령을 실행할 수 있게 되면 런타임은 모델만큼 중요해집니다.
오픈소스 코드 에이전트를 차별화하는 요소
오픈소스 코드 에이전트는 단지 프롬프트 템플릿이 있는 LLM이 아닙니다. 작업 공간을 관찰하고, 다음 작업을 결정하고, 도구를 통해 해당 작업을 실행하고, 결과를 읽고, 계속 반복할 수 있을 때 에이전트가 됩니다.
그 루프는 일반적으로 네 가지 부분이 필요합니다:
| 레이어 | 역할 |
|---|---|
| 플래너 | 작업을 단계로 나누고 작업 완료 시점 결정 |
| 모델 | 파일, 명령 출력, 이전 도구 호출에 대한 추론 |
| 도구 레이어 | 파일 읽기, 파일 쓰기, 검색, 명령 실행, 미리보기 열기 |
| 샌드박스 | 실행 격리, 작업 공간 상태 유지, 부작용 제한 |
샌드박스 없이 '오픈소스 코드 에이전트’는 종종 '위험한 셸 액세스 권한이 있는 모델’로 변합니다.
또한 이 지점에서 스택이 채팅 기능보다는 엔지니어링 인프라처럼 보이기 시작합니다. 모델이 패키지를 설치하고, 포트를 열고, 파일을 다시 작성할 수 있게 되면 운영 관련 질문에 답해야 합니다:
- 에이전트는 어떤 저장소 상태에서 시작합니까?
- 어떤 명령이 자동으로 실행되고 어떤 명령에 승인이 필요합니까?
- 에이전트가 패키지를 가져오거나 임의의 URL을 탐색할 수 있습니까?
- 로그, 차이점, 미리보기, 생성된 아티팩트는 어디로 가나요?
- 세션을 일시 중지, 재개 또는 종료하려면 어떻게 해야 합니까?
이러한 질문은 프로젝트가 데모인지, 팀이 신뢰할 수 있는 워크플로우인지를 결정합니다.
실용적인 코딩 에이전트 아키텍처
AI 에이전트를 위한 소스 코드를 생각하는 가장 깔끔한 방법은 체인으로 보는 것입니다:
- 사용자가 작업을 설명합니다.
- 모델이 작업을 계획으로 전환합니다.
- 에이전트가 코드베이스를 검사하기 위해 도구를 호출합니다.
- 런타임이 격리된 작업 공간에서 해당 도구 호출을 실행합니다.
- 모델이 결과를 읽고 다음에 무엇을 할지 결정합니다.
- 시스템이 차이점, 테스트 출력, 검토자가 확인할 수 있는 요약을 반환합니다.
이 체인은 단일 벤치마크 수치보다 더 중요합니다. 모델이 원샷 코드 생성에는 뛰어날 수 있지만, 도구 호출, 긴 컨텍스트 또는 오류 복구에 어려움을 겪으면 에이전트로서 실패할 수 있습니다.
계획 루프에 들어가기 전에 이 스택에 잘 맞는 한 가지 모델 방향을 언급할 가치가 있습니다. 폐쇄 소스 코딩 품질에 가까운 오픈 모델을 원한다면 Qwen3-Coder가 가장 먼저 평가할 실용적인 옵션 중 하나입니다. Qwen의 공식 저장소는 Qwen3-Coder-Next를 에이전트 및 로컬 개발을 위한 오픈 가중치 코딩 모델로 설명하며, 에이전트 코딩 작업에서 Claude Sonnet과 비슷한 결과를 제공합니다. Novita의 현재 모델 카탈로그는 또한 LLM API를 통해 Qwen3 Coder Next, Qwen3 Coder 480B A35B Instruct, Qwen3 Coder 30B A3B Instruct를 제공하므로 통합을 다시 구축하지 않고도 다양한 비용 및 품질 계층에서 동일한 제품군을 더 쉽게 테스트할 수 있습니다.
Novita로 스택을 구축하는 방법
별도의 제공자를 엮는 대신 실용적인 시작점을 원한다면, 유용한 분할은 다음과 같습니다:
- 추론, 생성 및 도구 호출 모델을 위한 Novita LLM API
- 격리된 코드 실행 및 지속적인 작업 공간 상태를 위한 Novita Sandbox
Novita의 LLM API는 OpenAI 호환 가능하므로 기본 URL과 모델 이름만 변경하면 기존 OpenAI 클라이언트를 Novita에 연결할 수 있습니다.
1단계: OpenAI 호환 API를 통해 모델 호출
from openai import OpenAI
client = OpenAI(
base_url="https://api.novita.ai/openai",
api_key="YOUR_NOVITA_API_KEY",
)
response = client.chat.completions.create(
model="qwen/qwen3-coder-next",
messages=[
{"role": "system", "content": "You are a coding assistant."},
{"role": "user", "content": "Plan the steps to add rate limiting to a FastAPI login route."},
],
)
print(response.choices[0].message.content)
그러면 모델 레이어만 제공됩니다. 모델에게 안전한 실행 공간을 제공하지는 않습니다.
2단계: 랩톱 대신 샌드박스에서 코드 실행
Novita의 현재 Sandbox 퀵스타트는 Novita SDK 객체를 사용하여 격리된 코드 인터프리터 세션을 생성하고, 코드를 실행하고, 파일을 검사한 다음 작업이 완료되면 샌드박스를 종료합니다.
from novita_sandbox import Novita
novita = Novita()
sandbox = novita.code_interpreter.create()
try:
execution = sandbox.run_code('print("hello from the sandbox")')
print(execution.logs)
files = sandbox.files.list("/tmp")
print(files)
finally:
sandbox.kill()
이 패턴은 AI 코딩 워크플로우를 위한 가장 간단하고 신뢰할 수 있는 시작점입니다:
- 모델이 다음에 어떤 일이 일어나야 할지 결정합니다.
- 샌드박스가 격리된 환경에서 위험한 부분을 수행합니다.
- 세션은 각 단계에서 처음부터 시작하는 대신 작업 전반에 걸쳐 상태를 유지할 수 있습니다.
3단계: 모델 결정을 도구 실행에 연결
도구 호출을 추가하면 에이전트 루프는 간단해집니다:
| 도구 | 목적 |
|---|---|
read_file |
프로젝트 파일을 모델 컨텍스트에 로드 |
write_file |
코드 변경 사항 적용 |
search_files |
심볼, 라우트, 테스트 또는 구성 항목 찾기 |
run_command |
테스트, 빌드, 린터 및 설정 명령 실행 |
list_files |
저장소 구조 탐색 |
Novita는 또한 OpenAI 호환 모델 워크플로우를 위한 함수 호출 및 구조화된 출력을 문서화합니다. 이는 도구 인수가 잘못되었거나 일관성이 없을 때 에이전트 루프가 쉽게 중단되기 때문에 중요합니다. 실제로 안정적인 도구 호출은 화려한 단일 턴 벤치마크보다 더 중요한 경우가 많습니다.
오픈소스가 충분한 경우와 그렇지 않은 경우
오픈소스는 일반적으로 다음과 같은 경우에 충분합니다:
- 모델이나 에이전트가 어떻게 작동하는지 검사하고 싶을 때.
- 스택의 일부를 자체 호스팅하고 싶을 때.
- 프롬프트, 도구 및 런타임 동작을 제어해야 할 때.
- 운영 작업을 소유하는 데 부담이 없을 때.
오픈소스는 일반적으로 다음과 같은 경우 자체만으로는 충분하지 않습니다:
- 감사 로그 및 검토 흐름이 있는 안정적인 다중 사용자 실행이 필요할 때.
- 신뢰할 수 없는 코드에 충분히 강력한 격리가 필요할 때.
- 모델 라우팅, 가격 투명성 또는 하나의 API 뒤에 여러 모델 계층이 필요할 때.
- 런타임을 직접 구축하지 않고 에이전트가 더 긴 작업에서 상태를 유지하기를 원할 때.
이 시점에서 팀은 추상적으로 'AI를 위한 소스 코드’를 요구하는 것을 멈추고 실제로 어떤 부분을 소유하고 싶은지 묻기 시작합니다. 일부 팀은 완전한 제어를 원합니다. 다른 팀은 오픈 모델과 오픈소스 도구를 원하지만 모든 런타임 구성 요소를 직접 실행하는 부담은 원하지 않습니다.
결론
AI를 위한 소스 코드에 접근하는 가장 좋은 방법은 이를 하나의 아티팩트로 취급하지 않는 것입니다. 모델 저장소, 오픈소스 코드 에이전트, 샌드박스 런타임은 서로 다른 문제를 해결합니다. 이들을 혼합하면 평가가 빠르게 흐려집니다.
실제로 필요한 레이어부터 시작하세요:
- 로컬 또는 자체 호스팅 모델 제어를 원하시나요? 오픈 모델 저장소부터 시작하세요.
- 오픈소스 코드 에이전트를 원하시나요? OpenHands, Goose 또는 Qwen Code부터 시작하세요.
- 계획을 세우고, 실행하고, 안전하게 실행할 수 있는 작동하는 코딩 스택을 원하시나요? OpenAI 호환 모델 API와 격리된 샌드박스 런타임을 결합하세요.
이것이 바로 오픈 코딩 모델과 관리형 실행 경계의 조합이 종종 가장 실용적인 경로인 이유입니다. 기본 머신에서 모델에 원시 셸 액세스 권한을 부여하지 않고도 모델 레이어에서 유연성을 유지할 수 있습니다.
자주 묻는 질문
AI를 위한 소스 코드는 어디에서 찾을 수 있나요?
일반적으로 세 곳에 있습니다: 모델 저장소, 에이전트 저장소, 샌드박스 또는 런타임 문서. 오픈소스 코드 에이전트를 원한다면 일반 모델 저장소 대신 OpenHands, Goose 또는 Qwen Code와 같은 에이전트 프로젝트부터 시작하세요.
오픈소스 코드 에이전트란 무엇인가요?
파일을 검사하고, 작업을 계획하고, 도구를 사용하고, 명령을 실행하고, 프로젝트 내에서 출력을 수정할 수 있는 에이전트입니다. 코드 어시스턴트와의 중요한 차이점은 단순한 생성이 아닌 실행(action)입니다.
모델 소스 코드만으로 AI 코딩 에이전트를 구축할 수 있나요?
아니요. 모델만으로는 저장소 액세스, 도구 연결, 실행 제어, 로그, 미리보기 또는 격리를 제공하지 않습니다. 여전히 에이전트 루프와 모델의 작업이 안전하게 실행될 수 있는 런타임이 필요합니다.
오픈 코딩 워크플로우를 위해 어떤 모델을 먼저 테스트해야 하나요?
코딩 에이전트를 위해 특별히 구축된 오픈 모델을 원한다면 Qwen3-Coder가 좋은 시작점입니다. 현재 Qwen3-Coder 저장소는 에이전트 코딩과 긴 컨텍스트 지원을 강조하며, Novita는 동일한 API를 통해 여러 Qwen3-Coder 변형을 제공합니다.
코딩 에이전트에 샌드박스가 필요한 이유는 무엇인가요?
명령을 실행하고, 종속성을 설치하고, 파일을 수정하기 때문입니다. 샌드박스는 에이전트에게 격리된 런타임을 제공하고, 작업 상태를 유지하며, 모델이 잘못된 작업을 수행할 때 피해 범위를 제한합니다.
