173 lines
4.4 KiB
Markdown
173 lines
4.4 KiB
Markdown
---
|
|
name: search-smart
|
|
description: Smart web search with automatic fallback when WebSearch fails
|
|
---
|
|
|
|
# Smart Web Search Command
|
|
|
|
## Command: `/search-smart <query>`
|
|
|
|
Intelligent web search that automatically uses the Web Search Fallback system when the WebSearch API fails or hits limits.
|
|
|
|
## How It Works
|
|
|
|
1. **Primary Attempt**: Uses WebSearch API first
|
|
2. **Automatic Detection**: Identifies when WebSearch fails
|
|
3. **Seamless Fallback**: Switches to bash+curl HTML scraping
|
|
4. **Result Delivery**: Returns formatted results regardless of method
|
|
|
|
## Usage Examples
|
|
|
|
```bash
|
|
# Basic search
|
|
/search-smart AI trends 2025
|
|
|
|
# Search with specific result count
|
|
/search-smart "quantum computing breakthroughs" -n 10
|
|
|
|
# Search with no cache (fresh results)
|
|
/search-smart "latest news today" --no-cache
|
|
```
|
|
|
|
## Features
|
|
|
|
### Automatic Fallback Chain
|
|
1. WebSearch API (primary)
|
|
2. DuckDuckGo HTML scraping
|
|
3. Searx instances
|
|
4. Direct curl commands
|
|
|
|
### Smart Caching
|
|
- 60-minute cache for repeated queries
|
|
- Automatic cache invalidation for time-sensitive searches
|
|
- Cache hit indication in results
|
|
|
|
### Error Recovery
|
|
- Detects API rate limits
|
|
- Handles network timeouts
|
|
- Provides alternative search engines
|
|
- Never fails silently
|
|
|
|
## Implementation
|
|
|
|
```python
|
|
# Python implementation using the plugin
|
|
import sys
|
|
import os
|
|
|
|
# Add plugin path
|
|
plugin_path = os.path.expanduser("~/.config/claude/plugins/autonomous-agent")
|
|
if os.path.exists(plugin_path):
|
|
sys.path.insert(0, os.path.join(plugin_path, "lib"))
|
|
from web_search_fallback import WebSearchFallback
|
|
|
|
def search_smart(query, num_results=10):
|
|
# Try WebSearch first (if available)
|
|
try:
|
|
from web_search import search as web_search
|
|
result = web_search(query)
|
|
if result and len(result) > 0:
|
|
return result
|
|
except:
|
|
pass
|
|
|
|
# Use fallback
|
|
searcher = WebSearchFallback()
|
|
return searcher.search(query, num_results=num_results)
|
|
```
|
|
|
|
## Bash Implementation
|
|
|
|
```bash
|
|
#!/bin/bash
|
|
|
|
function search_smart() {
|
|
local query="$1"
|
|
local num_results="${2:-10}"
|
|
|
|
# Try to find the plugin
|
|
if [ -f "$HOME/.config/claude/plugins/autonomous-agent/lib/web_search_fallback.py" ]; then
|
|
python3 "$HOME/.config/claude/plugins/autonomous-agent/lib/web_search_fallback.py" \
|
|
"$query" -n "$num_results"
|
|
else
|
|
# Direct fallback
|
|
curl -s -A "Mozilla/5.0" \
|
|
"https://html.duckduckgo.com/html/?q=$(echo "$query" | sed 's/ /+/g')" \
|
|
| grep -o '<a[^>]*class="result__a"[^>]*>[^<]*</a>' \
|
|
| sed 's/<[^>]*>//g' \
|
|
| head -n "$num_results"
|
|
fi
|
|
}
|
|
```
|
|
|
|
## Output Format
|
|
|
|
```
|
|
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
🔍 SMART WEB SEARCH RESULTS
|
|
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
|
|
Query: "AI trends 2025"
|
|
Method: Fallback (WebSearch unavailable)
|
|
Results: 5
|
|
|
|
1. The 10 Biggest AI Trends Of 2025
|
|
https://forbes.com/...
|
|
|
|
2. AI Trends to Watch in 2025 & Beyond
|
|
https://analyticsinsight.net/...
|
|
|
|
3. What's Next for AI in 2025
|
|
https://technologyreview.com/...
|
|
|
|
[Cache: Hit] [Time: 0.2s]
|
|
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
```
|
|
|
|
## Integration with Agents
|
|
|
|
This command can be used by:
|
|
- **research-analyzer**: For gathering information
|
|
- **background-task-manager**: For parallel searches
|
|
- **orchestrator**: For user research requests
|
|
|
|
## Troubleshooting
|
|
|
|
### If search fails completely:
|
|
1. Check internet connection
|
|
2. Verify Python 3 is installed
|
|
3. Ensure plugin is properly installed
|
|
4. Try direct curl command as last resort
|
|
|
|
### To clear cache:
|
|
```bash
|
|
rm -rf .claude-patterns/search-cache/
|
|
```
|
|
|
|
### To test fallback directly:
|
|
```bash
|
|
python3 lib/web_search_fallback.py "test query" -v
|
|
```
|
|
|
|
## Best Practices
|
|
|
|
1. **Use for important searches** - Ensures results even if API fails
|
|
2. **Monitor fallback usage** - High fallback rate indicates API issues
|
|
3. **Clear cache periodically** - For time-sensitive information
|
|
4. **Check multiple sources** - Fallback may use different search engines
|
|
|
|
## Performance
|
|
|
|
- **With WebSearch**: 1-2 seconds
|
|
- **With Fallback**: 2-4 seconds
|
|
- **With Cache**: <0.5 seconds
|
|
- **Success Rate**: 99%+ (with fallback)
|
|
|
|
## When to Use
|
|
|
|
Use `/search-smart` when:
|
|
- WebSearch frequently fails
|
|
- You need guaranteed results
|
|
- Searching for current events
|
|
- Rate limits are a concern
|
|
- Cross-platform compatibility needed |