# Sayfa metnini geri getiren, AI agent'lar için bir web arama aracı

> Bir AI agent'a sıralanmış sonuçlar döndüren ve ilk sayfaları Markdown olarak okuyan bir web arama aracı verin. Araç şeması. KYC yok, kripto.

- URL: https://llmwebsearch.com/tr/use-cases/ai-agents/
- Son güncelleme: 2026-10-22
- Yayıncı: LLMWebSearch (https://llmwebsearch.com)

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.

## LLMWebSearch bir agent aracı olarak

| Özellik | Değer |
| --- | --- |
| 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](https://llmwebsearch.com/tr/docs/mcp/), [OpenAI function calling](https://llmwebsearch.com/tr/docs/openai/), [LangChain ve LlamaIndex](https://llmwebsearch.com/tr/docs/langchain/), [n8n](https://llmwebsearch.com/tr/docs/n8n/), [OpenClaw](https://llmwebsearch.com/tr/docs/openclaw/) |

## Bir agent neden yalnızca snippet değil, sayfa metnine de ihtiyaç duyar?

Çü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.

## Arama aracı nasıl tanımlanmalı?

Ş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.

*Python: OpenAI tarzı function calling için web_search aracı*

```python
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))
```

## Bir agent ne zaman arama yapmalı ve ne sıklıkla?

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:

- **Aramadan önce plan yapın.** Modelden önce sorgularını yazmasını isteyin. İki kesin sorgu, beş belirsiz sorgudan iyidir.
- **Çağrıları sınırlayın.** Örneğin kullanıcı turu başına dört aramaya izin verin. Sınırı yalnızca araştırma görevleri için yükseltin.
- **Kaynaklar hemfikir olunca durun.** Üç bağımsız sayfa aynı şeyi söylüyorsa, agent yanıt verebilir.

## Bağlam penceresini nasıl kontrol altında tutarım?

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](https://llmwebsearch.com/tr/docs/extract/) ile daha fazla içerik alıp almayacağına karar vermek için kullanabilir.

## Bir sayfa okunamadığında ne olur?

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.

## Neden modelin yerleşik arama aracını kullanmamalıyım?

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ı](https://llmwebsearch.com/tr/compare/built-in-web-search-tools/) tam tabloyu içerir.

## LLMWebSearch üzerinde bir agent çalıştırmanın maliyeti nedir?

`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](https://llmwebsearch.com/tr/guides/ai-agent-web-search-cost/) daha büyük iş yükleri için hesaplamayı gösterir.

## Bir agent için hangi paket uygundur?

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.

| Plan | Miktar | Fiyat | Birim fiyat |
| --- | --- | --- | --- |
| Deneyin | 5.000 arama | $9,25 | $1,85/1K arama |
| Geliştirici | 25.000 arama | $41,25 | $1,65/1K arama |
| Üretim | 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

**Ödeme yapmadan önce**

- Minimum bakiye yükleme $25. Kripto ile bir kez bakiye yükleyin, ardından bakiyenizden dilediğiniz planı satın alın.
- Bakiyenizdeki para süresi dolmaz ve istediğiniz zaman arama kredisi satın alır. Bir paket minimum yükleme tutarından daha ucuz olduğunda, yalnızca bu minimuma ulaşmak için ödediğiniz kısım, ödeme tarihinden itibaren 30 gün içinde talep üzerine USDT veya USDC olarak size geri döner; yeter ki henüz harcanmamış olsun. Bakiyenin kalanı, yasa gerektirmedikçe iade edilmez.
- Ödemeniz blokzincirde kontrol edildiğinde bakiyenize aktarılır. Tipik ağ onay süresi: BTC ≈ 20 dk · USDT TRC-20 ≈ 1 dk · USDT ERC-20 ≈ 5 dk · USDC ERC-20 ≈ 5 dk · ETH ≈ 5 dk · SOL ≈ 1 dk · LTC ≈ 15 dk

## AI agent'ları: sık sorulan sorular

### LLMWebSearch aracını Claude Desktop, Cursor veya Claude Code'a ekleyebilir miyim?

Evet, aramayı bir araç olarak sunan küçük bir MCP sunucusu aracılığıyla. [MCP sayfası](https://llmwebsearch.com/tr/docs/mcp/) kod ve istemci yapılandırmasını içerir.

### Araç OpenAI dışındaki modellerle çalışır mı?

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.

### Bir agent'ın çok fazla arama yapmasını nasıl durdururum?

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.

### Bir sayfanın metni agent'ıma talimat verebilir mi?

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.

## Kaynaklar

1. [API fiyatlandırması (web arama aracı)](https://developers.openai.com/api/docs/pricing) — OpenAI (read 2026-10-22)
2. [Fiyatlandırma (web arama aracı)](https://platform.claude.com/docs/en/about-claude/pricing) — Anthropic (read 2026-10-22)
3. [Gemini Developer API fiyatlandırması](https://ai.google.dev/gemini-api/docs/pricing) — Google (read 2026-10-22)

---

LLMWebSearch: LLMWebSearch, AI ajanları için bir web arama API'sidir; sıralanmış sonuçları en iyi sayfaların Markdown içeriğiyle birlikte döndürür ve kripto ile ödenir, kimlik yüklemesi gerekmez. $1,20/1K arama kredilik ön ödemeli krediler hiç süresi dolmaz. KYC yok — kimlik yok, selfie yok, belge yok. Kripto ile ödeme.
