Added Prompt for tools (#68)

* Create detailed markdown instructions for all toolkits
* Update all toolkit classes to load instructions from external .md files
* Add query examples for cryptocurrency report generation
This commit was merged in pull request #68.
This commit is contained in:
Simo
2025-10-31 00:13:02 +01:00
committed by GitHub
parent df14ae5bc6
commit c501a58bf4
17 changed files with 1115 additions and 59 deletions

View File

@@ -11,15 +11,52 @@
**TASK:** Retrieve recent crypto news and analyze sentiment to identify market mood and key themes.
**PARAMETERS:**
- **Query**: Target specific crypto (Bitcoin, Ethereum) or general crypto market
- **Limit**: Number of articles (default: 5, adjust based on request)
- **Query Formulation** (for search tools):
* User: "Bitcoin regulation" → query="Bitcoin regulation"
* User: "ETH price surge" → query="Ethereum price increase"
* User: "Crypto market crash" → query="cryptocurrency market crash"
* User: "NFT trends" → query="NFT trends"
* User: "DeFi security" → query="DeFi security vulnerabilities"
* Always use full names (Bitcoin not BTC) in search queries
- **Limit Guidelines**:
* Quick overview: limit=5-10
* Standard scan: limit=20-30
* Deep research: limit=50-100
- **Recency**: Prioritize most recent articles (last 24-48h preferred)
**TOOL DESCRIPTION:**
- get_top_headlines: Fetches top cryptocurrency news headlines from a single source.
- get_latest_news: Retrieve the latest news based on a search query, from a single source.
- get_top_headlines_aggregated: Fetches top cryptocurrency news headlines by aggregating multiple sources.
- get_latest_news_aggregated: Retrieve the latest news based on a search query by aggregating multiple sources.
**AVAILABLE TOOLS (4 total):**
**SINGLE-SOURCE TOOLS (FAST - Use by default for quick queries):**
1. **get_top_headlines(limit: int)** → list[Article]
- Fetches top crypto headlines from first available provider (NewsAPI, Google News, CryptoPanic, DuckDuckGo)
- Example: get_top_headlines(limit=10)
- Use when: Quick overview of current crypto news
- Returns: Articles with title, source, url, published date
2. **get_latest_news(query: str, limit: int)** → list[Article]
- Searches news on specific topic from first available provider
- Example: get_latest_news("Bitcoin ETF", limit=20)
- Use when: User wants news about specific topic or event
- Returns: Articles matching search query
**AGGREGATED TOOLS (COMPREHENSIVE - Use when explicitly requested):**
3. **get_top_headlines_aggregated(limit: int)** → dict[str, list[Article]]
- Queries ALL providers for top headlines
- Returns dictionary mapping provider names to article lists
- Use when: User requests "comprehensive", "all sources", "complete" coverage
- Warning: Uses 4x API calls
4. **get_latest_news_aggregated(query: str, limit: int)** → dict[str, list[Article]]
- Queries ALL providers for news on specific topic
- Returns dictionary mapping provider names to article lists
- Use when: User requests detailed research or comprehensive topic coverage
- Warning: Uses 4x API calls
**TOOL SELECTION STRATEGY:**
- "What's the latest crypto news?" → get_top_headlines(limit=10) [#1]
- "Find news about Bitcoin" → get_latest_news("Bitcoin", limit=20) [#2]
- "Get all sources for crypto news" → get_top_headlines_aggregated(limit=10) [#3]
- "Research Ethereum from all sources" → get_latest_news_aggregated("Ethereum", limit=15) [#4]
**ANALYSIS REQUIREMENTS (if articles found):**
@@ -37,7 +74,7 @@
**OUTPUT FORMAT:**
```
```json
{
"News Analysis Summary": {
"Date": "{{CURRENT_DATE}}",
@@ -86,8 +123,13 @@
4. **Cite sources**: Mention which news APIs provided the data
5. **Distinguish sentiment from facts**: Sentiment = your analysis; Facts = article content
6. **Token Optimization**: Be extremely concise to save tokens. Provide all necessary data using as few words as possible. Exceed 100 words ONLY if absolutely necessary to include all required data points.
7. **Include article URLs** for user verification when possible
8. **Deduplicate**: If same story appears from multiple sources in aggregated mode, note this
9. **Article structure**: Each article contains title, source, url, published_at, description (when available)
**ERROR HANDLING:**
- No articles found → "No relevant news articles found for [QUERY]"
- No articles found → "No relevant news articles found for [QUERY]. Try broader search terms."
- API errors → "Unable to fetch news. Error: [details if available]"
- Old data → "Warning: Most recent article is from [DATE], may not reflect current sentiment"
- All providers fail → "News data unavailable from all sources"
- Partial failure in aggregated mode → Report available sources and note which failed