web-research
Deep web research with Brave Search API. Find sources, extract content, and compile comprehensive reports. Use when a user asks to research a topic on the web, find information online, compile a research report, search the internet for sources, do a deep dive on a subject, gather web sources for a report, or investigate a topic thoroughly using multiple online sources.
What this skill does
# Web Research
## Overview
Conduct thorough web research using the Brave Search API. Search for information, fetch and extract content from web pages, cross-reference multiple sources, and compile structured research reports with proper citations. Designed for deep-dive research that goes beyond a single search query.
## Instructions
When a user asks you to research a topic on the web, follow these steps:
### Step 1: Plan the research
Before searching, define a research plan:
- **Central question**: What is the user trying to learn or decide?
- **Sub-questions**: Break the topic into 3-5 specific queries
- **Source types**: What kinds of sources are valuable (academic, news, official docs, forums)?
- **Scope**: How deep should the research go?
Example plan for "Is Rust ready for production web development?":
```
Central question: Can Rust be used for production web APIs today?
Sub-queries:
1. "Rust web frameworks comparison 2025"
2. "Rust production web services case studies"
3. "Rust vs Go web performance benchmarks"
4. "Rust web development challenges limitations"
5. "companies using Rust in production backend"
```
### Step 2: Search with Brave Search API
```python
import requests
import os
BRAVE_API_KEY = os.environ.get("BRAVE_API_KEY")
BRAVE_SEARCH_URL = "https://api.search.brave.com/res/v1/web/search"
def brave_search(query, count=10, freshness=None):
"""Search the web using Brave Search API.
Args:
query: Search query string
count: Number of results (max 20)
freshness: Optional filter: 'pd' (past day), 'pw' (past week),
'pm' (past month), 'py' (past year)
"""
headers = {
"Accept": "application/json",
"Accept-Encoding": "gzip",
"X-Subscription-Token": BRAVE_API_KEY,
}
params = {"q": query, "count": min(count, 20)}
if freshness:
params["freshness"] = freshness
response = requests.get(BRAVE_SEARCH_URL, headers=headers,
params=params, timeout=30)
response.raise_for_status()
results = []
data = response.json()
for item in data.get("web", {}).get("results", []):
results.append({
"title": item["title"],
"url": item["url"],
"description": item.get("description", ""),
"age": item.get("age", ""),
})
return results
```
### Step 3: Extract content from sources
Fetch and extract readable content from the most relevant URLs:
```python
from bs4 import BeautifulSoup
def extract_page_content(url):
"""Fetch a URL and extract the main text content."""
headers = {"User-Agent": "research-bot/1.0.0"}
response = requests.get(url, headers=headers, timeout=30)
response.raise_for_status()
soup = BeautifulSoup(response.text, "html.parser")
# Remove navigation, ads, footers
for tag in soup.select("nav, footer, header, aside, .ad, .sidebar, script, style"):
tag.decompose()
# Try to find the main content area
main = soup.select_one("article, main, .post-content, .entry-content")
if not main:
main = soup.find("body")
if main:
text = main.get_text(separator="\n", strip=True)
# Clean up excessive whitespace
lines = [line.strip() for line in text.split("\n") if line.strip()]
return "\n".join(lines)
return ""
```
### Step 4: Analyze and cross-reference
For each sub-question, synthesize information from multiple sources:
```
Sub-question: "Rust web frameworks comparison"
Source 1 (blog.example.com): Actix-web is the fastest, Axum has the
best developer experience, Rocket is easiest for beginners.
Source 2 (benchmark-site.com): Actix-web handles 650K req/s, Axum
handles 580K req/s. Both outperform Express.js by 10x.
Source 3 (forum discussion): Community consensus is shifting toward
Axum due to its use of the Tokio ecosystem and simpler API.
Synthesis: Axum is emerging as the recommended choice, offering a
balance of performance and ergonomics, with strong ecosystem support.
```
### Step 5: Compile the research report
```markdown
# Research Report: [Topic]
**Date:** [date]
**Queries executed:** [count]
**Sources analyzed:** [count]
## Executive Summary
[2-3 paragraph summary of key findings]
## Detailed Findings
### [Sub-topic 1]
[Findings with inline citations]
Key data points:
- [fact] [Source 1]
- [fact] [Source 2]
### [Sub-topic 2]
[Findings with inline citations]
## Conflicting Information
[Note any areas where sources disagree and why]
## Knowledge Gaps
[Areas where information was insufficient or outdated]
## Sources
1. [Title](URL) - [brief description of what was extracted]
2. [Title](URL) - [brief description]
3. [Title](URL) - [brief description]
...
## Methodology
- Search engine: Brave Search API
- Queries executed: [list each query]
- Date range: [freshness filter used]
- Sources evaluated: [total count]
- Sources included: [count included in report]
```
### Step 6: Save the report
```bash
cat > research_report_[topic].md << 'EOF'
[compiled report]
EOF
```
## Examples
### Example 1: Technology evaluation research
**User request:** "Research whether we should migrate from REST to GraphQL for our mobile app API."
**Research plan:**
1. "GraphQL vs REST mobile app performance"
2. "GraphQL migration challenges production"
3. "companies migrated REST to GraphQL results"
4. "GraphQL disadvantages drawbacks"
5. "REST vs GraphQL mobile bandwidth optimization"
**Output:** Structured report with pros, cons, case studies, and a recommendation based on evidence.
### Example 2: Market research for a new product
**User request:** "Research the current state of AI code review tools. Who are the players and what are the gaps?"
**Research plan:**
1. "AI code review tools comparison 2025"
2. "AI code review market size growth"
3. "best AI code review GitHub" (product-specific)
4. "AI code review limitations complaints"
5. "developer survey code review automation"
**Output:** Competitive landscape analysis with feature matrices, pricing data, user sentiment, and identified market gaps.
### Example 3: Fact-checking and verification
**User request:** "Research whether the claim 'microservices reduce deployment frequency' is supported by evidence."
**Research plan:**
1. "microservices deployment frequency study"
2. "microservices vs monolith deployment speed evidence"
3. "DORA metrics microservices research"
4. "microservices deployment challenges"
**Output:** Evidence-based analysis citing research papers, industry surveys, and case studies both supporting and refuting the claim.
## Guidelines
- Always verify the Brave Search API key is set in the environment. Guide the user to get one at https://brave.com/search/api/ if missing (free tier: 2,000 queries/month).
- Execute multiple search queries per research topic. A single query is rarely sufficient for thorough research.
- Cross-reference claims across at least 2-3 sources before including them in the report.
- Clearly distinguish between facts, opinions, and the report's synthesis.
- Always include source URLs so the user can verify claims. Never present information without attribution.
- Note the publication date of sources. Older sources may contain outdated information.
- Flag conflicting information explicitly rather than silently choosing one version.
- Respect robots.txt and rate-limit page fetches. Add a 1-second delay between requests.
- If a page cannot be fetched (paywall, 403, timeout), note it and rely on the search snippet instead.
- Keep the final report focused and actionable. Raw information dumps are less useful than synthesized insights.
- Save the report in markdown format for easy reading and sharing.
- For time-sensitive topics, use the `freshness` parameter to prioritize recent results.
Related in Backend & APIs
jfrog
IncludedInteract with the JFrog Platform via the JFrog CLI and REST/GraphQL APIs. Use this skill when the user wants to manage Artifactory repositories, upload or download artifacts, manage builds, configure permissions, manage users and groups, work with access tokens, configure JFrog CLI servers, search artifacts, manage properties, set up replication, manage JFrog Projects, run security audits or scans, look up CVE details, query exposures scan results from JFrog Advanced Security, manage release bundles and lifecycle operations, aggregate or export platform data, or perform any JFrog Platform administration task. Also use when the user mentions jf, jfrog, artifactory, xray, distribution, evidence, apptrust, onemodel, graphql, workers, mission control, curation, advanced security, exposures, or any JFrog product name.
cupynumeric-migration-readiness
IncludedPre-migration readiness assessor for porting NumPy to cuPyNumeric. Use BEFORE substantial porting work begins when the user asks whether code will scale on GPU, whether they should migrate to cuPyNumeric, which NumPy patterns transfer cleanly, what must be refactored before porting, or mentions pre-port assessment, scaling analysis, or refactor planning. Inspect the user's source code, look up NumPy usage, cross-reference the cuPyNumeric API support manifest, and distinguish distributed-scaling-friendly patterns from blockers such as unsupported APIs, scalar synchronization, host round-trips, Python/object-heavy control flow, shape/data-dependent branching, and in-place mutation hazards. Produce a verdict of READY, LIGHT REFACTOR, SIGNIFICANT REFACTOR, or NOT RECOMMENDED, with concrete refactor pointers.
alibabacloud-data-agent-skill
IncludedInvoke Alibaba Cloud Apsara Data Agent for Analytics via CLI to perform natural language-driven data analysis on enterprise databases. Data Agent for Analytics is an intelligent data analysis agent developed by Alibaba Cloud Database team for enterprise users. It automatically completes requirement analysis, data understanding, analysis insights, and report generation based on natural language descriptions. This tool supports: discovering data resources (instances/databases/tables) managed in DMS, initiating query or deep analysis sessions, real-time progress tracking, and retrieving analysis conclusions and generated reports. Use this Skill when users need to query databases, analyze data trends, generate data reports, ask questions in natural language, or mention "Data Agent", "data analysis", "database query", "SQL analysis", "data insights".
token-optimizer
IncludedReduce OpenClaw token usage and API costs through smart model routing, heartbeat optimization, budget tracking, and native 2026.2.15 features (session pruning, bootstrap size limits, cache TTL alignment). Use when token costs are high, API rate limits are being hit, or hosting multiple agents at scale. The 4 executable scripts (context_optimizer, model_router, heartbeat_optimizer, token_tracker) are local-only — no network requests, no subprocess calls, no system modifications. Reference files (PROVIDERS.md, config-patches.json) document optional multi-provider strategies that require external API keys and network access if you choose to use them. See SECURITY.md for full breakdown.
resend-cli
IncludedUse this skill when the task is specifically about operating Resend from an AI agent, terminal session, or CI job via the official resend CLI: installing/authenticating the CLI, sending/listing/updating/cancelling emails, batch sends, domains and DNS, webhooks and local listeners, inbound receiving, contacts, topics, segments, broadcasts, templates, API keys, profiles, or debugging Resend CLI/API failures. Trigger on mentions of Resend CLI, `resend`, `resend doctor`, `resend emails send`, `resend domains`, `resend webhooks listen`, `resend emails receiving`, or agent-friendly terminal automation.
alibabacloud-odps-maxframe-coding
IncludedUse this skill for MaxFrame SDK development and documentation navigation on Alibaba Cloud MaxCompute (ODPS). Helps answer MaxFrame API, concept, official example, and supported pandas API questions; create data processing programs; read/write MaxCompute tables; debug jobs (remote or local); and build custom DPE runtime images. Trigger when users mention MaxFrame, MaxCompute with MaxFrame, ODPS table processing, DPE runtime, MaxFrame docs/examples, DataFrame/Tensor operations, or GPU runtime setup. Works for both English and Chinese queries about Alibaba Cloud data processing with MaxFrame.