DeepSeek Harness (dsh) menjalankan agent yang boleh melakukan kerja sebenar, dan sedikit kerja SEO yang lebih sesuai untuknya daripada pipeline URL belum diindeks: baca senarai, periksa setiap URL, klasifikasi, tunggu kelulusan, hantar, sahkan. Setiap peringkat ialah arahan atau fail — betul-betul wilayah yang dikuasai agent harness.
Dua soalan menentukan cara anda menyediakannya. Mahukan kelompok sekali jalan yang boleh diskrip dan dimasukkan ke cron? Jalankan headless. Mahukan menontonnya bekerja, menjawab soalan, dan meluluskan setiap kelompok dalam tetingkap sembang? Gunakan web UI. Panduan ini menunjukkan kedua-dua laluan, dan pipeline di bawahnya sama untuk kedua-duanya. Jika anda mahukan penerangan mendalam tentang makna «Discovered – currently not indexed» dan «Crawled – currently not indexed» serta cara membacanya, kami bincangkan dalam versi Hermes Agent aliran kerja ini; di sini kami fokus pada pelaksanaan melalui dsh.
Pilih laluan anda
Headless sekali jalan | Web UI + jadual | |
|---|---|---|
Paling sesuai untuk | Kelompok berskrip, cron, larian gaya CI, pengujian | Triage interaktif, persediaan pertama, mempelajari keputusan agent |
Mulakan |
|
|
Kelulusan | Senarai yang diluluskan dalam fail; agent bertanya melalui alat soalannya apabila peraturan memerlukan manusia | Bertanya terus dalam sembang, luluskan setiap kelompok |
Penjadualan | cron (atau alat jadual dsh jika profil memuatkan plugin Schedule) | Sama, tetapi anda melihat setiap larian |
Output | Fail laporan dalam folder projek | Fail laporan tambah transkrip sembang |

Headless untuk kelompok, web UI untuk larian pertama — pipeline di bawahnya sama.
Kedua-dua laluan berkongsi satu peraturan: langkah tulis (menghantar ke Google) kekal di belakang pintu kelulusan manusia. Dalam mod headless itu bermakna anda menyemak fail yang dibuat agent sebelum membiarkannya menjalankan arahan hantar; dalam mod web anda meluluskan dalam sembang.
Apa yang anda dapat
Folder projek indexing/ mengandungi: inventori URL, senarai terklasifikasi (to-submit.txt, skip.txt, needs-fix.txt), baris gilir hantaran yang diluluskan, dan log larian. Setiap larian dsh menghasilkan laporan ringkas: berapa dihantar, berapa dilangkau dan mengapa, dan apa yang berubah sejak terakhir. Persediaan pertama mengambil 60–90 minit (kebanyakannya kelayakan sisi Google); larian mingguan mengambil 15 minit.
Sebelum mula
- dsh dipasang dan dikonfigurasikan. Kemas kini ke keluaran semasa dengan
npx @deepseek-ai/dsh@latest webjika perlu. Kunci API dan tetapan anda berada dalam~/.dsh/(profiles, sessions,settings.yaml), dandsh webyang berfungsi atau tugas headless yang berjaya mengesahkan pemasangan. - Property GSC yang anda miliki, dalam format
sc-domain:example.com. - Kelayakan baca: klien OAuth untuk Search Console API (client ID + secret) untuk skrip baca.
- Kelayakan tulis: projek Google Cloud dengan Indexing API didayakan, kunci JSON service account, dan e-mel service account ditambah sebagai Owner dalam GSC → Tetapan → Pengguna dan kebenaran. 403 semasa menghantar bermaksud langkah ini gagal.
- Dua folder skrip GSC dalam workspace: skill baca (sitemaps, analitik carian, pemeriksaan URL) dan skill pengindeksan (
index_submit.py). Python 3 denganpip install google-auth google-api-python-client. - Folder projek, contoh
~/gsc-indexing-projectdengandata/,scripts/,logs/.
Persediaan sisi Google sama untuk setiap agent, dan dokumentasi skill gsc-indexing membimbing anda melalui langkah Cloud Console: dayakan Indexing API, cipta service account, muat turun kunci, tambah sebagai Owner.
Laluan A: larian headless sekali jalan
Mod headless ialah dsh --profile headless "tugas": satu tugas, satu jawapan, keluar. Letakkan keseluruhan pipeline dalam satu arahan, atau tahapkan merentas beberapa larian sambil menyahpepijat.
Larian pertama, dari folder projek:
dsh --profile headless "Jalankan peringkat 1 pipeline pengindeksan GSC. Daftarkan sitemap untuk sc-domain:example.com menggunakan skrip gsc_query.py, ambil setiap URL dengan lastmod, buang duplikat, dan tulis data/url-inventory.csv. Laporkan jumlah keseluruhan."Bagaimana rupa output yang baik: CSV sebenar dengan jumlah yang sepadan dengan laporan sitemap GSC, dan tiada lajur rekaan. Semakan kualiti: buka fail dan semak lima URL rawak. Jika agent melaporkan ralat pengesahan, jalankan semula aliran OAuth GSC dan cuba lagi; skrip baca memerlukan token baharu.
Peringkat 2:
dsh --profile headless "Periksa URL dalam data/url-inventory.csv melalui URL Inspection API dan bahagikan kepada data/to-submit.txt, data/skip.txt (dengan alasan satu baris), dan data/needs-fix.txt. Sertakan hanya URL dengan lastmod dalam 90 hari terakhir."Agent menjalankan skrip pemeriksaan secara berkelompok (API dihadkan kelajuan mengikut property; semak kuota semasa anda di Google Cloud Console). Semak kewajaran pembahagian: senarai langkau harus didominasi halaman noindex, canonical-away, dan duplikat. Jika laman dengan ribuan URL menghasilkan senarai needs-fix kosong, lebarkan tetingkap input.
Peringkat 3 ialah pintu kelulusan, dan ia tidak pernah berjalan tanpa pengawasan:
dsh --profile headless "Baca data/needs-fix.txt dan data/skip.txt. Susun baris gilir baiki-dan-hantar sebagai jadual: URL, punca disyaki (tiada pautan dalaman, duplikat, canonical, noindex, nipis, soft 404), bukti, tindakan yang dicadangkan, tahap risiko. Jangan hantar apa-apa."Anda menyemak jadual dalam laporan yang dicetaknya, edit data/to-submit.txt supaya hanya mengandungi URL yang anda luluskan, kemudian jalankan peringkat 4:
dsh --profile headless "Hantar URL dalam data/approved-urls.txt melalui skrip pengindeksan (index_submit.py submit --urls-file data/approved-urls.txt). Jalankan check-auth dahulu. Catat setiap hasil ke logs/submissions.log."Output yang dijangka: satu baris hasil notifikasi setiap URL, tanpa 403. Laluan pemulihan: 403 bermaksud service account bukan Owner property; 429 bermaksud anda melanggar kuota 200-sehari atau 600-seminit; bahagikan senarai merentas beberapa hari. Jika larian mati di tengah, dsh --profile headless --resume <session> menyambungnya.
Laluan B: web UI tambah jadual mingguan
dsh web membuka UI pelayar di 127.0.0.1:3080. Sembang melalui peringkat yang sama, tetapi interaktif: agent meminta anda mengesahkan senarai terklasifikasi sebelum menyusun baris gilir, dan sekali lagi sebelum menjalankan arahan hantar. Aliran kelulusan langsung itu ialah sebab utama memilih laluan ini semasa persediaan pertama: anda melihat apa yang agent akan lakukan dengan property Google anda sebelum ia melakukannya.
Selepas pipeline berfungsi, tambah irama. Plugin Schedule dalam dsh mendaftarkan schedule_create, yang menjalankan semula tugas pada pemasa dalam sesi langsung:
schedule_create: every 7 days, run "Inspect data/url-inventory.csv, classify new and changed URLs, and draft the submission queue. Do not submit."
Jika profil anda tidak memuatkan plugin Schedule, hasil yang sama ialah baris cron yang membungkus arahan headless:
0 9 * * 1 cd ~/gsc-indexing-project && dsh --profile headless "Jalankan pemeriksaan pengindeksan GSC mingguan dan susun baris gilir hantaran." >> logs/weekly.log 2>&1
Jadual menjalankan tiga stesen pertama; hantaran kekal di belakang pintu manusia.
Jauhkan langkah hantar daripada jadual. Pemeriksaan mingguan, klasifikasi, dan penyusunan baris gilir boleh berjalan tanpa pengawasan; hantaran menunggu manusia.
Peraturan triage yang digunakan agent
Klasifikasi dan baris gilir bergantung pada jadual kecil, dan anda harus meletakkannya dalam folder projek supaya setiap larian menggunakan peraturan yang sama:
Punca | Pembaikan | Hantar selepas dibaiki? |
|---|---|---|
Tiada pautan dalaman ke halaman | Tambah pautan kontekstual dari halaman diindeks | Ya |
Halaman baharu sepenuhnya | Tiada apa untuk dibaiki; hantar sekali, tunggu 1–2 minggu | Ya, sekali |
Disekat robots.txt | Buka sekatan laluan | Ya |
Kandungan duplikat atau nipis | Tulis semula, gabung, atau padam | Hanya selepas perubahan sebenar |
Canonical menunjuk ke tempat lain | Baiki jika salah; jika disengajakan, buang URL | Hanya jika dibaiki |
noindex semasa rayapan | Buang noindex | Ya, selepas dibuang |
soft 404, arkib, facet tanpa nilai | Baiki atau padam; langkau kekal | Tidak |
Pembacaan lebih mendalam tentang dua status, termasuk mengapa Google merayap sebahagian halaman dan tidak yang lain, ada dalam panduan Hermes Agent. Puncanya sama tidak kira harness mana yang menjalankan pipeline.
Sahkan, kemudian tunggu
Selepas setiap kelompok, sahkan notifikasi dengan status: itu hanya membuktikan Google mempunyai metadata untuknya, bukan bahawa halaman diindeks. Tiga hingga tujuh hari kemudian, semak semula URL yang dihantar dan bandingkan statusnya. Corak sihat ialah discovered → crawled → indexed dalam satu-dua minggu. Data GSC tertunda beberapa hari, dan Google merayap semula mengikut jadualnya sendiri, jadi URL yang masih tersangkut di «Crawled – currently not indexed» selepas 10–14 hari dengan pembaikan sebenar di belakangnya ialah keputusan kualiti kandungan, bukan masalah hantaran. Fail log ialah tempat perkara ini kelihatan: tarikh, URL, jenis notifikasi, dan status pemeriksaan pada larian seterusnya. Itu juga ukurannya: senarai belum diindeks harus mengecil mengikut masa, bukan jumlah notifikasi yang bertambah.
Had yang jujur
- Indexing API didokumentasikan secara rasmi untuk halaman
JobPostingdanBroadcastEvent. Menghantar halaman biasa melaluinya ialah amalan biasa, tetapi Google tidak memberi jaminan dan tidak menawarkan janji sokongan untuk setiap jenis halaman. - Tiada API awam untuk butang «Request indexing» di Search Console. Indexing API ialah saluran berskrip terdekat, bukan replika butang.
- Automasi tidak mencipta keutamaan. Jika halaman masih belum diindeks selepas anda membaiki dan menghantarnya, langkah seterusnya ialah kerja kandungan, bukan larian berjadual lagi.
FAQ
Bolehkah saya menjalankan mod headless tanpa web UI langsung? Boleh. dsh --profile headless "tugas" menjalankan satu tugas dan keluar; kelayakan kekal dalam ~/.dsh/, dan skrip baca berfungsi sama. Gunakan web UI sekali untuk mengesahkan pipeline hujung ke hujung, kemudian skripkannya.
Larian mati di tengah kelompok. Adakah saya kehilangan kerja? Tidak. Sambung dengan dsh --profile headless --resume <session>, dan jalankan semula skrip hantar; ia membuang duplikat URL, jadi menghantar semula URL yang sudah dinotifikasikan dalam kelompok yang sama tidak berbahaya.
Saya mengurus beberapa property GSC. Adakah saya mengulang semuanya setiap laman? Skrip menerima argumen --site sc-domain:..., jadi satu workspace boleh menampung inventori dan log beberapa property. Simpan satu fail baris gilir diluluskan dan satu arahan hantar setiap property, supaya ralat kuota pada satu laman tidak pernah menyekat yang lain.
Penulis: Camille Rhodes, Arkitek 300+ Aliran Kerja Kandungan AI di Auspia. Camille menulis tentang automasi kandungan, sistem penerbitan, dan aliran kerja yang mengubah agent AI menjadi operasi pertumbuhan yang boleh dipercayai.












