# Strategi Penjadwalan untuk Agen: Zona Waktu, Jeda Bertahap, dan Tidak Membanjiri 40 Halaman Tepat Pukul 09.00

_2026-09-18 · Cara agen AI menjadwalkan postingan ke banyak akun: offset ISO 8601, zona waktu dan DST, hitungan jeda, membagi grup ke beberapa hari, dan pembatalan yang aman._

Strategi penjadwalan yang baik untuk agen bermuara pada tiga aturan: selalu kirim waktu dalam format ISO 8601 dengan offset eksplisit yang dihitung dari zona waktu klien, biarkan platform memberi jeda pengiriman per akun alih-alih menembakkan semuanya sekaligus, dan pecah daftar akun yang besar menjadi beberapa postingan dengan waktu berbeda, bukan satu pengiriman raksasa. Buat draf dulu, jadwalkan sebagai langkah terpisah, dan pastikan pembatalan tetap mudah.

Semua yang ada di bawah ini menjabarkan aturan-aturan tersebut secara konkret, lengkap dengan field yang diharapkan Shager.

## Kenapa agen sering salah soal waktu?

Model bahasa payah soal jam. Mereka tidak tahu sekarang pukul berapa kecuali Anda memberi tahu, dengan santai menulis `2026-11-02T09:00:00` tanpa offset, dan mengonversi antarzona waktu di kepala. Masing-masing kebiasaan itu bisa membuat postingan terbit pukul 07.00, bukan 09.00.

Shager menutup satu celah dengan menolak ambiguitas: `schedule_at` wajib berformat ISO 8601 dengan offset, misalnya `2026-10-20T09:00:00+03:00`. Timestamp tanpa `Z` atau offset akan gagal validasi. Format ini adalah profil yang didefinisikan di [RFC 3339](https://www.rfc-editor.org/rfc/rfc3339), dan ada baiknya Anda menyebut namanya secara eksplisit di instruksi agen.

Celah lainnya adalah offset itu sendiri. `+03:00` benar untuk Israel di bulan Oktober, tetapi salah di bulan Desember. Offset berubah mengikuti waktu musim panas (DST), dan tanggal perubahannya berbeda antara Israel, Uni Eropa, dan Amerika Serikat. Bahkan klien di Indonesia yang tidak mengenal DST pun bisa punya pelanggan di zona lain. Agen tidak boleh menulis offset secara manual. Ia harus menerjemahkan nama zona klien lewat [basis data zona waktu IANA](https://www.iana.org/time-zones), yang tersedia di semua bahasa pemrograman utama, lalu menghitung offset untuk tanggal yang spesifik.

```python
from datetime import datetime
from zoneinfo import ZoneInfo

local = datetime(2026, 11, 2, 9, 0, tzinfo=ZoneInfo("Europe/Berlin"))
print(local.isoformat())   # 2026-11-02T09:00:00+01:00
```

Setiap workspace Shager juga punya `timezone`, yaitu nama zona IANA yang ditetapkan saat workspace dibuat (default-nya `Asia/Jerusalem`). Suruh agen membacanya dan memakainya. Saat Anda menjalankan [satu agen untuk banyak klien](/en/blog/one-agent-many-clients), tidak semua klien berada di zona yang sama, dan workspace adalah satu-satunya tempat yang mencatat zona setiap klien.

## Draf dulu, baru jadwalkan

`create_post` bisa langsung menjadwalkan kalau Anda menyertakan `schedule_at`. Saya jarang membiarkan agen melakukannya untuk pekerjaan klien. Pola yang lebih aman terdiri dari dua panggilan:

1. `create_post` tanpa `schedule_at`, yang menyimpan draf.
2. `schedule_post` dengan ID postingan dan waktunya, setelah seorang manusia atau sebuah aturan meloloskannya.

```json
{
  "tool": "schedule_post",
  "arguments": {
    "workspace_id": "ws_example",
    "post_id": "pst_example",
    "schedule_at": "2026-10-20T09:00:00+03:00"
  }
}
```

Ada juga alasan perizinan. Di Shager, menjadwalkan memerlukan cakupan `publish` pada kunci API, sedangkan membuat draf cukup dengan `write`. Manusia memberikan `publish` secara eksplisit saat mengklaim sandbox agen, dan bisa membuat kunci tanpa cakupan itu. Pemisahan ini memungkinkan Anda memberi agen penyusun draf kebebasan luas, sementara langkah terakhir tetap dipegang seseorang. Detailnya ada di [kunci API, cakupan, dan audit](/en/blog/api-keys-scopes-and-audit).

`schedule_post` juga melakukan sesuatu yang berguna saat gagal: kalau ada akun yang akan menolak postingan, atau persetujuan klien diwajibkan tetapi belum ada, panggilan ini gagal dengan alasan yang jelas, alih-alih menjadwalkan pengiriman yang nanti gagal separuh.

## Berapa lama sebenarnya pengiriman bertahap berlangsung?

Shager memublikasikan akun demi akun dengan jeda acak di antara akun-akun dari platform yang sama. Field `stagger_seconds` mengatur rentang itu, default-nya `[30, 90]`. Platform-platform berjalan paralel, jadi lama pengiriman ditentukan oleh platform dengan jumlah akun terbanyak.

Hitungannya cukup sederhana untuk dikerjakan agen sebelum memilih waktu:

| Akun di platform terbesar | Jeda | Rata-rata jeda | Perkiraan lama pengiriman |
|---|---|---|---|
| 10 | [30, 90] | 60 dtk | sekitar 9 menit |
| 40 | [30, 90] | 60 dtk | sekitar 39 menit |
| 40 | [60, 180] | 120 dtk | sekitar 78 menit |
| 120 | [30, 90] | 60 dtk | sekitar 2 jam |

Baris terakhir itulah yang sering mengejutkan orang. Kalau klien berkata "semua harus sudah tayang pukul 10.00" dan Anda punya 120 Halaman Facebook, jadwal pukul 09.00 tidak akan memenuhinya. Mulailah lebih awal atau pecah pengirimannya.

Jangan menjawab tenggat dengan memperkecil jeda menjadi `[0, 5]`. Jeda itu ada supaya pengiriman massal tidak terlihat seperti ledakan dari satu sumber. Artikel kami tentang [menghindari blokir spam saat posting dalam skala besar](/en/blog/avoid-spam-blocks-when-posting-at-scale) menjelaskan kenapa ritme lebih penting daripada caption mana pun.

## Pecah per grup, bukan per jam

Untuk klien besar, pola yang lebih kuat adalah satu postingan per grup akun, masing-masing dengan waktunya sendiri. Jaringan ritel dengan 90 halaman cabang bisa dikelompokkan per wilayah. Agen membuat tiga postingan, satu per grup wilayah, dengan jadwal di pagi yang berbeda atau tersebar sepanjang hari.

```json
{
  "tool": "create_post",
  "arguments": {
    "workspace_id": "ws_example",
    "group_ids": ["grp_north"],
    "caption": "Winter hours start Sunday at every northern branch.",
    "per_channel": [
      { "channel_id": "ch_fb_haifa", "caption": "Haifa branch: winter hours start Sunday. We open at 8:30." }
    ],
    "campaign": "winter-hours",
    "stagger_seconds": [60, 150]
  }
}
```

Grup dibuat dengan `create_group`, yang menerima nama dan daftar `channel_ids`. Setiap channel aktif di dalam grup ikut ditambahkan saat Anda menargetkan grup tersebut.

## Batas platform yang harus dihormati agen

Platform sendiri membatasi seberapa banyak satu akun bisa memublikasikan lewat API mereka. Meta mendokumentasikan batas per akun untuk postingan Instagram yang dipublikasikan lewat API dalam jendela bergulir 24 jam, dan menyediakan [endpoint content_publishing_limit](https://developers.facebook.com/docs/instagram-platform/content-publishing) untuk memeriksa pemakaian saat ini. YouTube membagi kuota API per proyek, dengan [default 10.000 unit per hari](https://developers.google.com/youtube/v3/getting-started), dan unggahan termasuk operasi yang paling mahal.

Shager menangani sisi pengiriman, tetapi sisi perencanaan adalah tanggung jawab agen. Akun yang menerima enam postingan dalam sehari adalah masalah strategi sebelum menjadi masalah API. Saya memberi agen aturan sederhana: maksimal satu postingan feed per akun per hari, kecuali ada manusia yang berkata lain.

## Kalender, hari libur, dan hari sepi

Kalender Shager mencakup hari libur Israel, yang penting bagi klien Israel karena postingan yang dijadwalkan pada malam menjelang hari raya besar akan sampai ke audiens yang sedang offline. Untuk klien di tempat lain, misalnya di Indonesia menjelang Lebaran, masukkan kalender tutup dan acara milik klien sendiri ke instruksi agen. Model kurang lebih tahu kapan hari libur nasional jatuh; mereka tidak tahu bahwa gudang klien ini tutup untuk stok opname di hari Jumat terakhir setiap kuartal.

## Membatalkan dan memindahkan

`cancel_post` membatalkan jadwal postingan yang belum mulai dipublikasikan. Postingan tidak dihapus: statusnya kembali menjadi draf yang sudah disetujui, sehingga agen bisa memanggil `schedule_post` lagi dengan waktu baru. Pembatalan hanya untuk postingan yang masih menunggu; begitu publikasi sudah dimulai, `cancel_post` tidak berlaku lagi.

Sebelum memindahkan apa pun, agen sebaiknya memanggil `list_posts` dengan `status` diatur ke `SCHEDULED` untuk melihat apa yang sudah ada di antrean workspace tersebut. Dua pengiriman terjadwal yang mendarat di akun yang sama pada jam yang sama adalah kesalahan buatan sendiri yang paling sering saya temui.

## FAQ

### Zona waktu apa yang dipakai Shager kalau agen mengirim UTC?

Timestamp dengan `Z` tidak ambigu, jadi Shager menjadwalkannya tepat di momen itu. Zona waktu workspace berpengaruh pada cara orang melihat jadwal di kalender dan pada penalaran agen sendiri. Mengirim waktu lokal dengan offset yang benar membuat log agen tetap mudah dibaca oleh manusia yang memeriksanya.

### Bisakah agen menjadwalkan akun berbeda di waktu berbeda dalam satu postingan?

Satu postingan punya satu `schedule_at`, lalu akun-akunnya dikirim dalam urutan bertahap. Untuk waktu yang benar-benar berbeda, buat postingan terpisah, biasanya satu per grup. Cara ini juga membuat laporan lebih rapi, karena setiap postingan bisa membawa `label` sendiri.

### Berapa jeda default yang masuk akal?

Default `[30, 90]` wajar untuk sebagian besar pengiriman. Untuk video dan untuk pengiriman di atas sekitar 50 akun di satu platform, saya memperlebarnya menjadi sekitar `[60, 150]` dan mulai lebih awal. Harganya adalah waktu, bukan jangkauan.

## Langkah selanjutnya

Masukkan aturan-aturan ini ke instruksi tetap agen Anda, alih-alih mengulanginya di setiap tugas. Artikel [prompt untuk agen konten](/en/blog/prompts-for-a-content-agent) punya blok penjadwalan yang bisa langsung Anda tempel.

---
Source: https://shager.ai/id/blog/scheduling-strategy-for-agents
