Ejen Saya Menghantar 3 PR Dalam Satu Malam. 40% Daripada Mesej Saya Adalah Pembetulan.
Ejen pengekodan dipacu AI saya telah menghantar tiga pull request dalam satu malam sahaja, tetapi 40% daripada 30 mesej yang saya hantar adalah pembetulan.
Sesi tersebut menghasilkan satu MCP client, satu Azure AI Agent, dan satu M365 Copilot Agent. Semakan automatik meluluskan ketiga-tiga PR tersebut, dan saya tidak pernah menyunting sebaris kod pun. Namun, transkrip menunjukkan cerita yang berbeza: daripada 710 jumlah mesej, saya menaip 30, dan 12 daripadanya mengemudi semula ejen ke landasan yang betul. “Kadar pengemudian” (steering rate) – iaitu bahagian mesej saya yang merupakan pembetulan – adalah sebanyak 40%.
Bagaimana saluran paip disusun
- Claude merangka pelan pelaksanaan tahap tinggi.
- DeepSeek V4-Flash bertindak sebagai orchestrator, menyemak pelan tersebut.
- Codex menjana kod sebenar.
- Orchestrator memeriksa kod tersebut dan membuka pull request.
Peranan orchestrator yang dimaksudkan adalah sekadar penyambung – ia sepatutnya menyelesaikan konflik antara komponen, bukan menulis kod itu sendiri. Dalam praktiknya, ejen tersebut menghasilkan 3,500 baris kod merentasi ketiga-tiga PR dalam masa kira-kira 40 minit, tetapi ia juga tergelincir dalam dua kategori ralat yang berulang.
Dua kategori ralat
- Pelanggaran aliran kerja – orchestrator kadangkala mengambil alih langkah pengekodan, mengabaikan peranannya sebagai 'penyambung' (glue) dan menulis butiran pelaksanaan itu sendiri.
- Kegagalan pengambilan konteks – walaupun terdapat arahan eksplisit, ejen memilih SDK atau versi yang salah. Maklumat yang betul ada dalam konteks prompt, tetapi model gagal memaparkannya pada masa yang tepat.
Ini bukanlah jurang dalam keupayaan penaakulan; ia adalah pepijat kejuruteraan dalam cara aliran kerja dihadkan. Malah model bahasa yang lebih berupaya sekalipun masih memerlukan peraturan yang tegas dan tidak boleh terlepas yang menetapkan orchestrator kepada tugas bukan pengekodan dan memaksa pemilihan SDK yang betul.
Apa yang saya ubah untuk menjinakkan ejen tersebut
Saya berhenti mengandaikan sistem akan membuat kesimpulan tentang peranannya daripada senarai langkah. Saya menambah kenyataan langsung: “Anda adalah orchestrator. Anda tidak melaksanakan (implement).” Ia mengambil lima mesej pembetulan untuk arahan itu dipatuhi, selepas itu ejen tersebut menghormati sempadan tersebut.
Saya juga memperketat logik pengambilan konteks. Apabila alat yang salah muncul, saya menganggapnya sebagai pepijat dalam saluran paip pengambilan berbanding halusinasi, dan saya menulis semula prompt yang membekalkan butiran SDK untuk memastikan versi yang betul tidak mungkin terlepas pandang.
