Prerequisites

  • Python 3.10 or higher
  • PraisonAI Agents package installed
  • duckduckgo-search package installed

DuckDuckGo Tools

Use DuckDuckGo Tools to perform internet searches with AI agents.

1

Install Dependencies

First, install the required packages:

pip install praisonaiagents duckduckgo-search
2

Import Components

Import the necessary components:

from praisonaiagents import Agent, Task, PraisonAIAgents
from praisonaiagents.tools import duckduckgo
3

Create Agent

Create a search agent:

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],
    self_reflect=False
)
4

Define Task

Define the search task:

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"
)
5

Run Agent

Initialize and run the agent:

agents = PraisonAIAgents(
    agents=[search_agent],
    tasks=[search_task],
    process="sequential"
)
agents.start()

Understanding DuckDuckGo Tools

What are DuckDuckGo Tools?

DuckDuckGo Tools provide internet search capabilities for AI agents:

  • Web search functionality
  • News search
  • Privacy-focused results
  • Region-specific searches

Key Components

Search Agent

Create specialized search agents:

Agent(tools=[duckduckgo])

Search Task

Define search tasks:

Task(description="search_query")

Process Types

Sequential or parallel processing:

process="sequential"

Search Options

Customize search parameters:

region="wt-wt", time="w"

Examples

Basic Search Agent

from praisonaiagents import Agent, Task, PraisonAIAgents
from praisonaiagents.tools 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],
    self_reflect=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 = PraisonAIAgents(
    agents=[search_agent],
    tasks=[search_task],
    process="sequential"
)
agents.start()

Advanced Search with Multiple Agents

# Create search agent
search_agent = Agent(
    name="Researcher",
    role="Search Specialist",
    goal="Gather comprehensive information about topics.",
    tools=[duckduckgo],
    self_reflect=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.",
    self_reflect=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 = PraisonAIAgents(
    agents=[search_agent, analysis_agent],
    tasks=[search_task, analysis_task],
    process="sequential"
)
agents.start()

Best Practices

Common Patterns

Research and Analysis

# 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 = PraisonAIAgents(
    agents=[researcher, analyst],
    tasks=[research_task, analysis_task]
)

Was this page helpful?