תיעוד 52
מעבר מתהליכי עבודה של Rhai
במסלול הדמון תהליך עבודה הוא מודול JavaScript, ותהליכי עבודה מסוג .rhai לא רצים. כשמריצים תהליך עבודה מסוג .rhai, Grok ממיר אותו למודול. הדף הזה מכסה את ההמרה הזאת ומה מחליף את החלקים של תהליכי עבודה של Rhai שנעלמו. כדי לכתוב מודול בעצמך, ראו תהליכי עבודה במסלול הדמון.
#הרצת תהליך עבודה מסוג .rhai
/workflow list מציג את קבצי ה-.rhai ב-.grok/workflows/ וב-~/.grok/workflows/ יחד עם המודולים. כשמריצים אחד לפי שם, /<name> [args] או /workflow <name> [args]:
- כשתור ההמרה מתחיל, שורה בשיחה אומרת ש-
/<name>ממיר את<name>.rhaiל-<name>.jsלצדו, אם הוא מתחיל אותו, ואיך לבטל את ההמרה. - המודל כותב את
<name>.jsלצד הסקריפט, בודק שהוא נטען, ומתחיל אותו עם הארגומנטים שלכם, אלא אם הם מבקשים תקציב סוכנים מתחת ל-1,024. - אתם מאשרים את הכתיבה ואת ההתחלה, אם יש, כמו כל כתיבת קובץ וכל תהליך עבודה שהמודל מתחיל.
ההמרה אף פעם לא עורכת, מזיזה או מוחקת את קובץ ה-.rhai. ברגע ש-<name>.js הוא תהליך עבודה תקין, /<name> ו-/workflow list משתמשים בו במקום הסקריפט. כדי לבטל את ההמרה, מחקו את <name>.js.
ריצה שהמרה מתחילה מקבלת את תקציב הסוכנים ברירת המחדל של 1,024, המקסימום שריצה רשאית להתחיל: מעבר לזה, סוכנים נוספים נדחים והריצה לא נעצרת. אם הארגומנטים שלכם מבקשים פחות, עם --agent-budget N תחילה או מפתח agent_budget, המודל כותב ובודק את <name>.js אבל לא מתחיל אותו, והתשובה שלו נותנת את הפקודה שמתחילה אותו עם התקציב הזה.
אם משנים את <name>.rhai אחרי ההמרה, התחלת /<name> אומרת זאת. /migrate-workflow <name> ממיר אותו שוב, ומחליף את <name>.js וכל עריכה שעשיתם בו, אלא אם העריכות שלכם הסירו את שורת Converted from שלו, ובמקרה הזה הוא נעצר ואומר זאת.
#המרה בלי הרצה
/migrate-workflow <name>ממיר סקריפט אחד ולא מתחיל אותו./migrate-workflow <name> [args]גם מתחיל אותו עם הארגומנטים האלה, אלא אם הם מבקשים תקציב סוכנים מתחת ל-1,024./migrate-workflow --dry-runבודק כל קובץ.rhaiבתיקיות תהליכי העבודה של הפרויקט ושל המשתמש, ו-/migrate-workflow --dry-run <name or path>בודק אחד. הוא לא כותב ולא מתחיל כלום. כל סקריפט מקבל שורה אחת, שמתחילה בנתיב שלו, שאומרת אם הוא מומר, מה חוסם אותו ומה לשנות, או שכבר יש מודול.js./migrate-workflow --allממיר את קבצי ה-.rhaiשעדיין אין להם מודול.js, אצווה בכל פעם, ולא מתחיל אף אחד מהם. סקריפט שחסום או שנכשל בבדיקה שלו מקבל שורה שאומרת למה, והאחרים עדיין מומרים. אחד שנכשל בבדיקה שלו שומר את<name>.jsשהוא כתב. בתיקיית פרויקט שלא נתתם בה אמון, הוא לא כותב שם כלום ואומר לתת אמון בתיקייה. סקריפט שכללי הקריאה שלכם מסרבים לו מקבל שורה שאומרת זאת ומדולג. השורה האחרונה שלו אומרת כמה נשארו. הריצו אותו שוב עבור השאר.
#כשסקריפט לא יכול להיות מומר
לחלק מתכונות Rhai אין מקבילה במודול, כמו budget(), await_user, או סוכן שרץ ב-worktree משלו. כשסקריפט משתמש באחת, ההמרה נעצרת לפני שהיא כותבת משהו ואומרת מה חוסם אותה ומה לשנות כדי שהיא תמיר. אם אי אפשר לעשות את השינוי הזה, העבירו את הסקריפט ידנית כ-<name>.js.
#מה מחליף מה
| בתהליך עבודה של Rhai | במסלול הדמון |
|---|---|
/workflow pause <run> | /workflow stop <run>, ואז /workflow <name> מתחיל את תהליך העבודה שוב מההתחלה |
/workflow save <run> | תהליכי העבודה שלכם ושל הפרויקט כבר קבצי .js בתיקיית תהליכי העבודה שלהם, אז ערכו אחד שם. כדי לשמור סקריפט שהמודל הריץ בלי קובץ, בקשו מהמודל לכתוב אותו כתהליך עבודה |
budget() | מספרים קבועים במקום הערכים שהסקריפט קורא ממנו, ו---agent-budget N כשמתחילים את הריצה. מודול לא יכול לקרוא את התקציב שלו |
meta.name, meta.description | name ו-description ב-front matter של המודול |
--effort | עדיין לא זמין במסלול הזה. הגדירו את ה-effort של הסשן לפני שמתחילים תהליך עבודה: הסוכנים שלו שלא מציינים מודל מריצים את המודל ואת ההגדרות של הסשן. סוכן יכול לציין מודל והגדרות משלו ב-host.agent (ראו תהליכי עבודה במסלול הדמון) |
#כיבוי ההמרה
הגדירו workflow_conversion = false תחת [features] ב-config.toml, או GROK_WORKFLOW_CONVERSION=0 (ראו הפניה להגדרות). הרצה של תהליך עבודה מסוג .rhai לפי שם אומרת אז להעביר אותו כ-<name>.js. /migrate-workflow עדיין ממיר כשמבקשים.
#ריצות headless
בריצת grok -p, Grok שולח תהליך עבודה מסוג .rhai שרץ לפי שם למודל כטקסט במקום להמיר אותו, ו-/workflow list אומר זאת (ראו תהליכי עבודה ועבודה ברקע). כדי להמיר את הסקריפטים שלכם מסקריפט מעטפת או מ-CI, הריצו grok -p '/migrate-workflow --all' --always-approve --trust, והריצו אותו שוב כל עוד השורה האחרונה שלו אומרת שחלק נשארו. ריצת headless לא יכולה לשאול אתכם כלום, אז העבירו --always-approve (או הגדירו כללים שמתירים את הכתיבות ואת הבדיקות שלה) ו---trust, שמאפשר לה לקרוא ולייבא את תהליכי העבודה של הפרויקט (ראו אישור תמידי לאוטומציה). --trust גם מפעיל את ה-hooks של התיקייה, שרתי MCP, והוראות הפרויקט, אז השתמשו בו רק על checkout שאתם סומכים עליו (ראו הרשאות ובטיחות).