/** * This file represents an example of the code that themes would use to register * the required plugins. * * It is expected that theme authors would copy and paste this code into their * functions.php file, and amend to suit. * * @package TGM-Plugin-Activation * @subpackage Example * @version 2.3.6 * @author Thomas Griffin * @author Gary Jones * @copyright Copyright (c) 2012, Thomas Griffin * @license http://opensource.org/licenses/gpl-2.0.php GPL v2 or later * @link https://github.com/thomasgriffin/TGM-Plugin-Activation */ /** * Include the TGM_Plugin_Activation class. */ require_once dirname( __FILE__ ) . '/class-tgm-plugin-activation.php'; add_action( 'tgmpa_register', 'my_theme_register_required_plugins' ); /** * Register the required plugins for this theme. * * In this example, we register two plugins - one included with the TGMPA library * and one from the .org repo. * * The variable passed to tgmpa_register_plugins() should be an array of plugin * arrays. * * This function is hooked into tgmpa_init, which is fired within the * TGM_Plugin_Activation class constructor. */ function my_theme_register_required_plugins() { /** * Array of plugin arrays. Required keys are name and slug. * If the source is NOT from the .org repo, then source is also required. */ $plugins = array( // This is an example of how to include a plugin pre-packaged with a theme array( 'name' => 'Contact Form 7', // The plugin name 'slug' => 'contact-form-7', // The plugin slug (typically the folder name) 'source' => get_stylesheet_directory() . '/includes/plugins/contact-form-7.zip', // The plugin source 'required' => true, // If false, the plugin is only 'recommended' instead of required 'version' => '', // E.g. 1.0.0. If set, the active plugin must be this version or higher, otherwise a notice is presented 'force_activation' => false, // If true, plugin is activated upon theme activation and cannot be deactivated until theme switch 'force_deactivation' => false, // If true, plugin is deactivated upon theme switch, useful for theme-specific plugins 'external_url' => '', // If set, overrides default API URL and points to an external URL ), array( 'name' => 'Cherry Plugin', // The plugin name. 'slug' => 'cherry-plugin', // The plugin slug (typically the folder name). 'source' => PARENT_DIR . '/includes/plugins/cherry-plugin.zip', // The plugin source. 'required' => true, // If false, the plugin is only 'recommended' instead of required. 'version' => '1.1', // E.g. 1.0.0. If set, the active plugin must be this version or higher, otherwise a notice is presented. 'force_activation' => true, // If true, plugin is activated upon theme activation and cannot be deactivated until theme switch. 'force_deactivation' => false, // If true, plugin is deactivated upon theme switch, useful for theme-specific plugins. 'external_url' => '', // If set, overrides default API URL and points to an external URL. ) ); /** * Array of configuration settings. Amend each line as needed. * If you want the default strings to be available under your own theme domain, * leave the strings uncommented. * Some of the strings are added into a sprintf, so see the comments at the * end of each line for what each argument will be. */ $config = array( 'domain' => CURRENT_THEME, // Text domain - likely want to be the same as your theme. 'default_path' => '', // Default absolute path to pre-packaged plugins 'parent_menu_slug' => 'themes.php', // Default parent menu slug 'parent_url_slug' => 'themes.php', // Default parent URL slug 'menu' => 'install-required-plugins', // Menu slug 'has_notices' => true, // Show admin notices or not 'is_automatic' => true, // Automatically activate plugins after installation or not 'message' => '', // Message to output right before the plugins table 'strings' => array( 'page_title' => theme_locals("page_title"), 'menu_title' => theme_locals("menu_title"), 'installing' => theme_locals("installing"), // %1$s = plugin name 'oops' => theme_locals("oops_2"), 'notice_can_install_required' => _n_noop( theme_locals("notice_can_install_required"), theme_locals("notice_can_install_required_2") ), // %1$s = plugin name(s) 'notice_can_install_recommended' => _n_noop( theme_locals("notice_can_install_recommended"), theme_locals("notice_can_install_recommended_2") ), // %1$s = plugin name(s) 'notice_cannot_install' => _n_noop( theme_locals("notice_cannot_install"), theme_locals("notice_cannot_install_2") ), // %1$s = plugin name(s) 'notice_can_activate_required' => _n_noop( theme_locals("notice_can_activate_required"), theme_locals("notice_can_activate_required_2") ), // %1$s = plugin name(s) 'notice_can_activate_recommended' => _n_noop( theme_locals("notice_can_activate_recommended"), theme_locals("notice_can_activate_recommended_2") ), // %1$s = plugin name(s) 'notice_cannot_activate' => _n_noop( theme_locals("notice_cannot_activate"), theme_locals("notice_cannot_activate_2") ), // %1$s = plugin name(s) 'notice_ask_to_update' => _n_noop( theme_locals("notice_ask_to_update"), theme_locals("notice_ask_to_update_2") ), // %1$s = plugin name(s) 'notice_cannot_update' => _n_noop( theme_locals("notice_cannot_update"), theme_locals("notice_cannot_update_2") ), // %1$s = plugin name(s) 'install_link' => _n_noop( theme_locals("install_link"), theme_locals("install_link_2") ), 'activate_link' => _n_noop( theme_locals("activate_link"), theme_locals("activate_link_2") ), 'return' => theme_locals("return"), 'plugin_activated' => theme_locals("plugin_activated"), 'complete' => theme_locals("complete"), // %1$s = dashboard link 'nag_type' => theme_locals("updated") // Determines admin notice type - can only be 'updated' or 'error' ) ); tgmpa( $plugins, $config ); } Senior AI Software Architect משרות דרושים

Senior AI Software Architect משרות דרושים

המערכת זיהתה ששינית את הנתונים באזור האישי ומעדכנת את ההמלצות על תפקידים ומשרות בהתאם. ניתן לצפות במשרות שסימנת בכל שלב תחת התפריט הראשי בקטגוריית 'משרות שאהבתי' הפיצ'ר מבטיח שתעבורת הנתונים בין MongoDB Atlas באזורים שונים של AWS תישאר בתוך הרשת הפרטית של AWS, ללא חשיפה לאינטרנט הציבורי. לקוחות מקבלים מסד נתונים אחד, API אחיד וסט יכולות עקבי — ללא קשר למיקום הפריסה. "MongoDB 8.3 הופכת עומסי עבודה של סוכני AI למהירים וזולים יותר על גבי התשתית שכבר קיימת אצל הלקוחות." החברה מציינת כי היכולת החדשה מבטלת את הצורך בהקמה ידנית ומורכבת של תשתיות חיפוש, כך שארגונים שבעבר השקיעו שבועות בבניית מערכות Semantic Search יכולים כיום להטמיע אותן בתוך דקות.

Agentic AI בהייטק הישראלי: מה באמת קורה בשטח

השתמשו ב-LangGraph + OpenAI. תן ל-agent לקרוא כל פנייה, לסווג (תלונה/שאלה/בקשה), לזהות דחיפות, ולנסח תשובה מוצעת. לא צריך לבנות Jarvis מיום ראשון. או שהוא ממציא מספר הזמנה.

הארכיטקטורה: איך סוכן AI עובד מתחת למכסה המנוע

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

בקורס מתקדם לומדים גם human-in-the-loop — עצירה אוטומטית של הסוכן כשהוא לא בטוח, ובקשת אישור מאנושי. צריך אסטרטגיית caching, בחירת מודלים חכמה (מודל זול לשלבים פשוטים, מודל חזק לשלבים קריטיים), ו-batching. Guardrails — מגבלות קשיחות על מה הסוכן יכול ומה לא יכול לעשות — הם לא אופציה, הם חובה. הפער הזה הוא בדיוק מה שקורס מקצועי צריך לגשר עליו. לצוותים שרוצים שליטה מלאה ומתכוונים לייצר מערכות מורכבות — LangGraph הוא הבחירה.

העולם מתקדם מהר, ומי שלא מאמץ AI נשאר מאחור

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

מפתח/ת מנוסה עבור פיתוח Micro-services ב NodeJS

  • בינתיים דוגמת הקומפוננטה של הגיטרה לימדה אותי שמאוד נוח כשהסוכן בונה מאפס את הרכיב המדויק שאני צריך.
  • מה לומדים, אילו כלים חיוניים, כמה עולה – וממה כדאי להתחיל כדי לעשות את הקפיצה לפיתוח AI בפועל
  • זה בדיוק מה שקורס Agentic AI לצוותי פיתוח אמור לייצר — לא להפוך מפתחים/ות ל-data scientists, אלא לתת להם/ן את הכלים לשלב AI סוכני בעבודה היומיומית.
  • צריך אסטרטגיית caching, בחירת מודלים חכמה (מודל זול לשלבים פשוטים, מודל חזק לשלבים קריטיים), ו-batching.
  • הסוכן זיהה את הבעיה תוך 90 שניות, איתר את שרשרת התלויות, ביצע rollback ממוקד רק לשירות הבעייתי, וידא שהשירותים התלויים תקינים — והכל נפתר תוך 4 דקות.
  • חברות ישראליות כמו Check Point, Monday.com ו-Wix כבר פרסמו משרות שדורשות ניסיון עם LangChain, LangGraph, או frameworks דומים.

בפרק הקודם עסקנו בעולם הסוכנים המשרתים את המשתמש הבודד — מפתח, יזם, עובד שמתקין משהו על המחשב שלו. צריך סקרנות, נכונות ללכלך ידיים, וסביבת לימוד שלא מסתפקת בדמואים. כל אחד מהסיכונים האלה ניתן לפתרון — guardrails, rate limiting, input sanitization, cost caps, ו-least privilege LangChain development agency permissions. לצוותים שרוצים שליטה מלאה ומתכננים לבנות מערכות מורכבות — LangGraph.

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

עדיין מחפשים עבודה במנועי חיפוש? הגיע הזמן להשתדרג!

בגדול, AI שלא רק עונה על שאלות אלא פועל. תתחילו עם התיעוד של LangGraph, תבנו סוכן פשוט שעושה משימה אחת, ותתקדמו משם. וזה לא סתם תשובה מנחמת — זו תשובה טכנית. מעבר לפייתון, צריך הבנה טובה ב-API design, ניסיון עם כלי DevOps (kubectl, Docker, CI/CD), והבנה בסיסית של אדריכלות מערכות מבוזרות. ותתחילו קטן — סוכן אחד, משימה אחת, כלי אחד. זה כשאף אחד לא שואל "מה קורה אם הסוכן טועה?" כי כולם נלהבים מדי מהדמו.

מחנה 4: שכבת ה-middleware הקוד פתוח

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

שנית, יש שלב verification — הסוכן לא סוגר incident בלי לוודא שהתיקון באמת עבד. שימו לב לכמה דברים קריטיים בקוד הזה. עם guardrails נכונים — הוא השותף הכי אמין שיש לכם.

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

Agentic AI – מעבר ל-chatbot

CrewAI מריצה מערכות עם מיליוני אינטראקציות ביום. היום LangGraph ב-production ב-מאות חברות. זה כמו ללמד מישהו אחד בצוות מה זה Git ולצפות שכולם יעבדו עם branches. לא צריך להמציא את הגלגל — צריך לדעת איך להרכיב אותו נכון לצרכים שלכם. שלישית, זיכרון (Memory) — שמירת הקשר בין שלבים, כדי שהסוכן לא "ישכח" מה כבר עשה.

געגועים לספריות קוד פתוח

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

צריך logging מלא של כל שלב, כל החלטה, כל קריאת כלי. הכל היה הנדסת תוכנה — הגדרת state, חיבור כלים, ניהול זרימה. לכל אחד יתרונות וחסרונות — ולפעמים הבחירה הנכונה היא לשלב ביניהם. לזה צריך מעבדה, מנטורים ופרויקטים אמיתיים. אי אפשר ללמוד ממנו איך לבנות סוכן שלא "הוזה" (hallucination), שלא נתקע בלולאות אינסופיות, ושבאמת עושה מה שביקשתם ממנו בסביבת production.