Xyz
v1.0.0网络搜索工具,支持多种搜索引擎后端(DuckDuckGo、Tavily、Bing、Google、SearXNG)。使用场景:当用户需要搜索网络上的实时信息、查找最新资料、获取在线资源时调用。通过命令行执行搜索查询并返回结构化的搜索结果(标题、链接、摘要)。
Security Scan
OpenClaw
Suspicious
medium confidencePurpose & Capability
名称和描述表示这是一个多后端的网络搜索工具;脚本(scripts/web_search.py)确实实现了对 DuckDuckGo、Tavily、Bing、Google、SearXNG 的查询,功能上与声明一致。但注册表元数据声明“无需环境变量/凭证”,与脚本和 SKILL.md 中为非 DuckDuckGo 提供商明确要求 API Key 的做法不符。文档中还宣称“仅为工作流描述且无执行脚本”,但包中包含可执行脚本——这些不一致降低了信任度。
Instruction Scope
SKILL.md 给出了如何通过命令行运行脚本的说明,但示例使用 python scripts/xyz.py,而仓内实际脚本是 scripts/web_search.py(入口名不一致)。SKILL.md 同时包含声明“无执行脚本”“依赖外部 web-search 技能”和“集成 LLM(GPT-4o)”等高层工作流描述,和实际附带脚本之间有混合:文档既像是一个仅描述工作流的说明,又像一个可执行技能的手册。脚本会对外发起 HTTP 请求(到 DuckDuckGo、Tavily API、Bing、Google、SearxNG);这些网络调用符合搜索目的,但因为文档中并未清晰声明何时/如何使用哪些后端且元数据未列出任何必需环境变量,存在在不知情情况下尝试访问外部服务或使用未经授权的凭据的风险。
Install Mechanism
没有 install spec(instruction-only),因此不会在安装阶段从外部 URL 下载或执行额外代码,这降低了供应链风险。但包中包含可执行脚本文件:scripts/web_search.py。脚本主要使用标准库,并可可选调用第三方库 duckduckgo_search(若已安装)。总体上没有高风险的安装机制,但“说明称无可执行脚本”与实际包含脚本之间的矛盾需要澄清。
Credentials
注册表元数据列出“Required env vars: none”,但 SKILL.md 与脚本明确定义并依赖多个环境变量(TAVILY_API_KEY、BING_API_KEY、GOOGLE_API_KEY、GOOGLE_CSE_ID、SEARXNG_URL、SEARCH_PROVIDER 等)。此不一致意味着安装者可能没有意识到需要提供或限制这些凭据。请求的环境变量(多个外部搜索 API key)在该功能下是合理的(用于非免费后端),但它们应在元数据中明确列出并仅在需要时请求。
Persistence & Privilege
flags 中没有 always:true,也没有声明会修改其他技能或系统配置。脚本本身不会要求长期驻留或修改平台配置。自主调用(disable-model-invocation=false)是默认行为;组合当前其他不一致不会直接提升特权,但应谨慎在允许自动调用之前确认凭据使用和网络目标。
What to consider before installing
要点与建议:
1) 在安装或运行前核实不一致项:注册表声明“无需环境变量”但文档/脚本需要若干 API Key;文档示例的脚本名 (scripts/xyz.py) 与仓内实际脚本 (scripts/web_search.py) 不一致——确认真正的入口和调用方式。
2) 最小化凭据暴露:如果只需 DuckDuckGo(默认),无需提供任何第三方 API Key;只有在明确需要并信任相应服务时才配置 BING/GOOGLE/TAVILY 的密钥。
3) 审查网络目标:脚本会向公共 API(api.tavily.com、api.bing.microsoft.com、www.googleapis.com)和任意 SEARXNG_URL 发起请求,确认这些端点是你期望的目标,不要在不受信任环境下将 SEARXNG_URL 指向外部服务。
4) 运行环境隔离:在安全沙箱或受控环境(无敏感凭据)中运行初次测试,检查实际行为与文档一致,确认没有未声明的数据外传。
5) 请求补充信息或修正:建议要求发布者修正注册表元数据以列出必要的环境变量、修复 SKILL.md 中的入口文件名/“无执行脚本”声明,并提供完整脚本的未截断源以供审查。
额外信息可以提高置信度:完整未截断的 scripts/web_search.py 源代码(以确认没有隐藏的外连或数据泄漏逻辑);发布者将元数据同步修正后的清单;以及明确的运行示例和日志,证明仅在需要时才使用外部 API。Like a lobster shell, security has layers — review code before you run it.
latest
xyz
概述
网络搜索技能,为代理系统提供实时网络搜索能力。支持 5 种搜索引擎后端,默认使用 DuckDuckGo(免费,无需 API Key),也可切换至 Tavily、Bing、Google 或 SearXNG。
使用方法
基本用法
python scripts/xyz.py "<query>"
命令行参数
| 参数 | 说明 |
|---|---|
<query> | 搜索查询文本(必填) |
--json | 以 JSON 格式输出结果 |
--provider <name> | 指定搜索引擎:duckduckgo、tavily、bing、google、searxng |
--max <n> | 最大返回结果数(默认: 10) |
使用示例
# 基本搜索
python scripts/xyz.py "Python 异步编程教程"
# 使用 JSON 格式输出
python scripts/xyz.py "机器学习入门" --json
# 指定搜索引擎和结果数量
python scripts/xyz.py "最新科技新闻" --provider bing --max 5
支持的搜索引擎
| 引擎 | 说明 | 所需环境变量 |
|---|---|---|
duckduckgo (默认) | 免费,无需 API Key。优先使用 duckduckgo_search 库,未安装时回退到 HTML 解析 | 无 |
tavily | Tavily 搜索 API | TAVILY_API_KEY |
bing | Bing Web Search API | BING_API_KEY |
google | Google Custom Search API | GOOGLE_API_KEY、GOOGLE_CSE_ID |
searxng | 自托管 SearXNG 实例 | SEARXNG_URL(默认 http://localhost:8080) |
环境变量
| 变量名 | 说明 | 默认值 |
|---|---|---|
SEARCH_PROVIDER | 默认搜索引擎 | duckduckgo |
SEARCH_MAX_RESULTS | 默认最大返回结果数 | 10 |
SEARCH_TIMEOUT | HTTP 请求超时时间(秒) | 30 |
TAVILY_API_KEY | Tavily API 密钥 | — |
BING_API_KEY | Bing Search API 密钥 | — |
GOOGLE_API_KEY | Google Custom Search API 密钥 | — |
GOOGLE_CSE_ID | Google 自定义搜索引擎 ID | — |
SEARXNG_URL | SearXNG 实例地址 | http://localhost:8080 |
输出格式
文本格式(默认)
每条结果包含序号、标题、链接和摘要:
搜索 "Python 异步编程" 找到 3 条结果:
[1] Python asyncio 完整指南
链接: https://example.com/asyncio-guide
摘要: 本文介绍了 Python asyncio 模块的核心概念...
[2] ...
JSON 格式(--json)
{
"query": "Python 异步编程",
"count": 3,
"results": [
{
"title": "Python asyncio 完整指南",
"url": "https://example.com/asyncio-guide",
"snippet": "本文介绍了 Python asyncio 模块的核心概念..."
}
]
}
运行要求
- Python 3.10+
- 仅使用标准库(
urllib、json、re、html),无强制第三方依赖 - 可选安装
duckduckgo_search库以提升 DuckDuckGo 搜索质量 - 脚本启动时会自动进行网络连通性检测
注意事项
- 根据返回的搜索结果(标题、链接、摘要)组织答案,不新增或臆造内容
- 使用非 DuckDuckGo 引擎前,请确保对应的 API Key 环境变量已正确设置
- 如网络不可用,脚本会输出警告信息但仍会尝试执行搜索
进度跟踪
系统实时显示搜索进度:
- 格式:
{index + 1}/{depth}th search executed. - 例如:
1/3th search executed.
使用场景
适用场景
- 复杂主题研究: 需要对特定主题进行深入、全面的研究
- 最新信息分析: 需要基于最新网络信息生成详细分析报告
- 多角度探索: 需要从不同角度和维度探索一个主题
- 系统化调查: 需要系统化的调查和证据收集
典型用例
- 市场趋势分析
- 技术发展研究
- 竞争对手分析
- 学术文献综述
- 产品调研
技术特点
智能特性
- 自适应搜索: 每轮搜索后由LLM分析结果,智能决定下一步搜索方向
- 避免重复: 系统记录已搜索主题,避免重复搜索相同内容
- 深度推理: 使用专门的推理模型进行综合分析
系统特性
- 多轮迭代: 支持指定深度的多轮搜索
- 并行能力: 支持最多10个并行搜索
- 状态管理: 完整的变量管理和状态跟踪
- 进度可视: 实时显示搜索进度和状态
集成特性
- LLM集成: 结合GPT-4o进行智能分析,deepseek-reasoner进行深度推理
- 网络搜索: 集成web-search技能获取实时网络信息
- JSON处理: 使用JSON解析工具处理结构化数据
工作流示例
输入示例
用户查询: "人工智能在医疗领域的最新发展"
研究深度: 3
执行流程
-
第1轮:
- LLM分析: 决定搜索"AI医疗诊断最新进展"
- Web搜索: 执行搜索并收集结果
- 状态更新: 记录主题,决定继续搜索
-
第2轮:
- LLM分析: 基于第1轮结果,决定搜索"医疗影像AI技术突破"
- Web搜索: 执行搜索并收集结果
- 状态更新: 记录主题,决定继续搜索
-
第3轮:
- LLM分析: 基于前两轮结果,决定搜索"AI药物研发应用"
- Web搜索: 执行搜索并收集结果
- 状态更新: 记录主题,决定结束搜索
-
综合分析:
- LLM综合分析所有收集到的findings
- 生成关于"人工智能在医疗领域的最新发展"的详细报告
输出示例
# 人工智能在医疗领域的最新发展研究报告
## 执行摘要
[基于三轮搜索的综合分析...]
## 主要发现
1. AI在医疗诊断方面的最新进展
- [具体发现1]
- [具体发现2]
2. 医疗影像AI技术突破
- [具体发现3]
- [具体发现4]
3. AI在药物研发中的应用
- [具体发现5]
- [具体发现6]
## 结论与建议
[综合分析结论...]
## 未来研究方向
[基于研究发现提出的未来研究方向...]
注意事项
工作流限制
- 无执行脚本: 本skill是一个工作流描述文档,不包含可执行脚本
- 外部依赖: 依赖web-search技能执行实际搜索
- 参数简化: 搜索时仅使用query参数,忽略其他搜索配置
使用建议
- 深度设置: 根据研究复杂度设置合适的depth值
- 查询优化: 提供清晰具体的研究主题
- 结果验证: 对生成的报告进行必要的事实核查
最佳实践
- 渐进式研究: 从宽泛主题开始,逐步深入具体方向
- 多源验证: 结合多个来源的信息进行交叉验证
- 及时更新: 对于快速发展的主题,建议定期重新研究
故障排除
常见问题
- 搜索无结果: 检查query是否过于具体或专业,尝试更通用的搜索词
- 迭代过早结束: 调整LLM的temperature参数或提供更多上下文
- 结果重复: 系统已内置避免重复机制,如仍出现可手动干预
性能优化
- 并行搜索: 充分利用系统的并行能力(最多10个并行)
- 缓存利用: 对于相同主题的多次研究,可考虑结果缓存
- 增量更新: 对于持续研究,可采用增量更新策略
重要提示: 本skill描述了一个深度搜索工作流,实际执行需要依赖外部技能和配置。请确保已正确配置xyz技能和相关LLM服务。
Comments
Loading comments...
