병렬 Antigravity 에이전트로 다국어 코드 감사자 빌드

1. 소개

3072ce11df4b71eb.jpeg

이 Codelab에서는 Antigravity의 병렬 멀티 에이전트 오케스트레이션을 사용하여 다국어 코드 품질 감사 및 자동 수정 시스템을 빌드합니다. 여러 개별 서비스 디렉터리를 전통적이고 수동적이며 선형적으로 검토하는 대신 전문 AI 하위 에이전트를 배포하여 다양한 언어 스택을 병렬로 검사합니다.

코디네이터 에이전트를 만들어 프로젝트 레이아웃을 검색하고, 하위 에이전트를 관리하여 단위 테스트를 실행하고, 감사 계획을 구성하고, 규정 준수를 위해 스캔하고, 감사 보고서를 생성하고, 코드베이스에서 우선순위가 높은 코딩 문제를 자율적으로 리팩터링합니다.

학습할 내용

  • 프로젝트 검색: 복잡한 마이크로서비스 아키텍처에서 디렉터리를 매핑하고 프로그래밍 언어를 감지하기 위해 코디네이터 에이전트를 배포하는 방법
  • 조율된 병렬 처리: 독립적인 언어별 AI 하위 에이전트 간에 코드 감사와 단위 테스트를 동시에 분산하는 방법
  • 인간 참여형 감독: 코디네이터 에이전트가 감사 계획을 구성하고 실행 전에 검토 및 승인을 위해 안전하게 일시중지하도록 안내하는 방법
  • 자동 수정: 전문 개발자 하위 에이전트를 배포하여 우선순위가 높은 코딩 및 규정 준수 문제를 자율적으로 리팩터링하고 해결하는 방법
  • 검증 루프: 회귀가 도입되지 않았는지 확인하기 위해 테스트 모음을 자동으로 다시 실행하여 AI 생성 코드 변경사항을 검증하는 방법

필요한 항목

이 Codelab에서는 다음 도구를 로컬에 설치해야 합니다.

  • Google Antigravity
  • Git
  • 환경에 설정된 언어(Go, Python, C# / .NET, NodeJS, Java 중 하나 이상)

지금 시작해 보세요.

2. 환경 설정

먼저 Antigravity가 설치되어 있는지 확인합니다.

둘째, 클라우드 마이크로서비스 데모 애플리케이션인 Online Boutique를 클론합니다.

git clone https://github.com/GoogleCloudPlatform/microservices-demo.git

코드를 사용하여 Antigravity에서 새 프로젝트를 만듭니다. Antigravity에서 왼쪽의 Projects 아래에 있는 Create New Project를 선택합니다.

e8b14447dfcc289b.png

저장소 폴더를 선택합니다.

b39f0b1843ef1f3d.png

Agent Security SettingsDefault 모드를 선택하고 프로젝트에 동일한 이름 microservices-demo를 사용할 수 있습니다.

3. 디스커버리

마이크로서비스 아키텍처에서 코드베이스는 일반적으로 여러 폴더 또는 저장소와 프로그래밍 스택에 걸쳐 있는 여러 서비스를 포함합니다. Online Boutique 데모 애플리케이션도 마찬가지입니다.

에이전트를 실행하기 전에 프로젝트 레이아웃을 살펴보겠습니다. 이 첫 번째 단계에서는 src/에서 다양한 언어로 된 여러 마이크로서비스를 검색하고 언어별 하위 에이전트가 나중에 각 마이크로서비스에서 작동하도록 조정하는 Antigravity를 사용하여 코디네이터 에이전트를 배포합니다.

먼저 코디네이터 상담사에게 코드베이스를 살펴보고 어떤 디렉터리에 어떤 서비스가 있고 어떤 언어를 사용하는지 매핑해 달라고 요청합니다.

Antigravity에서 이전에 만든 microservices-demo 프로젝트에서 새 대화를 시작합니다. 모델의 경우 사고 수준이 중간인 최신 Gemini 모델을 선택하면 됩니다.

1a88687c5fe37b04.png

이 프롬프트 사용해 보기:

Identify all the microservices located under the src/ directory,
detect which programming language each service is written in, and
output the list as a clean markdown table showing: Service Name,
Directory, and Primary Language.

결과적으로 Antigravity는 서비스와 기본 언어가 포함된 멋진 표를 반환해야 합니다.

2e37b2e607596573.png

4. 언어 선택

이제 코드베이스를 매핑했으므로 작업할 언어를 선택해야 합니다. 선택한 언어에 필요한 컴파일러/도구가 있는지 확인해야 합니다 (예: C#의 경우 dotnet 도구, Java의 경우 javac 등).

작업할 언어를 선택한 후에는 해당 언어의 단위 테스트를 실행하여 현재 코드베이스의 상태를 확인해야 합니다.

특화된 병렬 하위 에이전트를 사용하여 각 언어로 테스트 모음을 실행할 수 있습니다. 이는 멀티 에이전트 워크플로의 핵심 기능인 별도의 언어별 작업공간에서 격리된 테스트를 동시에 실행하는 기능을 강조합니다.

환경에 맞게 다음 프롬프트를 조정하고 실행합니다.

I have [C#, Python, Go, Java, Node.js] setup locally. 
Run the unit tests for services in these languages 
in parallel subagents and report back in a clean markdown 
on their pass/fail status.

각 언어로 테스트를 실행하는 여러 에이전트가 표시됩니다. 아래와 같이 도구를 실행할 권한을 요청할 때 각 하위 에이전트를 검토해야 합니다.

a3c1834909975020.png

모든 하위 에이전트가 완료되면 다음과 유사한 단위 테스트에 관한 보고서가 표시됩니다.

e8ce8e16f195ea8c.png

5. 감사 계획

계획

복잡한 워크플로에서는 계획 없이 코드 변경을 시작하면 충돌이 발생할 수 있습니다. Google은 감사할 항목에 관한 구조화되고 투명한 청사진을 마련하고자 합니다. 코드 품질 검사, 예외 처리, 쿼리 위생 검사 등을 포함한 감사 계획을 설계해 달라고 코디네이터 에이전트에게 요청하세요.

인간 감독 (인간 참여형)을 보장하기 위해 코디네이터는 계획을 아티팩트에 작성하고 검토를 위해 즉시 일시중지합니다.

다음 프롬프트를 사용하여 감사 계획을 세워 보세요.

We want to audit these microservices for code quality, 
exception handling and database query formatting standards 
for the languages I have set up locally. Design an audit plan 
detailing what you will check and save it as an Audit Plan artifact.
Do not execute the audit yet. Stop after writing the plan and wait
for my instructions.

채팅에 감사 계획 아티팩트가 표시됩니다.

a7eb6b75b28fd788.png

검토

이제 생성된 감사 계획을 검사하여 올바른 파일과 표준을 타겟팅하는지 확인합니다. 원하는 경우 진행을 승인하기 전에 인라인 댓글 또는 스타일 가이드 확인과 같은 맞춤 제약 조건을 추가할 수 있습니다.

생성된 감사 계획을 클릭하면 세부 계획이 표시됩니다.

9b36c0ca827fdc53.png

선택사항: 계획에 만족할 때까지 변경하고 반복하려는 경우 계획에 의견을 추가할 수 있습니다 (예: '모든 공개 메서드가 잘 문서화되어 있는지 확인').

6. 감사 실행

실행

감사 계획이 승인되었으므로 감사를 실행해 보겠습니다. 코디네이터 에이전트는 각 언어 스택에 대해 독립적인 병렬 하위 에이전트를 생성합니다. 각 에이전트는 자체 서비스 폴더에서 동시에 작동하여 파일 충돌을 방지하면서 스캔 프로세스를 가속화합니다. 코디네이터 에이전트는 발견 항목을 통합 품질 대시보드로 병합합니다.

다음 프롬프트를 시도해 보세요.

Execute the audit plan by spawning the parallel language subagents.
Once they finish scanning, collect their findings into an audit 
report artifact, sorted by language and then priority. Include the 
file paths, line ranges, snippets, and explanation of why it is a 
finding. Stop after writing the report.

다시 여러 에이전트가 표시됩니다.

9c282924eb33cc34.png

각 하위 에이전트를 확인하고 감사를 실행하는 데 필요한 권한을 부여합니다. 마지막으로 감사 보고서 아티팩트가 표시됩니다.

6706295f5cf7292b.png

검토

감사 보고서를 열면 언어별 세부 결과도 표시됩니다. 예를 들어 다음은 C#의 cartservice에서 발생한 우선순위가 높은 문제입니다.

aca90d0da393bffc.png

감사 보고서의 나머지 부분을 살펴보고 발견 항목을 확인하세요.

7. 해결

코드 품질 문제를 진단하는 것은 절반의 성공일 뿐입니다. 이제 에이전트를 사용하여 문제를 해결합니다. 코드를 수동으로 작성하는 대신 리팩터링을 언어 범위 개발자 하위 에이전트에 위임할 수 있습니다. 그러면 하위 에이전트가 권장사항에 따라 코드를 다시 작성합니다.

이 작업을 시도하는 방법은 여러 가지가 있습니다.

  1. 언어별로 에이전트를 생성하고 모든 에이전트가 한 번에 모든 문제를 해결하도록 할 수 있습니다. 이 방법이 효과가 있을 수도 있지만 동시에 추적하고 검토하기에는 너무 많을 수도 있습니다.
  2. 한 번에 한 언어에 대해 하나의 에이전트를 생성하여 해당 언어의 문제를 처리하도록 할 수 있습니다. 이렇게 하면 관리하기가 더 쉬워지지만 에이전트가 여러 파일에 걸쳐 여러 변경사항을 적용할 수 있어야 합니다.
  3. 다음 문제로 넘어가기 전에 결과를 확인하면서 한 번에 한 상담사가 한 문제를 처리하도록 할 수 있습니다. 이는 더 보수적인 접근 방식이지만 각 변경사항에 대한 최신 정보를 파악할 수 있습니다.

다음 프롬프트와 함께 더 보수적인 접근 방식 3을 사용하겠습니다.

Select the top high-priority finding in [pick a language, e.g., C#]
and remediate the finding. Show me the code changes once complete.

몇 초 후 에이전트가 선택한 언어로 최우선순위 문제를 해결하는 것을 확인할 수 있습니다.

결과적으로 에이전트가 변경한 내용을 보여주는 둘러보기 아티팩트도 표시될 수 있습니다.

9e79c7bb1e102aee.png

선택사항: 이 시점에서 에이전트에게 구현을 변경해 달라고 요청할 수 있습니다. 변경사항이 마음에 들면 에이전트에게 변경사항을 다루는 새 단위 테스트를 추가해 달라고 요청할 수 있습니다.

8. 인증

소프트웨어 개발에서 수정사항은 확인될 때까지 완료되지 않습니다. 이 마지막 단계에서는 에이전트에게 테스트 모음을 실행하여 코드 변경으로 인해 회귀가 발생하지 않았는지 확인하고 감사 스캐너를 다시 실행하여 문제가 완전히 해결되었는지 확인할 수 있습니다.

이 단계에서는 계획, 스캔, 수정, 확인의 완전한 자동화된 피드백 루프를 보여줍니다.

다음 프롬프트를 실행합니다.

Rerun the unit tests for the changed language. If they pass, rerun
the relevant audit agent to check if the finding is resolved. If it 
is resolved, mark the issue as resolved in the audit report.

테스트 러너 하위 에이전트가 가동되어 테스트를 실행한 다음 감사자 하위 에이전트가 감사 보고서를 업데이트하는 것을 확인할 수 있습니다. 마지막으로 최신 상태로 업데이트된 감사 보고서가 표시됩니다.

36ac20baa92d1602.png

한 가지 문제가 해결되었습니다. 이제 나머지 문제를 검토할 수 있습니다. 이번에는 에이전트가 검토 전에 더 많은 작업을 수행하도록 하는 등 덜 보수적인 접근 방식을 사용해 보세요.

9. 축하합니다

축하합니다. 방금 Antigravity를 사용하여 복잡한 다국어 코드 검토 및 자동 수정 워크플로를 완료했습니다.

Antigravity의 멀티 에이전트 아키텍처를 활용하여 정적 검사를 자동화했을 뿐만 아니라 자동화된 품질 보증팀을 구성했습니다. 전문 언어 에이전트가 언어별 문제를 동시에 해결하는 동안 코디네이터 에이전트는 중앙 집중식 계획과 보고서를 작성하고 이후 타겟 코드 리팩터링을 관리했습니다.

핵심 내용

  • 조정된 병렬 처리: 독립적이고 언어별 하위 에이전트가 병렬로 실행되도록 감사와 테스트를 분산하여 선형 검토 병목 현상을 방지하는 방법을 배웠습니다.
  • Human-in-the-Loop: 실행 전에 생성된 감사 계획을 검토하고 주석을 달아 자율 운영을 감독했습니다.
  • 자동 수정 및 검증: AI 에이전트가 코드 품질 불일치를 진단할 뿐만 아니라 코드를 리팩터링하고 로컬 테스트 도구 모음에 대해 자체 변경사항을 검증하는 방법을 확인했습니다.