Skip to main content

Search-R1 Tools

search_r1_query_extract

  • 功能:从模型回答中提取查询内容。
  • 逻辑:使用正则 r"<search>([^<]*)" 提取最后一个 <search> 标签内的内容。如果未找到,返回 “There is no query.”;如果查询未以 ? 结尾,自动补全。

r1_searcher_query_extract

  • 功能:从 R1-Searcher 回答中提取查询。
  • 逻辑:使用正则 r"<|begin_of_query|>([^<]*)" 提取最后一个标签内容。

IRCoT & IterRetGen Tools

iterretgen_nextquery

  • 功能:迭代检索生成。
  • 逻辑next_query = f"{q} {ans}"。将原始问题与生成的回答拼接作为下一次检索的 Query。

ircot_get_first_sent

  • 功能:提取回答的第一句话(至句号或问号/感叹号结束)。

ircot_extract_ans

  • 功能:提取最终答案。
  • 逻辑:匹配 so the answer is [...] 后的内容。

Search-o1 Tools

search_o1_init_list

  • 功能:初始化 Search-o1 所需的累加列表(子问题、推理、最终信息),初始填充 <PAD>

search_o1_combine_list

  • 功能:将当前步骤提取的 Query 和 Reasoning 追加到总列表中。

search_o1_query_extract

  • 功能:提取 <|begin_search_query|>...<|end_search_query|> 之间的内容。

search_o1_reasoning_extract

  • 功能:提取 <|begin_search_query|> 之前的所有文本作为推理过程。

search_o1_extract_final_information

  • 功能:提取 **Final Information** 标记之后的内容。

Utility Tools

output_extract_from_boxed

  • 功能:从 LaTeX \boxed{...} 中提取答案。支持嵌套括号处理和格式清理。

merge_passages

  • 功能:将 temp_psg 列表追加到 ret_psg 列表中。

evisrag_output_extract_from_special

  • 功能:从 <answer>...</answer> 标签提取答案。

assign_citation_ids / assign_citation_ids_stateful

  • assign_citation_ids: 为检索到的段落分配 [1], [2] 形式的引用 ID。
  • assign_citation_ids_stateful: 使用 CitationRegistry 类维护全局引用 ID(跨步骤去重)。
  • init_citation_registry: 重置全局引用注册表。

SurveyCPM Tools

surveycpm_state_init

  • 功能:初始化 SurveyCPM 状态机。
  • 初始状态state="search", cursor="outline", step=0

surveycpm_parse_search_response

  • 功能:解析模型生成的搜索指令(JSON 或 XML 格式),提取关键词列表。

surveycpm_process_passages

  • 功能:处理检索段落,去重并限制数量(Top-K),拼接为字符串。

surveycpm_after_init_plan / after_write / after_extend

  • 功能:解析 Agent 对不同阶段(初始化大纲、撰写内容、扩展计划)的响应。
  • 逻辑
    • 调用 surveycpm_parse_response 验证格式和内容。
    • 成功则更新 survey_ls(大纲结构)和 cursor_ls(当前光标位置)。
    • 失败则保留原状态以便重试。

surveycpm_update_state

  • 功能:核心状态机逻辑。
  • 状态转移
    • search -> analyst-init_plan (cursor=“outline”)
    • search -> write (cursor=section-X)
    • write -> search (继续写) 或 analyst-extend_plan (写完当前部分)
    • analyst-extend_plan -> search (扩展成功) 或 done (无扩展)
    • 超出最大步数 -> done

surveycpm_format_output

  • 功能:将最终的 Survey JSON 转换为 Markdown 格式。
  • 处理:自动处理标题层级(# ## ###)、引用格式化(\cite{...}[1])和文本清理。

参数配置

servers/custom/parameter.yaml