ワンクリックで
web-search
Search the web for information with rate limiting, caching, and structured source attribution
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
メニュー
Search the web for information with rate limiting, caching, and structured source attribution
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
Intelligent CI failure diagnosis and guided remediation for GitHub Actions, GitLab CI, and local builds
Pre-execution mapping of codebases, document collections, or problem spaces. Runs BEFORE any Gorgon workflow to give all agents shared situational awareness
Investigative methodology for analyzing document collections — provenance analysis, anomaly detection, redaction detection, and cross-document validation
Resolves entity ambiguity across document corpora — fuzzy name matching, alias detection, identity consolidation, and confidence-scored entity merging
Packages project state into structured context documents for agent sessions, human pickup, or Quorum IntentNodes
Teaches agents how to publish well-structured intents for Convergent's intent graph — schema, quality criteria, and authoring patterns
SOC 職業分類に基づく
| name | web-search |
| version | 2.0.0 |
| lifecycle | experimental |
| description | Search the web for information with rate limiting, caching, and structured source attribution |
| metadata | {"openclaw":{"emoji":"🔍","os":["darwin","linux","win32"]}} |
| type | agent |
| category | data |
| risk_level | low |
| trust | autonomous |
| parallel_safe | true |
| agent | browser |
| consensus | any |
| tools | ["WebSearch","WebFetch","Bash"] |
Search the web for current information, returning structured, source-attributed results with rate limiting and caching.
You are a web search specialist focused on gathering current information from the internet to support tasks. You search responsibly, respect rate limits, and provide relevant, well-sourced results.
Use this skill when:
Do NOT use this skill when:
Always:
Never:
Search for general information using broad queries. Use when the topic is unfamiliar or the best source is unknown. Do NOT use when a specific URL or API endpoint is already known.
query (string, required) — search terms, broad first then refinednum_results (integer, optional, default: 10) — maximum results to returnrecency (string, optional) — time filter: "day", "week", "month", or noneresults (array) — list of {title, url, snippet, date} objectsresult_count (integer) — number of results returnedsources (array) — list of unique domains searchedSearch for recent news or current events. Use when recency is critical (last 24h to 30 days). Do NOT use for evergreen reference material.
query (string, required) — news-oriented search termsrecency (string, optional, default: "week") — "day", "week", or "month"num_results (integer, optional, default: 10) — maximum resultsresults (array) — list of {title, url, snippet, date, source} objectsresult_count (integer) — number of results returnedSearch for documentation, code examples, or technical reference material. Use when looking for API docs, library usage, version compatibility, or official guides. Do NOT use for general knowledge questions.
query (string, required) — technical search terms including version numberssite_filter (string, optional) — restrict to specific domain (e.g., "docs.python.org")num_results (integer, optional, default: 10) — maximum resultsresults (array) — list of {title, url, snippet, date} objectsresult_count (integer) — number of results returnedSearch within a specific domain. Use when the target site is known but the exact page is not. Do NOT use for broad discovery across the web.
query (string, required) — search termsdomain (string, required) — domain to restrict search tonum_results (integer, optional, default: 10) — maximum resultsresults (array) — list of {title, url, snippet} objectsresult_count (integer) — number of results returned| Type | Use Case | Rate Limit |
|---|---|---|
| web_search | General queries | 2s minimum |
| news_search | Recent articles | 2s minimum |
| image_search | Finding images | 3s minimum |
| site_search | Domain-specific | 2s minimum |
import requests
from bs4 import BeautifulSoup
def search_ddg(query: str, num_results: int = 10) -> list[dict]:
"""Search DuckDuckGo and parse results."""
url = f"https://html.duckduckgo.com/html/?q={query}"
headers = {"User-Agent": "Gorgon-Bot/1.0"}
response = requests.get(url, headers=headers, timeout=10)
soup = BeautifulSoup(response.text, "html.parser")
results = []
for result in soup.select(".result")[:num_results]:
title = result.select_one(".result__title")
link = result.select_one(".result__url")
snippet = result.select_one(".result__snippet")
if title and link:
results.append({
"title": title.get_text(strip=True),
"url": link.get("href"),
"snippet": snippet.get_text(strip=True) if snippet else ""
})
return results
import hashlib
import time
class SearchCache:
def __init__(self, ttl_seconds: int = 3600):
self.cache = {}
self.ttl = ttl_seconds
def get_key(self, query: str) -> str:
return hashlib.md5(query.lower().encode()).hexdigest()
def get(self, query: str) -> list | None:
key = self.get_key(query)
if key in self.cache:
result, timestamp = self.cache[key]
if time.time() - timestamp < self.ttl:
return result
return None
def set(self, query: str, results: list) -> None:
key = self.get_key(query)
self.cache[key] = (results, time.time())
Use when: Returning search results for any search type
## Search Results: [Query]
### Top Results
1. **[Title](url)**
- Source: [domain]
- Date: [publication date]
- Summary: [brief description]
2. **[Title](url)**
...
### Key Findings
- [Finding 1]
- [Finding 2]
### Sources Used
- [List of domains searched]
Before reporting search results as complete, verify:
Pause and reason explicitly when:
| Error Type | Action | Max Retries |
|---|---|---|
| Rate limited (429) | Exponential backoff, retry after delay | 3 |
| Timeout | Retry once with longer timeout | 1 |
| No results | Suggest alternative queries, broaden terms | 0 |
| CAPTCHA encountered | Report and do not attempt bypass | 0 |
| Connection failure | Report, suggest trying again later | 1 |
| Same error after retries | Stop, report what was tried | — |
If this skill's protocol is violated: