feat: combine dedicated and web search providers

This commit is contained in:
john
2026-07-23 12:38:20 +08:00
parent d9eb11f5f5
commit 890264ba10
7 changed files with 29 additions and 20 deletions
+5 -5
View File
@@ -1,6 +1,6 @@
---
name: search-enhanced
description: 可插拔外部搜索编排:优先使用 MindSearch,失败时回退现有 web/search 能力
description: 双引擎外部搜索编排:同时使用 MindSearch现有 web/search 能力
---
# 外部增强搜索
@@ -9,10 +9,10 @@ description: 可插拔外部搜索编排:优先使用 MindSearch,失败时
## 使用规则
1. 只有当前会话策略挂载了 `tkmind-search` 且用户拥有 `search_external` 能力时,才调用 `tkmind_search``tkmind_read`
2. `web` / `news` 使用 SearXNG`code` 使用 GitHub Code`read` 使用 Reader
3. 搜索结果必须保留标题、摘要、URL、Provider 来源和引用编号。
4. Provider 超时、限流、未配置或返回错误时,立即回退现有 `web_search` / `fetch_url`;不要阻断回答,也不要声称已使用外部增强搜索
1. 只有当前会话策略挂载了 `tkmind-search` 且用户拥有 `search_external` 能力时,才调用 `tkmind_search``tkmind_read`;否则仍必须调用现有 `web_search` / `fetch_url`
2. `web` / `news` 必须在同一轮同时调用 `tkmind_search`SearXNG)和 `web_search`DuckDuckGo);`code` 使用 GitHub Code`read` 可同时使用 `tkmind_read``fetch_url`
3. 合并两边结果并按 URL 去重,必须保留标题、摘要、URL、Provider 来源和引用编号。
4. 任一 Provider 超时、限流、未配置或返回错误时,保留另一 Provider 的结果继续回答;只有两边都失败时才说明未获取实时搜索结果
5. 外部结果只作为补充证据,不写入用户长期记忆,不改变会话上下文和原有内容生成策略。
## 推荐请求形状
+10 -7
View File
@@ -5,7 +5,7 @@ description: 网页抓取与搜索技能:访问网页、查阅文档、搜索
# 网页访问
使用内置 `web` 平台扩展获取网页内容和搜索信息。
使用 `tkmind-search` 专用搜索与内置 `web` 平台扩展联合获取网页内容和搜索信息。
## 何时使用
@@ -19,17 +19,20 @@ description: 网页抓取与搜索技能:访问网页、查阅文档、搜索
|------|------|
| `fetch_url` | 抓取指定 URL 的内容,可提取纯文本 |
| `web_search` | 通过 DuckDuckGo 搜索,返回标题/摘要/链接列表 |
| `tkmind_search` | 通过 103 专用 SearXNG 搜索,返回标题/摘要/链接列表 |
| `tkmind_read` | 读取专用搜索返回的公开 URL 正文 |
## 规则
1. 优先用 `web_search` 探索,再用 `fetch_url` 读取具体页面
2. `extract_text: true`(默认)获取可读文本,`false` 获取原始 HTML
3. 不要访问不明来源的链接,向用户确认后再访问
4. 官方文档优先于第三方博客
1. 搜索实时资料时,同一轮同时调用 `tkmind_search`type=`web``news`)和 `web_search`,合并两边结果并按 URL 去重;不要只调用其中一个
2. 从合并结果中选择可靠来源,再按需同时用 `tkmind_read` / `fetch_url` 读取正文
3. `extract_text: true`(默认)获取可读文本,`false` 获取原始 HTML
4. 不要访问不明来源的链接,向用户确认后再访问
5. 官方文档优先于第三方博客
## 国内网络环境(建议)
- 生产环境访问不了 `google.com`,优先用本技能的 `web_search`DuckDuckGo/`fetch_url`,避免直接拿 `computercontroller__web_scrape` 抓 Google 页面来回重试
- **`web_search` 最多 2 次**(可换关键词);若仍无可用结果,**再 1 次**用 `fetch_url` 访问 `https://cn.bing.com/search?q=...``https://www.so.com/s?q=...`
- 生产环境访问不了 `google.com`;实时搜索必须同时尝试 103 专用 `tkmind_search`SearXNG)和 `web_search`DuckDuckGo),避免直接拿 `computercontroller__web_scrape` 抓 Google 页面来回重试
- 每个搜索 provider 最多 **2 次**(可换关键词);若一侧失败,保留另一侧结果,并再试 1 次 `fetch_url` 访问 `https://cn.bing.com/search?q=...``https://www.so.com/s?q=...`
- **3 轮搜索后仍无结果**:停止搜索,用内置知识直接生成页面/回答,并说明未获取实时搜索结果
- 百度/知乎/大众点评等站点有反爬拦截,遇到跳转或空结果就换个搜索源,不必在同一个来源上反复硬抓