Referensi AlphaEvolve API

Dokumen ini berfungsi sebagai referensi API tingkat produksi yang resmi dan spesifikasi sistem untuk AlphaEvolve Cloud API di lapisan percakapan Discovery Engine. Google CloudSpesifikasi ini menentukan hierarki resource bertingkat yang tepat, endpoint REST dan gRPC, batasan tingkat kolom, mesin status siklus proses, matriks diagnostik error, aturan sandbox keamanan, dan alur kerja integrasi yang diperlukan untuk merekayasa loop evaluasi dan pengontrol sisi klien yang sepenuhnya otomatis.

Mesin status siklus proses terpadu

Agen AlphaEvolve mengoordinasikan dua mesin status independen untuk memantau progres kampanye eksperimen dan mengelola penayangan serta eksekusi mutasi program individual.

Status siklus proses eksperimen

Eksperimen mewakili kampanye pengoptimalan secara keseluruhan. Resource ini diproses sebagai resource sisi server persisten dan bertransisi melalui status berikut:

  • CREATED: Status inisialisasi. Resource dideklarasikan dan dikonfigurasi, tetapi belum mengisi generasi awal atau mengirim panggilan API.

  • RUNNING: Status evaluasi aktif. Mesin ini secara bersamaan mengambil sampel kandidat induk, membuat mutasi kode melalui campuran LLM, dan melakukan streaming tugas ke evaluator.

  • PAUSED: Status penampungan sementara yang dipicu secara manual atau melalui idle_timeout pelindung otomatis. Pembuatan kode berhenti, dan pengiriman metrik pekerja yang ada dijeda.

  • COMPLETED: Status akhir yang menunjukkan bahwa penelusuran telah berhasil memenuhi alokasi target max_programs atau mencapai batas pembuatan strukturalnya.

  • FAILED: Status error terminal yang menunjukkan bahwa masalah lingkungan sistemik—seperti pengecualian kredensial API yang tidak tertangkap, kerusakan penyimpanan data, atau panik runner berturut-turut—menghentikan eksekusi pemrosesan.

Status program

Urutan validasi runtime diterapkan ke setiap varian kandidat.

Setiap mutasi kode yang dihasilkan berperilaku sebagai entity program terisolasi yang bertransisi melalui serangkaian status operasional terperinci dalam database populasi.

  1. INITIALIZED: Entri program dibuat di database, melacak silsilah leluhur dan keterkaitan program induknya.

  2. GENERATING: Tugas dikirim secara aktif ke backend campuran model bahasa untuk membuat draf atau mengubah blok kode fungsional tertentu.

  3. EVALUATING: Payload kode dikunci oleh proses pekerja evaluasi dan dieksekusi di dalam lingkungan harness pengujian terisolasi.

  4. COMPLETED: Skor eksekusi dan insight struktural deskriptif disimpan dengan aman ke database evolusioner, dan program ditambahkan ke pool seleksi.

Mekanisme konkurensi dan penguncian

Program diperoleh oleh loop pekerja menggunakan mekanisme token kunci atomik untuk mencegah kondisi persaingan atau overhead penilaian duplikat di seluruh topologi terdistribusi. Evaluator harus mengirimkan skema pemberian skor akhir bersama dengan token kunci pencocokan persis agar berhasil melakukan hasil kembali ke database.

Skema konfigurasi dan setelan

Ringkasan konfigurasi, parameter, dan default skema inti yang digunakan oleh runtime mesin AlphaEvolve.

AlphaEvolveExperimentConfig

Menentukan parameter struktural inti dan batasan terprogram dari jalannya eksperimen evolusioner.

Nama Kolom Jenis Default Batasan / Batas Nilai Deskripsi Teknis
title string Wajib Maksimal 256 karakter Nama tampilan unik eksperimen.
problemDescription string Wajib Maksimal 5.000 karakter Spesifikasi formal masalah. Hal ini disisipkan langsung ke dalam konteks perintah untuk menetapkan aturan.
programmingLanguage string Wajib Nilai bentuk bebas Bahasa target codebase yang dikembangkan (misalnya, "python", "cpp", "verilog", "cuda", "julia", "java").
runSettings objek Wajib Dipetakan ke skema RunSettings Parameter kecepatan dan waktu tunggu.
generationSettings objek Wajib Dipetakan ke skema GenerationSettings Pemilihan model dan parameter konteks.
evolutionSettings objek Wajib Dipetakan ke skema EvolutionSettings Parameter pemilihan induk dan keragaman.
notes string Wajib Maksimal 1.000 karakter Anotasi opsional untuk dokumentasi proses.

RunSettings

Mengatur kecepatan throughput, batas paralelisme, dan waktu tunggu sistem otomatis.

Nama Kolom Jenis Default Batasan / Batas Nilai Deskripsi Teknis
maxPrograms int32 100 Min: 1, Maks: 100000 Total anggaran eksekusi (program untuk membuat dan mengevaluasi).
concurrency int32 1 Min: 1, Maks: 30 Jumlah mutasi program paralel yang aktif dalam antrean. Nilai >30 tidak diizinkan.
maxDuration string null String dayTimeDuration ISO 8601
Min: >=0, Maks: 7 Hari
Total waktu nyata yang diizinkan sebelum eksperimen dihentikan.
idleTimeout string null String dayTimeDuration ISO 8601
Min: >=0, Maks: 24 Jam
Durasi tidak aktif sebelum transisi otomatis ke `DIJEDA`.

Setelan pembuatan

Skema GenerationSettings mengontrol perakitan perintah, periode konteks, dan konfigurasi model untuk mutasi:

  • context (string): Dokumentasi referensi, API tambahan, atau aturan opsional yang disediakan pengguna. Sebaiknya gunakan kurang dari 200.000 token. Ukuran konteks yang melebihi 200.000 token akan mengurangi perhatian model dan menurunkan kualitas mutasi.

  • includeFullProgramInPrompt (bool): Default false.

    • true: Perintah mutasi mencakup # EVOLVE-BLOCK yang dapat diubah dan boilerplate yang tidak dapat diubah di sekitarnya (sangat direkomendasikan untuk penalaran struktural yang kompleks).

    • false: Hanya blok yang dapat diubah yang terlihat, menyimpan konteks token.

Setelan evolusi

Skema EvolutionSettings mengontrol penanaman ulang model pulau dan probabilitas pengambilan sampel induk:

  • parentSamplingConfigparetoSamplingConfigparetoSamplingProbability (float): Probabilitas (0,0 hingga 1,0) untuk memilih sampel program induk langsung dari batas Pareto aktif, bukan menggunakan pemilihan berbasis kebugaran standar. Parameter ini harus disetel ke 0.0 (dinonaktifkan) jika metrik yang dioptimalkan hanya menampilkan satu metrik skalar.

Model data program kandidat

Bagian ini menguraikan skema dan representasi data yang digunakan untuk menentukan dan mengatur struktur kode kandidat dalam database populasi.

AlphaEvolveProgramContent

Mendefinisikan file dan struktur program kandidat.

  • files (array AlphaEvolveSourceFile): Daftar semua file yang membentuk codebase kandidat. Koleksi ini dibatasi hingga maksimum 50 file per program kandidat.

  • description (string): Ringkasan yang dibuat secara otomatis yang menguraikan perubahan terprogram yang disarankan oleh model pembuatan (Maks. 1.000 karakter).

AlphaEvolveSourceFile

Mewakili setiap file kode sumber dalam codebase.

  • path (string): Tujuan jalur relatif ruang kerja (Maks. 256 karakter). Jika mengonfigurasi ruang kerja Python, titik entri file yang dapat dieksekusi utama harus diberi nama "initial_program.py".

  • content (string): String kode sumber mentah yang terdiri dari blok implementasi fungsional. Total jejak codebase kumulatif yang digabungkan di semua file harus kurang dari 4.000 hingga 5.000 baris kode (LOC).

  • programLanguage (string): Tag pemetaan parser bahasa. String ini harus cocok secara eksplisit dengan bahasa yang ditetapkan dalam konfigurasi eksperimen induk.

  • description (string): Ringkasan opsional yang menguraikan arsitektur atau tujuan file secara individual, yang ditampilkan ke LLM selama proses mutasi (Maks. 500 karakter).

AlphaEvolveProgramEvaluation

Payload terstruktur yang dikirimkan oleh instance pelari klien kembali ke database evolusioner setelah eksekusi runtime.

  • scores (AlphaEvolveScores): Nilai metrik numerik yang distandardisasi dan objektif. Praktik terbaik mengharuskan pembatasan ini menjadi 3 hingga 5 metrik float yang berbeda; dimensi target yang berlebihan menurunkan performa pembanding Pareto multi-tujuan.

  • insights (array AlphaEvolveEvaluationInsight): Label semantik diagnostik dan rekaman aktivitas eksekusi bahasa alami yang dikirim kembali untuk membantu upaya pembuatan mutasi berikutnya oleh LLM (Maksimum 10 item yang direkomendasikan).

Format perumusan dan penyerapan skor

Aturan memaksimalkan

AlphaEvolve pada dasarnya beroperasi sebagai algoritma pendakian bukit monoton dan secara ketat memaksimalkan semua metrik numerik. Jika pipeline evaluasi Anda melacak target minimisasi (seperti meminimalkan latensi aplikasi dalam milidetik atau mengurangi penggunaan memori), Anda harus meniadakan nilai sebelum mengirimkannya kembali ke database: submitted_score = -latency_ms.

Idealnya, skor harus berkelanjutan. Metrik Boolean atau sangat diskrit tidak memberikan sinyal gradien yang memadai untuk eksplorasi pendakian bukit yang efektif.

Skema penyerapan satu tujuan

Gunakan JSON berikut saat harness evaluasi Anda mengoptimalkan fungsi objektif skalar tunggal.

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

Skema penyerapan multi-objektif

Gunakan JSON berikut saat meneruskan parameter pelacakan multi-objektif independen untuk mengaktifkan rutin pengoptimalan batas Pareto sisi server.

{
  "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."
      }
    ]
  }
}

Mengambil dan membuat kueri data program

Sistem AlphaEvolve mencatat telemetri, metrik eksekusi, dan kode sumber lengkap setiap mutasi yang dihasilkan, sehingga developer dapat membuat kueri datastore historis ini menggunakan API atau CLI untuk melacak progres pengoptimalan dan mengekstrak kandidat kode berperforma terbaik.

Pengambilan program menggunakan REST API

Resource program yang dievaluasi dapat dikueri dari database menggunakan endpoint ListAlphaEvolvePrograms standar dengan parameter kueri pemfilteran dan pengurutan:

  • Pemfilteran status: Kueri program yang cocok dengan status siklus proses tertentu:

    GET /v1alpha/{parent}/alphaEvolvePrograms?state_filter=COMPLETED
    
  • Pengurutan berbasis metrik: Mengambil kandidat yang diurutkan berdasarkan metrik yang dioptimalkan:

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

Pengambilan program menggunakan CLI

Untuk menarik kandidat yang menyelesaikan paling banyak tugas langsung dari terminal, jalankan perintah berikut:

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

Contoh penggunaan CLI lengkap

CLI AlphaEvolve memberi developer kontrol administratif dan pemantauan cepat atas kampanye langsung dari shell:

  • Mencantumkan semua eksperimen dalam sesi percakapan:

    ae experiment list
    
  • Mencantumkan semua program kandidat yang dimutasi untuk eksperimen tertentu:

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

    Ganti EXPERIMENT_NICKNAME dengan nama eksperimen Anda.

  • Mengambil kandidat kode yang telah diselesaikan dengan performa terbaik:

    ae results best EXPERIMENT_NICKNAME --top 5
    

    Ganti EXPERIMENT_NICKNAME dengan nama eksperimen Anda.

  • Melanjutkan kampanye yang dijeda:

    ae experiment resume EXPERIMENT_NICKNAME
    

    Ganti EXPERIMENT_NICKNAME dengan nama eksperimen Anda.

Direktori endpoint Core REST API

Semua endpoint diberi versi di bagian v1alpha dari Google Cloud Discovery Engine API.

Pola jalur resource induk

URI resource induk bertingkat yang sebenarnya disusun sebagai: projects/{project}/locations/{location}/collections/{collection}/ engines/{engine}/sessions/{session}

Buat eksperimen (POST)

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

  • Isi permintaan: AlphaEvolveExperimentConfig (Lihat Pasal 2.1)

  • Respons: Resource AlphaEvolveExperiment yang berisi kampanye yang diinisialisasi.

  • Status HTTP: 200 OK

Contoh payload API

  1. Contoh isi permintaan (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. Contoh isi respons (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
            }
          }
        }
      }
    }
    

Mulai eksperimen (POST)

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

  • Isi permintaan: StartExperimentRequest

  • Peringatan penghentian penggunaan: Kolom body initialProgram tidak digunakan lagi dan diabaikan.

  • Respons: GoogleLongrunningOperation (LRO).

  • Status HTTP: 200 OK (Mengubah status dari CREATED menjadi RUNNING)

Contoh payload API

  1. Contoh isi permintaan

    {
      "desiredProgramsCount": 1
    }
    
  2. Contoh isi respons (200 OK - operasi yang berjalan lama)

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

Mendapatkan program (POST)

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

  • Isi permintaan: AcquireProgramsRequest

    • desiredProgramsCount (int32): Jumlah batch opsional program yang diubah untuk diambil (defaultnya 1 jika tidak disetel).
  • Status respons:

    • 200 OK: Menampilkan respons yang berisi resource AlphaEvolveProgram yang dikunci.

    • 204 No Content: Antrean kosong atau kampanye dijeda. Runner harus tidur (misalnya, 15 detik) dan mencoba lagi.

Contoh payload API

  1. Contoh isi permintaan

    {
      "desiredProgramsCount": 1
    }
    
  2. Contoh isi respons (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. Contoh isi respons (204 No Content)

Status HTTP 204 ditampilkan dengan konteks payload kosong.

Mengirimkan evaluasi program (POST)

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

  • Isi permintaan: SubmitProgramsEvaluationsRequest

    • evaluationSubmissions (array): Berisi lockToken yang cocok, jalur resource program yang memenuhi syarat, dan payload evaluasi (skor dan insight).
  • Respons: SubmitProgramsEvaluationsResponse (kosong).

  • Status HTTP: 200 OK (Menyimpan skor, melepaskan kunci aktif, dan mendaftarkan insight)

Contoh payload API

  1. Contoh isi permintaan

    {
      "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. Contoh isi respons (200 OK)

    {}
    

Lanjutkan eksperimen (POST)

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

  • Isi permintaan: ResumeExperimentRequest

  • Respons: GoogleLongrunningOperation (LRO).

  • Status HTTP: 200 OK (Mengubah status dari PAUSED kembali ke RUNNING)

Contoh payload API

  1. Contoh isi permintaan

    {}
    
  2. Contoh isi respons (200 OK - operasi yang berjalan lama)

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

Mencantumkan program (GET)

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

  • Parameter kueri:

    • stateFilter (string): Opsional. Filter daftar standar, misalnya, stateFilter = 'COMPLETED'.

    • orderBy (string): Opsional. Pengurutan berbasis metrik, misalnya, accuracy desc.

  • Respons: ListAlphaEvolveProgramsResponse.

  • Status HTTP: 200 OK

Contoh payload API

  1. Contoh URL kueri permintaan

    GET v1alpha/projects/.../alphaEvolveExperiments/sort-opt-01/
      alphaEvolvePrograms?stateFilter=COMPLETED&orderBy=latency_performance%20desc
      &pageSize=1
    
  2. Contoh isi respons (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"
    }
    

Kode diagnostik dan referensi pemecahan masalah

Matriks kode diagnostik API

Status HTTP Jenis error Penyebab sistem Solusi atau tindakan mitigasi
400 INVALID_ARGUMENT Tag komentar # EVOLVE-BLOCK-START/# EVOLVE-BLOCK-END tidak ada; sintaksis skema JSON tidak valid; batas file atau LOC terlampaui. Pastikan komentar blok ditempatkan dalam isi fungsi menggunakan sintaksis bahasa target yang valid. Pastikan jumlah file dan batas LOC dipatuhi.
403 PERMISSION_DENIED Pengguna atau akun layanan tidak memiliki peran Pengguna Discovery Engine atau lisensi Gemini Enterprise yang ditetapkan. Verifikasi lisensi Gemini Enterprise yang aktif. Pastikan kredensial default aplikasi dikonfigurasi dengan benar untuk pengguna dan project dengan menjalankan:

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

Catatan: Model Armor tidak didukung dalam konfigurasi AlphaEvolve.
408 LOCK_TIMEOUT Runner klien melampaui durasi eksekusinya; kunci program berakhir di antrean. Terapkan waktu tunggu sisi klien yang ketat selama 30 menit. Jika terlampaui, segera kirimkan skor penalti kegagalan untuk menghapus kunci antrean.
429 RESOURCE_EXHAUSTED Melebihi batas eksekusi serentak aktif atau kuota model. Terapkan backoff eksponensial sisi klien; konfigurasi setelan serentak yang konservatif di dalam RunSettings.
503 SERVICE_UNAVAILABLE Layanan backend kelebihan beban atau sedang dalam pemeliharaan. Terapkan loop percobaan ulang dengan backoff eksponensial acak di sisi klien.

Memperbaiki "drop senyap"

Penyadapan filter keamanan (penghapusan senyap) terjadi saat model bahasa sisi server menandai dan menghapus perintah kandidat yang diubah karena frasa sensitif atau pemicu aturan keamanan. Server membungkam output, sehingga antrean menampilkan respons kosong, dan peluncur klien mungkin menunggu tanpa batas.

Perbaikan solusi:

  • Menghapus konteks: Menghapus frasa yang memicu emosi atau sensitif terhadap keamanan dari problemDescription.

  • Insight filter: Mengurai dan memangkas rekaman aktivitas pengecualian mentah atau log stderr terminal dalam payload insights untuk mencegah pengulangan konten sistem yang tidak aman yang memicu filter hilir.

  • Melokalkan set data: Jangan menempatkan rekaman pelatihan atau korpus teks besar dalam perintah; muat secara lokal di lingkungan klien selama eksekusi loop evaluasi.

Praktik terbaik evaluasi sisi klien

Hambatan "kode spaghetti"

Pemformatan sumber yang tidak optimal menurunkan kualitas pengoptimalan: "Kode spaghetti == Ruang penelusuran yang berisik". Sebelum menempatkan penanda EVOLVE-BLOCK:

  • Refaktorkan blok kode sehingga variabel dan tanda tangan fungsi diberi nama dengan jelas.

  • Tambahkan docstring deskriptif dan ringkas yang menjelaskan fungsi atau variabel dan alasannya.

  • Pastikan semua dependensi eksternal yang tidak dapat diubah (seperti mengimpor modul helper atau memuat data statis) berada di luar # EVOLVE-BLOCK.

Alokasi jendela konteks

Untuk memaksimalkan kreativitas mutasi, batasi payload kode yang dikirim ke API. Konteks program total harus tetap di bawah 150.000 hingga 200.000 token. Blok besar boilerplate statis yang tidak dapat diubah menggunakan perhatian model dan menurunkan performa. Pindahkan skrip utilitas, pipeline penyerapan data, dan library validasi berat sepenuhnya ke evaluator sisi klien.

Siapkan program awal terlebih dahulu

Sebelum menjalankan AlphaEvolve, gunakan agen coding standar untuk men-debug codebase awal dan evaluator Anda:

  • Menyiapkan bibit: Memperbaiki bug sintaksis yang jelas, masalah kompilasi, dan kasus ekstrem.

  • Verifikasi skor awal: Verifikasi bahwa skor dasar sudah wajar dan evaluator sepenuhnya deterministik (kode yang sama + input yang sama = skor yang sama).

  • Uji dengan input yang tidak valid: Jalankan evaluator dengan fungsi yang sengaja rusak untuk mengonfirmasi bahwa evaluator menangkap masalah compiler, menangani loop tanpa henti dengan baik, dan menampilkan skor penalti negatif yang tinggi.

Menghindari dasar yang terlalu dioptimalkan

Jangan meneruskan program dasar yang sudah sangat dioptimalkan sebagai titik awal. Jika program awal Anda sudah hampir optimal, AlphaEvolve akan kesulitan melakukan pendakian bukit karena hanya ada sedikit ruang untuk peningkatan. Mulailah dengan dasar pengukuran yang wajar, tetapi tidak dioptimalkan secara maksimal. Hal ini memberi ruang bagi AlphaEvolve untuk menjelajahi dan menaikkan bukit.

Pengamanan peluncur sisi klien

Evaluator sisi klien harus menerapkan perlindungan ketat untuk mencegah kandidat berbahaya, yang menggunakan banyak resource, atau tidak responsif menghentikan pekerja paralel:

  • Waktu tunggu yang ketat: Menerapkan batas waktu eksekusi yang ketat selama 30 menit (atau kurang, bergantung pada struktur ruang penelusuran).

  • Pengiriman penalti waktu tunggu: Jika varian program kandidat melampaui batas waktu tunggu, segera hentikan thread eksekusinya. Jangan izinkan proses kandidat gagal. Sebagai gantinya, kompilasi dan kirimkan skor penalti kegagalan berat (misalnya, -100000.0) secara instan bersama dengan insight debug deskriptif kembali ke server untuk melepaskan kunci antrean program.

  • Filter keamanan AST: Selalu jalankan pemeriksaan Abstract Syntax Tree (AST) pada payload kode sumber yang masuk sebelum kompilasi. Segera batalkan eksekusi dan terapkan penalti kegagalan berat jika primitif eksekusi atau refleksi yang dibatasi (seperti eval, exec, getattr, atau setattr) terdeteksi.

Aset lainnya

Untuk informasi selengkapnya, lihat referensi berikut: