Lewati ke konten utama

Cara Mencegah Kontradiksi dalam Dokumen yang Dihasilkan AI

Pola generasi per-seksi dengan audit koherensi antar-seksi dan micro-fix terjaga, dari pipeline dokumen A2A Brainstorm.

5 menit baca·Menengah·Konsep·17 Jul 2026
ai systemsdocument generationconsistencyguardrails

Cara Mencegah Kontradiksi dalam Dokumen yang Dihasilkan AI

Apa yang Dibangun

A2A Brainstorm mengonversi ide produk mentah menjadi artefak Markdown terstruktur (architecture.md, plan.md, readme.md) melalui pipeline multi-agent. Peningkatan berikutnya menambahkan generasi per-seksi dengan pass audit koherensi yang mendeteksi kontradiksi antar-seksi dan menerapkan micro-fix terjaga — edit kecil yang dikembalikan jika gagal validasi guardrail.

Masalah

Ketika LLM menghasilkan dokumen panjang dalam satu kali jalan, seksi dapat saling bertentangan: seksi arsitektur mungkin menentukan PostgreSQL sementara seksi rencana merujuk MongoDB. Regenerasi seluruh dokumen mahal dan dapat memperkenalkan error baru. Anda membutuhkan cara untuk menghasilkan secara inkremental dan memverifikasi konsistensi antar seksi.

Mengapa Masalah Ini Sulit

  1. Batas context window — generasi monolitik menurun pada dokumen panjang.
  2. Isolasi seksi — setiap seksi dihasilkan dengan kesadaran parsial terhadap seksi lain.
  3. Risiko over-correction — memperbaiki satu kontradiksi dapat merusak konten tidak terkait.
  4. Output LLM non-deterministik — perbaikan harus divalidasi, tidak diterapkan secara membabi buta.

Model Mental untuk Pemula

Bayangkan menulis buku satu bab demi bab. Setelah setiap bab, editor membaca semua bab bersama dan menandai kalimat yang bertentangan dengan bab sebelumnya. Editor membuat koreksi kecil (satu kata di sini, nama teknologi di sana) — tetapi jika koreksi memperburuk keadaan, koreksi tersebut otomatis dibatalkan.

Persyaratan dan Kendala

PersyaratanImplementasi
Generasi inkrementalJalur enhancement per-seksi per tipe dokumen
Konsistensi antar-seksiModul coherence.go dengan runCoherencePass
Perbaikan aman sajaGuardrail mengembalikan edit yang gagal validasi
Progress dapat diamatiStruct ProgressMeta dengan enum langkah seksi dan koherensi
Cakupan testUnit test coherence_test.go + integration test aigen_test.go

Gambaran Arsitektur

Backend memilih antara jalur monolitik dan per-seksi di enhanceOneWithOpts berdasarkan tipe dokumen.

Alur Eksekusi

  1. Pengguna memfinalisasi sesi brainstorming dengan state kanonik yang konvergen.
  2. Backend memilih jalur enhancement (monolitik atau per-seksi).
  3. Untuk per-seksi: setiap body seksi dihasilkan secara independen menggunakan temuan rubrik tingkat seksi dari rubric.go.
  4. Setelah semua seksi ada, runCoherencePass mengaudit dokumen penuh untuk inkonsistensi antar-seksi.
  5. Modul koherensi mengusulkan micro-fix untuk kontradiksi yang terdeteksi.
  6. Guardrail memvalidasi setiap perbaikan; edit bermasalah dikembalikan.
  7. Event progress distream ke frontend via SSE dengan metadata langkah granular.

Komponen Penting

KomponenTanggung jawab
coherence.goAudit antar-seksi, penerapan micro-fix, revert guardrail
rubric.goEkstraksi body seksi, validasi, temuan rubrik
enhanceOneWithOptsPemilihan jalur antara monolitik dan per-seksi
ProgressMetaPelaporan progress kaya untuk UI (langkah seksi + koherensi)
Convergence engineMenilai stabilitas desain sebelum generasi dokumen dimulai

Contoh Implementasi yang Disederhanakan

Pemilihan jalur (disederhanakan):

// simplified — enhanceOneWithOpts concept
func enhanceOneWithOpts(docType string, state CanonicalState) (string, error) {
if usesSectionSequential(docType) {
body := generateSectionsSequentially(state)
return runCoherencePass(body)
}
return generateMonolithic(state)
}

Revert guardrail (disederhanakan):

// simplified — if micro-fix fails validation, restore previous section body
if !validateSection(fixedBody) {
revertToSnapshot(sectionID)
}

Keandalan dan Idempotensi

  • Penyimpanan state: PostgreSQL menyimpan state sesi, state desain kanonik, dan riwayat iterasi. Generasi dokumen membaca dari snapshot state yang difinalisasi.
  • Generasi sinkron: Jalur per-seksi dan pass koherensi berjalan berurutan dalam proses backend.
  • Update UI asinkron: Progress distream via Server-Sent Events.
  • Perbaikan terjaga: Micro-fix bersifat transaksional di tingkat seksi — perbaikan gagal dikembalikan ke snapshot pra-perbaikan daripada meninggalkan korupsi parsial.

Mode Kegagalan

KegagalanPerilaku
Audit koherensi tidak menemukan masalahDokumen lolos tanpa perubahan
Micro-fix gagal guardrailEdit dikembalikan; body seksi asli dipertahankan
Generasi seksi gagalError dilaporkan via SSE; sesi tetap dapat dilanjutkan
Provider LLM tidak tersediaAgent ditandai tidak tersedia; tanpa fallback diam-diam

Trade-off dan Alternatif yang Ditolak

PilihanAlasanAlternatif yang ditolak
Per-seksiKualitas lebih baik pada dokumen panjang; sesuai batas contextSelalu monolitik — kontradiksi meningkat seiring panjang
Micro-fixKoreksi terarah mempertahankan seksi yang baikRegenerasi penuh — mahal dan memperkenalkan error baru
Revert guardrailMencegah kaskade fix-dari-fixTerapkan membabi buta — satu perbaikan buruk merusak dokumen
Koherensi sebagai pass terpisahMengaudit dokumen lengkap dengan konteks penuhSelf-check per-seksi saja — melewatkan konflik antar-seksi

Pengujian

  • coherence_test.go — unit test untuk parser audit dan logika revert guardrail.
  • aigen_test.go — integration test untuk jalur monolitik dan per-seksi.
  • Quality gate backend: make testmake lintmake check.

Operasi dan Observabilitas

  • Langkah progress menyertakan enum eksplisit untuk generasi seksi dan operasi koherensi.
  • Halaman sesi frontend (/session/:id) menampilkan progress pipeline via SSE.
  • Riwayat dokumen tersedia di route /history.

Pelajaran yang Dipetik

  1. Hasilkan per bagian, verifikasi secara keseluruhan — generasi per-seksi plus pass koherensi global menggabungkan strategi terbaik keduanya.
  2. Guardrail mengalahkan kepercayaan — jangan pernah menerapkan perbaikan yang diusulkan LLM tanpa validasi.
  3. Micro-fix daripada rewrite — edit kecil terarah mempertahankan investasi pada seksi yang baik.
  4. Granularitas progress penting — pengguna toleran terhadap generasi panjang jika mereka melihat seksi mana dan langkah audit mana yang berjalan.

Sumber

catatan

PR #12 masih open pada saat penulisan. Modul koherensi dijelaskan di body PR dan file test terkait; verifikasi status merge sebelum mengutip sebagai terbukti di produksi.