> ## Documentation Index
> Fetch the complete documentation index at: https://docs.upsonic.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# DuckDuckGo

> Web search tool using DuckDuckGo's search engine

## Overview

Web search tool using DuckDuckGo's search engine.

## Basic Usage

```python theme={null}
from upsonic import Agent, Task
from upsonic.tools.common_tools import duckduckgo_search_tool

# Create DuckDuckGo search tool
ddg_search = duckduckgo_search_tool(max_results=5)

# Create task
task = Task(
    description="Search for 'artificial intelligence trends 2024'",
    tools=[ddg_search]
)

# Create agent
agent = Agent(model="anthropic/claude-sonnet-4-5", name="Search Agent")

# Execute
result = agent.print_do(task)
print("Result:", result)
```

## Custom Configuration

```python theme={null}
from upsonic.tools.common_tools import duckduckgo_search_tool
from ddgs import DDGS
from upsonic import Agent, Task

# Create custom client
custom_client = DDGS()

# Configure search tool
ddg_search = duckduckgo_search_tool(
    duckduckgo_client=custom_client,
    max_results=10
)

task = Task(
    description="Search for Python programming tutorials with 10 results",
    tools=[ddg_search]
)

agent = Agent(model="anthropic/claude-sonnet-4-5", name="Custom Search Agent")
result = agent.print_do(task)
print("Result:", result)
```

## Parameters

**Function Parameters:**

* `duckduckgo_client` (DDGS, optional): Custom DuckDuckGo client instance
* `max_results` (int, optional): Maximum number of results to return

**Tool Parameters:**

* `query` (str): The search query string

## Result Format

Search results are returned as a list of dictionaries:

```python theme={null}
[
    {
        "title": "Result Title",
        "href": "https://example.com",
        "body": "Description of the result"
    },
    # ... more results
]
```

## Installation

```bash theme={null}
uv pip install duckduckgo-search
```
