# אסטרטגיית תזמון לסוכן: שעות, אזורי זמן, חגים וקצב פרסום בעשרות חשבונות

_2026-09-08 · איך מלמדים סוכן AI לתזמן פוסטים בְּשַׁגֵּר בלי טעויות: schedule_at עם היסט, מעבר לשעון חורף, חגים ושבת, פריסה מדורגת, זמן לאישור לקוח ובדיקה אחרי הפרסום._

סוכן שמתזמן פוסטים צריך ארבעה כללים, לא יותר: לכתוב כל מועד בפורמט ISO 8601 עם היסט מפורש, לבדוק את המועד מול לוח החגים של הלקוח, להשאיר זמן לאישור ולפריסה המדורגת, ולבדוק אחרי הפרסום שהכל באמת עלה. רוב התקלות שראיתי בתזמון אוטומטי לא נבעו מהמודל אלא מהוראה עמומה כמו "תפרסם מחר בבוקר".

המאמר הזה מסביר איך להפוך את ההוראה העמומה לכללים שסוכן יכול לבצע, עם הכלים של שַׁגֵּר: `create_post` עם `schedule_at`, `schedule_post` ו`cancel_post`.

## איך הסוכן כותב מועד כך שלא יהיו הפתעות?

השדה `schedule_at` מקבל מועד בפורמט ISO 8601 עם היסט, למשל `2026-10-20T09:00:00+03:00`. המפרט ב[OpenAPI של שַׁגֵּר](https://app.shager.ai/api/v1/openapi.json) לא מקבל מועד בלי היסט או בלי `Z`, וזה מכוון. מועד בלי אזור זמן הוא ניחוש, וסוכן שרץ על שרת באירופה ינחש אחרת מסוכן שרץ על המחשב שלכם.

בישראל יש פח מוכר: מעבר שעון. לפי [מסד אזורי הזמן של IANA](https://www.iana.org/time-zones), שעון הקיץ בישראל מסתיים השנה ביום ראשון, 25 באוקטובר 2026, וממנו ואילך ההיסט של `Asia/Jerusalem` הוא `+02:00` ולא `+03:00`. סוכן שמעתיק את ההיסט מהפוסט של שבוע שעבר יפרסם שעה מוקדם או מאוחר מדי. ההוראה הנכונה היא לחשב את ההיסט לכל תאריך מחדש, לא להעתיק אותו.

סביבת עבודה חדשה בְּשַׁגֵּר נוצרת עם אזור זמן `Asia/Jerusalem` כברירת מחדל, ואפשר להעביר `timezone` אחר ב`create_workspace` ללקוח בחו"ל. כדאי שהסוכן יקרא את אזור הזמן של סביבת העבודה ויעבוד לפיו, ולא לפי אזור הזמן של המחשב שעליו הוא רץ.

## טיוטה קודם, תזמון אחר כך

יש שתי דרכים לתזמן בְּשַׁגֵּר. אפשר לקרוא ל`create_post` עם `schedule_at`, ואז הפוסט נבדק ומתוזמן מיד. ואפשר ליצור טיוטה בלי `schedule_at`, להציג אותה, ורק אחר כך לקרוא ל`schedule_post` עם המועד. אני כמעט תמיד בוחר בדרך השנייה, משתי סיבות.

הראשונה היא שהטיוטה נותנת נקודת עצירה. אדם יכול להסתכל, הלקוח יכול לאשר, והסוכן יכול לתקן. השנייה היא ש`schedule_post` נכשל עם סיבה ברורה אם חשבון כלשהו היה דוחה את הפוסט או אם חסר אישור לקוח, כך שהבדיקה קורית ברגע שבו עוד אפשר לתקן בנחת.

```json
create_post {
  "workspace_id": "ws_dental_group",
  "label": "טיפ שבועי: הלבנה",
  "caption": "...",
  "group_ids": ["grp_all_clinics"],
  "media_ids": ["med_31ff"]
}

schedule_post {
  "workspace_id": "ws_dental_group",
  "post_id": "pst_9a02",
  "schedule_at": "2026-10-27T08:30:00+02:00"
}
```

שימו לב שהתאריך בדוגמה הוא אחרי סוף שעון הקיץ, ולכן ההיסט הוא `+02:00`.

תזמון ופרסום דורשים מפתח עם הרשאת `publish`. סוכן בסנדבוקס שעוד לא נתבע יקבל שגיאה `sandbox_unclaimed`, וזה בדיוק ההתנהגות הרצויה. על ההרשאות בהרחבה כתבתי ב[מאמר על מפתחות, הרשאות ויומן פעולות](/blog/api-keys-scopes-and-audit).

## כמה זמן לוקחת הפריסה המדורגת?

מועד הפרסום הוא המועד שבו מתחיל הפרסום, לא המועד שבו כל החשבונות כבר מפורסמים. שַׁגֵּר מפרסם בכל חשבון בזמן מדורג משלו: בין חשבון לחשבון באותה רשת יש הפסקה אקראית בטווח `stagger_seconds`, שברירת המחדל שלו היא `[30, 90]` שניות.

הסוכן צריך לדעת לחשב את זה. נוסחה פשוטה שמספיקה לתכנון: מספר החשבונות ברשת כפול ממוצע הטווח. עם ברירת המחדל הממוצע הוא שישים שניות, כך שארבעים עמודי פייסבוק יתפרסו על פני כארבעים דקות. אם הלקוח רוצה שהכל יהיה באוויר עד עשר, הסוכן מתחיל קודם.

| מספר חשבונות ברשת | טווח `stagger_seconds` | זמן פריסה משוער |
|---|---|---|
| 10 | `[30, 90]` | כעשר דקות |
| 40 | `[30, 90]` | כארבעים דקות |
| 40 | `[60, 180]` | כשמונים דקות |
| 120 | `[30, 90]` | כשעתיים |

הטבלה היא חשבון, לא מדידה. בפועל העלאת וידאו לוקחת זמן נוסף בצד הרשת. ההמלצה שלי לסוכנים היא לא לקצר את הטווח מתחת לברירת המחדל כדי "לסיים מהר". הפריסה המדורגת היא חלק מההגנה על החשבונות, כמו שהסברתי ב[כללי הבטיחות לסוכנים שמפרסמים בהיקף](/blog/safety-rules-for-agents-posting-at-scale).

## חגים, שבת ומועדים מקומיים

לוח השנה העברי זז ביחס ללוח הלועזי, ולכן "הפוסט של ראש השנה" לא נופל באותו תאריך כל שנה. בְּשַׁגֵּר יש לוח עם חגי ישראל, אבל הסוכן צריך גם הוראה מפורשת מה לעשות סביבם. דוגמה לכללים שאני כותב בהוראות הקבועות של סוכן שעובד עם לקוחות ישראלים:

```text
כללי תזמון ללקוחות בישראל:
1. אל תתזמן פוסטים מכניסת שבת ועד צאתה ללקוחות שמסומנים "שומרי שבת" בבריף.
2. ערב חג נחשב כמו ערב שבת. בדוק את התאריך בלוח החגים לפני כל תזמון.
3. ביום הזיכרון וביום השואה אל תתזמן תוכן שיווקי. אם יש פוסט מתוזמן, עצור והתייעץ איתי.
4. פוסט ברכה לחג מתוזמן לבוקר של ערב החג, לא ליום החג עצמו.
5. אם המועד שביקשתי נופל על אחד מהמקרים האלה, אל תזיז אותו בעצמך. הצע שני מועדים חלופיים.
```

הסעיף השלישי חשוב במיוחד. סוכן לא יודע לבד שקמפיין מבצעים ביום הזיכרון הוא טעות, אלא אם אמרתם לו.

## מה עושים כשצריך לבטל?

`cancel_post` מבטל תזמון של פוסט שעוד לא התחיל להתפרסם, והפוסט נשאר טיוטה מאושרת שאפשר לתזמן מחדש. אחרי שהפרסום התחיל, חלק מהחשבונות כבר מפורסמים, וביטול לא מחזיר אותם. לכן ההוראה לסוכן צריכה להיות ברורה: אירוע חדשותי, תקלה אצל הלקוח או בקשה דחופה לעצירה מתחילים ב`list_posts` עם `status` של `SCHEDULED`, ואז `cancel_post` לכל פוסט רלוונטי.

```bash
curl "https://app.shager.ai/api/v1/workspaces/ws_dental_group/posts?status=SCHEDULED&limit=50" \
  -H "Authorization: Bearer $SHAGER_API_KEY"

curl -X POST "https://app.shager.ai/api/v1/workspaces/ws_dental_group/posts/pst_9a02/cancel" \
  -H "Authorization: Bearer $SHAGER_API_KEY"
```

## להשאיר זמן לאישור לקוח

אם סביבת העבודה מוגדרת עם `approval_required`, פוסט לא יתוזמן בלי אישור. סוכן שמכין את התוכן ביום ראשון לפוסט של יום שני בבוקר מכניס את הלקוח ללחץ מיותר. כלל אצבע שעובד אצלנו: הטיוטה ובקשת האישור יוצאות לפחות יומיים עסקים לפני המועד, והסוכן בודק את סטטוס הפוסטים עם `list_posts` בבוקר שלפני. על תהליך האישור עצמו יש [מאמר נפרד](/blog/human-approval-for-agent-posts).

## בדיקה אחרי המועד

תזמון לא נגמר בתזמון. הסוכן צריך לחזור לפוסט אחרי שהפריסה הסתיימה, לקרוא ל`get_post`, ולוודא שכל חשבון במצב פורסם. פוסט במצב `PARTIALLY_PUBLISHED` אומר שחלק מהחשבונות נכשלו, ו`get_post` מחזיר את הסיבה לכל אחד. זו נקודה שבה סוכן חוסך עבודה אמיתית: הוא רואה את הכשל לפני הלקוח.

גם מגבלת הקצב רלוונטית כאן. שַׁגֵּר מאפשר 120 בקשות לדקה לכל מפתח, כך שסוכן שבודק מאה פוסטים בלולאה צריך לפזר את הבקשות או לחכות כשהוא מקבל `rate_limited`.

כשהכללים האלה כתובים בהוראות של הסוכן, אפשר להעביר לו את לוח התוכן השבועי כולו. הצעד הבא הוא לארוז אותם כ[שגרת הפצה שבועית בתוך סקיל](/blog/skill-weekly-distribution-routine), ואם עוד לא חיברתם סוכן, [עמוד הסוכנים](/agents) מתחיל משם.

## שאלות נפוצות

### מה ההבדל בין schedule_at בתוך create_post לבין schedule_post?

שניהם מתזמנים. `schedule_at` בתוך `create_post` יוצר ומתזמן בקריאה אחת, ו`schedule_post` מתזמן טיוטה או פוסט מאושר שכבר קיימים. כשיש אדם או לקוח שצריך לראות את הפוסט לפני, עדיף ליצור טיוטה ולתזמן אחר כך.

### האם אפשר לתת לסוכן לבחור את שעת הפרסום לבד?

אפשר, אבל רק בתוך מסגרת שהגדרתם: חלונות זמן מותרים לכל לקוח, ימים אסורים ורשימת חגים. בלי מסגרת כזו הסוכן ימציא הנחות על "השעה הטובה ביותר" שאין לו נתונים לגביהן.

### מה קורה אם הסוכן שולח מועד בעבר?

כדאי שההוראות יחייבו את הסוכן לבדוק את השעה הנוכחית באזור הזמן של סביבת העבודה לפני כל תזמון, ולעצור אם המועד כבר עבר. זה זול יותר מלגלות אחר כך שהפוסט לא יצא כמתוכנן.

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