Berdasarkan Kasus Nyata Pemrograman Otomatis Claude Code, Berbagi Beberapa Teknik Prompt

Artikel ini, melalui sebuah kasus nyata, akan berbagi dengan Anda contoh penggunaan nyata Claude Code. Sebelum berbagi, mari kita lakukan survei kecil terlebih dahulu
Kebutuhan awal: Ada seorang pengguna berbayar yang terhormat, yang menginginkan saya menambahkan waktu perubahan artikel di dalam artikel
Sekilas, kebutuhan ini agak sulit untuk diimplementasikan. Karena artikel di situs web saya tidak disimpan dalam database, semuanya dibangun menggunakan SSG next.js. Artikel-artikel tersebut sama sekali tidak memiliki waktu pembaruan.
Satu teknik di sini adalah: Saat memecahkan masalah, kita tidak boleh langsung memberikan kebutuhan awal kepada Claude Code, dengan alasan-alasan berikut
1. Kebutuhan awal relatif kabur, mungkin bisa disalahpahami. Jika terjadi kesalahan pemahaman, meskipun akhirnya menambahkan waktu, waktu tersebut mungkin tidak dapat diandalkan
2. Konsumsi Token Claude Code benar-benar sangat mahal, oleh karena itu, kebutuhan yang kabur dapat menyebabkan banyak Token terbuang percuma
Oleh karena itu, kita perlu memecah kebutuhan awal terlebih dahulu. Saya berkonsultasi di deepseek, dan deepseek memberi saya dua solusi
1. Waktu pembuatan file, setiap kali build, kita perlu mendapatkan waktu pembuatan file. Namun, strategi pengemasan turbopack agak berbeda, setiap kali build, nilai hash file akan berubah, sehingga waktu pembuatan ini mungkin tidak dapat diandalkan
2. Waktu commit git, saya pikir, ini seharusnya lebih dapat diandalkan
Setelah memiliki arah solusi yang kurang lebih jelas, saya memiliki prompt sederhana ini: Kompilasi waktu commit git di header setiap artikel .mdx
Claude Code masih cukup dapat diandalkan. Jika promptnya cukup tepat, secara umum tidak ada masalah, langsung dieksekusi dengan cepat
Setelah menghabiskan kuota saya sebesar 7 dolar, memakan waktu sekitar 20 menit, akhirnya berhasil dieksekusi.
Seperti yang diduga, masalah muncul, ternyata ia melewati perubahan 171 file.
Di sinilah letak masalahnya, sebenarnya file-file yang dilewati ini hanya meneruskan parameter tambahan pass, selain itu semuanya sama persis
<PostLayout pass>...Namun ia tidak fleksibel, mendefinisikan parameter tambahan yang diteruskan ini sebagai komponen kustom yang sama sekali berbeda. Kemudian dilewati dan tidak diproses ~ ~
import Layout from 'components/post-layout';
import { getGitFileInfo } from '@/utils/git-info';
export default function Article({ children }: any) {
const gitInfo = getGitFileInfo('src/app/你的路径/page.mdx');
return (
<Layout gitInfo={gitInfo || undefined}>
{children}
</Layout>
);
}Namun kenyataannya, hasil yang saya butuhkan adalah seperti ini, hasil eksekusinya sama persis.
import MdxLayout from 'components/mdx-layout';
export default function Article({ children }: any) {
return (
<MdxLayout pass filePath="src/app/r19base/(4.compiler)/23.compilerlower/page.mdx">
{children}
</MdxLayout>
);
}Kemudian pada saat ini, saya terjebak dalam prompt
Saya memasukkan prompt lagi: Gunakan cara yang sama seperti di atas untuk merekonstruksi 171 file yang dilewati
Ekspresi saya ini, jika dipikir-pikir, memiliki sedikit ambiguitas. Karena Claude Code sudah memberi saya skema saran, tetapi saya tidak menyetujuinya, maksud saya adalah menggunakan skema yang sudah dimodifikasi untuk ratusan file tersebut untuk memodifikasi file-file yang dilewati. Namun dalam proses eksekusi, ia memahami sebagai: skema saran yang diberikan sebelumnya
Ambiguitas ini langsung menyebabkan ia mengeksekusi selama 20 menit sesuai dengan skema yang tidak saya inginkan, bahkan muncul 2 kali kesalahan perbaikan diri, dengan lahap menghabiskan token saya, dua ambiguitas mulai bertentangan dan menyebabkan kesalahan.
Akhirnya saya terpaksa membatalkan eksekusi ini dan memperjelas makna saya kembali.
Kesimpulan
1. Dalam prompt, sebaiknya mengandung solusi yang relatif stabil dan akurat, semakin sedikit AI berpikir semakin baik, ini dapat mengurangi tingkat halusinasi.
2. Prompt kebutuhan tidak boleh mengandung ambiguitas, ambiguitas mudah menyebabkan kesalahan. Meskipun Claude Code akhirnya dapat memperbaikinya, ini akan menyebabkan konsumsi token yang besar. Dan karena LLM menghasilkan hasil berdasarkan mekanisme prediksi, kesalahan pemahaman awal, ambiguitas, dll., akan menyebabkan setiap langkah selanjutnya semakin jauh ke arah yang salah. Ia juga akan mencoba logika yang konsisten dengan diri sendiri, menghasilkan hal-hal yang tidak ada, semakin ditulis semakin bermasalah, dan juga meningkatkan kesulitan pemeriksaan pengembang. Jika Anda tertipu oleh halusinasinya, maka akan menyebabkan konsekuensi serius
3. Batasan bahasa alami tidak seakurat kode. Dalam prompt, memasukkan nama file, variabel kode, istilah khusus kode, terminologi profesional, dll., akan sangat mengurangi halusinasi Cluade Code





