Wypróbuj
5 000 wyszukiwań
9,25 USD
1,85 USD/1K wyszukiwań
- Podłącz to do jednego agenta
- To samo API co w największym packu
- Kredyty nigdy nie wygasają
Przypadek użycia · agenci AI · nazwa narzędzia web_search
Agent, który potrafi wyszukiwać, ale nie czytać, zgaduje na podstawie snippetów. Daj mu jedno narzędzie, które robi jedno i drugie: przeszukuje internet na żywo i zwraca pierwsze strony jako czysty Markdown, ponumerowane, żeby model mógł je cytować.
Szybka odpowiedź
Jak dać agentowi AI narzędzie wyszukiwania internetowego, które zwraca treść strony?
Opakuj web search API jako narzędzie, które przyjmuje zapytanie i zwraca numerowane źródła wraz z tekstem ich stron. LLMWebSearch robi to w jednym zapytaniu: uszeregowane wyniki z bieżącego wyszukiwania, z pierwszymi 3 stronami odczytanymi jako Markdown, za jeden kredyt. Ceny zaczynają się od 9,25 USD za 5 000 wyszukiwań i spadają do 1,20 USD/1K wyszukiwań. Bez KYC; płatność kryptowalutą.
| Narzędzie | web_search(query, recent) wywołujący POST https://llmwebsearch.com/api/v1/search |
|---|---|
| Zwraca | Do 20 uszeregowanych wyników; pierwsze 3 z tekstem strony w Markdown |
| Kontrola długości | max_chars na stronę, read za liczbę stron, max_results za listę |
| Koszt | Jeden kredyt opłaca jedno wyszukiwanie: do 20 wyników z rankingiem, przy czym strony z pierwszych 3 są odczytywane i zwracane jako Markdown. Odczyt od 4 do 10 stron to 2 kredyty. Wywołanie zakończone błędem nic nie kosztuje |
| Filtry | Wybierz kraj i język wyników, zakres czasu (ostatni dzień, tydzień, miesiąc lub rok), wyniki web lub news oraz domeny do uwzględnienia lub wykluczenia |
| Gotowe integracje | serwer MCP, OpenAI function calling, LangChain i LlamaIndex, n8n, OpenClaw |
Bo odpowiedź rzadko kryje się w snippecie. Strona wyników daje tytuł i jedną lub dwie linijki wybrane przez wyszukiwarkę. Liczba, data lub zasada, o którą zapytał Twój użytkownik, znajduje się niżej na stronie.
Agent, który widzi tylko snippety, ma dwie złe opcje. Może odpowiedzieć na podstawie fragmentu i ryzykować błąd albo wywołać drugie narzędzie, żeby pobrać każdą stronę. Druga opcja podwaja liczbę rund i definicji narzędzi.
Z LLMWebSearch pierwsze strony przychodzą już odczytane. Nawigacja, reklamy i banery cookies są usunięte, więc model wydaje swoje tokeny na treść. Pozostałe wyniki nadal zawierają swoje snippety, które pomagają modelowi zdecydować, czy szukać ponownie.
Trzymaj schemat mały: jeden wymagany query i co najwyżej jeden lub dwa przełączniki. Modele wywołują proste narzędzia bardziej niezawodnie. Poniższy przykład udostępnia flagę recent, która mapuje się na time_range=month; wszystko inne jest ustalone w Twoim kodzie.
Funkcja zwraca zwykły tekst, nie JSON. Każde źródło zaczyna się od numeru, tytułu i URL, po których następuje jego Markdown. Taki układ sprawia, że cytowania typu [2] są dla modelu naturalne.
Jeśli Twój agent ma już narzędzie o nazwie web_search, jak Claude Code i OpenClaw, nadaj swojemu inną nazwę, np. search_web. Dwa narzędzia o jednej nazwie mylą model.
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))Szukaj, gdy odpowiedź zależy od faktów, które się zmieniają lub których model nie może znać. Ceny, wersje, przepisy, harmonogramy i ostatnie wydarzenia się kwalifikują. Definicje i stabilna wiedza zwykle nie.
Zapisz tę regułę w system prompt i dodaj budżet. Pomagają trzy nawyki:
Trzy parametry decydują, ile tekstu trafia do modelu. read ustala, ile stron jest czytanych, od 0 do 10. max_chars ogranicza każdą stronę, od 500 do 50 000 znaków. max_results ustala, ile wyników jest wymienionych, od 1 do 20.
Dla agenta czatowego read=3 z max_chars=4000 zwraca około 12 000 znaków tekstu strony na wyszukiwanie. To zostawia miejsce na kilka wyszukiwań w jednej rozmowie. Przy zadaniu badawczym, które streszcza na bieżąco, dłuższe strony są w porządku.
Pole word_count mówi, jak długa była pełna strona przed obcięciem. Agent może użyć tej informacji, żeby zdecydować, czy pobrać więcej przez endpoint extract.
Wynik nadal wraca, z tytułem, URL i snippetem, ale bez treści. Pole content_status mówi dlaczego.
blocked_by_robots: robots.txt strony nie pozwala naszemu czytnikowi.blocked_by_site_policy: Witryna, która ustawia Content-Signal: ai-input=no w swoim robots.txt, trzyma treść swoich stron poza treścią Twoich wyników.target_refused: strona odpowiedziała odmową; jej status jest w target_status.fetch_failed lub fetch_timeout: strona nie załadowała się na czas.Gdy witryna odrzuca nasz czytnik, wynik wraca bez treści i ze statusem witryny: nigdy nie rozwiązujemy CAPTCHA, nie logujemy się na konta ani nie obchodzimy blokady czy paywalla. Powiedz agentowi, żeby użył snippetu lub innego źródła, gdy strona wraca pusta. Samo wyszukiwanie to nadal jeden kredyt, niezależnie od tego, co stało się z każdą stroną.
Wbudowane narzędzia są wygodne, ale dają mniej kontroli. Na dzień 22 października 2026 narzędzie web_search OpenAI kosztuje $10 za 1000 wywołań plus treść wyszukiwania rozliczana jako tokeny wejściowe. Wyszukiwanie webowe Claude od Anthropic również kosztuje $10 za 1000 wyszukiwań plus koszty tokenów. Grounding Gemini 3 obejmuje 5000 darmowych wyszukiwań miesięcznie w płatnym planie, potem kosztuje $14 za 1000.
Te narzędzia zwracają głównie napisaną odpowiedź z cytowaniami, a nie surowe strony. Wiążą też Twoje wyszukiwanie z jednym dostawcą modelu. Samodzielne narzędzie działa z dowolnym modelem i pozwala ustawić długość każdej strony. Porównanie wbudowanych narzędzi zawiera pełną tabelę.
Jeden kredyt za wyszukiwanie, gdy read wynosi 3 lub mniej. Asystent używany przez zespół, odpowiadający na 100 pytań dziennie po 4 wyszukiwania każde, wykonuje około 12 000 wyszukiwań miesięcznie. 25 000 wyszukiwań w cenie 41,25 USD pokrywa ten miesiąc i większość następnego.
Agent kodujący używany przez jednego dewelopera może wyszukiwać 20 razy dziennie, czyli około 600 razy miesięcznie. Wtedy 5 000 wyszukiwań w cenie 9,25 USD wystarcza na kilka miesięcy, ponieważ kredyty nigdy nie wygasają. Przewodnik po kosztach pokazuje rachunek dla większych obciążeń.
Prototypuj na 5 000 wyszukiwań; przejdź na 25 000 wyszukiwań lub 100 000 wyszukiwań, gdy agent jest w codziennym użyciu.
5 000 wyszukiwań
9,25 USD
1,85 USD/1K wyszukiwań
25 000 wyszukiwań
41,25 USD
1,65 USD/1K wyszukiwań
100 000 wyszukiwań
145 USD
1,45 USD/1K wyszukiwań
W każdym planie: 3 najlepsze strony odczytane jako Markdown · Filtry kraju, języka, czasu i domeny · Nieudane wywołania nie są naliczane · Kredyty nigdy nie wygasają
Tak, przez mały serwer MCP, który udostępnia wyszukiwanie jako narzędzie. Strona MCP zawiera kod i konfigurację klienta.
Tak. Powyższy schemat to zwykły JSON Schema, który Anthropic, Google, Mistral i frameworki open-source akceptują z drobnymi zmianami. Narzędzie wywołuje tylko nasz endpoint HTTPS.
Licz wywołania w swoim wrapperze narzędzia i zwracaj krótką wiadomość, gdy budżet się wyczerpie. Umieść budżet także w system prompt, żeby model planował z jego uwzględnieniem.
Może próbować. Traktuj tekst strony jako dane: powiedz modelowi w system prompt, żeby ignorował instrukcje znalezione w źródłach, i nigdy nie pozwól, żeby źródło samo wywoływało akcje.
Od 1,20 USD/1K wyszukiwań · bez KYC
Pobierz klucz API