Table of Contents

Class WebSearchTool

Namespace
LMKit.Agents.Tools.BuiltIn.Net
Assembly
LM-Kit.NET.dll

A built-in tool for performing web searches using various search providers.

Enables agents to search the web for information using DuckDuckGo, Brave Search, SearXNG, Tavily, Serper, or custom search providers.

public sealed class WebSearchTool : ITool, IDisposable
Inheritance
WebSearchTool
Implements
Inherited Members

Examples

Example: Basic usage with DuckDuckGo (no API key)

// DuckDuckGo - no API key required
var webSearch = new WebSearchTool();
registry.Register(webSearch);

// Agent can now search the web

Example: Using Brave Search with API key

var webSearch = new WebSearchTool(new WebSearchTool.Options
{
    SearchProvider = WebSearchTool.Provider.Brave,
    ApiKey = "your-brave-api-key"
});
registry.Register(webSearch);

Example: Using self-hosted SearXNG

var webSearch = new WebSearchTool(new WebSearchTool.Options
{
    SearchProvider = WebSearchTool.Provider.SearXNG,
    BaseUrl = "https://your-searxng-instance.com"
});
registry.Register(webSearch);

Example: Using Tavily for AI-optimized search

var webSearch = new WebSearchTool(new WebSearchTool.Options
{
    SearchProvider = WebSearchTool.Provider.Tavily,
    ApiKey = Environment.GetEnvironmentVariable("TAVILY_API_KEY")
});
registry.Register(webSearch);

Remarks

Provider Overview:

ProviderFeatures
DuckDuckGoFree, no API key required. HTML scraping based. Best for general searches.
BraveFree tier available (2000 queries/month). High quality results. Requires API key.
SearXNGSelf-hosted meta-search engine. Privacy-focused. Aggregates multiple sources.
TavilyAI-optimized search API. Excellent for RAG applications. Requires API key.
SerperGoogle search results via API. High accuracy. Requires API key.
CustomBring your own search endpoint. Flexible integration.

Security Considerations:
This tool makes real network requests. Consider security implications when enabling it, especially with untrusted input.

Constructors

WebSearchTool()

Initializes a new instance with default settings (DuckDuckGo provider, no API key required).

WebSearchTool(Options)

Initializes a new instance with custom options.

WebSearchTool(Provider, string)

Initializes a new instance with the specified provider and API key.

WebSearchTool(HttpClient, Options)

Initializes a new instance with an existing HttpClient.

Properties

Description

Gets a concise description of what the tool does.

InputSchema

Gets the JSON Schema defining the expected input arguments.

Name

Gets the stable, unique identifier for this tool.

SearchProvider

Gets the current search provider.

Methods

Dispose()
InvokeAsync(string, CancellationToken)

Executes the tool with the specified JSON arguments.

Events

RawContentReceived

Occurs when raw content is received from a search provider.

This event allows interception of the raw HTML or JSON response before parsing. Useful for logging, caching, or custom processing of full page content.

ResultProcessing

Occurs before a result is processed and added to the response.

Allows inspection or modification of individual results before they are included. Set Cancel to true to exclude a result.