INFRASTRUKTUR PRIVAT / TANPA IDENTITAS DIPERLUKANBaca doktrin privasi
Catatan lapangan KoalaVPS

Jadikan agen sebagai layanan, bukan terminal yang terlupakan.

Jalankan pekerja berumur panjang dengan status eksplisit, izin terbatas, dan rencana pemulihan.

Kemas worker

Gunakan runtime yang didukung, dependensi yang dipin, dan manajer layanan atau kontainer. Konfigurasikan batas restart dan pengguna layanan khusus. Simpan kredensial penyedia privat dalam konfigurasi yang dilindungi di luar berkas publik aplikasi.

Simpan kemajuan sebelum tindakan menjadi penting

Gunakan antrean atau basis data yang tahan lama untuk tugas. Tetapkan pengenal operasi unik, catat permintaan eksternal, dan rekonsiliasi hasil yang tidak pasti. Mulai ulang tidak boleh mengirim email kedua, membuat pesanan kedua, atau menagih dua kali.

Tambahkan observabilitas yang berguna

Pantau penyelesaian pekerjaan, usia antrean, tingkat kesalahan, dan biaya alih-alih hanya memeriksa apakah suatu proses ada. Jaga log cukup kecil untuk ditinjau dan redaksi token, prompt, serta dokumen yang tidak perlu disimpan.

Tetapkan batas atas yang jelas

Batasi pengeluaran model, konkurensi browser, runtime, dan jumlah percobaan ulang. Sediakan tombol jeda yang mudah dan jalur tinjauan manusia untuk tindakan yang berdampak. Worker yang lebih kecil dan terpantau baik lebih mudah dipercaya daripada yang tanpa batasan.

Gunakan supervisor dan jadwal yang disengaja

Systemd dan Docker adalah cara umum agar proses tetap berjalan setelah koneksi terminal terputus. Untuk layanan systemd, Type=exec dapat melaporkan kegagalan eksekusi lebih langsung daripada peluncuran latar belakang sederhana, dan Restart=on-failure dapat memulai ulang kegagalan dengan kebijakan yang terbatas. Tugas terjadwal harus menghindari eksekusi yang tumpang tindih. Tentukan direktori kerja, pengguna layanan, dan lingkungan secara eksplisit. Contoh ini mengasumsikan pengguna koala-agent, lingkungan virtual, modul worker, dan file lingkungan privat sudah ada; sesuaikan sebelum memasang unit.

  • Gunakan akun layanan khusus
  • Tetapkan jeda mulai ulang dan batas kegagalan
  • Periksa status pekerjaan sebelumnya sebelum memulai proses terjadwal
[Unit]
Description=Example agent worker
After=network-online.target

[Service]
Type=exec
User=koala-agent
WorkingDirectory=/opt/koala-agent
EnvironmentFile=/etc/koala-agent.env
ExecStart=/opt/koala-agent/.venv/bin/python -m worker
Restart=on-failure
RestartSec=10
NoNewPrivileges=true

[Install]
WantedBy=multi-user.target

Tetapkan anggaran harian dan batas duplikasi

Berikan worker batas jumlah permintaan maksimum, batas pengeluaran, dan batas waktu eksekusi. Gunakan catatan idempotensi yang tahan lama untuk tindakan yang memengaruhi dunia luar. Klik browser yang berhasil dapat terjadi sebelum proses menerima respons; periksa status eksternal sebelum mencoba lagi. Mount rahasia Docker Compose dapat menjauhkan rahasia dari image, tetapi izin dan aplikasi pengguna masih perlu ditinjau.

Berikan kebijakan pengejaran eksplisit pada tugas berkala

Gunakan layanan berjalan lama untuk pekerja antrean persisten dan layanan oneshot yang dipicu timer untuk tugas terjadwal yang terbatas. Dengan timer kalender systemd, Persistent=true dapat memicu satu aktivasi yang terlewat setelah waktu henti; ini tidak membuat ulang seluruh tumpukan tugas bisnis. Putuskan apakah pengejaran itu diinginkan. RandomizedDelaySec dapat menyebarkan waktu mulai, sementara sewa di tingkat aplikasi mencegah dua replika memproses pekerjaan terjadwal yang sama.

  • Catat zona waktu yang dimaksudkan dan periksa waktu eksekusi berikutnya sebelum mengaktifkan jadwal.
  • Buat tenggat eksekusi tugas lebih pendek dari interval yang tidak boleh tumpang tindih, atau gunakan sewa tahan lama dengan masa berlaku dan kepemilikan.
  • Buat tugas memilih pekerjaan yang belum selesai dari status tersimpan alih-alih mengasumsikan bahwa setiap peristiwa timer sebelumnya telah berjalan.
  • Periksa versi systemd yang terpasang sebelum menggunakan direktif dari manual terbaru.
# Read-only checks after creating your own matching units.
systemctl list-timers --all
systemctl status koala-agent.service
journalctl -u koala-agent.service --since today --no-pager

Bedakan crash loop dari worker yang macet

Kebijakan restart dapat memulihkan proses yang gagal, tetapi mengulangi kredensial tidak valid atau migrasi rusak setiap beberapa detik membuat kesalahan lebih berisik. Batasi jumlah start layanan dan beri peringatan saat kegagalan berulang. Proses yang aktif juga bisa macet: ukur usia pekerjaan tertua dan operasi terakhir yang selesai. Uji gangguan API, disk kosong, dan penghentian proses dengan pekerjaan sekali pakai, lalu verifikasi bahwa status tahan lama mencegah tindakan eksternal ganda.

  • Tetapkan anggaran penyedia dan timeout permintaan di aplikasi serta batas CPU/memori pada runtime.
  • Kontainer Docker tidak memiliki batas memori khusus beban kerja yang berguna hanya karena merupakan kontainer; konfigurasikan dan uji batas secara sengaja.
  • Simpan rahasia di luar image dan pohon publik, lalu uji bahwa log crash dan diagnostik meredaksinya.
  • Sediakan jalur penghentian manual dan wajibkan tinjauan yang sesuai untuk pengeluaran, penulisan produksi, atau pesan eksternal.
KONFIGURASIKAN INFRASTRUKTUR ANDA

Ambil kendali.
Deploy sesuai ketentuan Anda.

Tanpa dokumen identitas. Akses administrator penuh. Penagihan berbasis kripto.