websearch-service
Scannednpx machina-cli add skill Lin-A1/skills-agent/websearch_service --openclawFiles (1)
SKILL.md
1.8 KB
功能
通过 SearXNG 搜索引擎获取网页结果,使用 VLM 对网页内容进行智能分析和结构化提取。 具备双层缓存机制(向量语义缓存 + 数据库缓存)。
调用方式
from services.websearch_service.client import WebSearchClient
client = WebSearchClient()
# 健康检查
status = client.health_check()
# 联网搜索(自动使用缓存)
result = client.search("Python async编程", max_results=5)
# 强制刷新(忽略缓存)
result = client.search("最新AI技术", max_results=3, force_refresh=True)
result2 = client.search("openai", max_results=3, force_refresh=True)
# 获取结果
for r in result["results"]:
if r.get("success") and r.get("data"):
print(r["title"], r["data"]["main_content"])
for r in result2["results"]:
if r.get("success") and r.get("data"):
print(r["title"], r["data"]["main_content"])
返回格式
{
"query": "Python async编程",
"total": 3,
"success_count": 3,
"cached_count": 2,
"results": [
{
"index": 1,
"title": "Python异步编程",
"url": "https://...",
"source_domain": "example.com",
"success": true,
"from_cache": true,
"data": {
"title_summary": "Python异步编程概述",
"main_content": "Python异步编程基于asyncio库...",
"key_information": ["asyncio是标准库", "使用async/await语法"],
"credibility": "authoritative",
"relevance_score": 0.92
}
}
],
"search_timestamp": "2025-12-28T18:30:00"
}
Source
git clone https://github.com/Lin-A1/skills-agent/blob/main/services/websearch_service/SKILL.mdView on GitHub Overview
websearch-service 基于 SearXNG 实时联网搜索,结合 VLM 对网页内容进行智能分析与结构化提取。专注获取最新新闻、实时事件及特定事实,并通过向量与数据库双层缓存提升响应速度与可重复性。
How This Skill Works
服务通过 SearXNG 获取网页结果,随后由 VLM 对网页内容进行智能分析与结构化提取,输出包含标题、主内容和关键信息的数据结构。系统内部实现向量语义缓存与数据库缓存,查询时会优先返回缓存结果,必要时再进行网络检索或强制刷新。
When to Use It
- 需要获取最新新闻、实时事件或最新事实时使用
- 进行事实核验,需从多个来源提取并对比关键信息
- 需要从多个网页提取结构化信息以形成摘要或数据点
- 对性能敏感的场景,优先使用缓存以降低延迟
- 需要忽略缓存、强制获取最新数据时使用 force_refresh
Quick Start
- Step 1: 创建 WebSearchClient 实例
- Step 2: 调用 health_check() 验证服务可用性
- Step 3: 调用 search("你的查询", max_results=5) 处理 results 中的 data.main_content
Best Practices
- 阅读结果时优先检查 data 中的 credibility 字段以评估权威性
- 通过 max_results 控制返回数量,避免产生过大数据传输
- 定期调用 health_check 监控服务可用性与延迟
- 将 data.main_content 与 key_information 用于本地摘要和引用
- 对比不同来源的信息,必要时使用 force_refresh 进行重新抓取
Example Use Cases
- 抓取并提取最新科技新闻的要点与来源链接
- 就某个事件生成时间线,并收集多家权威来源的要点
- 对某个断言在不同来源中的一致性进行对比
- 为研究报告自动汇总多页信息中的关键信息
- 实时监控金融/科技领域的突发新闻并提取核心数据
Frequently Asked Questions
Add this skill to your agents