Hermes: סוכן אישי על השרת שלי, שאפשר לבקש ממנו כמעט הכול
Published on

Hermes: סוכן אישי על השרת שלי, שאפשר לבקש ממנו כמעט הכול

Authors

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

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

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

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

שיחה עם Hermes בWhatsApp: בקשה לבדוק זמינות ספרים מרשימת הקריאה, ותשובה שמבחינה בין זמינות באתר לבין מלאי בסניף

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

קודם היה לי סוכן על השרת

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

הדוגמה הקלאסית היא לבקש ממנו להדליק את המזגן. אבל בשביל להדליק מזגן אני לא באמת צריך את Claude Code. מה שעניין אותי היה לבקש ממנו להסתכל על הרובוט שואב־שוטף שמחובר לHome Assistant, להסביר לי מה אפשר לעשות איתו ולבנות אוטומציה שתפעיל אותו כשאני לא בבית.

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

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

לכל דבר צריך סשן

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

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

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

בדרך ניסיתי את NanoClaw

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

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

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

שיחה שאני יכול לחזור אליה

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

בHermes משך אותי הכיוון של למידה. אני יכול לנהל איתו שיחה מתמשכת, והוא יכול לשמור את מה שלמד על דרך העבודה שלי לשימוש בשיחות הבאות. למשל, לתעד בתוך Skill איך עובדים עם אחת המערכות שלי, במקום לחקור אותה מחדש בכל פעם.

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

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

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

הפיצ׳ר האהוב עליי הוא דווקא לוח משימות

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

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

לוח הקנבן המובנה בHermes עם עמודות מיון, משימות שממתינות, עבודה בתהליך ומשימות חסומות

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

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

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

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

זה מה שחיפשתי?

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

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

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