Deneyin
5.000 arama
$9,25
$1,85/1K arama
- Tek bir ajana bağlayın
- En büyük paketle aynı API
- Krediler hiç sona ermez
Kullanım durumu · AI agent'lar · araç adı web_search
Arama yapabilen ama okuyamayan bir agent snippet'lerden tahmin yürütür. Ona ikisini birden yapan tek bir araç verin: canlı web'de arama yapar ve ilk sayfaları temiz Markdown olarak, modelin atıf yapabilmesi için numaralandırılmış şekilde döndürür.
Kısa yanıt
Bir AI agent'a sayfa içeriği döndüren bir web arama aracını nasıl veririm?
Bir web arama API'sini, sorgu alıp sayfa metinleriyle birlikte numaralı kaynaklar döndüren bir araç olarak sarın. LLMWebSearch bunu tek çağrıda yapar: canlı bir aramadan sıralanmış sonuçlar, ilk 3 sayfa Markdown olarak okunmuş halde, tek kredi karşılığında. Fiyatlar 5.000 arama için $9,25 başlar ve $1,20/1K arama düşer. KYC yok; kripto ile ödeyin.
| Araç | POST https://llmwebsearch.com/api/v1/search çağıran web_search(query, recent) |
|---|---|
| Döndürür | En fazla 20 sıralanmış sonuç; ilk 3'ü sayfa metinleriyle birlikte Markdown olarak |
| Uzunluk kontrolü | sayfa başına max_chars, sayfa sayısı için read, liste için max_results |
| Maliyet | Bir kredi bir aramayı karşılar: en fazla 20 sıralı sonuç, ilk 3'ün sayfaları okunur ve Markdown olarak döndürülür. 4 ile 10 arası sayfa okumak 2 kredi eder. Hata ile biten bir çağrı hiçbir ücrete tabi değildir |
| Filtreler | Sonuçların ülkesini ve dilini, bir zaman aralığını (son gün, hafta, ay veya yıl), web veya haber sonuçlarını ve dahil edilecek ya da hariç tutulacak alan adlarını seçin |
| Hazır entegrasyonlar | MCP sunucusu, OpenAI function calling, LangChain ve LlamaIndex, n8n, OpenClaw |
Çünkü yanıt nadiren snippet'in içindedir. Bir sonuç sayfası, arama motorunun seçtiği bir başlık ve bir iki satır verir. Kullanıcınızın sorduğu sayı, tarih veya kural sayfanın daha aşağısında yer alır.
Yalnızca snippet'leri gören bir agent'ın iki kötü seçeneği vardır. Bir parçadan yanıt verip yanılma riskini alabilir ya da her sayfayı almak için ikinci bir aracı çağırabilir. İkinci seçenek, gidiş-dönüş sayısını ve araç tanımlarını ikiye katlar.
LLMWebSearch ile ilk sayfalar zaten okunmuş olarak gelir. Navigasyon, reklamlar ve çerez bildirimleri kaldırılır, böylece model token'larını içeriğe harcar. Kalan sonuçlar yine snippet'lerini taşır; bu da modelin yeniden arama yapıp yapmayacağına karar vermesine yardımcı olur.
Şemayı küçük tutun: biri zorunlu query ve en fazla bir veya iki anahtar. Modeller basit araçları daha güvenilir çağırır. Aşağıdaki örnek, time_range=month ile eşleşen bir recent bayrağı sunar; geri kalan her şey kodunuzda sabittir.
Fonksiyon JSON değil, düz metin döndürür. Her kaynak bir numara, bir başlık ve bir URL ile başlar, ardından Markdown'ı gelir. Bu düzen, [2] gibi atıfları model için doğal kılar.
Agent'ınız Claude Code ve OpenClaw'da olduğu gibi web_search adlı bir araç zaten içeriyorsa, kendinizinkine search_web gibi başka bir ad verin. Aynı ada sahip iki araç modeli karıştırır.
import json
import os
import requests
API = "https://llmwebsearch.com/api/v1/search"
HEADERS = {"Authorization": "Bearer " + os.environ["LLMWEBSEARCH_API_KEY"]}
# Tool definition in the OpenAI function-calling format; most agent frameworks accept the same JSON schema.
WEB_SEARCH_TOOL = {
"type": "function",
"function": {
"name": "web_search",
"description": "Search the live web. Returns numbered sources; the first ones include the page text in Markdown.",
"parameters": {
"type": "object",
"properties": {
"query": {"type": "string", "description": "A short search query, 3 to 8 words"},
"recent": {"type": "boolean", "description": "True to keep only results from the past month"},
},
"required": ["query"],
},
},
}
def web_search(query, recent=False, read=3, max_chars=4000):
"""Run one search (1 credit with read <= 3) and return compact text the model can cite."""
body = {"q": query, "max_results": 5, "read": read, "max_chars": max_chars}
if recent:
body["time_range"] = "month"
resp = requests.post(API, headers=HEADERS, json=body, timeout=60)
resp.raise_for_status()
lines = []
for r in resp.json()["results"]:
lines.append(f"[{r['position']}] {r['title']} — {r['url']}")
if r.get("content_status") == "ok":
lines.append(r["content"])
else:
lines.append(r.get("snippet", ""))
lines.append("")
return "\n".join(lines)
def run_tool_call(call):
"""Execute a tool call returned by the model and give back the text for the tool message."""
args = json.loads(call["function"]["arguments"])
return web_search(args["query"], recent=args.get("recent", False))Yanıt, değişen veya modelin bilemeyeceği gerçeklere bağlıysa arama yapın. Fiyatlar, sürümler, yasalar, programlar ve son olaylar buna girer. Tanımlar ve değişmeyen bilgiler genellikle girmez.
Bu kuralı system prompt'a yazın ve bir bütçe ekleyin. Üç alışkanlık yardımcı olur:
Modele ne kadar metin ulaşacağını üç parametre belirler. read, kaç sayfanın okunacağını 0 ile 10 arasında belirler. max_chars, her sayfayı 500 ile 50.000 karakter arasında sınırlar. max_results, kaç sonucun listeleneceğini 1 ile 20 arasında belirler.
Bir sohbet agent'ı için read=3 ile max_chars=4000, arama başına yaklaşık 12.000 karakter sayfa metni döndürür. Bu, tek bir konuşmada birkaç aramaya yer bırakır. İlerledikçe özetleyen bir araştırma işi için daha uzun sayfalar sorun değildir.
word_count alanı, tam sayfanın kesilmeden önce ne kadar uzun olduğunu söyler. Agent bunu, extract endpoint ile daha fazla içerik alıp almayacağına karar vermek için kullanabilir.
Sonuç yine de başlığı, URL'si ve snippet'iyle döner, ancak içerik olmadan. Bir content_status alanı nedenini söyler.
blocked_by_robots: sitenin robots.txt dosyası okuyucumuza izin vermiyor.blocked_by_site_policy: robots.txt dosyasında Content-Signal: ai-input=no ayarlayan bir site, sayfalarını sonuçlarınızın içeriğinden uzak tutar.target_refused: site bir ret ile yanıt verdi; durumu target_status içinde.fetch_failed veya fetch_timeout: sayfa zamanında yüklenmedi.Bir site okuyucumuzu geri çevirdiğinde sonuç, içerik olmadan ve sitenin durumuyla döner: CAPTCHA'ları asla çözmeyiz, hesaplara giriş yapmayız veya bir engeli ya da ödeme duvarını aşmaya çalışmayız. Bir sayfa boş döndüğünde agent'a snippet'i veya başka bir kaynağı kullanmasını söyleyin. Her sayfaya ne olursa olsun, aramanın kendisi hâlâ bir kredidir.
Yerleşik araçlar kullanışlıdır ama size daha az kontrol verir. 22 Ekim 2026 itibarıyla OpenAI'ın web_search aracı 1.000 çağrı başına 10 $ artı giriş token'ı olarak faturalanan arama içeriği tutar. Anthropic'in Claude web search aracı da 1.000 arama başına 10 $ artı token maliyetleri tutar. Gemini 3 grounding, ücretli katmanda ayda 5.000 ücretsiz arama içerir, ardından 1.000 arama başına 14 $ tutar.
Bu araçlar çoğunlukla ham sayfaları değil, atıflarla birlikte yazılı bir yanıt döndürür. Ayrıca aramanızı tek bir model sağlayıcısına bağlar. Bağımsız bir araç her modelle çalışır ve her sayfanın uzunluğunu ayarlamanıza olanak tanır. Yerleşik araçlar karşılaştırması tam tabloyu içerir.
read 3 veya daha az olduğunda arama başına bir kredi. Bir ekip tarafından kullanılan ve her biri 4 aramayla günde 100 soruyu yanıtlayan bir asistan, ayda yaklaşık 12.000 arama yapar. $41,25 fiyatıyla 25.000 arama bu ayı ve gelecek ayın büyük bölümünü karşılar.
Tek bir geliştirici tarafından kullanılan bir kodlama agent'ı günde 20 kez, yani ayda yaklaşık 600 kez arama yapabilir. $9,25 fiyatıyla 5.000 arama o zaman birkaç ay dayanır, çünkü krediler hiç sona ermez. Maliyet rehberi daha büyük iş yükleri için hesaplamayı gösterir.
5.000 arama ile prototip yapın; agent günlük kullanıma girdiğinde 25.000 arama veya 100.000 arama paketine geçin.
5.000 arama
$9,25
$1,85/1K arama
25.000 arama
$41,25
$1,65/1K arama
100.000 arama
$145
$1,45/1K arama
Her planda: En iyi 3 sayfa Markdown olarak okunur · Ülke, dil, zaman ve alan adı filtreleri · Başarısız çağrılar ücretlendirilmez · Krediler hiç sona ermez
Evet, aramayı bir araç olarak sunan küçük bir MCP sunucusu aracılığıyla. MCP sayfası kod ve istemci yapılandırmasını içerir.
Evet. Yukarıdaki şema düz JSON Schema'dır; Anthropic, Google, Mistral ve açık kaynak çerçeveler bunu küçük değişikliklerle kabul eder. Araç yalnızca bizim HTTPS endpoint'imizi çağırır.
Araç sarmalayıcınızda çağrıları sayın ve bütçe tükenince kısa bir mesaj döndürün. Bütçeyi system prompt'a da yazın, böylece model buna göre plan yapar.
Deneyebilir. Sayfa metnini veri olarak ele alın: modelin system prompt'unda kaynakların içinde bulunan talimatları yok saymasını söyleyin ve bir kaynağın kendi başına eylemleri tetiklemesine asla izin vermeyin.
$1,20/1K arama'dan · KYC olmadan
API anahtarı alın