מחקר
הפכו שאלה אחת לתקציר מחקר עם מקורות
שאלו את האינטרנט, שמרו את העמודים שמאחורי התשובה כ-Markdown, הוסיפו מה שמתרגלים אומרים ב-X ושמרו את הראיות ב-LiveDoc שאפשר לחפש בו שוב.
העתיקו את הפרומפט
החליפו את השדות בסוגריים מרובעים והדביקו ב-Claude Code, Codex או AI עם גישה לטרמינל. הוא מתקין את סקיל Felo, שואל לפני שריפת קרדיטים ומריץ את תהליך העבודה.
הכן תקציר מחקר מבוסס מקורות ל[שאלה או החלטה]. היקף: [שוק, אזור, שפה]. תקופה: [30 הימים האחרונים / 12 החודשים האחרונים]. קהל: [מי יקרא]. עומק: [סקירה של עמוד אחד / תקציר מלא]. הפק תקציר ב-Markdown הכולל: 1. תשובה קצרה בשלוש נקודות. 2. טבלת ראיות: טענה, שם המקור, URL, תאריך פרסום. 3. הנקודות שבהן המקורות חלוקים. 4. מה שעדיין לא ידוע. 5. רשימת מקורות מלאה. כללים: - כל טענה עובדתית צריכה קישור למקור. הפרד עובדות, דעות והסקות שלך. - לעולם אל תמציא ציטוטים, מדדים, תאריכים או מקורות. נתון חסר נכתב „אין נתונים”, לא אפס. - העדף מקורות ראשוניים. השתמש ב-X כאות ממתרגלים, לא כהוכחה. - המר את התקופה לתאריכי התחלה וסיום מפורשים וציין אזור זמן. - לפני שימוש בקרדיטים, הצג את קריאות ה-API המתוכננות והמתן לאישור שלי. - אל תיצור משימה חוזרת, אל תשלח הודעות ואל תפרסם דבר. - כתוב את התוצאה ל-./research-brief.md וסכם אותה בצ׳אט.
ההעתקה כוללת גם שלבי התקנה וכללי בטיחות.
מה מקבלים
פלט לדוגמה של ריצה אחת. לא יצירה חיה.
האם מודלים קטנים יחליפו גדולים בבוטי תמיכה?
תשובה קצרה
- מודלים קטנים כבר מספיקים לסיווג ולתשובות קו ראשון.
- צוואר הבקבוק הוא איכות האחזור, לא גודל המודל.
- צוותים שעברו מדווחים על עלות נמוכה יותר לכל פנייה, לא על שיעור פתרון גבוה יותר.
| טענה | מקור | תאריך |
|---|---|---|
| איכות האחזור קובעת את איכות התשובה | https://example.com/rag-eval | 2026-10-12 |
| עלות לפנייה שנפתרה ירדה ב-38% | https://example.com/support-case | 2026-09-28 |
היכן המקורות חלוקים
בנצ'מרקים של ספקים כמעט שווים; בדיקות עצמאיות עדיין רואות פער בהחזרים מרובי שלבים.
מה עדיין לא ידוע
אם הפער ייסגר בכלים טובים יותר או ידרוש מודל גדול יותר.
הקריאות המדויקות
למפתחים: אותו תהליך עבודה כקוד, לפי סדר ההרצה.
הצג קריאות API אמיתיות
שאלו את האינטרנט
Chat מחפש באינטרנט, מדרג מקורות, כותב את התשובה ומחזיר את המשאבים שבהם השתמש. שמרו את שלושת הראשונים: כל שלב עוקב אחרי אחד מהקישורים. העוזר שולח את המפתח פעם אחת וזורק שגיאה מחוץ ל-2xx.
research.ts const BASE = "https://openapi.felo.ai"; const headers = { Authorization: `Bearer ${process.env.FELO_API_KEY}`, "Content-Type": "application/json", }; async function felo<T>(path: string, body?: unknown): Promise<T> { const res = await fetch(`${BASE}${path}`, { method: body ? "POST" : "GET", headers, body: body ? JSON.stringify(body) : undefined, }); if (!res.ok) throw new Error(`${res.status}: ${await res.text()}`); return res.json() as Promise<T>; } type ChatData = { data: { answer: string; resources: { link: string; title: string }[] }; }; export async function answer(question: string) { const chat = await felo<ChatData>("/v2/chat", { query: question }); return { answer: chat.data.answer, sources: chat.data.resources.slice(0, 3) }; }פלט לדוגמה
{ "answer": "Recent developments include …", "sources": [ { "link": "https://example.com/article", "title": "…" } ] }הורידו את העמודים שמאחורי התשובה
קטע לא מספיק לתקציר. הורידו את העמודים כ-Markdown עם מצב קריאה, כדי שהציטוטים והכותרות יישארו בלי רעש ניווט. בקשה חוזרת לאותו URL עשויה להשתמש במטמון החילוץ.
research.ts type ExtractData = { data: { content: string } }; const pages = await Promise.all( sources.map((source) => felo<ExtractData>("/v2/web/extract", { url: source.link, output_format: "markdown", with_readability: true, with_cache: true, }).then((page) => ({ ...source, content: page.data.content })), ), );פלט לדוגמה
// pages[0].content "# Example Article\n\nExtracted article content…"
הוסיפו מה X אומר
חדשות מכסות הכרזות; X מראה במה אנשים נתקלים בפועל. חפשו את שבעת הימים האחרונים ושמרו מחבר וזמן כדי שהתקציר ייחס כל טענה. הגדילו
limitלהרחבה; בכל עמוד תוצאות יש cursor.research.ts type XData = { data: { tweets: { content: string; author: { username: string }; created_at: string; }[]; }; }; const since = Math.floor((Date.now() - 7 * 24 * 60 * 60 * 1000) / 1000); const social = await felo<XData>("/v2/x/tweet/search", { query: question, limit: 10, since_time: since, });פלט לדוגמה
{ "data": { "tweets": [ { "content": "…", "author": { "username": "…" }, "created_at": "…" } ] } }ארכבו את הראיות ב-LiveDoc
צרו LiveDoc והוסיפו את המקורות כמשאבי URL. ה-API מסיר כפילות של URL שכבר נראו ומחזיר resource id לכל URL, כך ששאלות הבאות יכולות לחפש באותן ראיות בלי להוריד שוב.
research.ts type LiveDocData = { data: { short_id: string } }; const doc = await felo<LiveDocData>("/v2/livedocs", { name: `Research: ${question.slice(0, 60)}`, description: "Sources collected while answering the question", }); await felo(`/v2/livedocs/${doc.data.short_id}/resources/urls`, { urls: sources.map((source) => ({ url: source.link, title: source.title })), }); console.log(doc.data.short_id); // keep this for later queriesשאלו את הראיות שוב אחר כך
זה היתרון: השאלה הבאה עושה חיפוש סמנטי ב-LiveDoc ולא באינטרנט הפתוח. העבירו
resource_idsרק כדי להגביל לתת-קבוצה מוכרת.research.ts type Retrieved = { data: { title: string; content: string; score: number }[]; }; async function ask(livedoc: string, query: string) { const hits = await felo<Retrieved>( `/v2/livedocs/${livedoc}/resources/retrieve`, { query }, ); return hits.data.filter((hit) => hit.score >= 0.7); }פלט לדוגמה
[ { "title": "…", "content": "…", "score": 0.92 } ]
מה כלול
- תשובה עם מקורות מ-Chat API והעמודים שמאחוריה
- חילוץ עמודים מלאים כ-Markdown למקורות החזקים
- פוסטים ב-X עם מחבר ותאריך כאות מתרגלים
- LiveDoc ששומר את הראיות ניתנות לחיפוש לשאלות הבאות
מה זה לא עושה
- מקורות ציבוריים בלבד; עמודים בתשלום או עם התחברות עלולים להיכשל
- כיסוי X הוא אות, לא מחקר מייצג
- בלי ראיונות, נתונים פרטיים או מסדי נתונים בתשלום
- כשהראיות דקות התקציר אומר זאת במקום למלא חורים
- ריצה אחת לפרומפט; תזמון בסוכן או ב-cron
שאלות
מאיפה המקורות?
Chat API מחזיר את העמודים שבהם השתמש, Web Fetch ממיר את החזקים ל-Markdown ו-X Search מוסיף פוסטים מתוארכים של מתרגלים. כל פריט שומר את ה-URL.
אפשר לחקור שוק מחוץ לטכנולוגיה?
כן. החליפו את שדה ההיקף בשוק שלכם. לשווקים נישתיים אולי יש פחות מקורות ציבוריים; התקציר מסמן את הפערים במקום לנחש.
הראיות נשמרות אחרי הריצה?
כן, אם שלב LiveDoc רץ. ה-short_id שמוחזר מאפשר לשאלות הבאות לחפש באותם עמודים בלי להוריד שוב.
כמה עולה תקציר אחד?
מחויב בקרדיטים לפי שימוש; התעריפים העדכניים בעמוד המחירים. הפרומפט מבקש אישור לפני הוצאה.
אפשר להריץ כל שבוע?
כן, אבל הפרומפט הזה רץ פעם אחת. שימו את התזמון בסוכן או ב-cron שמריץ את אותו תהליך.
אם המקור מאחורי חומת תשלום?
הוא מדולג ומסומן כלא זמין. התקציר אף פעם לא ממלא חור בעובדה או ציטוט מומצאים.
תהליכי עבודה קשורים
פרסמו סיכום חדשות AI יומי שהצוות באמת קורא
קבלו סיכום עם מקורות, הוסיפו דיוני מתרגלים ב-X, קחו תמלול וידאו, הרכיבו מהדורה ב-Markdown וארכבו ב-LiveDoc.
פתח תהליך עבודהמשרדהפכו עמוד מחקר למצגת
חלצו את העמוד, שמרו כהקשר LiveDoc, תנו ל-PPT Task API לבנות את המצגת ושאלו עד שהקישור מוכן.
פתח תהליך עבודהתמיכהענו על שאלות תמיכה מהתיעוד שלכם
צרו LiveDoc, טענו מרכז עזרה ו-runbook פנימי, אחזרו את הקטעים שעונים לפנייה ותנו למודל לענות רק מהראיות האלה.
פתח תהליך עבודההתאימו
אותו מתכון, מותאם לאיך שאתם באמת מספקים.
כתבו את התקציר לקובץ
אחדו את התשובה, קטעי העמודים וציטוטי X ל-Markdown והעבירו לכלי הדיווח או עשו commit ל-repo התיעוד. שמרו קישורי מקור ליד הטענות — התקציר שווה כמו הציטוטים שלו.
הריצו לפי לוח זמנים
עטפו את `answer()` ב-cron וכתבו כל תקציר לקובץ מתוארך. אותו LiveDoc צובר מקורות, ובשבוע הרביעי הוא עונה עם הראיות של שלושת השבועות הראשונים.
דלגו על LiveDoc
אם יש לכם כבר מסד נתונים, שמרו שם את תשובת הצ׳אט ואת העמודים שחולצו. שלב LiveDoc מיועד לחיפוש, לא לאחסון ברירת מחדל.
המשיכו
עמודי העזר שמאחורי המתכון והשלבים הבאים.