Penyelidikan
Tukar satu soalan kepada brief penyelidikan bersumber
Tanya web, simpan halaman di sebalik jawapan sebagai Markdown, tambah apa yang pengamal katakan di X dan simpan bukti dalam LiveDoc yang boleh dicari semula.
Salin prompt
Ganti medan dalam kurungan siku lalu tampal ke Claude Code, Codex atau AI dengan akses terminal. Ia memasang skill Felo, bertanya sebelum kredit digunakan dan menjalankan aliran kerja.
Sediakan ringkasan penyelidikan bersumber untuk [soalan atau keputusan]. Skop: [pasaran, wilayah, bahasa]. Tempoh: [30 hari lepas / 12 bulan lepas]. Audiens: [siapa yang membaca]. Kedalaman: [imbas satu halaman / ringkasan penuh]. Hasilkan ringkasan Markdown dengan: 1. Jawapan ringkas dalam tiga poin. 2. Jadual bukti: dakwaan, tajuk sumber, URL, tarikh terbit. 3. Perkara yang sumber tidak persetujui. 4. Perkara yang masih tidak diketahui. 5. Senarai sumber penuh. Peraturan: - Setiap dakwaan fakta perlu pautan sumber. Pisahkan fakta, pendapat dan inferens anda. - Jangan reka petikan, metrik, tarikh atau sumber. Data tiada ditulis “Tiada data”, bukan sifar. - Utamakan sumber primer. Gunakan X sebagai isyarat pengamal, bukan bukti. - Tukar tempoh kepada tarikh mula dan tamat yang jelas, nyatakan zon waktu. - Sebelum menggunakan kredit, tunjukkan panggilan API yang dirancang dan tunggu kelulusan saya. - Jangan buat tugas berulang, hantar mesej atau terbitkan apa-apa. - Tulis hasil ke ./research-brief.md dan ringkaskan dalam chat.
Salinan turut menyertakan langkah pemasangan dan peraturan keselamatan.
Apa yang anda dapat
Contoh output daripada satu larian. Bukan penjanaan langsung.
Adakah model kecil menggantikan model besar dalam bot sokongan?
Jawapan ringkas
- Model kecil sudah cukup untuk klasifikasi dan jawapan barisan pertama.
- Halangan utama ialah kualiti capaian, bukan saiz model.
- Pasukan yang bertukar melaporkan kos setiap tiket lebih rendah, bukan kadar penyelesaian lebih tinggi.
| Dakwaan | Sumber | Tarikh |
|---|---|---|
| Kualiti capaian menentukan kualiti jawapan | https://example.com/rag-eval | 2026-10-12 |
| Kos setiap tiket selesai turun 38% | https://example.com/support-case | 2026-09-28 |
Tempat sumber tidak bersetuju
Penanda aras vendor hampir setara; ujian bebas masih melihat jurang pada pemulangan wang berbilang langkah.
Masih tidak diketahui
Sama ada jurang ditutup dengan alat lebih baik atau memerlukan model lebih besar.
Panggilan sebenar
Untuk pembangun: aliran kerja sama sebagai kod, mengikut urutan pelaksanaan.
Tunjukkan panggilan API sebenar
Tanya web
Chat mencari web, menyusun sumber, menulis jawapan dan memulangkan sumber yang digunakan. Simpan tiga teratas: setiap langkah berikut mengikut salah satu pautan. Pembantu menghantar kunci sekali dan membuang ralat di luar 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) }; }Contoh output
{ "answer": "Recent developments include …", "sources": [ { "link": "https://example.com/article", "title": "…" } ] }Muat turun halaman di sebalik jawapan
Petikan tidak cukup untuk brief. Muat turun halaman sebagai Markdown dengan mod bacaan, supaya petikan dan tajuk kekal tanpa gangguan navigasi. Meminta URL sama semula mungkin menggunakan cache pengekstrakan.
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 })), ), );Contoh output
// pages[0].content "# Example Article\n\nExtracted article content…"
Tambah apa kata X
Berita meliputi pengumuman; X menunjukkan apa yang orang hadapi dalam praktik. Cari tujuh hari terakhir dan simpan pengarang serta masa supaya brief boleh mengatribusikan setiap dakwaan. Naikkan
limituntuk meluaskan; setiap halaman hasil ada 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, });Contoh output
{ "data": { "tweets": [ { "content": "…", "author": { "username": "…" }, "created_at": "…" } ] } }Arkibkan bukti dalam LiveDoc
Cipta LiveDoc dan tambah sumber sebagai sumber URL. API menyahduplikasi URL yang sudah dilihat dan memulangkan resource id setiap URL, jadi soalan kemudian boleh mencari bukti sama tanpa memuat turun semula.
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 queriesTanya semula bukti kemudian
Inilah faedahnya: soalan seterusnya membuat carian semantik pada LiveDoc bukan web terbuka. Berikan
resource_idshanya untuk mengehadkan kepada subset yang diketahui.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); }Contoh output
[ { "title": "…", "content": "…", "score": 0.92 } ]
Termasuk
- Jawapan bersumber daripada Chat API dan halaman di sebaliknya
- Pengekstrakan halaman penuh sebagai Markdown untuk sumber terkuat
- Post X dengan pengarang dan tarikh sebagai isyarat pengamal
- LiveDoc yang mengekalkan bukti boleh dicari untuk soalan kemudian
Apa yang tidak dilakukan
- Sumber awam sahaja; halaman berbayar atau login mungkin gagal
- Liputan X ialah isyarat, bukan tinjauan wakil
- Tiada temu bual, data peribadi atau pangkalan data berbayar
- Apabila bukti nipis, brief menyatakannya daripada mengisi ruang
- Satu larian setiap prompt; penjadualan di ejen atau cron anda
Soalan
Dari mana sumbernya?
Chat API memulangkan halaman yang digunakan, Web Fetch menukar yang terkuat kepada Markdown dan X Search menambah post bertarikh pengamal. Setiap item menyimpan URL.
Boleh kaji pasaran di luar teknologi?
Boleh. Ganti medan skop dengan pasaran anda. Pasaran niche mungkin kurang sumber awam; brief menandakan ruang itu daripada meneka.
Bukti kekal selepas larian?
Ya, jika langkah LiveDoc berjalan. short_id yang dipulangkan membolehkan soalan seterusnya mencari halaman sama tanpa memuat turun semula.
Berapa kos satu brief?
Dibilkan dalam kredit mengikut penggunaan; kadar semasa di halaman harga. Prompt meminta kelulusan sebelum berbelanja.
Boleh jalankan setiap minggu?
Boleh, tetapi prompt ini berjalan sekali. Letakkan penjadualan dalam ejen atau cron yang menjalankan aliran sama.
Jika sumber di sebalik paywall?
Dilangkau dan ditanda tidak tersedia. Brief tidak pernah mengisi ruang dengan fakta atau petikan rekaan.
Aliran kerja berkaitan
Terbitkan ringkasan berita AI harian yang benar-benar dibaca pasukan
Dapatkan ringkasan bersumber, tambah perbualan pengamal di X, ambil transkrip video, susun edisi Markdown dan arkibkan dalam LiveDoc.
Buka aliran kerjaPejabatTukar halaman penyelidikan kepada pembentangan
Ekstrak halaman, simpan sebagai konteks LiveDoc, biar PPT Task API membina deck dan tanya sehingga pautan siap.
Buka aliran kerjaSokonganJawab soalan sokongan dari dokumentasi anda sendiri
Cipta LiveDoc, muat pusat bantuan dan runbook dalaman, ambil bahagian yang menjawab tiket dan biar model menjawab hanya dari bukti itu.
Buka aliran kerjaSesuaikan
Resipi sama, disesuaikan dengan cara anda benar-benar menyampaikan.
Tulis brief ke fail
Gabungkan jawapan, petikan halaman dan petikan X menjadi Markdown lalu berikan kepada alat laporan atau commit ke repo docs. Kekalkan pautan sumber dekat dakwaan — brief bernilai sebanyak petikannya.
Jalankan mengikut jadual
Bungkus `answer()` dalam cron dan tulis setiap brief ke fail bertarikh. LiveDoc sama mengumpul sumber, minggu keempat menjawab dengan bukti tiga minggu pertama.
Langkau LiveDoc
Jika sudah ada pangkalan data, simpan jawapan chat dan halaman yang diekstrak di sana. Langkah LiveDoc untuk carian, bukan storan lalai.
Teruskan
Halaman rujukan di sebalik resipi ini dan langkah seterusnya.