附录 A 指令模板

本文为论文《Search-o1:让推理模型学会边思考边检索》「中文全文翻译」板块的对应章节,与「论文原文」板块同一章节一一对应,层级保持一致。

A.1 Search-o1 的指令

Search-o1 的指令

你是一名能够执行网络检索以帮助你准确回答用户问题的推理助手。你有特殊工具: 执行检索:写下 <|begin_search_query|> 你的查询在此 <|end_search_query|>。 随后,系统会检索并分析相关网页,然后以 <|begin_search_result|> …检索结果… <|end_search_result|> 的格式为你提供有用信息。 如有必要,可重复检索过程多次。检索尝试次数上限为 {MAX_SEARCH_LIMIT}。 当你获得所需的所有信息后,继续你的推理。 示例: 问题:“……” 助手思考步骤: - 我可能需要查询关于 … 的详情 助手: <|begin_search_query|>…<|end_search_query|> (系统返回相关网页处理后的信息) 助手继续结合新信息进行推理… 请记住: - 使用 <|begin_search_query|> 请求网络检索,并以 <|end_search_query|> 结束。 - 检索完毕后,继续你的推理。

Reason-in-Documents 的指令

任务说明: 你的任务是基于以下输入读取并分析网页:先前推理步骤、当前检索查询、以及检索到的网页。你的目标是从检索到的网页中提取与当前检索查询相关且有用的信息,并将其无缝整合到先前推理步骤中,以继续为原始问题进行推理。 指南: 1. 分析检索到的网页: - 仔细审查每个被检索网页的内容。 - 识别与当前检索查询相关且有助于推理原始问题的事实信息。 2. 提取相关信息: - 从检索到的网页中选择直接有助于推进先前推理步骤的信息。 - 确保提取的信息准确且相关。 3. 输出格式: - 若网页为当前检索查询提供了有用信息:以“最终信息”开头,如下所示。 最终信息 [有用信息] - 若网页未为当前检索查询提供任何有用信息:输出以下文本。 最终信息 未找到有用信息。 输入: - 先前推理步骤: {prev_reasoning} - 当前检索查询: {search_query} - 检索到的网页: {document} 现在你应该分析每个网页,并根据当前检索查询“{search_query}”与先前推理步骤找出有用信息。

A.2 标准 RAG 的指令

标准 RAG 的指令

你是一名知识渊博的助手,利用提供的文档准确回答用户的问题。 问题: {question} 文档: {documents} 指南: - 分析提供的文档以提取相关信息。综合信息以制定连贯且准确的答案。 - 确保你的回答直接使用文档中的信息回应用户的问题。

A.3 RAG 代理的指令

RAG 代理的指令

你是一名能够执行网络检索并检索网页内容以帮助你准确回答用户问题的推理助手。你有特殊工具: - 执行检索:写下 ‘<|begin_search_query|>’ 你的查询在此 ‘<|end_search_query|>’。 系统会使用你的查询调用网络检索 API,并以 ‘<|begin_search_result|> …检索结果… <|end_search_result|>’ 的格式返回检索结果。 检索结果将包含带有标题、URL 和摘要(但不含全文)的网页列表。 - 检索完整页面内容:收到检索结果后,如果你需要从特定 URL 获取更详细的信息,请写下 ‘<|begin_url|> url1, url2, … <|end_url|>’。 系统会获取这些 URL 的完整页面内容,并以 ‘<|begin_full_page|> …完整页面内容… <|end_full_page|>’ 的格式返回。 如有必要,可重复检索过程多次。检索尝试次数上限为 {MAX_SEARCH_LIMIT}。 你最多可获取 {MAX_URL_FETCH} 个 URL 以获取详细信息。 当你获得所需的所有信息后,继续你的推理。 示例: 问题:“……” 助手思考步骤: - 我需要找出 … 助手: ‘<|begin_search_query|>…<|end_search_query|>’ (系统返回检索结果) 助手: ‘<|begin_search_result|> …不含完整页面的检索结果… <|end_search_result|>’ 助手思考:检索结果中提到了几个 URL。我想获取其中一个的完整详情。 助手: ‘<|begin_url|>http://…<|end_url|>’ (系统返回完整页面内容) 助手: ‘<|begin_full_page|> …完整页面内容… <|end_full_page|>’ 现在助手已获得足够信息并可继续推理。 请记住: - 使用 ‘<|begin_search_query|>’ 请求网络检索并以 ‘<|end_search_query|>’ 结束。 - 使用 ‘<|begin_url|>’ 请求完整页面内容并以 ‘<|end_url|>’ 结束。 - 检索完毕信息后,继续你的推理。

A.4 任务专用指令
A.4.1 开放域问答任务指令

开放域问答任务的指令

请回答以下问题。 你应以 \boxed{YOUR_ANSWER} 格式提供最终答案。 问题: {question}

A.4.2 数学任务指令

数学任务的指令

请回答以下数学问题。 你应以 \boxed{YOUR_ANSWER} 格式提供最终答案。 问题: {question}

A.4.3 选择题任务指令

选择题任务的指令

你要回答以下选择题,选择正确选项。 你的最终选择应为 A、B、C 或 D 中的一个字母。除选项字母外,不得包含任何答案内容。 你应以 \boxed{YOUR_CHOICE} 格式提供最终选择。 问题: {question}

A.4.4 代码任务指令

代码任务的指令

生成一个通过给定问题所有测试的正确 Python 程序。你应在三个反引号的 Python 代码块中提供最终代码。 ‘‘‘python

YOUR CODE HERE

‘‘‘

问题标题:{question_title} 问题陈述: {question}

A.5 附加说明

对于以上所有指令,我们将它们作为用户提示词输入,而非系统提示词。A.4 中的任务专用指令用于 QwQ-32B-Preview 模型。对于非推理模型,如 Qwen2.5-32B-Instruct、Qwen2.5-72B-Instruct 和 Llama3.3-70B-Instruct 等,我们会在问题前添加思维链提示词 "You should think step by step to solve it." 以明确让这些模型在给出最终答案前先进行推理。