שני סשנים על אותו מחשב שלא מוצאים זה את זה
מאת ירון דויטשר עודכן לאחרונה:
בגרסה 2.1.239 של קלוד קוד, שיצאה אתמול, יש שלוש שורות שנוגעות כולן באותו מנגנון: ListAgents מדווח לסשן מה השם שלו עצמו, חברי צוות סוכנים מופיעים סוף-סוף ברשימה, וסשן ששמו מתחיל בלוכסן הפסיק להיות בלתי-נגיש. שלושתן שייכות לתכונה שכמעט לא נכתב עליה דבר בעברית: סשנים של קלוד קוד יכולים לשלוח הודעות זה לזה.
התכונה עצמה פשוטה להסבר. מה שמפתיע את מי שמנסה אותה נמצא דווקא בתיעוד ולא ברשימת השינויים — ושני הסשנים שהייתם מצפים שידברו הם בדיוק אלה שלא ידברו.
מה התכונה עושה
שני כלים, ואת שניהם קלוד מפעיל בעצמו: ListAgents מגלה לאילו סשנים אפשר להגיע, ו-SendMessage שולח הודעה לאחד מהם לפי שם. אתם לא קוראים לאף אחד מהם ידנית — מבקשים מקלוד בשפה חופשית, למשל “תעדכן את הסשן שעובד על ה-API שהמיגרציה נגמרה”, והוא מנסח ושולח.
מה שעובר הוא טקסט בלבד. התיעוד מדגיש שהודעה היא פיסת טקסט שקלוד אחד כותב לקלוד אחר, ולעולם לא היסטוריית שיחה ולא קבצים. הסשן המקבל רואה את שם השולח ואת הטקסט, וזהו.
אין מה להפעיל: בגרסה מתאימה התכונה פשוט דולקת. הדרישה היא 2.1.224 ומעלה במק, בלינוקס ובתוך WSL 2, ו-2.1.234 ומעלה בווינדוס מקורי.
איפה ההודעה עוברת
זה החלק ששווה להבין, כי ממנו נגזר כל השאר:
- בין שני סשנים על אותו מחשב: דרך socket ייעודי לכל סשן במק ובלינוקס, או דרך named pipe בווינדוס מקורי. ההודעה אינה עוברת דרך השרתים של אנתרופיק
- בין מחשבים, או אל סשן ענן: דרך השרתים של אנתרופיק, על גבי החיבור של השליטה מרחוק
ובמשפט אחד, זה הלב: כל סשן רושם את עצמו בקבצים על הדיסק, ושני סשנים יכולים להגיע זה לזה רק כשהם רואים את אותם קבצים. הגבול אינו המחשב הפיזי — הוא תיקיית הבית.
ולכן WSL וווינדוס לא נפגשים
מכאן נובעת השורה שהפתיעה אותי בתיעוד: סשן שרץ בתוך WSL 2 וסשן שרץ בווינדוס מקורי, על אותו מחשב ממש, אינם יכולים להגיע זה לזה. הם נרשמים תחת תיקיות בית שונות ומאזינים לסוגי socket שונים, ולכן כל אחד מהם פשוט לא קיים מבחינת השני.
אותו היגיון חל על קונטיינרים: לקונטיינר יש מערכת קבצים משלו, אז סשן בתוכו וסשן על המארח לא יימצאו. שני סשנים בתוך אותו קונטיינר דווקא כן.
הנקודה הזאת רלוונטית במיוחד בישראל, כי החלוקה הזאת נפוצה כאן: טרמינל אחד ב-PowerShell לפרויקט של העבודה, טרמינל שני ב-WSL לפרויקט שחי על לינוקס ממילא. זו הגדרה סבירה לגמרי, והיא בדיוק זו שמשאירה את שני הסשנים עיוורים זה לזה.
איך בודקים בעשר שניות
מריצים /list-agents (יש גם כינוי, /peers). השורה הראשונה היא השם של הסשן הנוכחי — זה השם שסשנים אחרים משתמשים בו כדי לפנות אליו, והצגתו היא אחד השינויים של 2.1.239. מתחתיה מופיעות השורות של מי שאפשר להגיע אליו.
הפקודה גם מבדילה בין שתי תקלות שונות לגמרי:
- /list-agents אינה מוכרת: לסשן אין את התכונה בכלל. מתחילים מ-claude —version ובודקים מול דרישות הגרסה למעלה
- הפקודה עובדת אבל ההודעה לא הגיעה: התכונה דלוקה ומשהו צר יותר חוסם — הגדרות קבלה בצד המקבל, כללי מניעה, או פשוט סשן שנמצא בצד השני של קו ה-WSL
מי שרוצה לראות את הכתובת עצמה: /status מציג אותה בשורה Peer address.
ומה שחשוב לומר ביושר
שלושה דברים שמכבים את התכונה בלי להודיע:
- חלק מהספקים אינם נתמכים: התכונה אינה זמינה ב-Amazon Bedrock, ב-Claude Platform on AWS, ב-Agent Platform של גוגל וב-Microsoft Foundry. מי שעובד מול אחד מהם לא יקבל אותה בשום גרסה
- משתני סביבה של פרטיות סוגרים אותה בשקט: התכונה נשענת על הערכת דגלי פיצ’ר, ולכן DO_NOT_TRACK, DISABLE_TELEMETRY, CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC ו-DISABLE_GROWTHBOOK מכבים אותה. מי שהגדיר אחד מהם משיקולי פרטיות — החלטה לגיטימית לגמרי — פשוט לא יראה את התכונה, ובלי הודעת שגיאה שמסבירה למה
- המידע באנגלית מיושן ברובו: לא מעט מדריכים באנגלית עדיין קובעים שאין תמיכה בווינדוס מקורי. התיעוד הרשמי אומר אחרת מאז 2.1.234, ושווה להעדיף אותו על פני מה שעולה ראשון בחיפוש
שורה תחתונה
ההודעות בין סשנים הן תכונה שקטה ושימושית: סשן שסיים מיגרציה יכול להודיע לסשן שחסום עליה, בלי שתעתיקו טקסט בין טרמינלים. אבל היא נשענת על קבצים משותפים, לא על החומרה — ולכן שני סשנים על אותו מחשב יכולים להיות זרים גמורים.
הכלל המעשי קצר: אם אתם מריצים כמה סשנים במקביל ורוצים שידברו, החזיקו את כולם באותו צד של הגבול — או הכול בווינדוס מקורי, או הכול בתוך WSL. ולפני שמאשימים את התכונה, מריצים /list-agents ורואים מי בכלל ברשימה.
מכאן: התקנת קלוד קוד בווינדוס מסביר את הבחירה בין ווינדוס מקורי ל-WSL ומה היא גוררת, השליטה מרחוק היא הדרך להגיע לסשנים על מחשבים אחרים, והמדריך המלא לקלוד קוד הוא נקודת הפתיחה למי שרק מתחילים.