# web 插件讲解 网络工具插件,提供网页搜索和内容抓取功能。 ## 工具清单 | 工具 | 功能 | 源码 | |------|------|------| | `web_search` | 通过 DuckDuckGo 搜索网页 | `handleSearch` | | `web_fetch` | 抓取指定 URL 的内容 | `handleFetch` | ## 核心设计 ### 搜索实现 `web_search` 使用 DuckDuckGo 的 HTML 搜索页面(非 API,免注册): ```go // plugin.go:handleSearch url := fmt.Sprintf("https://html.duckduckgo.com/html/?q=%s", url.QueryEscape(query)) resp, err := p.httpClient().Get(url) ``` 解析策略:扫描 HTML 查找 `:` | ## 注意事项 - DuckDuckGo HTML 格式可能随网站更新变化,如果搜索结果解析失败需调整 `parseSearchResults` 中的 HTML 标记匹配 - SSRF 防护默认阻止内网请求,如需访问内网资源需修改 `isInternalIP` 逻辑 - 搜索结果依赖 DuckDuckGo 可用性,在国内使用建议配置代理