推理与 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 深度,例如 low、medium、high。这对本地 Ollama 模型通常没有作用。
与工具调用的交错推理
当模型在单轮对话中一边推理、一边调用工具时, OPL 数据空间会保留 reasoning 内容,并在后续调用里把它继续发送回模型。这样模型就可以:
- 先思考
- 调用工具
- 接收工具结果
- 继续思考并决定下一步
这对真正的 agentic 工作流非常重要。
Streaming 与 Non-streaming
- Streaming:通常效果最好,推理块能实时被识别
- Non-streaming:更容易出现
<think>内容和最终答案混在一起的情况,因此推理解析器更关键
排障
如果 thinking 内容直接出现在最终答案里,而不是被单独折叠显示,通常要检查:
- 模型是否真的输出了标准 reasoning 标签
- 是否正确配置了
reasoning_tags - 是否在 non-streaming 模式下缺少后处理
另外, OPL 数据空间本身优先支持标准协议,而不是为每一家 provider 的私有 API 单独做深度适配。更多背景见 FAQ。