이 페이지에서

코딩 에이전트 보안(조기 액세스)

조기 액세스

This feature is in Early Access. During this time, aspects of the functionality may still be developed, and this documentation may not always be up to date. If you have any questions, contact Amplitude Support.

Wave는 GitHub와 코딩 에이전트를 사용하여 Opportunities에 기능의 동작 방식, 버그가 존재하는 위치, 구현에서 필요한 변경 사항과 같은 상세한 제품 컨텍스트를 제공합니다. 이러한 액세스는 엄격한 격리 모델을 따릅니다. 따라서 에이전트는 자격 증명을 노출하거나 소스 코드를 보관하지 않고도 풀 요청을 조사하고 열 수 있습니다.

저장소 연결 및 코딩 에이전트 실행 이면에 있는 보안 및 데이터 처리 세부 정보가 필요한 경우 이 페이지를 사용하십시오. 저장소를 연결하는 방법은 컨텍스트 연결로 이동하십시오. 더 광범위한 Amplitude AI 개인정보 보호 제어를 보려면 개인정보 보호 및 보안으로 이동하십시오.

GitHub와 코딩 에이전트가 중요한 이유

Wave Opportunities에는 작업을 계획하고 버그를 조사하기 위한 정확한 제품 및 구현 컨텍스트가 필요합니다. Amplitude는 다음 세 가지 구성 요소를 통해 이러한 컨텍스트를 제공합니다.

  1. 코드 인덱싱: 조직 전체의 에이전트에 대한 기능 동작 및 이벤트를 설명하는 마크다운 컨텍스트를 구축합니다.
  2. 특정 질문을 위한 코딩 에이전트: Wave에 코드 기반 답변이 필요한 경우, 보안 샌드박스 내에서 읽기 전용 분석을 실행합니다.
  3. 구현을 위한 코딩 에이전트: 동일한 샌드박스 모델을 사용하여 코드베이스에 계획을 구현하고 검토를 위해 풀 리퀘스트를 생성합니다.

코드 인덱싱

코드 인덱싱은 기능과 이벤트가 어떻게 작동하는지를 설명하는 마크다운 파일을 생성합니다. Amplitude는 해당 인덱스를 조직의 자체 파티션 내에 있는 AWS 기술 자료에 저장합니다. 이 파티션은 단일 테넌트입니다. Amplitude는 절대로 이를 고객 간에 공유하지 않습니다.

인덱싱 방식:

  • 저장소에 대해 읽기 전용입니다.
  • 사용자 제어: 사용자는 필요에 따라 인덱싱을 실행하고, 다시 실행하여 갱신할 수 있습니다.
  • 조직에 적용됨: Amplitude는 조직의 컨텍스트 외부에서 인덱스를 사용하거나 검사하지 않습니다.
  • 조직에서 완전히 볼 수 있으며, 사용자가 삭제한 후에도 Amplitude는 해당 정보를 보관하지 않습니다.

일반적인 인덱스는 저장소당 약 5~30분 정도 걸립니다.

타겟 질문을 위한 코딩 에이전트

Wave가 Opportunities를 생성하는 과정에서 Wave 에이전트는 보안이 적용된 네트워크 격리 샌드박스에서 실행되는 코딩 서브에이전트를 시작할 수 있습니다. 이러한 코드 기반 조사는 계획의 품질과 증거를 향상시킵니다.

작업이 변경이 아닌 질문일 경우 Amplitude는 실행에서 쓰기 도구를 완전히 제거합니다. 에이전트는 사용자의 코드에 대해 읽기 전용으로 유지됩니다. AI 공급자에게 키를 제공할 경우 추론은 사용자 범위 내에 유지됩니다. Amplitude는 해당 사용량을 Amplitude의 자체 계정에 청구하거나 계정을 통해 전달하지 않습니다.

구현을 위한 코딩 에이전트

구현 실행 시 대상 질문과 동일한 샌드박스 설정을 사용합니다. 코딩 에이전트가 계획을 구현할 때 코드베이스에서 직접 작업하고, 엔지니어링 팀이 검토할 수 있도록 풀 리퀘스트를 생성합니다.

어떤 것도 자동으로 병합되지 않습니다. Amplitude는 실제로 변경된 리포지토리별로 별도의 브랜치에서 하나의 풀 리퀘스트를 생성하고, 실행이 계속되는 동안 진행 상황을 체크포인트로 기록합니다. 이 시점부터 빌드 시스템과 검토 프로세스가 이어서 처리합니다. Amplitude는 실험 또는 플래그 측정 데이터를 기다린 후 변경이 효과가 있었는지 여부에 대한 판단을 반환합니다.

리포지토리 범위

구현 에이전트의 범위는 전체 리포지토리입니다. 이 도구는 작업에 정말로 필요한 경우 구성 또는 CI 파일을 수정할 수 있습니다. 에이전트가 제한된 파일 범위 내에서만 작업한다고 가정하는 대신, 사용자 측의 브랜치 보호 및 필수 리뷰를 통해 작업을 통제하는 방식입니다.

Amplitude가 샌드박스를 보호하는 방법

질의 및 구현을 포함한 모든 서브에이전트 실행은 동일한 격리 모델을 따릅니다. 즉, 코드에 접근할 수 있는 컴포넌트에는 자격 증명을 보유하지 않으며, 자격 증명을 보유한 컴포넌트는 코드에 접근할 수 없습니다.

실행할 때마다 새로운 일회용 환경 제공

Amplitude는 공유 컨테이너가 아닌 각 실행에 대해 별도의 가상 머신을 생성합니다. 환경은 실행이 시작될 때 시작되며 Amplitude는 실행이 끝날 때 환경을 파괴합니다. 실행 사이에 아무것도 이월되지 않으며, Amplitude는 이후에 소스 코드를 보존하지 않습니다.

비권한 실행

에이전트는 루트가 아닌 사용자로 실행됩니다. 이 시스템은 권한 관리를 승격할 수 없으며 클러스터 ID도 없습니다.

상설 자격 증명 없음

별도의 자격 증명 브로커가 귀하의 GitHub 토큰과 AI 공급자 키를 보관합니다. 브로커는 이러한 자격 증명을 서버측 아웃바운드 요청에 추가합니다. 에이전트와 코디네이터에는 원시 자격 증명이 제공되지 않습니다.

GitHub 토큰은 사용자의 설치에 적용되며 1시간 이내에 만료되므로 프롬프트에서 어떤 작업을 하라고 요청하든 실행은 사용자의 환경 밖에서 작동할 수 없습니다.

네트워크 액세스 제한

샌드박스는 브로커를 통해서만 GitHub와 AI 공급업체에 연결할 수 있습니다. 이 시스템은 Amplitude의 내부 시스템, 클라우드 인프라 메타데이터 또는 다른 고객 환경에 도달할 수 없습니다.

테넌트 분리

Amplitude는 조직의 모든 환경에 태그를 지정합니다. 세션 확인, 후속 요청 전송, 실행 취소 등의 모든 작업은 먼저 해당 실행이 호출자의 조직에 속하는지 확인합니다. 다른 조직의 실행 요청은 "금지됨"이 아니라 "찾을 수 없음"으로 반환되므로 다른 조직의 실행이 존재하는지 확인할 수 없습니다.

실행 전 체크

Amplitude는 대상 리포지토리가 유효하지 않거나, 둘 이상의 GitHub 소유자에 걸쳐 있거나, GitHub 앱 설치에 연결할 수 없는 경우 환경을 생성하기 전에 실행을 거부합니다. 이를 통해 실패가 고립되거나 잘못 지정된 풀 요청을 남기는 것을 방지할 수 있습니다.

자동 재시도 없음

실패한 실행은 자동으로 재시도되지 않습니다. Amplitude는 자격 증명이 로그 항목에 유출되지 않도록 출력을 출력 내용을 가린 뒤 실패 내역을 기록하며, 사용자가 재시도 여부를 결정할 때까지 기다립니다.

Amplitude가 저장하는 내용

Amplitude는 이러한 컴포넌트에서 생성된 정보 중 Wave 코드 인덱싱 결과만 저장합니다. 이는 기능과 이벤트가 어떻게 작동하는지를 설명하는 마크다운 컨텍스트입니다. 이 인덱스는 다음과 같습니다.

  • 조직에서 언제든지 완벽하게 볼 수 있습니다.
  • 단일 테넌트 방식으로 조직의 자체 파티션 내에 저장됩니다.
  • 사용자는 전적으로 이를 제어합니다(사용자의 조건에 따라 생성, 갱신 및 삭제).
  • 삭제한 후에도 유지되지 않습니다.

프롬프트, 모델 응답, 샌드박스 실행 중 읽은 소스 코드를 포함한 기타 모든 정보는 보존되거나 기록되지 않습니다. Amplitude가 보관하는 유일한 다른 기록은 영업 기회 자체에 대한 작업 내역뿐입니다: 브랜치 이름, 풀 요청 링크 및 상태, diff 크기, CI 상태, 재생 가능한 세션 기록. 이 중 어느 것도 여러분의 코드베이스의 복사본이 아닙니다.

대체 프로바이더: Cursor

또한 Amplitude는 Amplitude의 자체 에이전트 대신 Cursor를 통해 코딩 작업을 시작할 수 있도록 지원합니다. Cursor 실행은 조직과 Cursor 간에 체결된 계약에 따라 전적으로 Cursor 인프라에서 수행됩니다. 이 페이지의 샌드박스와 자격 증명 브로커 모델은 Amplitude의 자체 에이전트를 구체적으로 설명합니다.

이 내용이 도움이 되었나요?