菜单

提示工程

相关源文件

本文档详细介绍了 Local Deep Researcher 系统中使用的提示模板和工程技术。这些提示作为指令,指导本地大型语言模型 (Local LLM) 完成自动化研究过程的各个阶段。有关 LLM 集成的信息,请参见LLM 集成

提示系统概述

Local Deep Researcher 在研究工作流的不同阶段使用精心设计的提示。这些提示控制 LLM 如何生成搜索查询、总结内容以及识别知识空白。

来源: src/ollama_deep_researcher/prompts.py1-90

提示模板

系统实现了三个主要的提示模板,每个模板在研究流程中都有特定的用途

提示类型功能变量名称
查询生成创建有针对性的网页搜索查询query_writer_instructions
摘要生成将搜索结果合成为连贯的摘要summarizer_instructions
反思识别知识空白并生成后续问题reflection_instructions

来源: src/ollama_deep_researcher/prompts.py7-90

查询生成提示

查询生成提示指示 LLM 根据研究主题创建有针对性的网页搜索查询。它包含当前日期,以确保查询考虑到最新的信息。

主要功能

该提示指示 LLM 生成一个 JSON 响应,其中包含搜索查询字符串和简要理由,解释查询与研究主题的相关性。

来源: src/ollama_deep_researcher/prompts.py7-32

摘要生成提示

摘要生成提示指导 LLM 从搜索结果中创建连贯的摘要。它包含了创建新摘要和扩展现有摘要的具体说明。

摘要器处理两种不同的场景

  1. 创建新摘要: 侧重于突出相关信息并确保内容流畅连贯
  2. 扩展现有摘要: 提供了将新信息与现有内容整合的详细步骤

主要功能

  • 清晰区分创建摘要和扩展摘要
  • 强调保持与研究主题的相关性
  • 具体的格式要求以确保输出整洁

来源: src/ollama_deep_researcher/prompts.py34-62

反思提示

反思提示指示 LLM 分析当前摘要,识别知识空白,并生成有针对性的后续问题以提高研究质量。

主要功能

  • 将 LLM 定位为“专业研究助理”
  • 要求输出为 JSON 格式,并包含特定键(knowledge_gapfollow_up_query
  • 提供了预期输出格式的清晰示例
  • 动态地在提示中包含研究主题

反思提示对于研究过程的迭代性质至关重要,因为它在识别出信息空白时推动生成新的、更集中的查询。

来源: src/ollama_deep_researcher/prompts.py64-90

提示与研究工作流的集成

以下序列图说明了提示如何集成到研究工作流中

来源: src/ollama_deep_researcher/prompts.py1-90

提示设计原则

Local Deep Researcher 中的提示遵循以下几项设计原则

  1. 结构化格式: 所有提示都使用清晰的分段(通常用类似 XML 的标签标记)来组织指令
  2. 清晰的输出要求: 明确的格式说明和示例
  3. JSON 输出: 查询生成和反思提示要求 JSON 输出以便于解析
  4. 上下文包含: 在相关位置动态插入研究主题和当前日期
  5. 专业化指令: 针对不同场景(例如,新摘要与扩展摘要)的不同指导

这些原则确保 LLM 生成一致且结构化的输出,系统可以可靠地对其进行处理。

来源: src/ollama_deep_researcher/prompts.py7-90

日期上下文集成

系统在查询生成提示中包含当前日期信息,以帮助 LLM 生成及时的研究查询

此日期功能 (src/ollama_deep_researcher/prompts.py4-5) 提供时间上下文,帮助 LLM 了解截至当前日期可能有哪些信息可用,从而避免生成假定信息过时或未来才可用的查询。

来源: src/ollama_deep_researcher/prompts.py1-5 src/ollama_deep_researcher/prompts.py9-11

自定义注意事项

修改提示模板时,请考虑以下事项

  1. 保持输出结构: 特别是对于 JSON 输出,请保持预期的键名
  2. 保留分段标签: 类似 XML 的标签有助于 LLM 理解结构
  3. 保持示例清晰: 示例对 LLM 的输出质量有显著影响
  4. 平衡特异性: 指令应足够具体以指导行为,但又不过于限制

提示修改应进行彻底测试,因为微小的更改也可能显著影响研究结果的质量。

来源: src/ollama_deep_researcher/prompts.py7-90