מדריך וואטסאפ ל-AI בעברית

פרק 4

ההודעה האחת, הקמת מערכת מלאה

זהו המסלול המומלץ והשלם ביותר. הודעה אחת מקיפה ומדויקת אשר מוזנת לסוכן ה-AI (בקלוד קוד, בלשונית Code של Claude Desktop או ב-Cursor Agent). הסוכן מבצע את כל הבדיקות הטכניות, מרים את מנוע ה-GOWA המקומי, מנחה אתכם לסרוק את הברקוד, בונה שרת FastMCP מלא בפייתון המכיל עשרות כלים מתקדמים, ומחבר את הכלים ישירות לסביבת העבודה שלכם.

לפי התיעוד הרשמי, החל מגרסה v9 של GOWA פקודת ההרצה היא rest בלבד, והיא מגישה הן את ממשק ה-REST והן את שרת ה-MCP המובנה בנתיב /mcp תחת אותו תהליך. ההודעה מתוכננת כך שהסוכן מכבה את מנוע ה-MCP המובנה באמצעות MCP_ENABLED=false, ובונה במקומו שרת FastMCP מקיף ועשיר עם כלים לחיפוש, קריאה, תזמון, מדיה וניהול קבוצות. כמו כן, החל מגרסה v8 קיימת תמיכה בריבוי מכשירים תחת /devices, וכאשר מחובר מכשיר יחיד הוא משמש אוטומטית כברירת מחדל.

[!IMPORTANT] אין צורך לערוך את תוכן ההודעה. העתיקו את כל הטקסט מתוך הבלוק שלהלן, הדביקו אותו בחלון השיחה של קלוד קוד ולחצו Enter.

#מהלך ההתקנה האוטומטי

  1. שלב 0: אימות סביבה: בדיקת גרסאות docker, docker compose, python3 וזמינות פורטים (3100 עבור GOWA, 3300 עבור שרת ה-MCP).
  2. שלב 1: הרמת מנוע GOWA: יצירת קובץ docker-compose.yml, הגדרת סיסמת Basic Auth חזקה, מיפוי אחסון קבוע עבור storages/, הפעלת הקונטיינר והצגת כתובת הדפדפן.
  3. שלב 2: עצירה לסריקת QR: הסוכן עוצר את פעולתו וממתין שתסרקו את קוד ה-QR באפליקציית וואטסאפ בטלפון.
  4. שלב 3: הקמת שרת FastMCP: בניית סביבת פייתון וירטואלית, הטמעת קטלוג הכלים המלא, חיבור מסד נתונים מקומי (SQLite) להודעות מתוזמנות ויצירת קובץ הנחיות CLAUDE.md.
  5. שלב 4: רישום כלים מקומי: חיבור שרת ה-MCP לקלוד קוד, קלוד דסקטופ, קרסור וסביבות נוספות על גבי המחשב.
  6. שלב 5: קונקטורים לענן (אופציונלי): הגדרת מנהרת Cloudflare מאובטחת עבור claude.ai או ChatGPT במידה ונדרשת גישה מחוץ למסוף המקומי.
  7. שלב 6: אימות וסיכום: בדיקת זמינות הכלים ללא ביצוע שליחה בפועל.

#הגדרות סביבה ומלכודות נפוצות

משתנה סביבהברירת מחדלתיאור לפי התיעוד הרשמי
APP_PORT3000פורט השירות בקונטיינר
APP_HOST0.0.0.0כתובת האזנה של השרת
APP_OSGOWAשם מערכת ההפעלה המוצג בוואטסאפ במכשירים מקושרים
APP_BASIC_AUTHללאפרטי אימות בסיסי (משתמש וסיסמה)
APP_UI_ENABLEDtrueהפעלת ממשק הדפדפן מתוך הקובץ gowa-ui.html
APP_UI_AUTO_UPDATEtrueהורדה ועדכון תקופתי של לוח הבקרה מ-GitHub
MCP_ENABLEDtrueהפעלת שרת ה-MCP המובנה בנתיב /mcp (מוגדר false לטובת FastMCP)
DB_URIfile:storages/whatsapp.dbנתיב מסד הנתונים עבור הודעות וסשן
DB_KEYS_URIריק (משתמש ב-DB_URI)נתיב מפתחות ההצפנה. הימנעו משמירה בזיכרון בלבד
WHATSAPP_AUTO_REPLYללאהודעת מענה אוטומטי להודעות נכנסות
WHATSAPP_AUTO_MARK_READfalseסימון אוטומטי של הודעות נכנסות כנקראו
WHATSAPP_AUTO_REJECT_CALLfalseדחייה אוטומטית של שיחות נכנסות
  • איבוד חיבור באיתחול: לפי התיעוד הרשמי, חובה למפות את הנתיב storages/ אל אחסון קבוע במחשב המארח (כגון ./data:/app/storages). אם מפתחות ההצפנה או מסד הנתונים נשמרים בזיכרון בלבד, כל הפעלה מחדש של הקונטיינר תאבד את הסשן ותדרוש סריקת QR מחדש.
  • הורדת ממשק הניהול ברשתות סגורות: החל מגרסה v9 לוח הבקרה מופרד ונשמר בקובץ storages/ui/gowa-ui.html. השרת מוריד אותו בעלייה. בסביבה מנותקת רשת יש לכבות עדכון אוטומטי באמצעות APP_UI_AUTO_UPDATE=false ולספק את הקובץ מראש.
  • תמיכה בריבוי מכשירים: החל מגרסה v8 קיימת תמיכה בחיבור מספר חשבונות תחת /devices. קריאות תלויות מכשיר דורשות כותרת X-Device-Id או פרמטר device_id. אם מחובר מכשיר יחיד, המערכת משתמשת בו כברירת מחדל.

#הפרומפט המלא להעתקה

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

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

אם אינך רץ בסביבה בעלת גישה לטרמינל מקומי (לדוגמה שיחת צ'אט רגילה בדפדפן): עצור מיד והנחה אותי להדביק את הפרומפט בתוך קלוד קוד.

============================================================
ארכיטקטורת המערכת
============================================================

המערכת מורכבת משני רכיבים עיקריים הפועלים בתיאום:

1. מנוע תקשורת WhatsApp Web בשם GOWA (go-whatsapp-web-multidevice), הרץ בתוך קונטיינר Docker רשמי במצב rest.
2. שרת MCP עצמאי המבוסס על FastMCP (בפייתון) העוטף את ממשק ה-REST של GOWA ומספק קטלוג כלים עשיר.

לפי התיעוד הרשמי, בגרסאות GOWA v9 שרת ה-MCP וממשק ה-REST אוחדו תחת פקודת rest אחת, ונתיב ה-MCP המובנה זמין ב-/mcp. אנו מכבים רכיב זה (MCP_ENABLED=false) וסביבת הפייתון מרימה שרת FastMCP ייעודי עם קטלוג מלא ומותאם בפורט 3300.
החל מגרסה GOWA v8 קיימת תמיכה מובנית בריבוי מכשירים דרך נתיבי /devices. כאשר מחובר מכשיר אחד בלבד, GOWA משתמשת בו כברירת מחדל ללא צורך במזהה מכשיר מפורש.

שם השרת לתצוגה: Connecta WhatsApp
תיקיית העבודה: ~/gowa-ai (או התיקייה הנוכחית אם היא ייעודית וריקה)

============================================================
הנחיות אבטחה מחמירות
============================================================

- האזנה מקומית בלבד על 127.0.0.1 (איסור מוחלט על חשיפת 0.0.0.0 ל-GOWA או ל-MCP, למעט דרך מנהרה מוצפנת בעת הצורך).
- יצירת סיסמת Basic Auth אקראית וחזקה ל-GOWA (איסור מוחלט על שימוש ב-admin:admin או סיסמאות ברירת מחדל).
- יצירת טוקן Bearer אקראי באורך 32 בתים לפחות ונתיב סודי עבור חיבורי מנהרה.
- הצגת הסיסמאות והטוקנים פעם אחת בלבד במסך, ושמירתם בקובץ .env מקומי בעל הרשאות מוגבלות (mode 600) המוחרג מ-git (.gitignore).
- שימוש ב-volumes קבועים עבור session storage של GOWA (מיפוי storages/) כדי שהחיבור ומפתחות ההצפנה יישמרו לאחר אתחול ולא יישמרו בזיכרון בלבד.
- הגדרת דגל --os או משתנה APP_OS עם שם מזהה ברור (לדוגמה: "Claude GOWA").
- ללא הגדרת Webhook ציבורי אוטונומי, ללא מענה אוטומטי (WHATSAPP_AUTO_REPLY=""), ללא סימון אוטומטי של הודעות כנקראו (WHATSAPP_AUTO_MARK_READ="false"), וללא פעולות דיוור המוני.
- תמונת Docker: aldinokemal2104/go-whatsapp-web-multidevice או ghcr.io/aldinokemal/go-whatsapp-web-multidevice בלבד.
- כלל ברזל לשליחת הודעות: לפני כל שיגור הודעה בוואטסאפ, חובה להציג למשתמש את תוכן ההודעה המדויק ואת שם הנמען, ולהמתין לאישור מפורש בשיחה. אין לבצע שליחה ללא אישור מראש.
- בדיקות מותרות להרצה עצמאית: בדיקות health, ספירת כלים, list_accounts (מול /devices) ו-list_chats לקריאה בלבד ללא הצגת תוכן שיחות פרטיות.

============================================================
מבנה הקבצים הנדרש
============================================================

~/gowa-ai/
  docker-compose.yml     
# הגדרת שירות gowa
  .env                   
# הגדרות GOWA_BASIC_AUTH, MCP_BEARER, CONNECTOR_PATH (mode 600)
  .gitignore
  data/                  
# volume קבוע עבור אחסון GOWA (ממופה ל-app/storages/)
  mcp/
    venv/                
# סביבת פייתון וירטואלית
    requirements.txt     
# mcp, httpx, uvicorn, starlette, pydantic
    gowa_client.py       
# לקוח REST מול GOWA עם Basic Auth
    store.py             
# מסד נתונים מקומי SQLite עבור תזמונים ואוטומציות
    server.py            
# שרת FastMCP עם מימוש כל הכלים
    jobs.py              
# מנגנון תזמון רקע
  CLAUDE.md              
# כללי הפרויקט וחובת אישור לפני שליחה
  README.md              
# תיעוד מקומי של הכתובות ואופן ההרצה

פורטים ברירת מחדל:
- GOWA REST & UI: 127.0.0.1:3100 -> קונטיינר 3000
- FastMCP Server: 127.0.0.1:3300

הגדרות GOWA ב-docker-compose.yml:
  image: aldinokemal2104/go-whatsapp-web-multidevice
  command: rest --port=3000 --basic-auth=... --os="Claude GOWA"
  environment:
    MCP_ENABLED: "false"
    APP_UI_ENABLED: "true"
    APP_UI_AUTO_UPDATE: "false"
    WHATSAPP_AUTO_REPLY: ""
    WHATSAPP_AUTO_MARK_READ: "false"
  volumes:
    - ./data:/app/storages
  restart: unless-stopped

הגדרות FastMCP ב-server.py:
  שם: "Connecta WhatsApp"
  כתובת: 127.0.0.1:3300
  stateless_http: True
  נתיבים:
    1) /mcp עם אימות Bearer (עבור סוכנים מקומיים)
    2) /{CONNECTOR_PATH}/mcp ללא כותרת (עבור מחברים בדפדפן, הנתיב משמש כאימות)
    3) /health בדיקת תקינות JSON

============================================================
קטלוג הכלים המלא למימוש
============================================================

כל הכלים ברשימה זו חייבים להיות ממומשים בשרת ה-FastMCP:

קריאה ומודיעין:
- list_accounts: רשימת חשבונות ומכשירים מחוברים (מול נתיב /devices)
- get_connection_health: סטטוס חיבור וזמינות וואטסאפ
- list_chats: רשימת שיחות אחרונות כולל זמנים והודעות אחרונות
- read_messages: קריאת הודעות בהקשר שיחה
- search_contacts: חיפוש אנשי קשר לפי שם או מספר
- get_last_interaction: פרטי האינטראקציה האחרונה מול איש קשר
- get_direct_chat_by_contact: איתור מזהה שיחה ישירה
- get_contact_chats: רשימת שיחות וקבוצות משותפות
- get_chat: מטא-דאטה מורחב על שיחה
- get_message_context: קבלת הודעות לפני ואחרי הודעה ספציפית
- search_messages: חיפוש טקסט חופשי בהיסטוריית ההודעות
- get_activity_digest: סיכום שיחות פעילות והודעות הממתינות למענה
- get_unanswered_chats: רשימת שיחות בהן ההודעה האחרונה נכנסה ולא נענתה
- get_group_participants: רשימת משתתפים בקבוצה
- get_group_info: פרטי קבוצה
- get_group_info_from_link: פרטי קבוצה מתוך קישור הזמנה
- list_group_join_requests: בקשות הצטרפות ממתינות לקבוצה
- list_groups: רשימת כל הקבוצות בהן החשבון חבר
- list_newsletters: רשימת ערוצים וניוזלטרים במעקב
- get_user_info: פרטי משתמש וואטסאפ
- get_business_profile: פרטי פרופיל עסקי
- get_my_privacy: הגדרות הפרטיות של החשבון
- check_on_whatsapp: בדיקה האם מספר טלפון רשום בוואטסאפ
- download_media: הורדת קובץ מדיה מהודעה
- get_media_link: הפקת קישור גישה מקומי למדיה שהורדה
- export_chat: ייצוא שיחה לקובץ טקסט או JSON לפי טווח תאריכים
- read_document: קריאת תוכן מתוך מסמכי PDF, Word ו-Excel
- transcribe_voice_message: תמלול הודעה קולית
- analyze_video: עיבוד וניתוח קובץ וידאו
- analyze_media: ניתוב אוטומטי לפי סוג המדיה

שליחה ונוכחות:
- send_message: שליחת הודעת טקסט לנמען
- send_image: שליחת תמונה עם כיתוב
- send_file: שליחת מסמך או קובץ כללי
- send_audio: שליחת קובץ אודיו או הודעה קולית
- send_video: שליחת סרטון וידאו
- send_sticker: שליחת מדבקה
- send_link: שליחת קישור עם תצוגה מקדימה
- send_location: שליחת מיקום על גבי מפה
- send_contact: שליחת כרטיס איש קשר (vCard)
- send_poll: יצירת סקר בקבוצה או בשיחה
- forward_message: העברת הודעה קיימת
- upload_chunk: העלאת קבצים בחלקים
- request_upload: הפקת קישור העלאה מקומי
- bridge_from_connector: העברת קבצים ממחברים אחרים
- hold_file: שמירת קובץ זמני
- list_held_files: רשימת קבצים מוחזקים
- send_chat_presence: שליחת חיווי הקלדה (typing / recording)
- set_presence: קביעת סטטוס נוכחות (available / unavailable)

תזמון ואוטומציה (בניהול SQLite מקומי):
- schedule_message: תזמון הודעה לשעה ותאריך מוגדרים
- list_scheduled_messages: רשימת הודעות מתוזמנות הממתינות לשליחה
- cancel_scheduled_message: ביטול הודעה מתוזמנת
- create_automation: יצירת כלל אוטומציה מותאם
- list_automations: רשימת כללי אוטומציה
- set_automation_enabled: הפעלה או השבתה של כלל
- test_automation: בדיקת התאמת כלל ללא ביצוע שליחה
- delete_automation: מחיקת כלל אוטומציה

פעולות שיחה:
- mark_read: סימון שיחה או הודעה כנקראה
- react_to_message: הוספת תגובת אימוג'י להודעה
- edit_message: עריכת הודעה שנשלחה
- delete_message: מחיקת הודעה (עבור כולם)
- reject_call: דחיית שיחה נכנסת
- star_message: סימון הודעה בכוכב
- pin_chat: הצמדת שיחה לראש הרשימה
- archive_chat: העברת שיחה לארכיון
- label_chat: הוספת תגית לשיחה
- set_disappearing_timer: קביעת טיימר להודעות זמניות

ניהול קבוצות:
- create_group: יצירת קבוצה חדשה
- group_invite_link: הפקת קישור הזמנה לקבוצה
- join_group_with_link: הצטרפות לקבוצה באמצעות קישור
- add_group_participants: הוספת משתתפים לקבוצה
- remove_group_participants: הסרת משתתפים מקבוצה
- promote_group_participants: מינוי משתתף למנהל קבוצה
- demote_group_participants: ביטול הרשאת מנהל למשתתף
- approve_group_join_requests: אישור בקשות הצטרפות
- reject_group_join_requests: דחיית בקשות הצטרפות
- set_group_name: שינוי שם הקבוצה
- set_group_topic: שינוי תיאור הקבוצה
- set_group_photo: עדכון תמונת הקבוצה
- set_group_locked: נעילת עריכת פרטי הקבוצה למנהלים בלבד
- set_group_announce: הגבלת שליחת הודעות בקבוצה למנהלים בלבד
- leave_group: עזיבת קבוצה

פרופיל וערוצים:
- set_my_avatar: עדכון תמונת הפרופיל של החשבון
- unfollow_newsletter: ביטול מעקב אחר ערוץ

============================================================
שלבי הביצוע המדויקים
============================================================

שלב 0: בדיקת דרישות קדם
- בדוק גרסאות docker, docker compose, python3 ו-curl.
- בדוק זמינות פורטים 3100 ו-3300. אם תפוסים, בחר פורטים פנויים ועדכן אותי.
- אם Docker אינו רץ, עצור והסבר לי כיצד להפעיל אותו בהתאם למערכת ההפעלה.

שלב 1: פריסת מנוע GOWA
- צור את תיקיית העבודה, קובץ .env, docker-compose.yml ותיקיית data/.
- הרץ docker compose pull ו-docker compose up -d.
- ודא שהקונטיינר הגיע למצב healthy.
- הצג לי במפורש: כתובת דפדפן (http://127.0.0.1:3100), שם משתמש וסיסמה.
- עצור כאן! אל תמשיך להקמת שרת ה-MCP לפני שאישרתי שהברקוד נסרק והמכשיר מחובר.

שלב 2: אימות חיבור וואטסאפ (לאחר אישורי)
- בצע בדיקת GET מול /app/status או /devices לוודא שהמכשיר מחובר (logged in).
- אם אינו מחובר, דווח מה חסר והמתן.

שלב 3: הקמת שרת FastMCP
- הקם סביבת פייתון וירטואלית (venv), התקן תלויות וממש את כל הקבצים והכלים.
- הטמע לולאת רקע לתזמון הודעות.
- הגדר שירות systemd --user או הרצה מנוהלת כדי שהשרת ימשיך לפעול ברקע.
- צור קובץ CLAUDE.md בתיקייה עם כלל הברזל: אישור מפורש לפני כל שליחה.
- בצע בדיקת כמות כלים ואמת שכל הכלים מופיעים בשרת.

שלב 4: רישום מקומי של השרת
- קלוד קוד: הוסף שרת באמצעות claude mcp add --transport http whatsapp http://127.0.0.1:3300/mcp --header "Authorization: Bearer <TOKEN>".
- קלוד דסקטופ: רשום בקובץ claude_desktop_config.json המתאים למערכת ההפעלה.
- קרסור: רשום בקובץ ~/.cursor/mcp.json של המשתמש.

שלב 5: חיבורי דפדפן ומנהרה (במידת הצורך)
- הפעל מנהרת Cloudflare Tunnel (במידת הצורך) המכוונת ל-http://127.0.0.1:3300.
- ודא שהנתיב המרוחק כולל את ה-CONNECTOR_PATH הסודי.
- ספק לי את הכתובת והנחיות הרישום עבור claude.ai, ChatGPT או Grok.

שלב 6: סיכום ואימות
- הצג טבלת כתובות וסטטוס של כל רכיב.
- הצג את מספר הכלים שהותקנו.
- ספק משפט בדיקה מומלץ להעתקה לצורך אימות קריאת נתונים.

התחל כעת בשלב 0.

#מה קורה לאחר שליחת הפרומפט

לאחר שתדביקו את ההודעה, קלוד קוד יחל בסדרת בדיקות ויקים את תשתית ה-Docker.

בסיום שלב 1 יוצגו בפניכם:

  • כתובת הדפדפן (ברירת מחדל: http://127.0.0.1:3100)
  • שם המשתמש והסיסמה הזמנית שנוצרה
  • הנחיה מפורשת לפתוח את הדפדפן ולסרוק את קוד ה-QR מהטלפון

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

הברקוד נסרק בהצלחה והמספר מחובר. אפשר להמשיך לשלב 2.

הסוכן ימשיך באופן אוטומטי בהקמת שרת ה-FastMCP, בהגדרת הכלים ובחיבורם לקלוד קוד.

בפרק הבא נציג את המסלול המודולרי עבור מי שמעוניין בהתקנת מנוע GOWA בלבד.