[reinvent 2025] Amazon Nova 2 Lite를 활용한 자율 코드 개선 에이전트 구축
Summary
이 세션은 Amazon Nova 2 Lite의 추론 능력을 깊이 탐구하여 코드베이스를 자율적으로 개선하는 지능형 에이전트를 만드는 방법을 다룹니다. 장기적인 에이전트 워크플로우를 위한 실질적인 구현 패턴과 아키텍처 고려 사항을 학습할 수 있으며, 수동적인 코드 유지보수를 지능적이고 자동화된 엔지니어링 솔루션으로 전환하는 방법을 라이브 코딩을 통해 보여주었습니다.
리인벤트 2025 테크 블로그의 더 많은 글이 보고 싶다면?
Overview
들어가며
이번 칼럼에서는 Amazon Nova 2 Lite의 추론 능력을 활용하여 자율적인 코드 개선 에이전트를 구축하는 방법을 주제로 한 세션(AIM429-R) 내용을 공유드리도록 하겠습니다. 완전한 자율 코딩 에이전트를 구축하는 것은 매우 방대하고 복잡한 도전 과제이지만, 이번 세션을 통해 이를 현실적인 규모로 구현할 때 필요한 핵심 고려 사항들을 배울 수 있었습니다. 이번 세션에서 주목할 내용은 Nova 2 Lite의 추론 능력 활용, 에이전트 성능을 위한 컨텍스트 관리 기법, 그리고 장기적인 에이전트 워크플로우를 위한 멀티 에이전트 아키텍처입니다.

에이전트 성능을 극대화하는 컨텍스트 관리 전략
Amazon Nova 2 Lite는 100만 컨텍스트 윈도우를 지원하는 대규모 추론 모델로 오늘(세션 당일) 발표되었습니다.


코딩 에이전트를 구축할 때, 모델에게 모델 컨텍스트 프로토콜(MCP) 서버를 통해 깃허브(GitHub)와 상호작용할 수 있는 툴킷을 제공할 수 있습니다.
그러나 모델에 40개에 달하는 많은 도구를 전달할 경우, 도구 구성만으로 8,000개 이상의 토큰이 추가되어 모델이 사용해야 할 컨텍스트가 크게 늘어납니다. 모델은 이 도구들 중 작업에 가장 적합한 도구를 선택해야 하므로, 도구가 너무 많으면 모델의 성능을 저하시키는 주요 고려 사항이 됩니다.
또한, Nova 모델은 100만 컨텍스트를 지원하지만, 전체 코드베이스를 컨텍스트에 한 번에 모두 담아 전달할 경우 (예: 50만 토큰) 모델의 성능이 저하될 수 있습니다. 모델은 긴 컨텍스트 내에서 특정 정보를 검색하는 능력(Needle in a haystack)은 뛰어나지만, 코드 작업에 중요한 의미적 연결(semantic connections)을 파악하는 데는 어려움을 겪을 수 있습니다. 이는 느린 처리 속도와 높은 비용을 유발할 뿐만 아니라, 에이전트의 작업 품질까지 저하시킬 수 있습니다.따라서, 자율 코딩 에이전트를 구축할 때는 사전 컨텍스트를 최소화하고, 컨텍스트가 작업 흐름 동안 자연스럽게 축적되도록 하며, 선제적인 컨텍스트 압축 전략을 사용하는 것이 중요합니다. 효과적인 방법 중 하나는 전체 코드 내용을 전달하는 대신, 저장소의 파일 경로 목록을 컨텍스트로 제공하는 것입니다. 이 방법은 모델이 코드를 탐색하는 데 필요한 도구 호출 횟수를 대폭 줄이면서도(예: 8회 → 2회), 출력 품질은 높게 유지하는 결과를 보여주었습니다.
멀티 에이전트 아키텍처와 추론 예산 활용
에이전트에게 명확한 시스템 프롬프트를 제공하는 것은 필수적입니다. Nova 2 모델에서는 다음과 같은 구조화된 섹션을 활용하여 모델의 주의를 집중시키는 것이 효과적입니다:
1. 핵심 명령 (Core Mandates): 모델이 따라야 할 중요한 비즈니스 규칙 명시 (예: 원본 이슈 업데이트 금지, 새 주석 추가)
2. 워크플로우 (Workflow): 모델이 수행해야 할 단계 명시 (예: 이슈 확인 -> 파일 탐색 -> 계획 수립)
3. 도구 사용 (Tool Usage): 도구를 호출하는 방법에 대한 비즈니스 규칙 제공 및 병렬 도구 호출(Parallel Tool Calling) 장려
4. 오류 처리 (Error Handling): 시간 초과 등 오류 발생 시 모델이 어떻게 응답해야 하는지 정의


단일 에이전트(mono-agent) 아키텍처는 계획 수립에 사용된 모든 토큰과 컨텍스트를 유지해야 하므로 비효율적입니다. 장기적인 코딩 작업을 위해서는 멀티 에이전트 아키텍처로 전환하는 것이 권장됩니다. 이는 Strands와 같은 프레임워크를 사용하여 그래프 기반 접근 방식(Graph-based approach)으로 구현할 수 있으며, 계획 에이전트(Planning agent)가 계획을 수립하고, 그 결과가 실행 에이전트(Act agent)로 전달되어 코드를 작성하는 방식으로 작동합니다.또한, Nova 2 Lite는 추론(Reasoning) 기능을 지원하며, 복잡한 추론 작업을 위해 이 기능을 활성화할 수 있습니다. 추론의 수준을 제어하기 위해 추론 예산(Reasoning budgets)이 저(Low), 중(Medium), 고(High) 세 가지 범주로 제공됩니다. 추론을 ‘고’ 수준으로 설정하면 최대 32,000 토큰을 사용할 수 있으며, 이는 복잡한 문제에 유용하지만, 비용과 처리 시간을 고려해야 합니다.
실제 코드 개선을 위한 로컬 실행 환경 구축
코딩 에이전트가 코드를 작성하는 것 외에도, 개발자와 마찬가지로 코드를 실행하고 테스트하며 반복 개선할 수 있는 환경이 필요합니다. 이를 위해 Docker를 사용하여 에이전트가 파일을 넣고, 코드를 실행하며, 예외를 확인하고, 반복 작업을 수행할 수 있는 작업 공간(Workspace)을 생성할 수 있습니다.
로컬 환경에서 작동하는 코드 실행 도구(Code execution tool)를 구축할 때는 몇 가지 중요한 보안 및 효율성 고려 사항이 있습니다:
- 작업 디렉토리 격리: 코드가 반드시 지정된 도커 작업 공간 내에서만 실행되도록 경로를 엄격히 제한해야 합니다.
- 보안 강화: 에이전트가 승인되지 않은 패키지를 다운로드하거나 인터넷에 접속하는 것을 막기 위해 파일 시스템 및 네트워크 보안을 설정하는 것이 매우 중요합니다. Sandbox Runtime이나 Proxy 사용을 고려할 수 있습니다.
- 의존성 관리: 에이전트가 코드를 실행하기 전에 requirements.txt와 같은 의존성 파일을 사용하여 테스트 환경과 동일한 상태(Parity)를 보장해야 합니다.
깃허브 MCP 서버를 통해 파일 전체를 요청하고 업데이트하는 것은 느리고 비효율적일 수 있으므로, 개발자가 로컬에서 작업하는 방식과 유사하게 Git 도구와 파일 시스템 도구를 사용하여 작업 공간을 복제(clone)하고 탐색하는 것이 실용적입니다.
결론
Amazon Nova 2 Lite는 100만 컨텍스트와 강력한 추론 능력을 바탕으로 자율적인 코딩 에이전트 구축에 핵심적인 역할을 할 수 있는 모델입니다. 이 세션을 통해 Nova 2 Lite의 잠재력을 완전히 활용하기 위해서는 단순한 프롬프트가 아닌, 핵심 명령과 워크플로우를 담은 구조화된 시스템 프롬프트가 필수적임을 확인할 수 있었습니다. 또한, 높은 비용과 느린 성능을 피하기 위해 전체 코드베이스가 아닌 파일 경로 목록을 활용하는 신중한 컨텍스트 관리 전략과 장기적인 워크플로우를 위한 멀티 에이전트 아키텍처, 그리고 Docker 기반의 안전한 로컬 코드 실행 환경이 결합될 때, 자율 코드 개선 에이전트의 현실적인 구현이 가능해진다는 인사이트를 얻을 수 있었습니다. 이러한 접근 방식은 수동적인 유지보수 작업의 부담을 크게 줄이고, 엔지니어링 효율성을 혁신적으로 높이는 기초가 될 것입니다.


