Shopping Agent
Learn how to create AI agents for price comparison and shopping assistance.
Compare prices across stores and surface the best deal with a single Agent using web search.
from praisonaiagents import Agent
from praisonaiagents.tools import duckduckgo
agent = Agent(
name="ShoppingAssistant",
instructions="You are a shopping agent. Compare prices in table format.",
tools=[duckduckgo],
)
agent.start("Compare prices for iPhone 16 Pro Max")Shopping assistant with web search for price comparison across stores.
Quick Start
- Simple Usage
Attach a search tool and name a product.
python from praisonaiagents import Agent from praisonaiagents.tools import duckduckgo agent = Agent( name="ShoppingAssistant", instructions="You are a shopping agent. Compare prices in table format.", tools=[duckduckgo], ) agent.start("Compare prices for iPhone 16 Pro Max") - With Configuration
Enable memory so the agent tracks prices over time.
python from praisonaiagents import Agent from praisonaiagents.tools import duckduckgo agent = Agent( name="ShoppingAssistant", instructions="Compare prices and remember what the user is watching.", tools=[duckduckgo], memory=True, ) agent.start("Compare MacBook Pro prices, then watch for a drop.")
How It Works
Simple
Agents: 1 — Single agent with search tool handles product research and comparison.
Workflow
- Receive product query
- Search multiple stores
- Compare prices and generate report
Setup
pip install praisonaiagents praisonai duckduckgo-search
export OPENAI_API_KEY="your-key"Run — Python
from praisonaiagents import Agent
from praisonaiagents.tools import duckduckgo
agent = Agent(
name="ShoppingAssistant",
instructions="You are a shopping agent. Compare prices in table format.",
tools=[duckduckgo]
)
result = agent.start("Compare prices for iPhone 16 Pro Max")
print(result)Run — CLI
praisonai "Compare MacBook Pro prices" --web-searchRun — agents.yaml
framework: praisonai
topic: Price Comparison
roles:
shopping_assistant:
role: Shopping Specialist
goal: Find the best prices across stores
backstory: You are an expert at finding deals
tools:
- duckduckgo
tasks:
compare_prices:
description: Compare prices for iPhone 16 Pro Max
expected_output: A price comparison tablepraisonai agents.yamlServe API
from praisonaiagents import Agent
from praisonaiagents.tools import duckduckgo
agent = Agent(
name="ShoppingAssistant",
instructions="You are a shopping agent.",
tools=[duckduckgo]
)
agent.launch(port=8080)curl -X POST http://localhost:8080/chat \
-H "Content-Type: application/json" \
-d '{"message": "Find best deals on Sony headphones"}'Advanced Workflow (All Features)
Agents: 1 — Single agent with memory, persistence, structured output, and session resumability.
Workflow
- Initialize session for shopping history
- Configure SQLite persistence for price tracking
- Search and compare with structured output
- Store results in memory for price alerts
- Resume session for ongoing comparisons
Setup
pip install praisonaiagents praisonai duckduckgo-search pydantic
export OPENAI_API_KEY="your-key"Run — Python
from praisonaiagents import Agent, Task, AgentTeam, Session
from praisonaiagents.tools import duckduckgo
from pydantic import BaseModel
class PriceComparison(BaseModel):
product: str
stores: list[str]
prices: list[str]
best_deal: str
recommendation: str
session = Session(session_id="shop-001", user_id="user-1")
agent = Agent(
name="ShoppingAssistant",
instructions="Compare prices and return structured results.",
tools=[duckduckgo],
memory=True
)
task = Task(
description="Compare iPhone 16 Pro Max prices across stores",
expected_output="Structured price comparison",
agent=agent,
output_pydantic=PriceComparison
)
agents = AgentTeam(
agents=[agent],
tasks=[task],
memory=True
)
result = agents.start()
print(result)Run — CLI
praisonai "Compare iPhone prices" --web-search --memory --verboseRun — agents.yaml
framework: praisonai
topic: Price Comparison
memory: true
memory_config:
provider: sqlite
db_path: shopping.db
roles:
shopping_assistant:
role: Shopping Specialist
goal: Find best prices with structured output
backstory: You are an expert at finding deals
tools:
- duckduckgo
memory: true
tasks:
compare_prices:
description: Compare iPhone 16 Pro Max prices
expected_output: Structured price comparison
output_json:
product: string
stores: array
prices: array
best_deal: string
recommendation: stringpraisonai agents.yaml --verboseServe API
from praisonaiagents import Agent
from praisonaiagents.tools import duckduckgo
agent = Agent(
name="ShoppingAssistant",
instructions="Compare prices and return structured results.",
tools=[duckduckgo],
memory=True
)
agent.launch(port=8080)curl -X POST http://localhost:8080/chat \
-H "Content-Type: application/json" \
-d '{"message": "Compare laptop prices", "session_id": "shop-001"}'Monitor / Verify
praisonai "test shopping" --web-search --verboseCleanup
rm -f shopping.dbFeatures Demonstrated
| Feature | Implementation |
|---|---|
| Workflow | Multi-store price comparison |
| DB Persistence | SQLite via memory_config |
| Observability | --verbose flag |
| Tools | DuckDuckGo search |
| Resumability | Session with session_id |
| Structured Output | Pydantic PriceComparison model |
Best Practices
Ask for a comparison table
Instruct the agent to return results as a table with store, price, and link. Structured output makes the best deal obvious at a glance.
Enable memory for price watching
Set memory=True so the agent remembers watched products and flags changes on the next run instead of starting over.
Verify prices are current
Web results can be stale. Ask the agent to note the source date so users know how fresh each quote is.
Pair with Recommendation for discovery
Use the Recommendation Agent to pick what to buy, then hand the chosen item to this agent for a price comparison.