Agent Skills
› karust/openserp
› openserp-search
openserp-search
GitHub通过自托管 OpenSERP 服务器执行实时网页搜索和内容提取,支持多搜索引擎。适用于依赖最新信息、特定引擎排名或页面内容的场景,提供搜索、批量提取及错误处理工作流。
触发场景
需要获取当前实时网络信息
查询特定搜索引擎的排名结果
读取并解析网页具体内容
安装
npx skills add karust/openserp --skill openserp-search -g -y
SKILL.md
Frontmatter
{
"name": "openserp-search",
"description": "Live web search and page reading through a self-hosted OpenSERP server (Google, Bing, Yandex, Baidu, DuckDuckGo, Ecosia). Use when the answer depends on current information, a specific engine's ranking, or the content of web pages, and the OpenSERP MCP tools or a local OpenSERP API are available."
}
Web search with OpenSERP
OpenSERP returns real results pages from named engines, with original ranks, plus page content as Markdown. Use the MCP tools (search, mega_search, any_search, extract, batch_extract, list_engines). Without MCP, call the HTTP API on http://localhost:7000 (or $OPENSERP_BASE_URL).
Workflow
- Search one engine first.
searchwithengine: "google"for general queries. Useyandexfor Russian-language,baidufor Chinese-language queries. Keeplimitat 10 unless you need more. - Pick sources by rank and domain. Prefer official docs, release notes and primary sources over aggregators. Skip
type: "ad". - Read with one
batch_extractcall for the 2-4 URLs you need, not repeatedextractcalls. Avoid archive or changelog index pages: they can be hundreds of KB. Pick the single post or section page instead. - Answer with links. Cite each claim with the URL you read. Mention the engine and rank when ranking matters (SEO questions).
When a search fails
captcha detected,blockedorrate_limitedfrom one engine: do not retry the same engine more than once. Useany_searchwithengines: ["google", "duckduckgo", "bing"], orsearchon another engine.- Results that do not match the query (unrelated brands, dictionary pages, a single keyword) mean the engine served a degraded page. Treat them as a failure and switch engine; do not use them as evidence.
- An empty result set is not proof that nothing exists. Rephrase once or try another engine.
- In
batch_extract, an item withmetadata.errorfailed; the others are still valid.
HTTP fallback
curl "http://localhost:7000/google/search?text=QUERY&limit=10"
curl "http://localhost:7000/mega/search?text=QUERY&engines=google,duckduckgo&mode=any"
curl -X POST "http://localhost:7000/extract/batch" -H "Content-Type: application/json" \
-d '{"urls":["https://example.com/a","https://example.com/b"],"mode":"auto"}'
extract=N adds Markdown for up to N organic results (1-5) in one call. Ads and answer rows are skipped.
版本历史
- 948f0ac 当前 2026-11-02 12:21


