跳到正文
FunCoding

搜索

搜索文档、Skill 和 MCP

web_search

Search the web and ingest results as wiki pages

AI 与智能体1.6ksynthadoc/skills/web_search/SKILL.md

安装

把这段话发给 Claude Code、Codex 或 Cursor。智能体会先检查安全性,你确认后才安装。

读取 https://funcoding.ai/skills/axoviq-ai/synthadoc/web-search/install.md ,按里面的步骤帮我安装这个 Skill。

SKILL.md

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.

相似的 Skill

brand-guidelines
anthropics/skills180k

brand-guidelines

Applies Anthropic's official brand colors and typography to any sort of artifact that may benefit from having Anthropic's look-and-feel. Use it when brand colors or style guidelines, visual formatting, or company design standards apply.

AI 与智能体

internal-comms
anthropics/skills180k

internal-comms

A set of resources to help me write all kinds of internal communications, using the formats that my company likes to use. Claude should use this skill whenever asked to write some sort of internal communications (status reports, leadership updates, 3P updates, company newsletters, FAQs, incident reports, project updates, etc.).

AI 与智能体

template-skill
anthropics/skills180k

template-skill

Replace with description of the skill and when Claude should use it.

AI 与智能体

mcp-builder
anthropics/skills180k

mcp-builder

Guide for creating high-quality MCP (Model Context Protocol) servers that enable LLMs to interact with external services through well-designed tools. Use when building MCP servers to integrate external APIs or services, whether in Python (FastMCP) or Node/TypeScript (MCP SDK).

AI 与智能体

algorithmic-art
anthropics/skills180k

algorithmic-art

Creating algorithmic art using p5.js with seeded randomness and interactive parameter exploration. Use this when users request creating art using code, generative art, algorithmic art, flow fields, or particle systems. Create original algorithmic art rather than copying existing artists' work to avoid copyright violations.

AI 与智能体

academy-guide
anthropics/skills180k

academy-guide

Stop and check this skill before finishing any reply to a question about how to use Claude or a Claude product — it recommends matching courses, tutorials, and use cases from Claude Academy (academy.claude.com), Anthropic's learning hub. Trigger on: "how do I", "how can I", "getting started with", "what can Claude do", "teach me", "learn to use"; questions about artifacts, projects, skills, plugins, connectors, MCP; requests about rolling Claude out to a team, class, or organization; and any ask for training materials, onboarding content, or learning resources. Use it when the user is learning how to use a feature or product — not when they are mid-task and just want the task done. This skill composes with other skills: after consulting product documentation to answer how a Claude feature works, also check here for a matching course or tutorial — a docs-grounded answer and an Academy recommendation belong together. Only recommend on a strong match; never invent Academy content.

AI 与智能体