跳到主要内容

推理与 Thinking 模型

许多现代模型会输出中间思考过程,例如 <think>...</think>。 OPL 数据空间可以识别这些推理块,并在 UI 中把它们单独显示或折叠,而不是混在最终答案里。

支持的常见标签

OPL 数据空间默认能识别一些常见 thinking 标签,例如:

  • <think>...</think>
  • <reasoning>...</reasoning>
  • <thought>...</thought>

如果你的模型使用了自定义标签,也可以手动配置。

OPL 数据空间中的相关设置

你可以在以下位置调整:

  • Chat Controls → Advanced Parameters
  • Workspace → Models → Edit Model → Advanced Parameters
  • 管理员面板 → 设置 → Models

Reasoning Tags

可选模式:

  • Default
  • Enabled
  • Disabled
  • Custom

如果模型使用非标准标签,例如 [思考]...[/思考],可以在 Custom 中填入开始标签和结束标签。

think(Ollama)

这是 Ollama 特有的开关,用来控制模型本身是否启用内建 thinking 模式。它和 OPL 数据空间对推理内容的展示逻辑是两层不同的东西。

Reasoning Effort

部分 provider 支持调整 reasoning 深度,例如 lowmediumhigh。这对本地 Ollama 模型通常没有作用。

与工具调用的交错推理

当模型在单轮对话中一边推理、一边调用工具时, OPL 数据空间会保留 reasoning 内容,并在后续调用里把它继续发送回模型。这样模型就可以:

  1. 先思考
  2. 调用工具
  3. 接收工具结果
  4. 继续思考并决定下一步

这对真正的 agentic 工作流非常重要。

Streaming 与 Non-streaming

  • Streaming:通常效果最好,推理块能实时被识别
  • Non-streaming:更容易出现 <think> 内容和最终答案混在一起的情况,因此推理解析器更关键

排障

如果 thinking 内容直接出现在最终答案里,而不是被单独折叠显示,通常要检查:

  • 模型是否真的输出了标准 reasoning 标签
  • 是否正确配置了 reasoning_tags
  • 是否在 non-streaming 模式下缺少后处理

另外, OPL 数据空间本身优先支持标准协议,而不是为每一家 provider 的私有 API 单独做深度适配。更多背景见 FAQ