Web search with built-in usage tracking and quota management for Tavily API (free tier: 1000 searches/month).
# Basic search (Markdown output, default)
python3 {baseDir}/scripts/tavily_search.py --query "AI news today"
# With short answer
python3 {baseDir}/scripts/tavily_search.py --query "what is RAG" --include-answer
# JSON output
python3 {baseDir}/scripts/tavily_search.py --query "python tutorial" --format raw
python3 {baseDir}/scripts/tavily_search.py --query "python tutorial" --format brave
# Skip counting (for testing)
python3 {baseDir}/scripts/tavily_search.py --query "test" --no-count
| Argument | Default | Description |
|---|---|---|
| ---------- | --------- | ------------- |
--query | (required) | Search query string |
--max-results | 5 | Number of results (1-10), configurable via config file |
--format | md | Output: raw (JSON), brave (JSON), md (Markdown) |
--include-answer | false | Include AI-generated short answer |
--search-depth | basic | basic or advanced, configurable via config file |
--no-count | false | Skip usage tracking (still consumes API quota) |
Edit config/config.json to customize default settings:
{
"limit": 900,
"warningThreshold": 800,
"searchDepth": "basic",
"defaultMaxResults": 5
}
| Setting | Description | Default |
|---|---|---|
| --------- | ------------- | --------- |
limit | Monthly limit, blocks search when reached | 900 |
warningThreshold | Warning threshold, shows alert when reached | 800 |
searchDepth | Default search depth | basic |
defaultMaxResults | Default number of results | 5 |
data/tavily-usage.jsonlimit is reached, search is blocked with a message suggesting web_fetch as alternativewarningThreshold is reached, a reminder is appended to search resultsmd (default)Human-readable Markdown list:
1. Title
https://example.com
- Snippet text...
rawFull JSON with query, answer?, results: [{title, url, content}]
braveBrave-like format: {query, results: [{title, url, snippet}], answer?}
TAVILY_API_KEY~/.openclaw/.env file: TAVILY_API_KEY=tvly-...Get a free API key at https://tavily.com
tavily-metered-search/
├── SKILL.md # Skill documentation
├── scripts/
│ └── tavily_search.py # Main search script
├── config/
│ └── config.json # User configuration
└── data/
└── tavily-usage.json # Runtime state (auto-maintained)
--max-results small (3-5) to reduce token usage--no-count for testing without affecting quota共 1 个版本