AlphaEvolve API 참조

이 문서는 Google Cloud검색 엔진 대화형 레이어의 AlphaEvolve Cloud API에 관한 공신력 있는 프로덕션 등급 API 참조 및 시스템 사양으로 사용됩니다. 완전 자동화된 클라이언트 측 컨트롤러와 평가 루프를 설계하는 데 필요한 정확한 중첩 리소스 계층 구조, REST 및 gRPC 엔드포인트, 필드 수준 제약 조건, 수명 주기 상태 머신, 오류 진단 매트릭스, 보안 샌드박스 규칙, 통합 워크플로를 정의합니다.

통합 수명 주기 상태 머신

AlphaEvolve 에이전트는 두 개의 독립적인 상태 머신을 조정하여 실험 캠페인 진행 상황을 모니터링하고 개별 프로그램 변이의 게재 및 실행을 관리합니다.

실험 수명 주기 상태

실험은 전체 최적화 캠페인을 나타냅니다. 영구 서버 측 리소스로 처리되며 다음 상태를 통해 전환됩니다.

  • CREATED: 초기화 상태입니다. 리소스가 선언되고 구성되었지만 아직 초기 세대를 채우거나 API 호출을 디스패치하지 않았습니다.

  • RUNNING: 활성 평가 상태입니다. 엔진은 동시에 상위 후보를 샘플링하고, LLM 혼합을 통해 코드 변형을 생성하고, 평가자에게 작업을 스트리밍합니다.

  • PAUSED: 수동으로 또는 자동 보호 idle_timeout를 통해 트리거되는 임시 보류 상태입니다. 코드 생성이 중지되고 기존 작업자가 측정항목 전송을 일시중지합니다.

  • COMPLETED: 검색이 max_programs 타겟 할당을 성공적으로 충족했거나 구조적 생성 한도에 도달했음을 나타내는 최종 상태입니다.

  • FAILED: 포착되지 않은 API 사용자 인증 정보 예외, 데이터 저장소 손상, 연속 러너 비상 사태와 같은 시스템 환경 문제로 인해 처리 실행이 중단되었음을 나타내는 터미널 오류 상태입니다.

프로그램 상태

런타임 검증 시퀀스는 개별 후보 변형에 적용됩니다.

생성된 모든 코드 변이는 모집단 데이터베이스 내에서 세부적인 작업 상태의 시퀀스를 통해 전환되는 격리된 프로그램 엔티티로 작동합니다.

  1. INITIALIZED: 프로그램 항목이 데이터베이스에 생성되어 조상 계통과 상위 프로그램 연결을 추적합니다.

  2. GENERATING: 특정 기능 코드 블록을 초안 작성하거나 변경하기 위해 언어 모델 혼합 백엔드에 작업이 적극적으로 디스패치됩니다.

  3. EVALUATING: 코드 페이로드는 평가 작업자 프로세스에 의해 잠기고 격리된 테스트 하네스 환경 내에서 실행됩니다.

  4. COMPLETED: 실행 점수와 설명이 포함된 구조적 통계가 진화 데이터베이스에 안전하게 커밋되고 프로그램이 선택 풀에 추가됩니다.

동시 실행 및 잠금 메커니즘

프로그램은 분산된 토폴로지에서 경합 상태나 중복 점수 오버헤드를 방지하기 위해 원자 잠금 토큰 메커니즘을 사용하여 작업자 루프에 의해 획득됩니다. 평가자는 데이터베이스에 결과를 다시 커밋하려면 정확히 일치하는 잠금 토큰과 함께 최종 점수 스키마를 제출해야 합니다.

구성 및 설정 스키마

AlphaEvolve 엔진 런타임에서 사용하는 핵심 스키마 구성, 매개변수, 기본값의 개요입니다.

AlphaEvolveExperimentConfig

진화 실험 실행의 핵심 구조 매개변수와 프로그래매틱 제약 조건을 정의합니다.

필드 이름 유형 기본값 제약 조건 / 값 범위 기술 설명
title 문자열 필수 최대 256자(영문 기준) 실험의 고유한 표시 이름입니다.
problemDescription 문자열 필수 최대 5,000자(영문 기준) 문제의 공식 사양입니다. 규칙을 설정하기 위해 프롬프트 컨텍스트에 직접 삽입됩니다.
programmingLanguage 문자열 필수 자유 형식 값 진화된 코드베이스의 타겟 언어입니다 (예: "python", "cpp", "verilog", "cuda", "julia", "java").
runSettings 객체 필수 RunSettings 스키마에 매핑됩니다. 게재 간격 및 제한 시간 매개변수입니다.
generationSettings 객체 필수 GenerationSettings 스키마에 매핑됩니다. 모델 선택 및 컨텍스트 파라미터
evolutionSettings 객체 필수 EvolutionSettings 스키마에 매핑됩니다. 상위 항목 선택 및 다양성 매개변수입니다.
notes 문자열 필수 최대 1,000자(영문 기준) 실행 문서의 선택적 주석입니다.

RunSettings

처리량 페이싱, 병렬화 제한, 자동 시스템 제한 시간을 관리합니다.

필드 이름 유형 기본값 제약 조건 / 값 범위 기술 설명
maxPrograms int32 100 최소: 1, 최대: 100000 총 실행 예산 (생성 및 평가할 프로그램)
concurrency int32 1 최소: 1, 최대: 30 대기열에서 활성 상태인 병렬 프로그램 변이 수입니다. 30보다 큰 값은 허용되지 않습니다.
maxDuration 문자열 null ISO 8601 dayTimeDuration 문자열
최소: >=0, 최대: 7일
실험이 중지되기 전에 허용되는 총 실제 시간입니다.
idleTimeout 문자열 null ISO 8601 dayTimeDuration 문자열
최소: >=0, 최대: 24시간
`PAUSED`로 자동 전환되기 전 비활성 기간입니다.

생성 설정

GenerationSettings 스키마는 변형의 프롬프트 어셈블리, 컨텍스트 윈도우, 모델 구성을 제어합니다.

  • context (문자열): 선택사항인 사용자 제공 참고 문서, 보조 API 또는 규칙입니다. 토큰을 200,000개 미만으로 유지하는 것이 좋습니다. 컨텍스트 크기가 200,000 토큰을 초과하면 모델의 어텐션이 희석되고 변이 품질이 저하됩니다.

  • includeFullProgramInPrompt (불리언): 기본 false입니다.

    • true: 변이 프롬프트에는 변경 가능한 # EVOLVE-BLOCK와 주변의 변경 불가능한 상용구 (복잡한 구조적 추론에 적극 권장)가 포함됩니다.

    • false: 변경 가능한 블록만 표시되어 토큰 컨텍스트가 저장됩니다.

진화 설정

EvolutionSettings 스키마는 아일랜드 모델 리시딩 및 상위 샘플링 확률을 제어합니다.

  • parentSamplingConfigparetoSamplingConfigparetoSamplingProbability (float): 표준 적합도 기반 선택을 사용하는 대신 활성 파레토 프런티어에서 직접 상위 프로그램을 샘플링할 확률 (0.0~1.0)입니다. 최적화된 측정항목이 단일 스칼라 측정항목만 반환하는 경우 이 매개변수는 0.0 (사용 중지됨)로 설정해야 합니다.

후보 프로그램 데이터 모델

이 섹션에서는 인구 데이터베이스 내에서 후보 코드 구조를 정의하고 구성하는 데 사용되는 데이터 스키마와 표현을 간략하게 설명합니다.

AlphaEvolveProgramContent

후보 프로그램의 파일과 구조적 구성을 정의합니다.

  • files (AlphaEvolveSourceFile 배열): 후보 코드베이스를 구성하는 모든 파일의 목록입니다. 이 컬렉션은 후보 프로그램당 최대 50개 파일로 엄격하게 제한됩니다.

  • description (문자열): 생성 모델에서 제안하는 프로그래매틱 변경사항을 간략하게 설명하는 자동 생성 요약입니다 (최대 1,000자).

AlphaEvolveSourceFile

코드베이스의 개별 소스 코드 파일을 나타냅니다.

  • path (문자열): 워크스페이스 관련 경로 대상입니다 (최대 256자). Python 작업 공간을 구성하는 경우 기본 실행 파일 진입점의 이름은 정확히 "initial_program.py"여야 합니다.

  • content (문자열): 기능 구현 블록으로 구성된 원시 소스 코드 문자열입니다. 모든 파일에 걸쳐 합산된 총 누적 코드베이스 공간은 4,000~5,000줄의 코드 (LOC) 미만이어야 합니다.

  • programLanguage (문자열): 언어 파서 매핑 태그입니다. 이 문자열은 상위 실험 구성 내에 지정된 언어와 명시적으로 일치해야 합니다.

  • description (문자열): 파일의 개별 아키텍처 또는 목적을 간략하게 설명하는 선택적 요약으로, 변이 전달 중에 LLM에 노출됩니다 (최대 500자).

AlphaEvolveProgramEvaluation

런타임 실행 후 클라이언트 러너 인스턴스에서 진화 데이터베이스로 다시 제출한 구조화된 페이로드입니다.

  • scores (AlphaEvolveScores): 표준화된 객관적인 수치 측정항목 값입니다. 권장사항에 따라 이를 3~5개의 고유한 부동 소수점 측정항목으로 제한합니다. 타겟 측정기준이 너무 많으면 다중 목표 파레토 비교기 성능이 저하됩니다.

  • insights (AlphaEvolveEvaluationInsight 배열): LLM의 후속 변이 생성 시도를 지원하기 위해 다시 전달되는 진단 시맨틱 라벨 및 자연어 실행 추적 (최대 10개 항목 권장).

점수 공식 및 수집 형식

최대화 규칙

AlphaEvolve는 기본적으로 단조로운 언덕 오르기 알고리즘으로 작동하며 모든 수치 측정항목을 엄격하게 최대화합니다. 평가 파이프라인이 최소화 타겟(예: 애플리케이션 지연 시간 최소화(밀리초) 또는 메모리 사용량 감소)을 추적하는 경우 데이터베이스에 다시 제출하기 전에 값을 부정해야 합니다(submitted_score = -latency_ms).

점수는 연속적인 것이 이상적입니다. 불리언 또는 매우 이산적인 측정항목은 효과적인 언덕 오르기 탐색을 위한 충분한 그라데이션 신호를 제공하지 않습니다.

단일 목표 처리 스키마

평가 하니스가 단일 스칼라 목표 함수에 대해 최적화하는 경우 다음 JSON을 사용하세요.

```json
{
  "scores": {
    "scores": [
      {
        "metric": "accuracy",
        "score": 0.95
      }
    ]
  },
  "insights": {
    "insights": [
      {
        "label": "validation",
        "text": "Passed syntax and basic compilation."
      }
    ]
  }
}
```

다중 목표 수집 스키마

독립적인 다중 목표 추적 매개변수를 전달하여 서버 측 파레토 프런티어 최적화 루틴을 활성화할 때는 다음 JSON을 사용하세요.

{
  "scores": {
    "scores": [
      {
        "metric": "accuracy",
        "score": 0.95
      },
      {
        "metric": "latency",
        "score": -42.5
      }
    ]
  },
  "insights": {
    "insights": [
      {
        "label": "verification",
        "text": "Passed 5 out of 5 unit tests."
      },
      {
        "label": "latency_warning",
        "text": "Latency regression of 3% observed on large dataset."
      }
    ]
  }
}

프로그램 데이터 가져오기 및 쿼리

AlphaEvolve 시스템은 생성된 모든 변이의 원격 분석, 실행 측정항목, 전체 소스 코드를 기록하므로 개발자는 API 또는 CLI를 사용하여 이 기록 데이터 저장소를 쿼리하여 최적화 진행 상황을 추적하고 실적이 가장 우수한 코드 후보를 추출할 수 있습니다.

REST API를 사용한 프로그램 검색

평가된 프로그램 리소스는 필터링 및 정렬 쿼리 매개변수와 함께 표준 ListAlphaEvolvePrograms 엔드포인트를 사용하여 데이터베이스에서 쿼리할 수 있습니다.

  • 상태 필터링: 특정 수명 주기 상태와 일치하는 프로그램을 쿼리합니다.

    GET /v1alpha/{parent}/alphaEvolvePrograms?state_filter=COMPLETED
    
  • 측정항목 기반 정렬: 최적화된 측정항목을 기반으로 정렬된 후보를 가져옵니다.

    GET /v1alpha/{parent}/alphaEvolvePrograms?order_by=accuracy desc,latency&page_size=5
    

CLI를 사용한 프로그램 검색

터미널에서 직접 상위 완료된 후보자를 가져오려면 다음 명령어를 실행합니다.

ae results best <experiment-nickname> --top 5

완전한 CLI 사용 예

AlphaEvolve CLI를 사용하면 개발자가 셸에서 직접 캠페인을 빠르게 관리하고 모니터링할 수 있습니다.

  • 대화형 세션의 모든 실험을 나열합니다.

    ae experiment list
    
  • 특정 실험의 모든 변형된 후보 프로그램을 나열합니다.

    ae program list EXPERIMENT_NICKNAME \
      --state=COMPLETED \
      --order_by="accuracy desc"
    

    EXPERIMENT_NICKNAME을 실험 이름으로 바꿉니다.

  • 실적이 가장 우수한 완료된 코드 후보를 가져옵니다.

    ae results best EXPERIMENT_NICKNAME --top 5
    

    EXPERIMENT_NICKNAME을 실험 이름으로 바꿉니다.

  • 일시중지된 캠페인을 재개하려면 다음 단계를 따르세요.

    ae experiment resume EXPERIMENT_NICKNAME
    

    EXPERIMENT_NICKNAME을 실험 이름으로 바꿉니다.

핵심 REST API 엔드포인트 디렉터리

모든 엔드포인트는 Google Cloud Discovery Engine API의 v1alpha 아래에 버전이 지정됩니다.

상위 리소스 경로 패턴

실제 중첩된 상위 리소스 URI는 다음과 같이 구성됩니다. projects/{project}/locations/{location}/collections/{collection}/ engines/{engine}/sessions/{session}

실험 만들기 (POST)

  • 경로: POST v1alpha/{parent=projects/*/locations/*/collections/*/engines/*/ sessions/*}/alphaEvolveExperiments

  • 요청 본문: AlphaEvolveExperimentConfig (2.1항 참고)

  • 응답: 초기화된 캠페인이 포함된 AlphaEvolveExperiment 리소스

  • HTTP 상태: 200 OK

API 페이로드 예시

  1. 요청 본문 예시 (POST /alphaEvolveExperiments)

    {
      "config": {
        "title": "Sorting Optimization Campaign",
        "problemDescription": "Optimize the custom_heuristic function.",
        "programLanguage": "python",
        "notes": "Exploring convergence with Gemini 3.5 Flash.",
        "runSettings": {
          "maxPrograms": 250,
          "concurrency": 8,
          "maxDuration": "86400s",
          "idleTimeout": "1800s"
        },
        "generationSettings": {
          "context": "Ensure custom_heuristic is in-place.",
          "includeFullProgramInPrompt": true,
          "models": [
            {
              "name": "gemini-3.5-flash",
              "weight": 1.0
            }
          ]
        },
        "evolutionSettings": {
          "parentSamplingConfig": {
            "paretoSamplingConfig": {
              "paretoSamplingProbability": 0.0
            }
          }
        }
      }
    }
    
  2. 응답 본문 예시 (200 OK)

    {
      "name": "projects/.../sort-opt-01",
      "state": "CREATED",
      "createTime": "2026-06-23T13:30:00Z",
      "config": {
        "title": "Sorting Optimization Campaign",
        "problemDescription": "Optimize the custom_heuristic function.",
        "programLanguage": "python",
        "notes": "Exploring convergence with Gemini 3.5 Flash.",
        "runSettings": {
          "maxPrograms": 250,
          "concurrency": 8,
          "maxDuration": "86400s",
          "idleTimeout": "1800s"
        },
        "generationSettings": {
          "context": "Ensure custom_heuristic is in-place.",
          "includeFullProgramInPrompt": true,
          "models": [
            {
              "name": "gemini-3.5-flash",
              "weight": 1.0
            }
          ]
        },
        "evolutionSettings": {
          "parentSamplingConfig": {
            "paretoSamplingConfig": {
              "paretoSamplingProbability": 0.0
            }
          }
        }
      }
    }
    

실험 시작 (POST)

  • 경로: POST v1alpha/{name=projects/*/locations/*/collections/*/engines/*/ sessions/*/alphaEvolveExperiments/*}:start

  • 요청 본문: StartExperimentRequest

  • 지원 중단 경고: 본문 필드 initialProgram은 지원 중단되었으며 무시됩니다.

  • 대답: GoogleLongrunningOperation (LRO)

  • HTTP 상태: 200 OK (CREATED에서 RUNNING로 상태 전환)

API 페이로드 예시

  1. 요청 본문 예시

    {
      "desiredProgramsCount": 1
    }
    
  2. 응답 본문 예시 (200 OK - 장기 실행 작업)

    {
      "name": "projects/.../operations/start-op-7788",
      "metadata": {
        "@type": "type.googleapis.com/.../AlphaEvolveStartExperimentMetadata",
        "createTime": "2026-06-23T13:31:00Z"
      },
      "done": false
    }
    

프로그램 획득 (POST)

  • 경로: POST v1alpha/{parent=projects/*/locations/*/collections/*/engines/*/ sessions/*/alphaEvolveExperiments/*}:acquirePrograms

  • 요청 본문: AcquireProgramsRequest

    • desiredProgramsCount (int32): 가져올 변형된 프로그램의 선택적 일괄 개수입니다 (설정되지 않은 경우 기본값은 1).
  • 응답 상태:

    • 200 OK: 잠긴 AlphaEvolveProgram 리소스가 포함된 응답을 반환합니다.

    • 204 No Content: 대기열이 비어 있거나 캠페인이 일시중지되었습니다. 러너는 절전 모드 (예: 15초)로 전환하고 다시 시도해야 합니다.

API 페이로드 예시

  1. 요청 본문 예시

    {
      "desiredProgramsCount": 1
    }
    
  2. 응답 본문 예시 (200 OK)

    {
      "programs": [
        {
          "name": "projects/.../alphaEvolvePrograms/prog-102",
          "lockToken": "token_uuid_8877_x99",
          "state": "EVALUATING",
          "createTime": "2026-06-23T13:32:00Z",
          "content": {
            "description": "Mutated candidate program.",
            "files": [
              {
                "path": "initial_program.py",
                "programLanguage": "python",
                "description": "Primary sorting executable.",
                "content": "def custom_heuristic(arr, _):\n    ..."
              }
            ]
          }
        }
      ]
    }
    
  3. 응답 본문 예시 (204 콘텐츠 없음)

빈 페이로드 컨텍스트와 함께 반환된 HTTP 상태 204

프로그램 평가 제출 (POST)

  • 경로: POST v1alpha/{parent=projects/*/locations/*/collections/*/engines/*/ sessions/*/alphaEvolveExperiments/*}:submitProgramsEvaluations

  • 요청 본문: SubmitProgramsEvaluationsRequest

    • evaluationSubmissions (배열): 일치하는 lockToken, 정규화된 프로그램 리소스 경로, 평가 페이로드 (점수 및 통계)를 포함합니다.
  • 응답: SubmitProgramsEvaluationsResponse (비어 있음)

  • HTTP 상태: 200 OK (점수를 저장하고, 활성 잠금을 해제하고, 통계를 등록함)

API 페이로드 예시

  1. 요청 본문 예시

    {
      "evaluationSubmissions": [
        {
          "lockToken": "token_uuid_8877_x99",
          "program": "projects/.../alphaEvolvePrograms/prog-102",
          "evaluation": {
            "scores": {
              "scores": [
                {
                  "metric": "latency_performance",
                  "score": evaluation_payload["score"]
                }
              ]
            },
            "insights": {
              "insights": [
                {
                  "label": "benchmark",
                  "text": "Completed test case in 12.45ms."
                }
              ]
            }
          }
        }
      ]
    }
    
  2. 응답 본문 예시 (200 OK)

    {}
    

실험 재개 (POST)

  • 경로: POST v1alpha/{name=projects/*/locations/*/collections/*/engines/*/ sessions/*/alphaEvolveExperiments/*}:resume

  • 요청 본문: ResumeExperimentRequest

  • 대답: GoogleLongrunningOperation (LRO)

  • HTTP 상태: 200 OK (PAUSED에서 RUNNING로 상태 전환)

API 페이로드 예시

  1. 요청 본문 예시

    {}
    
  2. 응답 본문 예시 (200 OK - 장기 실행 작업)

{
  "name": "projects/.../operations/resume-op-9900",
  "metadata": {
    "@type": "type.googleapis.com/.../AlphaEvolveResumeExperimentMetadata",
    "createTime": "2026-06-23T13:45:00Z"
  },
  "done": false
}

프로그램 나열 (GET)

  • 경로: GET v1alpha/{parent=projects/*/locations/*/collections/*/engines/*/ sessions/*/alphaEvolveExperiments/*}/alphaEvolvePrograms

  • 쿼리 매개변수:

    • stateFilter (문자열): 선택사항. 표준 목록 필터입니다(예: stateFilter = 'COMPLETED').

    • orderBy (문자열): 선택사항. 측정항목 기반 정렬(예: accuracy desc)

  • 대답: ListAlphaEvolveProgramsResponse

  • HTTP 상태: 200 OK

API 페이로드 예시

  1. 요청 쿼리 URL 예시

    GET v1alpha/projects/.../alphaEvolveExperiments/sort-opt-01/
      alphaEvolvePrograms?stateFilter=COMPLETED&orderBy=latency_performance%20desc
      &pageSize=1
    
  2. 응답 본문 예시 (200 OK)

    {
      "alphaEvolvePrograms": [
        {
          "name": "projects/.../alphaEvolvePrograms/prog-102",
          "state": "COMPLETED",
          "createTime": "2026-06-23T13:32:00Z",
          "evaluation": {
            "scores": {
              "scores": [
                {
                  "metric": "latency_performance",
                  "score": -12.45
                }
              ]
            },
            "insights": {
              "insights": [
                {
                  "label": "benchmark",
                  "text": "Completed test case in 12.45ms."
                }
              ]
            }
          }
        }
      ],
      "nextPageToken": "token_page_1_next"
    }
    

진단 코드 및 문제 해결 참조

API 진단 코드 매트릭스

HTTP 상태 오류 유형 시스템 원인 해결 방법 또는 완화 조치
400 INVALID_ARGUMENT # EVOLVE-BLOCK-START/# EVOLVE-BLOCK-END 주석 태그가 누락되었거나, JSON 스키마 문법이 잘못되었거나, 파일 또는 LOC 제한을 초과했습니다. 유효한 타겟 언어 구문을 사용하여 블록 주석이 함수 본문 내에 배치되었는지 확인합니다. 파일 수와 LOC 경계가 준수되는지 확인합니다.
403 PERMISSION_DENIED 사용자 또는 서비스 계정에 Discovery Engine 사용자 역할이 없거나 할당된 Gemini Enterprise 라이선스가 없습니다. 활성 Gemini Enterprise 라이선스를 확인합니다. 다음 명령어를 실행하여 사용자 및 프로젝트 모두에 대해 애플리케이션 기본 사용자 인증 정보가 올바르게 구성되었는지 확인합니다.

gcloud auth application-default login --project=<<PROJECT_ID>>

참고: AlphaEvolve 구성에서는 Model Armor가 지원되지 않습니다.
408 LOCK_TIMEOUT 클라이언트 러너가 실행 기간을 초과했습니다. 프로그램 잠금이 대기열에서 만료되었습니다. 30분의 엄격한 클라이언트 측 제한 시간을 적용합니다. 초과된 경우 대기열 잠금을 해제하기 위해 즉시 실패 페널티 점수를 제출합니다.
429 RESOURCE_EXHAUSTED 활성 동시 실행 한도 또는 모델 할당량을 초과했습니다. 클라이언트 측 지수 백오프를 구현하고 RunSettings 내에서 보수적인 동시 실행 설정을 구성합니다.
503 SERVICE_UNAVAILABLE 백엔드 서비스가 과부하되었거나 유지관리 중입니다. 클라이언트 측에서 무작위 지수 백오프로 재시도 루프를 구현합니다.

'무음 끊김' 문제 해결

안전 필터 차단 (무음 삭제)은 서버 측 언어 모델이 민감한 표현이나 안전 규칙 트리거로 인해 변형된 후보 프롬프트에 플래그를 지정하고 삭제할 때 발생합니다. 서버에서 출력을 무음 처리하여 대기열에서 빈 응답을 반환하고 클라이언트 러너가 무기한 대기할 수 있습니다.

해결 방법:

  • 컨텍스트 정리: problemDescription에서 감정적이거나 보안에 민감한 문구를 삭제합니다.

  • 통계 필터링: insights 페이로드에서 원시 예외 추적 또는 터미널 stderr 로그를 파싱하고 자르면 다운스트림 필터를 트리거하는 안전하지 않은 시스템 콘텐츠가 에코되지 않습니다.

  • 데이터 세트 현지화: 프롬프트 내에 학습 기록이나 대규모 텍스트 코퍼스를 배치하지 마세요. 평가 루프 실행 중에 클라이언트 환경에 로컬로 로드하세요.

클라이언트 측 평가 권장사항

'스파게티 코드' 병목 현상

소스 형식이 최적이 아니면 최적화 품질이 저하됩니다('스파게티 코드 == 노이즈가 많은 검색 공간'). EVOLVE-BLOCK 마커를 배치하기 전에 다음을 확인하세요.

  • 변수와 함수 서명이 명확하게 명명되도록 코드 블록을 리팩터링합니다.

  • 각 함수나 변수가 무엇을 하는지, 그 이유는 무엇인지 설명하는 간결한 docstring을 추가합니다.

  • 변경 불가능한 외부 종속 항목 (예: 도우미 모듈 가져오기 또는 정적 데이터 로드)이 # EVOLVE-BLOCK 외부에 있는지 확인합니다.

컨텍스트 윈도우 할당

변형 생성의 창의성을 극대화하려면 API로 전송되는 코드 페이로드를 제한하세요. 전체 프로그램 컨텍스트는 토큰 150,000~200,000개 미만이어야 합니다. 정적이고 변경 불가능한 보일러플레이트의 큰 블록은 모델의 주의를 소모하고 성능을 저하시킵니다. 유틸리티 스크립트, 데이터 수집 파이프라인, 대량 검증 라이브러리를 완전히 클라이언트 측 평가자로 이동합니다.

먼저 초기 프로그램을 준비합니다.

AlphaEvolve를 실행하기 전에 표준 코딩 에이전트를 사용하여 시드 코드베이스와 평가자를 모두 디버그합니다.

  • 시드 준비: 명백한 구문 버그, 컴파일 문제, 특이 사례를 수정합니다.

  • 시작 점수 확인: 기준 점수가 적절하고 평가자가 완전히 결정론적인지 (동일한 코드 + 동일한 입력 = 동일한 점수) 확인합니다.

  • 잘못된 입력으로 테스트: 의도적으로 손상된 함수로 평가기를 실행하여 컴파일러 문제를 포착하고, 무한 루프를 정상적으로 처리하고, 높은 음수 페널티 점수를 반환하는지 확인합니다.

과도하게 최적화된 기준 피하기

이미 고도로 최적화된 기준 프로그램을 시드로 전달하지 마세요. 초기 프로그램이 이미 거의 최적화된 경우 개선의 여지가 거의 없으므로 AlphaEvolve가 언덕 오르기를 수행하기 어렵습니다. 최대한 최적화되지 않은 적절한 기준선으로 시작합니다. 이를 통해 AlphaEvolve가 탐색하고 언덕을 오를 수 있습니다.

클라이언트 측 러너 보호 조치

클라이언트 측 평가자는 악의적이거나, 리소스 집약적이거나, 응답하지 않는 후보자가 병렬 작업자를 방해하지 않도록 엄격한 보호 조치를 시행해야 합니다.

  • 엄격한 제한 시간: 검색 공간 구조에 따라 30분 이하의 엄격한 실행 컷오프를 적용합니다.

  • 시간 제한 위반 제출: 후보 프로그램 변형이 시간 제한을 초과하면 실행 스레드를 즉시 종료합니다. 후보 프로세스가 실패하도록 허용하지 않습니다. 대신 심각한 실패 페널티 점수 (예: -100000.0)와 설명이 포함된 디버그 통계를 서버에 즉시 컴파일하고 제출하여 프로그램의 대기열 잠금을 해제합니다.

  • AST 보안 필터: 컴파일 전에 항상 수신되는 소스 코드 페이로드에 추상 구문 트리 (AST) 검사 확인을 실행합니다. 제한된 리플렉션 또는 실행 기본 요소 (예: eval, exec, getattr, setattr)가 감지되면 즉시 실행을 중단하고 심각한 실패 페널티를 적용해야 합니다.

추가 자료

자세한 내용은 다음 리소스를 참조하세요.