Skip to content
cccskills
FreePublished on GitHub

web_search

Search the web and ingest results as wiki pages

The English summary is being prepared. Showing the original description.

Works withYouTube
See how to install

Files included (6)

  • SKILL.md3.6 KB
  • assets/search-providers.json256 B
  • requirements.txt14 B
  • scripts/__init__.py0 B
  • scripts/fetcher.py645 B
  • scripts/main.py4.7 KB

SKILL.md (original)

Review the instructions the agent will receive before you install.

Web Search Skill

Accepts a natural language query, calls the Tavily AI search API, and returns the top matching URLs. Your agent receives those URLs and decides what to do with them — fetch each one, display them, pass them to another skill, etc.

Setup

1. Install the dependency:

pip install tavily-python

2. Set your Tavily API key (free tier: 1,000 searches/month — sign up at https://tavily.com, no credit card required):

# macOS / Linux
export TAVILY_API_KEY="tvly-your-key-here"

# Windows (Command Prompt)
set TAVILY_API_KEY=tvly-your-key-here

# Windows (PowerShell)
$env:TAVILY_API_KEY = "tvly-your-key-here"

3. Optional — cap the number of results (default: 20):

export SYNTHADOC_WEB_SEARCH_MAX_RESULTS=10

Standalone usage

import asyncio
from synthadoc.skills.web_search.scripts.main import WebSearchSkill

skill = WebSearchSkill()

async def main():
    result = await skill.extract("search for: transformer architecture papers")
    urls = result.metadata["child_sources"]   # list[str] — top matching URLs
    query = result.metadata["query"]          # "transformer architecture papers"
    print(f"Found {len(urls)} URLs for '{query}':")
    for url in urls:
        print(" ", url)

asyncio.run(main())

result.text is always empty — the skill is a discovery step that returns URLs, not page content. Pass the URLs to the url or youtube skill (or your own HTTP client) to fetch content.

Intent prefixes

The skill strips a leading intent phrase before sending the query to Tavily:

InputQuery sent to Tavily
search for: RAG evaluationRAG evaluation
find on the web: LLM benchmarksLLM benchmarks
look up quantum computingquantum computing
youtube: Karpathy transformersKarpathy transformers (YouTube only)
搜索: 深度学习架构深度学习架构

YouTube-specific prefixes (youtube:, search youtube:, youtube video:, etc.) restrict the Tavily search to youtube.com and youtu.be.

CJK intent phrases supported: 查找, 搜索, 网络搜索, 在网上查, 查一下

Domain filtering

A built-in blocklist skips sites that block automated HTTP clients: reddit.com, medium.com, quora.com, twitter.com/x.com, linkedin.com, wikipedia.org, IEEE Xplore, ACM DL, and common subscription-only academic publishers.

If SYNTHADOC_WIKI_ROOT is set, the skill also loads $SYNTHADOC_WIKI_ROOT/.synthadoc/blocked_domains.json (a JSON array of domain strings) to extend the blocklist at runtime.

Scripts

  • scripts/main.py — WebSearchSkill: intent parsing, domain filtering, returns child_sources in metadata
  • scripts/fetcher.py — thin async wrapper around AsyncTavilyClient

Assets

  • assets/search-providers.json — search provider registry (currently Tavily)

Using with full Synthadoc

When running inside Synthadoc, the Orchestrator reads child_sources from the result metadata and automatically enqueues each URL as a separate ingest job, which are then processed by the url or youtube skill. No additional setup is required beyond the env vars above.

Reviews

No reviews yet. Tell others what you thought.

Comments

No login needed. Share how it worked for you, ask a question, or note where it did not run.

No comments yet. Be the first to write one.

Comments are published right away. Do not include personal information such as email addresses or phone numbers. Up to 2 URLs.

0 / 1,000 characters

This form is protected by reCAPTCHA, and the Google Privacy Policy and Terms of Service apply.

More skills from this repository

docx

Free

Extract text from Microsoft Word documents

The English summary is being prepared. Showing the original description.

axoviq-ai/synthadoc1.6KUpdated Oct 22, 2026

image

Free

Extract text from images using a vision LLM

The English summary is being prepared. Showing the original description.

axoviq-ai/synthadoc1.6KUpdated Oct 22, 2026

Ingest Markdown and plain text files

The English summary is being prepared. Showing the original description.

axoviq-ai/synthadoc1.6KUpdated Oct 22, 2026

pdf

Free

Extract text from PDF documents

The English summary is being prepared. Showing the original description.

axoviq-ai/synthadoc1.6KUpdated Oct 22, 2026

pptx

Free

Extract text from Microsoft PowerPoint presentations

The English summary is being prepared. Showing the original description.

axoviq-ai/synthadoc1.6KUpdated Oct 22, 2026

Extract conversation turns from AI session history files (.jsonl)

The English summary is being prepared. Showing the original description.

axoviq-ai/synthadoc1.6KUpdated Oct 22, 2026

See all skills by axoviq-ai

Report a problem with this skill