Install
openclaw skills install source-routerLLM通用来源路由技能。根据任务类型、时间要求和信息缺口,决定优先去哪些来源找信息并给出搜索顺序。支持的来源类型:web/local_file/vector/graph/counter。在已知需要搜索但不知道先搜什么时使用。触发条件:多源搜索决策、搜索成本控制、需要决定是否开启反证搜索。
openclaw skills install source-router根据任务特征、时间要求和信息缺口,决定去哪找、先找什么、是否开反证搜索、何时停止。
边界(绝对禁止):
唯一产出:搜索路由计划。
| 字段 | 必填 | 说明 |
|---|---|---|
task_type | ✅ | 任务类型:breaking_news / deep_research / entity_analysis / internal_knowledge / tech_evaluation |
primary_subject | ✅ | 核心实体/对象 |
goal_mode | ✅ | 目标模式:analyze / evaluate / compare / investigate |
freshness_required | ✅ | 时效性要求:high(≤24h)/ medium(≤30天)/ low(不限) |
available_sources | ✅ | 当前环境可用的来源列表,从 [web, local_file, vector, graph, counter] 中选 |
need_counter_evidence | ✅ | 是否需要反面证据搜索:true / false |
可选输入:
| 字段 | 说明 |
|---|---|
information_gaps | 已知信息缺口列表 |
budget_limit | 搜索次数预算上限 |
preferred_domains | 优先域名列表 |
{
"task_id": "SR-<uuid前8位>",
"task_type": "...",
"primary_subject": "...",
"selected_sources": [
{
"source": "web",
"priority": 1,
"rationale": "...",
"search_hints": ["...", "..."]
}
],
"search_order": ["web", "counter", "graph"],
"counter_search_enabled": true,
"counter_trigger": "...",
"stop_rule": {
"condition": "...",
"max_rounds": 3
},
"budget_allocation": {
"total_budget": 10,
"web": 5,
"counter": 2,
"graph": 2,
"local_file": 1
},
"fallback_chain": [
{
"level": 1,
"source": "tavily_search",
"trigger_fallback": "quota_exhausted | timeout_30s | empty_results",
"fallback_to": 2
},
{
"level": 2,
"source": "bailian_web_search",
"trigger_fallback": "api_error | timeout_30s",
"fallback_to": 3
},
{
"level": 3,
"source": "web_search",
"trigger_fallback": "empty_results | gfw_blocked",
"fallback_to": 4
},
{
"level": 4,
"source": "web_fetch_direct",
"trigger_fallback": null,
"fallback_to": 5
},
{
"level": 5,
"source": "local_cache",
"trigger_fallback": null,
"fallback_to": null
}
],
"degradation_log": []
}
| 来源 | 说明 | 核心优势 | 局限 |
|---|---|---|---|
web | 互联网搜索(Tavily/搜索引擎) | 实时性最强,覆盖面最广 | 信源质量参差,有噪音 |
local_file | 本地文件系统(记忆/缓存/文档) | 零成本,已知内容可靠 | 可能过时,覆盖有限 |
vector | 向量数据库/知识库 | 语义检索,历史知识密集 | 需预先索引,不含实时 |
graph | 知识图谱/关系数据库 | 实体关系挖掘,结构化推理 | 建设成本高,覆盖有限 |
counter | 反证搜索(对立观点/质疑信源) | 纠偏,防止确认偏误 | 消耗额外预算 |
freshness_required = high → web 优先(≥70% 预算)
freshness_required = medium → web + vector/local_file 混合
freshness_required = low → vector/local_file 优先,web 补充
| task_type | 推荐组合 | 说明 |
|---|---|---|
breaking_news | web + counter | 实时性最高,必须反证 |
deep_research | vector + web + graph + counter | 全源深度研究 |
entity_analysis | graph + web + vector | 实体关系为核心 |
internal_knowledge | vector + local_file | 内部知识优先 |
tech_evaluation | web + vector + counter | 技术评估需外部验证 |
若 available_sources 包含 local_file 或 vector,且任务 subject 在本地有已知相关材料:
必须开启 counter_search:
need_counter_evidence = true(显式要求)task_type = evaluate 或 investigate(隐式需要)goal_mode = compare(对比场景天然需要反面证据)可以跳过 counter:
task_type = internal_knowledge 且目标是纯检索need_counter_evidence = false 且 budget_limit 极低(≤3)| 场景 | stop_rule |
|---|---|
| 高时效新闻 | "找到3个独立权威信源确认同一事实后停止" |
| 深度研究 | "每类来源至少覆盖2次,或找到10条高质量结果" |
| 实体分析 | "主实体的关系网络 ≥ 5 个节点后停止 graph 搜索" |
| 内部知识 | "本地命中 ≥ 5 条相关文档后停止" |
| 默认 | "总搜索轮数 ≤ 3 轮,或找到3条以上高置信度结果" |
当首选搜索源不可用时,按预设降级链自动切换:
P1: tavily_search (原生工具,配额1000/月)
↓ quota_exhausted / timeout > 30s / empty_results
P2: bailian_web_search (百炼Qwen+,国内零延迟)
↓ api_error / timeout > 30s
P3: web_search (Brave API)
↓ empty_results / GFW封堵
P4: web_fetch_direct (搜索引擎URL模板直采)
↓ 全部失败
P5: local_cache (memory/*_cache.md 本地缓存)
降级执行规则:
degradation_log[]available_sources 显式提供,则基于可用源构建降级链(排除不可用源)selected_sources[0]输入解析 → 提取 task_type / freshness / available_sources
→ 按规则1-4 确定来源组合和优先级
→ 按 need_counter_evidence 和规则4 决定是否开 counter
→ 按规则5 生成 stop_rule
→ 按 budget_limit 分配预算(默认总预算10次)
→ 输出 JSON