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

# DuckDuckGo Agent

> Internet search tools using DuckDuckGo for AI agents.

<Note>
  **Prerequisites**

  * Python 3.10 or higher
  * PraisonAI Agents package installed
  * `duckduckgo-search` package installed
</Note>

```python theme={"theme":{"light":"vitesse-light","dark":"vitesse-dark"}}
from praisonaiagents import Agent
from praisonaiagents import duckduckgo

agent = Agent(name="Researcher", tools=[duckduckgo])
agent.start("Find recent news about open-source LLMs")
```

The user needs fresh web results; DuckDuckGo tools fetch answers without a separate search API key.

```mermaid theme={"theme":{"light":"vitesse-light","dark":"vitesse-dark"}}
graph LR
    U[Input] --> A[Agent]
    A --> T[Tool]
    T --> O[Output]

    classDef agent fill:#8B0000,color:#fff
    classDef tool fill:#189AB4,color:#fff

    class A agent
    class U,O tool
    class T tool
```

```mermaid theme={"theme":{"light":"vitesse-light","dark":"vitesse-dark"}}
sequenceDiagram
    participant User
    participant Agent
    participant Feature as DuckDuckGo Agent

    User->>Agent: Request
    Agent->>Feature: Process request
    Feature-->>Agent: Result
    Agent-->>User: Response
```

## DuckDuckGo Tools

Use DuckDuckGo Tools to perform internet searches with AI agents.

<Steps>
  <Step title="Install Dependencies">
    First, install the required packages:

    ```bash theme={"theme":{"light":"vitesse-light","dark":"vitesse-dark"}}
    pip install praisonaiagents duckduckgo-search
    ```
  </Step>

  <Step title="Import Components">
    Import the necessary components:

    ```python theme={"theme":{"light":"vitesse-light","dark":"vitesse-dark"}}
    from praisonaiagents import Agent, Task, AgentTeam
    from praisonaiagents import duckduckgo
    ```
  </Step>

  <Step title="Create Agent">
    Create a search agent:

    ```python theme={"theme":{"light":"vitesse-light","dark":"vitesse-dark"}}
    search_agent = Agent(
        name="SearchAgent",
        role="Internet Search Specialist",
        goal="Perform accurate internet searches and extract relevant information.",
        backstory="Expert in finding and organizing internet data.",
        tools=[duckduckgo],
        reflection=False
    )
    ```
  </Step>

  <Step title="Define Task">
    Define the search task:

    ```python theme={"theme":{"light":"vitesse-light","dark":"vitesse-dark"}}
    search_task = Task(
        description="Search for 'AI trends 2024' and analyze the results.",
        expected_output="List of key AI trends with sources.",
        agent=search_agent,
        name="search_trends"
    )
    ```
  </Step>

  <Step title="Run Agent">
    Initialize and run the agent:

    ```python theme={"theme":{"light":"vitesse-light","dark":"vitesse-dark"}}
    agents = AgentTeam(
        agents=[search_agent],
        tasks=[search_task],
        process="sequential"
    )
    agents.start()
    ```
  </Step>
</Steps>

## Understanding DuckDuckGo Tools

<Card title="What are DuckDuckGo Tools?" icon="question">
  DuckDuckGo Tools provide internet search capabilities for AI agents:

  * Web search functionality
  * News search
  * Privacy-focused results
  * Region-specific searches
</Card>

## Key Components

<CardGroup cols={2}>
  <Card title="Search Agent" icon="user-robot">
    Create specialized search agents:

    ```python theme={"theme":{"light":"vitesse-light","dark":"vitesse-dark"}}
    Agent(tools=[duckduckgo])
    ```
  </Card>

  <Card title="Search Task" icon="list-check">
    Define search tasks:

    ```python theme={"theme":{"light":"vitesse-light","dark":"vitesse-dark"}}
    Task(description="search_query")
    ```
  </Card>

  <Card title="Process Types" icon="arrows-split-up-and-left">
    Sequential or parallel processing:

    ```python theme={"theme":{"light":"vitesse-light","dark":"vitesse-dark"}}
    process="sequential"
    ```
  </Card>

  <Card title="Search Options" icon="sliders">
    Customize search parameters:

    ```python theme={"theme":{"light":"vitesse-light","dark":"vitesse-dark"}}
    region="wt-wt", time="w"
    ```
  </Card>
</CardGroup>

## Examples

### Basic Search Agent

```python theme={"theme":{"light":"vitesse-light","dark":"vitesse-dark"}}
from praisonaiagents import Agent, Task, AgentTeam
from praisonaiagents import duckduckgo

# Create search agent
search_agent = Agent(
    name="WebSearcher",
    role="Search Specialist",
    goal="Find accurate information about specified topics.",
    backstory="Expert in internet research and data collection.",
    tools=[duckduckgo],
    reflection=False
)

# Define search task
search_task = Task(
    description="Search for 'Python programming best practices 2024' and summarize the key points.",
    expected_output="List of best practices with sources.",
    agent=search_agent,
    name="search_python"
)

# Run agent
agents = AgentTeam(
    agents=[search_agent],
    tasks=[search_task],
    process="sequential"
)
agents.start()
```

### Advanced Search with Multiple Agents

```python theme={"theme":{"light":"vitesse-light","dark":"vitesse-dark"}}
# Create search agent
search_agent = Agent(
    name="Researcher",
    role="Search Specialist",
    goal="Gather comprehensive information about topics.",
    tools=[duckduckgo],
    reflection=False
)

# Create analysis agent
analysis_agent = Agent(
    name="Analyzer",
    role="Data Analyst",
    goal="Analyze and synthesize search results.",
    backstory="Expert in data analysis and trend identification.",
    reflection=False
)

# Define tasks
search_task = Task(
    description="Search for latest AI developments in healthcare.",
    agent=search_agent,
    name="healthcare_search"
)

analysis_task = Task(
    description="Analyze the search results and identify key trends.",
    agent=analysis_agent,
    name="trend_analysis"
)

# Run agents
agents = AgentTeam(
    agents=[search_agent, analysis_agent],
    tasks=[search_task, analysis_task],
    process="sequential"
)
agents.start()
```

## Best Practices

<AccordionGroup>
  <Accordion title="Agent Configuration">
    Configure agents with clear roles and goals:

    ```python theme={"theme":{"light":"vitesse-light","dark":"vitesse-dark"}}
    Agent(
        name="Researcher",
        role="Search Specialist",
        goal="Find accurate and relevant information",
        tools=[duckduckgo]
    )
    ```
  </Accordion>

  <Accordion title="Task Definition">
    Define specific and clear tasks:

    ```python theme={"theme":{"light":"vitesse-light","dark":"vitesse-dark"}}
    Task(
        description="Search for 'AI ethics guidelines 2024' and summarize key points",
        expected_output="Structured list of guidelines with sources"
    )
    ```
  </Accordion>
</AccordionGroup>

## Common Patterns

### Research and Analysis

```python theme={"theme":{"light":"vitesse-light","dark":"vitesse-dark"}}
# Research agent
researcher = Agent(
    name="Researcher",
    role="Search Specialist",
    tools=[duckduckgo]
)

# Analysis agent
analyst = Agent(
    name="Analyst",
    role="Information Analyst"
)

# Define tasks
research_task = Task(
    description="Research quantum computing advances",
    agent=researcher
)

analysis_task = Task(
    description="Analyze research findings",
    agent=analyst
)

# Run workflow
agents = AgentTeam(
    agents=[researcher, analyst],
    tasks=[research_task, analysis_task]
)

## Related

<CardGroup cols={2}>
  <Card title="Custom Tools" icon="wrench" href="/docs/tools/custom">
    Build your own agent tools
  </Card>
  <Card title="Tools Overview" icon="toolbox" href="/docs/tools/tools">
    Browse PraisonAI tool documentation
  </Card>
</CardGroup>
```
