[{"data":1,"prerenderedAt":775},["ShallowReactive",2],{"posts":3,"\u002Fai\u002Fai-agent-from-request-to-result":205},[4,21,32,42,52,61,69,77,86,94,102,110,119,127,135,148,162,173,183,194],{"path":5,"title":6,"description":7,"type":8,"level":9,"minutes":10,"date":11,"cover":12,"coverAlt":13,"featured":14,"tags":15,"topic":20},"\u002Fsmart-home\u002Fhome-assistant-cloudflare-tunnel","גישה ל-Home Assistant מחוץ לבית עם Cloudflare Tunnel","מחברים את Home Assistant לכתובת משלכם בלי לפתוח פורט בנתב. מדריך ל-Home Assistant OS ול-Docker, עם הרשאות גישה ובדיקות מהטלפון.","מדריך","רמת ביניים",14,"2026-10-04","\u002Fimages\u002Fposts\u002Fhome-assistant-cloudflare-tunnel.svg","טלפון מחוץ לבית מתחבר דרך Cloudflare Tunnel ומחבר מקומי ל-Home Assistant בבית.",false,[16,17,18,19],"Home Assistant","Cloudflare","Docker","בית חכם","smart-home",{"path":22,"title":23,"description":24,"type":8,"level":25,"minutes":26,"date":27,"cover":28,"coverAlt":29,"featured":14,"tags":30,"topic":20},"\u002Fsmart-home\u002Fhome-assistant-backup-update-recovery","גיבוי שאפשר לשחזר, ועדכון שאפשר להתאושש ממנו","מגדירים עותק גיבוי מחוץ לשרת, שומרים מפתח הצפנה ובודקים שחזור מבודד לפני שמעדכנים את הבית הפעיל.","למתחילים",8,"2026-09-29","\u002Fimages\u002Fposts\u002Fhome-assistant-backup-update-recovery.svg","שרת מקומי, ארכיון גיבוי ועותק חיצוני מחוברים למסלול שחזור.",[16,18,31],"גיבוי",{"path":33,"title":34,"description":35,"type":8,"level":25,"minutes":26,"date":36,"cover":37,"coverAlt":38,"featured":14,"tags":39,"topic":20},"\u002Fsmart-home\u002Fhome-assistant-device-maintenance","חיישן נעלם? תחזוקה של מכשירים וסוללות","בונים רשימת תחזוקה קצרה, מפרידים בין סוללה חלשה למכשיר לא זמין ומאתרים בעיות דיווח בלי לאפס את הרשת.","2026-09-24","\u002Fimages\u002Fposts\u002Fhome-assistant-device-maintenance.svg","סוללה חלשה, רשת מכשירים עם צומת לא זמין וכלי תחזוקה.",[16,40,41],"חיישנים","Zigbee",{"path":43,"title":44,"description":45,"type":8,"level":25,"minutes":26,"date":46,"cover":47,"coverAlt":48,"featured":14,"tags":49,"topic":20},"\u002Fsmart-home\u002Fhome-assistant-washing-machine-finished","מכונת הכביסה סיימה: התראה לפי צריכת חשמל","מודדים מחזור כביסה, מגדירים ספי הספק מתוך הנתונים ושולחים התראה רק אחרי ריצה שזוהתה, עם טיפול בדיווח חסר.","2026-09-19","\u002Fimages\u002Fposts\u002Fhome-assistant-washing-machine-finished.svg","מכונת כביסה מחוברת לגרף צריכת הספק ולהודעת סיום בטלפון.",[16,50,51,40],"אוטומציות","YAML",{"path":53,"title":54,"description":55,"type":8,"level":25,"minutes":56,"date":57,"cover":58,"coverAlt":59,"featured":14,"tags":60,"topic":20},"\u002Fsmart-home\u002Fhome-assistant-smart-button-actions","כפתור חכם במקום עוד אפליקציה","מחברים כפתור פיזי לפעולה יומיומית, מזהים איך האינטגרציה מדווחת על לחיצות ובודקים תגובה בלי להסתמך על דגם מסוים.",7,"2026-09-14","\u002Fimages\u002Fposts\u002Fhome-assistant-smart-button-actions.svg","יד לוחצת על כפתור פיזי שמפעיל תאורה ותריס במסגרת סצנה.",[16,50,41],{"path":62,"title":63,"description":64,"type":8,"level":25,"minutes":56,"date":65,"cover":66,"coverAlt":67,"featured":14,"tags":68,"topic":20},"\u002Fsmart-home\u002Fhome-assistant-helpers-house-modes","Helpers: נותנים לבית מצבים וזיכרון","מוסיפים מצב אורחים שנשלט מלוח הבקרה, מחברים אותו לתנאי באוטומציה ובודקים מה קורה אחרי אתחול.","2026-09-09","\u002Fimages\u002Fposts\u002Fhome-assistant-helpers-house-modes.svg","בורר מצבי בית מחובר למתגי עזר שמייצגים אורחים, יציאה והשהיה.",[16,50,51],{"path":70,"title":71,"description":72,"type":8,"level":25,"minutes":56,"date":73,"cover":74,"coverAlt":75,"featured":14,"tags":76,"topic":20},"\u002Fsmart-home\u002Fhome-assistant-automation-debugging","האוטומציה לא עבדה: מוצאים את הסיבה","בודקים טריגרים, תנאים ופעולות לפי הסדר, קוראים Trace ומבחינים בין תקלה בחיישן לבין כלל שלא התקיים.","2026-09-04","\u002Fimages\u002Fposts\u002Fhome-assistant-automation-debugging.svg","מסלול אוטומציה מתפצל לתנאי ולפעולה, וזכוכית מגדלת מדגישה את נקודת הבדיקה.",[16,50,51],{"path":78,"title":79,"description":80,"type":8,"level":25,"minutes":56,"date":81,"cover":82,"coverAlt":83,"featured":14,"tags":84,"topic":20},"\u002Fsmart-home\u002Fhome-assistant-light-manual-control","האור נכבה כשאתם עדיין בחדר? שיפור אוטומציית התאורה","משפרים תאורה לפי תנועה בעזרת כיבוי נפרד ומתג להשארת אור, ובודקים מה קורה בזמן קריאה, בהפעלה מחדש ובשחרור השליטה הידנית.","2026-08-30","\u002Fimages\u002Fposts\u002Fhome-assistant-light-manual-control.svg","חיישן תנועה, אדם בחדר ומנורה מופיעים לצד מתג שמאפשר להשהות כיבוי אוטומטי.",[16,19,50,85],"תאורה",{"path":87,"title":88,"description":89,"type":8,"level":25,"minutes":26,"date":90,"cover":91,"coverAlt":92,"featured":14,"tags":93,"topic":20},"\u002Fsmart-home\u002Fhome-assistant-presence-detection","מי בבית? זיהוי נוכחות בלי כיבויים מפתיעים","מחברים את הטלפון לישות Person, בודקים זיהוי כניסה ויציאה ובונים התראת עזיבה שממתינה ולא מתייחסת למידע חסר כאל בית ריק.","2026-08-25","\u002Fimages\u002Fposts\u002Fhome-assistant-presence-detection.svg","שני אנשים מחוץ לבית, אזור נוכחות סביב הבית ושעון להשהיית פעולות יציאה.",[16,19,50],{"path":95,"title":96,"description":97,"type":8,"level":25,"minutes":56,"date":98,"cover":99,"coverAlt":100,"featured":14,"tags":101,"topic":20},"\u002Fsmart-home\u002Fhome-assistant-useful-notifications","התראות שימושיות בלי להציף את הטלפון","מגדירים התראה כשהדלת נשארת פתוחה, בודקים הודעת ניסיון ומונעים הודעות חוזרות על כל פתיחה קצרה.","2026-08-20","\u002Fimages\u002Fposts\u002Fhome-assistant-useful-notifications.svg","דלת פתוחה מחוברת לשעון המתנה ולהתראה אחת בטלפון.",[16,19,50],{"path":103,"title":104,"description":105,"type":8,"level":25,"minutes":56,"date":106,"cover":107,"coverAlt":108,"featured":14,"tags":109,"topic":20},"\u002Fsmart-home\u002Fhome-assistant-scenes-scripts","לילה טוב בלחיצה אחת: סצנות וסקריפטים","יוצרים סצנת ערב וסקריפט ״לילה טוב״ ב-Home Assistant, ומבינים מתי לשמור מצבים ומתי להריץ רצף פעולות.","2026-08-15","\u002Fimages\u002Fposts\u002Fhome-assistant-scenes-scripts.svg","כפתור אחד מפעיל רצף פעולות שמוביל לבית במצב לילה.",[16,19,50],{"path":111,"title":112,"description":113,"type":8,"level":25,"minutes":56,"date":114,"cover":115,"coverAlt":116,"featured":14,"tags":117,"topic":20},"\u002Fsmart-home\u002Fhome-assistant-family-dashboard","לוח בקרה שבני הבית באמת ישתמשו בו","בונים לוח בקרה מובנה ב-Home Assistant עם חדרים, כפתורים ברורים ותצוגה נוחה בטלפון, בלי להתקין הרחבות.","2026-08-10","\u002Fimages\u002Fposts\u002Fhome-assistant-family-dashboard.svg","לוח בקרה גדול עם כפתורי תאורה וטמפרטורה מופיע לצד גרסה מותאמת לטלפון.",[16,19,118],"Dashboard",{"path":120,"title":121,"description":122,"type":8,"level":25,"minutes":56,"date":123,"cover":124,"coverAlt":125,"featured":14,"tags":126,"topic":20},"\u002Fsmart-home\u002Fhome-assistant-organize-devices","עושים סדר בבית: חדרים, מכשירים וישויות","מסדרים את Home Assistant לפי חדרים, מבינים מה ההבדל בין מכשיר לישות ובוחרים שמות שקל למצוא בלי לשבור אוטומציות.","2026-08-05","\u002Fimages\u002Fposts\u002Fhome-assistant-organize-devices.svg","תוכנית חדרים מחוברת למכשיר אחד ולשלוש ישויות נפרדות.",[16,19,50],{"path":128,"title":129,"description":130,"type":8,"level":25,"minutes":26,"date":131,"cover":132,"coverAlt":133,"featured":14,"tags":134,"topic":20},"\u002Fsmart-home\u002Fhome-assistant-hallway-motion-light","תנועה במסדרון, אור שנדלק: אוטומציה ראשונה ב־Home Assistant","מדליקים תאורה כשמזוהה תנועה ומכבים אחרי שתי דקות ללא תנועה, עם YAML מלא והסבר על טריגרים ובדיקות.","2026-07-31","\u002Fimages\u002Fposts\u002Fhome-assistant-hallway-motion-light.svg","מסדרון ביתי עם חיישן תנועה ותאורת תקרה שנדלקת כשאדם נכנס",[16,50,85,51],{"path":136,"title":137,"description":138,"type":8,"level":9,"minutes":26,"date":139,"cover":140,"coverAlt":141,"featured":14,"tags":142,"topic":147},"\u002Ffullstack\u002Ffetch-http-errors-and-timeouts","למה Fetch לא זורק שגיאה כשהשרת מחזיר 404?","ההבדל בין כישלון רשת לתשובת HTTP, טיפול בגוף תשובה לא צפוי והגבלת זמן לבקשה, עם פונקציה שאפשר להריץ.","2026-07-26","\u002Fimages\u002Fposts\u002Ffetch-http-errors-and-timeouts.svg","בקשת Fetch מתפצלת לתשובת HTTP עם שגיאה ולכשל רשת או פסק זמן",[143,144,145,146],"JavaScript","Fetch","HTTP","Debugging","fullstack",{"path":149,"title":150,"description":151,"type":152,"level":25,"minutes":26,"date":153,"cover":154,"coverAlt":155,"featured":14,"tags":156,"topic":161},"\u002Fai\u002Frag-answering-from-your-documents","RAG: איך נותנים למודל לענות מתוך המסמכים שלכם","מה מחפשים לפני שמבקשים מהמודל לכתוב, למה קטעי המקור חשובים, ואיך בודקים אם התשובה באמת נשענת עליהם.","הסבר","2026-07-21","\u002Fimages\u002Fposts\u002Frag-answering-from-your-documents.svg","מסמכי מקור נבדקים בזכוכית מגדלת, קטע מתאים נבחר ועובר לכרטיס תשובה",[157,158,159,160],"AI","RAG","חיפוש","מסמכים","ai",{"path":163,"title":164,"description":165,"type":152,"level":25,"minutes":26,"date":166,"cover":167,"coverAlt":168,"featured":14,"tags":169,"topic":20},"\u002Fsmart-home\u002Fmatter-thread-zigbee-explained","Matter, Thread ו־Zigbee: מה ההבדל ומה צריך בבית?","שלושת השמות אינם מתארים את אותו סוג של דבר. הסבר על שכבות התקשורת, תפקידי הרכזת ובדיקת התאמה למערכת קיימת.","2026-07-16","\u002Fimages\u002Fposts\u002Fmatter-thread-zigbee-explained.svg","שתי קבוצות של מכשירי בית חכם, רשת Mesh ורכזת, עם שער שמקשר בין שכבות התקשורת",[170,171,41,172],"Matter","Thread","רשת ביתית",{"path":174,"title":175,"description":176,"type":8,"level":25,"minutes":177,"date":178,"cover":179,"coverAlt":180,"featured":14,"tags":181,"topic":147},"\u002Ffullstack\u002Fbrowser-to-server-save-form","מהדפדפן לשרת: בונים טופס שמירה ורואים מה קורה בדרך","טופס HTML, בקשת POST ושרת Node.js קטן. דוגמה מלאה שממחישה איך נתונים עוברים ואיפה בודקים אותם.",9,"2026-07-11","\u002Fimages\u002Fposts\u002Fbrowser-to-server-save-form.svg","טופס בדפדפן שולח מעטפת נתונים לשרת ומשם למסד הנתונים",[143,182,145,144],"Node.js",{"path":184,"title":185,"description":186,"type":152,"level":25,"minutes":56,"date":187,"cover":188,"coverAlt":189,"featured":190,"tags":191,"topic":161},"\u002Fai\u002Fai-agent-from-request-to-result","סוכן AI: מה קורה בין הבקשה לתוצאה","איך מודל שפה משתמש בכלים, מה ההבדל בין סוכן לתהליך קבוע ואיך מגדירים משימה שאפשר לבדוק.","2026-07-06","\u002Fimages\u002Fposts\u002Fai-agent-from-request-to-result.svg","בקשה עוברת דרך מנגנון בחירה לכלי חיפוש, מסמכים וביצוע, עד לתוצאה שנבדקה",true,[157,192,193,50],"Agents","Tool Calling",{"path":195,"title":196,"description":197,"type":8,"level":25,"minutes":198,"date":199,"cover":200,"coverAlt":201,"featured":14,"tags":202,"topic":20},"\u002Fsmart-home\u002Fsmart-home-first-steps-home-assistant","בית חכם מתחילים בצעד קטן: בחירת ציוד והתקנת Home Assistant","מה צריך לבית חכם ראשון, איך בוחרים בין Home Assistant OS ל-Container, ואיך מתקינים על Raspberry Pi, מחשב, מכונה וירטואלית או NAS.",24,"2026-07-01","\u002Fimages\u002Fposts\u002Fsmart-home-first-steps-home-assistant.svg","בית עם חיישן ותאורה, המחובר לשרת Home Assistant ולשתי אפשרויות התקנה: מערכת הפעלה וקונטיינר",[16,19,203,18,204,50],"התקנה","Raspberry Pi",{"id":206,"title":185,"body":207,"cover":188,"coverAlt":189,"date":187,"description":186,"draft":14,"extension":766,"featured":190,"level":25,"meta":767,"minutes":56,"navigation":190,"ogImage":768,"path":184,"seo":769,"sitemap":770,"stem":771,"tags":772,"type":152,"updated":773,"__hash__":774},"posts\u002Fai\u002Fai-agent-from-request-to-result.md",{"type":208,"value":209,"toc":758},"minimark",[210,214,217,222,233,236,247,250,254,257,260,278,281,285,292,299,649,652,667,678,686,690,693,712,715,718,722,725,728,731,735,754],[211,212,213],"p",{},"״תמצא לי שלושה מדריכים טובים על גיבוי, תבדוק מה עודכן לאחרונה ותכין טיוטת סיכום.״ זו בקשה אחת, אבל מסתתרות בה כמה פעולות: חיפוש, קריאה, השוואה וכתיבה. אם מקבלים רק תשובה מנוסחת יפה, קשה לדעת אילו מהפעולות באמת התרחשו.",[211,215,216],{},"מערכת שמסוגלת להפעיל כלים יכולה לבצע את החיפוש, לקבל תוצאות ולבנות עליהן את התשובה. סוכן מוסיף לכך אפשרות לבחור את הצעד הבא לפי מה שכבר קרה. כדי להבין את ההבדל, כדאי לעקוב אחרי משימה קטנה ולהפריד בין המודל לבין התוכנה שמפעילה אותו.",[218,219,221],"h2",{"id":220},"המודל-מציע-פעולה-הקוד-מבצע-אותה","המודל מציע פעולה. הקוד מבצע אותה",[211,223,224,225,232],{},"מודל שפה אינו מקבל גישה למסמכים רק משום שכתבנו ״קרא את המסמכים״. המערכת צריכה לספק לו את התוכן, או לחבר כלי שיודע לקרוא אותו. ב־tool calling, המודל יכול להחזיר בקשה מובנית להפעלת כלי; התוכנה שסביבו מפעילה את הכלי ומחזירה את התוצאה למודל. זהו המנגנון שמתואר גם ב",[226,227,231],"a",{"href":228,"rel":229},"https:\u002F\u002Fplatform.claude.com\u002Fdocs\u002Fen\u002Fagents-and-tools\u002Ftool-use\u002Foverview",[230],"nofollow","תיעוד השימוש בכלים של Anthropic",".",[211,234,235],{},"אפשר לדמיין את חילופי ההודעות כך:",[237,238,244],"pre",{"className":239,"code":241,"language":242,"meta":243},[240],"language-text","משתמש: מצא מדריך על גיבוי מסמכים.\nמודל: בקש להפעיל searchNotes עם query=\"גיבוי\".\nמערכת: בדוק את הבקשה והפעל את הכלי.\nכלי: החזר מסמך עם כותרת, מזהה ותוכן.\nמודל: השתמש בתוצאה כדי לענות, או בקש מידע נוסף.\n","text","",[245,246,241],"code",{"__ignoreMap":243},[211,248,249],{},"ההבחנה הזו חשובה כשמשהו נכשל. אם כלי החיפוש לא זמין, המודל לא חיפש. אם הכלי החזיר רשימה ריקה, אין עדיין מקור לתשובה. התוכנה צריכה להעביר את המצבים האלה בצורה ברורה במקום להפוך אותם לטקסט שנראה כמו הצלחה.",[218,251,253],{"id":252},"לא-כל-תהליך-עם-ai-צריך-להיות-סוכן","לא כל תהליך עם AI צריך להיות סוכן",[211,255,256],{},"נניח שמכינים כתבה ממקור שנבחר מראש. אפשר לקבוע סדר קבוע: לקבל את הטקסט, לכתוב תקציר, להכין טיוטה ולבדוק שכל הקישורים קיימים. המודל עובד בתוך מסלול שהקוד מגדיר.",[211,258,259],{},"לעומת זאת, בקשה לחקור נושא עשויה לדרוש מסלול משתנה. אחרי קריאת מקור אחד, המערכת יכולה לזהות שחסרה דוגמת התקנה ולחפש מקור נוסף. מספר החיפושים וסדר הפעולות אינם ידועים מראש.",[211,261,262,263,267,268,271,272,277],{},"Anthropic משתמשת בהבחנה בין ",[264,265,266],"strong",{},"workflow",", שבו המסלול נקבע בקוד, לבין ",[264,269,270],{},"agent",", שבו המודל מכוון את ההתקדמות והשימוש בכלים. אין הגדרה אחידה לכל התעשייה, אבל זו הבחנה שימושית כשמתכננים מערכת. ",[226,273,276],{"href":274,"rel":275},"https:\u002F\u002Fwww.anthropic.com\u002Fengineering\u002Fbuilding-effective-agents",[230],"ההסבר המקורי"," עוסק בדפוסי עבודה; רשימת הכלים והספריות סביבם משתנה עם הזמן.",[211,279,280],{},"במשימה קבועה יש יתרון למסלול קבוע: אפשר לדעת איזה שלב נכשל, להריץ אותו שוב ולבדוק את התוצאה שלו בנפרד. בחירה חופשית של הצעד הבא נעשית שימושית כשהבעיה באמת דורשת אותה.",[218,282,284],{"id":283},"כלי-קטן-שאפשר-להבין-עד-הסוף","כלי קטן שאפשר להבין עד הסוף",[211,286,287,288,291],{},"הקוד הבא מדגים ",[264,289,290],{},"כלי חיפוש",", לא סוכן שלם. הוא רץ מקומית, בלי שירות AI ובלי מפתח API. המטרה היא לראות מה כלי מקבל ומה הוא מחזיר לפני שמחברים אותו למודל.",[211,293,294,295,298],{},"שמרו קובץ בשם ",[245,296,297],{},"search-notes.mjs",". נדרשת התקנת Node.js 22 ומעלה.",[237,300,304],{"className":301,"code":302,"language":303,"meta":243,"style":243},"language-javascript shiki shiki-themes github-dark-contrast","const notes = [\n  {\n    id: \"backup-01\",\n    title: \"גיבוי מסמכים\",\n    text: \"שמרו עותק נוסף של המסמכים ובדקו שאפשר לשחזר ממנו.\"\n  },\n  {\n    id: \"network-01\",\n    title: \"מיפוי הרשת הביתית\",\n    text: \"רשמו אילו מכשירים מחוברים ובאיזה חדר הם נמצאים.\"\n  }\n];\n\nfunction searchNotes({ query }) {\n  if (typeof query !== \"string\" || !query.trim()) {\n    throw new Error(\"query must be a non-empty string\");\n  }\n\n  const term = query.trim().toLocaleLowerCase(\"he\");\n\n  return notes.filter(note =>\n    `${note.title} ${note.text}`\n      .toLocaleLowerCase(\"he\")\n      .includes(term)\n  );\n}\n\nconsole.log(searchNotes({ query: \"גיבוי\" }));\n","javascript",[245,305,306,326,332,345,356,365,371,375,384,393,401,407,413,419,438,474,495,500,505,534,539,559,584,599,609,615,621,626],{"__ignoreMap":243},[307,308,311,315,319,322],"span",{"class":309,"line":310},"line",1,[307,312,314],{"class":313},"snl16","const",[307,316,318],{"class":317},"sDLfK"," notes",[307,320,321],{"class":313}," =",[307,323,325],{"class":324},"s95oV"," [\n",[307,327,329],{"class":309,"line":328},2,[307,330,331],{"class":324},"  {\n",[307,333,335,338,342],{"class":309,"line":334},3,[307,336,337],{"class":324},"    id: ",[307,339,341],{"class":340},"sU2Wk","\"backup-01\"",[307,343,344],{"class":324},",\n",[307,346,348,351,354],{"class":309,"line":347},4,[307,349,350],{"class":324},"    title: ",[307,352,353],{"class":340},"\"גיבוי מסמכים\"",[307,355,344],{"class":324},[307,357,359,362],{"class":309,"line":358},5,[307,360,361],{"class":324},"    text: ",[307,363,364],{"class":340},"\"שמרו עותק נוסף של המסמכים ובדקו שאפשר לשחזר ממנו.\"\n",[307,366,368],{"class":309,"line":367},6,[307,369,370],{"class":324},"  },\n",[307,372,373],{"class":309,"line":56},[307,374,331],{"class":324},[307,376,377,379,382],{"class":309,"line":26},[307,378,337],{"class":324},[307,380,381],{"class":340},"\"network-01\"",[307,383,344],{"class":324},[307,385,386,388,391],{"class":309,"line":177},[307,387,350],{"class":324},[307,389,390],{"class":340},"\"מיפוי הרשת הביתית\"",[307,392,344],{"class":324},[307,394,396,398],{"class":309,"line":395},10,[307,397,361],{"class":324},[307,399,400],{"class":340},"\"רשמו אילו מכשירים מחוברים ובאיזה חדר הם נמצאים.\"\n",[307,402,404],{"class":309,"line":403},11,[307,405,406],{"class":324},"  }\n",[307,408,410],{"class":309,"line":409},12,[307,411,412],{"class":324},"];\n",[307,414,416],{"class":309,"line":415},13,[307,417,418],{"emptyLinePlaceholder":190},"\n",[307,420,421,424,428,431,435],{"class":309,"line":10},[307,422,423],{"class":313},"function",[307,425,427],{"class":426},"svObZ"," searchNotes",[307,429,430],{"class":324},"({ ",[307,432,434],{"class":433},"s9osk","query",[307,436,437],{"class":324}," }) {\n",[307,439,441,444,447,450,453,456,459,462,465,468,471],{"class":309,"line":440},15,[307,442,443],{"class":313},"  if",[307,445,446],{"class":324}," (",[307,448,449],{"class":313},"typeof",[307,451,452],{"class":324}," query ",[307,454,455],{"class":313},"!==",[307,457,458],{"class":340}," \"string\"",[307,460,461],{"class":313}," ||",[307,463,464],{"class":313}," !",[307,466,467],{"class":324},"query.",[307,469,470],{"class":426},"trim",[307,472,473],{"class":324},"()) {\n",[307,475,477,480,483,486,489,492],{"class":309,"line":476},16,[307,478,479],{"class":313},"    throw",[307,481,482],{"class":313}," new",[307,484,485],{"class":426}," Error",[307,487,488],{"class":324},"(",[307,490,491],{"class":340},"\"query must be a non-empty string\"",[307,493,494],{"class":324},");\n",[307,496,498],{"class":309,"line":497},17,[307,499,406],{"class":324},[307,501,503],{"class":309,"line":502},18,[307,504,418],{"emptyLinePlaceholder":190},[307,506,508,511,514,516,519,521,524,527,529,532],{"class":309,"line":507},19,[307,509,510],{"class":313},"  const",[307,512,513],{"class":317}," term",[307,515,321],{"class":313},[307,517,518],{"class":324}," query.",[307,520,470],{"class":426},[307,522,523],{"class":324},"().",[307,525,526],{"class":426},"toLocaleLowerCase",[307,528,488],{"class":324},[307,530,531],{"class":340},"\"he\"",[307,533,494],{"class":324},[307,535,537],{"class":309,"line":536},20,[307,538,418],{"emptyLinePlaceholder":190},[307,540,542,545,548,551,553,556],{"class":309,"line":541},21,[307,543,544],{"class":313},"  return",[307,546,547],{"class":324}," notes.",[307,549,550],{"class":426},"filter",[307,552,488],{"class":324},[307,554,555],{"class":433},"note",[307,557,558],{"class":313}," =>\n",[307,560,562,565,567,569,572,575,577,579,581],{"class":309,"line":561},22,[307,563,564],{"class":340},"    `${",[307,566,555],{"class":324},[307,568,232],{"class":340},[307,570,571],{"class":324},"title",[307,573,574],{"class":340},"} ${",[307,576,555],{"class":324},[307,578,232],{"class":340},[307,580,242],{"class":324},[307,582,583],{"class":340},"}`\n",[307,585,587,590,592,594,596],{"class":309,"line":586},23,[307,588,589],{"class":324},"      .",[307,591,526],{"class":426},[307,593,488],{"class":324},[307,595,531],{"class":340},[307,597,598],{"class":324},")\n",[307,600,601,603,606],{"class":309,"line":198},[307,602,589],{"class":324},[307,604,605],{"class":426},"includes",[307,607,608],{"class":324},"(term)\n",[307,610,612],{"class":309,"line":611},25,[307,613,614],{"class":324},"  );\n",[307,616,618],{"class":309,"line":617},26,[307,619,620],{"class":324},"}\n",[307,622,624],{"class":309,"line":623},27,[307,625,418],{"emptyLinePlaceholder":190},[307,627,629,632,635,637,640,643,646],{"class":309,"line":628},28,[307,630,631],{"class":324},"console.",[307,633,634],{"class":426},"log",[307,636,488],{"class":324},[307,638,639],{"class":426},"searchNotes",[307,641,642],{"class":324},"({ query: ",[307,644,645],{"class":340},"\"גיבוי\"",[307,647,648],{"class":324}," }));\n",[211,650,651],{},"הריצו:",[237,653,657],{"className":654,"code":655,"language":656,"meta":243,"style":243},"language-bash shiki shiki-themes github-dark-contrast","node search-notes.mjs\n","bash",[245,658,659],{"__ignoreMap":243},[307,660,661,664],{"class":309,"line":310},[307,662,663],{"class":426},"node",[307,665,666],{"class":340}," search-notes.mjs\n",[211,668,669,670,673,674,677],{},"התוצאה כוללת את הרשומה עם המזהה ",[245,671,672],{},"backup-01",". אם תחליפו את מילת החיפוש ב־",[245,675,676],{},"מדפסת",", תקבלו רשימה ריקה. אם תשלחו מחרוזת ריקה, הכלי יזרוק שגיאה.",[211,679,680,681,232],{},"שלושת המצבים שונים: יש תוצאה, אין תוצאה, והבקשה עצמה לא תקינה. כשמחברים כלי למודל, כדאי לשמור על ההבדל ביניהם. שם ברור, פרמטרים מוגדרים ותוצאה צפויה מקלים על השימוש בכלי; אלו גם נקודות מרכזיות ב",[226,682,685],{"href":683,"rel":684},"https:\u002F\u002Fwww.anthropic.com\u002Fengineering\u002Fwriting-tools-for-agents",[230],"מדריך של Anthropic לכתיבת כלים",[218,687,689],{"id":688},"מגדירים-הצלחה-לפני-שמוסיפים-כלים","מגדירים הצלחה לפני שמוסיפים כלים",[211,691,692],{},"״להכין כתבה טובה״ היא משימה שקשה לבדוק. אפשר להפוך אותה להגדרה מעשית יותר:",[694,695,696,700,703,706,709],"ul",{},[697,698,699],"li",{},"הטיוטה עונה על שאלה מוגדרת.",[697,701,702],{},"לכל טענה טכנית מרכזית יש מקור מזוהה.",[697,704,705],{},"דוגמת הקוד כוללת את הסביבה ואת דרך ההרצה.",[697,707,708],{},"מידע חסר מסומן במפורש.",[697,710,711],{},"התוצאה נשמרת כטיוטה לבדיקה.",[211,713,714],{},"זו הגדרה מוצעת לתהליך תוכן, ולא הבטחה שמודל יעמוד בה. אפשר לבדוק אותה על כמה מקורות מוכרים ולהשוות את הפלט למה שבאמת כתוב בהם.",[211,716,717],{},"גם תנאי העצירה צריך להיות ברור. בדוגמה של חיפוש מקורות, אפשר להגביל את מספר החיפושים ואת זמן העבודה. אם המערכת ממשיכה לחפש כי אין מקור מתאים, עדיף שתדווח על החוסר במקום להמשיך עד שהתקציב ייגמר.",[218,719,721],{"id":720},"איך-יודעים-אם-המערכת-מועילה","איך יודעים אם המערכת מועילה?",[211,723,724],{},"בחרו חמש משימות שאתם יודעים לפתור ידנית. הוסיפו מקרה שבו חסר מידע, מקרה שבו המקורות סותרים זה את זה ומקרה שבו כלי נכשל. בדקו כמה תוצאות אפשר להשתמש בהן, כמה דורשות תיקון וכמה זמן הבדיקה גוזלת.",[211,726,727],{},"מערכת שמייצרת הרבה טקסט אינה בהכרח חוסכת עבודה. במקרה של בלוג, המדד המעניין הוא כמה טיוטות מדויקות ושימושיות מגיעות לעריכה, וכמה תיקונים הן דורשות בדרך.",[211,729,730],{},"אם המשימה כבר עובדת היטב במסלול קבוע, אפשר להישאר איתו. כשמגיעים למקרה שבו צריך לבחור בין כמה דרכי פעולה, יש סיבה ברורה להוסיף יכולת של סוכן.",[218,732,734],{"id":733},"לקריאה-נוספת","לקריאה נוספת",[694,736,737,743,749],{},[697,738,739,232],{},[226,740,742],{"href":274,"rel":741},[230],"Anthropic: הבחנה בין workflows לסוכנים",[697,744,745,232],{},[226,746,748],{"href":683,"rel":747},[230],"Anthropic: כלים, פרמטרים ותוצאות",[697,750,751,232],{},[226,752,753],{"href":149},"מהו RAG ואיך מחברים תשובה למסמכים",[755,756,757],"style",{},"html pre.shiki code .snl16, html code.shiki .snl16{--shiki-default:#F97583}html pre.shiki code .sDLfK, html code.shiki .sDLfK{--shiki-default:#79B8FF}html pre.shiki code .s95oV, html code.shiki .s95oV{--shiki-default:#E1E4E8}html pre.shiki code .sU2Wk, html code.shiki .sU2Wk{--shiki-default:#9ECBFF}html pre.shiki code .svObZ, html code.shiki .svObZ{--shiki-default:#B392F0}html pre.shiki code .s9osk, html code.shiki .s9osk{--shiki-default:#FFAB70}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}",{"title":243,"searchDepth":328,"depth":328,"links":759},[760,761,762,763,764,765],{"id":220,"depth":328,"text":221},{"id":252,"depth":328,"text":253},{"id":283,"depth":328,"text":284},{"id":688,"depth":328,"text":689},{"id":720,"depth":328,"text":721},{"id":733,"depth":328,"text":734},"md",{},"\u002Fimages\u002Fposts\u002Fai-agent-from-request-to-result.png",{"title":185,"description":186},{"loc":184},"ai\u002Fai-agent-from-request-to-result",[157,192,193,50],null,"_HanH9gQMqCM4_4EzxvZlLJyJEwz-k8i4KPUTkvmupU",1791147941496]