Riset web
Extension pi-web-agent menambahkan satu tool riset, web_explore, yang mencari, mengambil, memberi peringkat sumber, dan menaikkan ke headless browser ketika halaman membutuhkannya.
Dibundel bersama Selesai
Dimuat otomatis bersama Selesai; tidak diperlukan npm install per ekstensi.
Penyiapan dan prasyarat
- Extension ini dibundel bersama Selesai. Dimuat otomatis; tidak perlu diinstal terpisah.
- Dengan akun TokenIn aktif, pencarian default menggunakan TokenIn lalu fallback ke DuckDuckGo. Jika tidak, pencarian menggunakan DuckDuckGo tanpa kredensial; saat DuckDuckGo memblokir pencarian (umum di IP VPS dan datacenter), pencarian otomatis fallback ke endpoint keyless Tavily — set
PI_WEB_AGENT_DISABLE_KEYLESS_FALLBACK=1untuk mematikannya. - Backend berbasis kunci lainnya: SearXNG (URL self-hosted), Brave (
webAgent.braveApiKeyatauPI_WEB_AGENT_BRAVE_API_KEY), You.com (YDC_API_KEY), Exa (EXA_API_KEY), dan Tavily (TAVILY_API_KEY). - Search fanout (opsional): query beberapa backend terkonfigurasi sekaligus dan urutkan halaman yang disepakati lebih dari satu provider di atas, lewat
backends.search.fanoutdengan modeoff/on/auto(autohanya fanout saat provider pertama menghasilkan hasil tipis). - Eskalasi headless menggunakan provider
local-browseryang dibundel. Pastikan browser berbasis Chromium (Chrome, Chromium, Edge, atau Brave) tersedia di sistem jika Anda ingin rendering halaman headless. - Reader langsung: menempelkan URL file/issue/PR GitHub, PDF, atau YouTube membaca konten asli (source mentah, teks PDF terekstrak, atau transkrip) tanpa kunci.
Yang disiapkan
- Mendaftarkan slash command
/web-agentuntuk memeriksa dan mengubah pengaturan presentation dan backend. - Mendaftarkan tool agent
web_exploreuntuk riset web terbatas. - Memuat konfigurasi berlapis dari file config project dan global
pi-web-agent. - Melengkapi system prompt pada
before_agent_startsehingga agent tahu menggunakanweb_exploreuntuk riset web alih-alih command shell atau panggilan HTTP langsung.
Yang dapat dikonfigurasi
Riset web mendukung konfigurasi backend dan presentasi global/proyek berlapis, kunci API disimpan di settings.json, dan kontrol command runtime.
Lokasi dan preseden konfigurasi
- Konfigurasi backend/presentasi global
~/.selesai/agent/extensions/pi-web-agent/config.json
Default terendah; ditimpa oleh konfigurasi proyek. - Konfigurasi backend/presentasi proyek
.selesai/extensions/pi-web-agent/config.json
Menimpa nilai konfigurasi global. - Pengaturan user untuk rahasia
~/.selesai/agent/settings.json
Kunci Brave API dibaca dari webAgent.braveApiKey. Kunci Firecrawl dapat berada di config atau variabel env.
Pengaturan
| Kunci / path | Tipe, default, dan nilai | Deskripsi |
|---|---|---|
presentation.defaultMode | string Default: "compact" Nilai yang diizinkan: "compact", "preview", "verbose" | Mode presentasi default untuk hasil web agent. |
presentation.tools.<web_search|web_fetch|web_fetch_headless|web_explore>.mode | string Default: — Nilai yang diizinkan: "compact", "preview", "verbose" | Penimpaan presentasi per tool. |
backends.search.provider | string Default: "duckduckgo" Nilai yang diizinkan: "duckduckgo", "searxng", "brave" | Provider backend pencarian. |
backends.search.baseUrl | string Default: — | Base URL untuk endpoint searxng atau brave bila diperlukan. |
backends.search.fallback | string Default: — Nilai yang diizinkan: "duckduckgo" | Hanya valid saat provider adalah searxng atau brave. Nilai lain ditolak. |
backends.search.options.categories | string[] Default: — | Kategori SearXNG. Harus tidak kosong bila diberikan. |
backends.search.options.language | string Default: — | Bahasa SearXNG. Tidak boleh kosong bila diberikan. |
backends.search.options.safesearch | number Default: — Nilai yang diizinkan: 0, 1, 2 | Tingkat safe-search SearXNG. |
backends.fetch.provider | string Default: "http" Nilai yang diizinkan: "http", "firecrawl" | Provider backend fetch. |
backends.fetch.baseUrl | string Default: — | Base URL Firecrawl (wajib untuk provider firecrawl). |
backends.fetch.apiKey🔒 | string Default: — | Kunci API Firecrawl. Utamakan variabel env PI_WEB_AGENT_FIRECRAWL_API_KEY. |
backends.fetch.fallback | string Default: — Nilai yang diizinkan: "http" | Hanya valid saat provider adalah firecrawl. |
backends.fetch.options.formats | string[] Default: — | Format output Firecrawl. Harus tidak kosong bila diberikan. |
backends.fetch.options.onlyMainContent | boolean Default: — | Flag Firecrawl hanya konten utama. |
backends.headless.provider | string Default: "local-browser" Nilai yang diizinkan: "local-browser" | Provider eskalasi headless. Satu-satunya nilai yang didukung adalah local-browser. |
webAgent.braveApiKey🔒 | string Default: — | Kunci API Brave Search disimpan di settings.json. Juga menerima variabel env PI_WEB_AGENT_BRAVE_API_KEY. |
Variabel lingkungan
| Kunci / path | Deskripsi |
|---|---|
PI_WEB_AGENT_BRAVE_API_KEY🔒 | Timpa atau sediakan kunci Brave API tanpa menyimpannya di settings.json. |
PI_WEB_AGENT_FIRECRAWL_API_KEY🔒 | Timpa atau sediakan kunci Firecrawl API tanpa menyimpannya di config.json. |
Kontrol command, tool, dan shortcut
| Kunci / path | Deskripsi |
|---|---|
web_explore({ query: "..." }) | Tool agent yang menjalankan pencarian, fetch, dan eskalasi headless. |
/web-agent | Command runtime dengan subcommand settings, show, doctor, changelog, reset project, dan reset global. |
Bukti source
src/extensions/pi-web-agent/src/presentation/types.tssrc/extensions/pi-web-agent/src/presentation/config-store.tssrc/extensions/pi-web-agent/src/backends/config.tssrc/extensions/pi-web-agent/src/backends/settings-reader.tssrc/extensions/pi-web-agent/src/backends/doctor.tssrc/extensions/pi-web-agent/src/backends/factory.ts
Yang dapat dilakukan
- Meminta agent meneliti topik terkini:
What is the current recommended way to handle React Server Actions in Next.js 15?- Memperjelas tindak lanjut dengan memanggil
web_explorelagi dengan query yang lebih sempit. - Mengubah output presentation ke
verboseketika Anda membutuhkan konten halaman penuh, ataucompactketika Anda ingin ringkasan singkat.
Perintah, tool, dan shortcut
| Perintah / tool | Deskripsi |
|---|---|
web_explore({ query: "..." }) | Riset pertanyaan web dengan pass pencarian/fetch terbatas. |
/web-agent [settings|show|doctor|changelog|reset project|reset global] | Kelola konfigurasi presentation dan backend. |
Batasan dan keamanan
- Output dihasilkan dari sumber pihak ketiga; selalu verifikasi fakta kritis terhadap halaman asli.
- Eskalasi headless dapat gagal jika tidak ada browser yang didukung yang terpasang.
- SearXNG memerlukan
backends.search.baseUrldi config; Brave memerlukan API key yang valid dariwebAgent.braveApiKey(preferensi) atauPI_WEB_AGENT_BRAVE_API_KEY; You.com, Exa, dan Tavily memerlukanYDC_API_KEY,EXA_API_KEY, danTAVILY_API_KEY; Firecrawl memerlukanbackends.fetch.baseUrldan menerimabackends.fetch.apiKeyatauPI_WEB_AGENT_FIRECRAWL_API_KEY. - Extension menginstruksikan agen untuk tidak menggunakan command shell seperti
curlatau URL HTTP langsung untuk riset web; ia harus menggunakanweb_explore. - File config presentation hanya menyimpan nilai non-secret. Kunci Brave dapat disimpan per-user di
~/.selesai/agent/settings.json; gunakan environment variables untuk CI atau key sekali pakai. Fallback keyless Tavily tidak mengirim kunci tetapi rate-limited; prefer kunci provider asli untuk penggunaan berat.