# 推理

在语言模型中,推理(也称为模型思考)指的是一种思维链(CoT)技术,它通过逐步分析来模拟人类的问题解决过程。SillyTavern 提供了多个功能,使推理模型在支持的后端上使用起来更加高效和一致。

# 常见问题

  1. 使用推理模型时,模型的内部推理过程会消耗你的响应令牌配额,即使这种推理没有在最终输出中显示(例如 o3-mini 或 Gemini Thinking)。如果你注意到你的响应返回不完整或为空,你应该尝试调整在 AI 响应配置面板中找到的最大响应长度设置。对于推理模型,通常使用显著更高的令牌限制 - 从 1024 到 4096 个令牌不等 - 与标准对话模型相比。

# 配置

推理块在聊天中显示为可折叠的消息部分。它们可以手动添加、由后端自动添加,或通过响应解析添加(见下文)。

默认情况下,推理块是折叠的以节省空间。点击一个块来展开并查看其内容。您可以通过在推理设置中启用自动展开来设置块自动展开。

当推理块展开时,您可以使用** 复制 编辑**按钮来复制或编辑其内容。

某些模型支持推理,但不会发回它们的思考过程。对于这些模型,可以通过切换显示隐藏设置来显示带有推理时间的推理块。

# 添加推理

# 手动添加

通过** 消息编辑菜单向任何消息添加推理块。编辑时点击**来添加推理部分。第三方扩展也可以通过在将消息对象添加到聊天之前写入消息对象的 extra.reasoning 字段来添加推理。

# 使用命令

使用 /reasoning-set STscript 命令向消息添加推理。该命令接受 at(消息 ID,默认为最后一条消息)和推理文本作为参数。

stscript
/reasoning-set at=0 这是第一条消息的推理。

# 通过后端

如果您选择的 LLM 后端和模型支持推理输出,在 AI 响应配置面板中启用"请求模型推理"将添加一个包含模型思考过程的推理块。

支持的后端:

  • Claude
  • DeepSeek
  • Google AI Studio
  • Google Vertex AI
  • OpenRouter
  • xAI (Grok)
  • AI/ML API

"请求模型推理"并不决定模型是否进行推理。Claude 和 Google (2.5 Flash) 允许切换思考模式;参见推理强度

# 通过解析

高级格式化面板中启用"自动解析"以自动从模型输出中解析推理。

响应必须包含一个用配置的前缀和后缀序列包装的推理部分。默认提供的序列对应于 DeepSeek R1 推理格式。

前缀 </think> 和后缀 </think> 的示例:

</think>
这是推理。
</think>

这是主要内容。

# 带推理的提示

默认情况下,识别的推理块内容不会发回给模型。要在提示中包含推理,请在 高级格式化面板中启用"添加到提示"。推理内容将用配置的前缀和后缀序列包装,并与主上下文用分隔符分隔。最大添加数值设置控制可以包含多少个推理块,从提示的末尾开始计数。

# 从推理继续

一个特殊情况是,当生成被继续时(例如,通过从 选项菜单中按"继续"),推理可以发回给模型而不需要启用"添加到提示"切换,但被继续的消息只包含推理而没有实际内容。这给了模型完成不完整推理并开始生成主要内容的机会。提示将按以下方式发送:

</think>
不完整的推理...

# 正则表达式脚本

来自正则表达式扩展的正则表达式脚本可以应用于推理块的内容。在脚本编辑器的"影响"部分检查"推理"以专门针对推理块。

不同的临时性选项以以下方式影响推理块:

  1. 无临时性:推理内容被永久更改。
  2. 在编辑时运行:当推理块被编辑时,正则表达式脚本将被重新评估。
  3. 更改聊天显示:正则表达式应用于推理块的显示文本,而不是底层内容。
  4. 更改传出提示:正则表达式仅在推理块发送给模型之前应用于它们。

# 推理强度

推理强度是 AI 响应配置面板中的聊天完成设置,它影响可能在推理上使用多少个令牌。每个选项的效果取决于连接的后端。对于以下后端,自动只是意味着相关参数不包含在请求中。

选项 Claude (如果不流式传输 ≤ 21333) OpenAI (关键字) OpenRouter (关键字) xAI (Grok) (关键字) Perplexity (关键字)
模型 Opus 4, Sonnet 4/3.7 o4-mini, o3*, o1* 适用模型 grok-3-mini sonar-deep-research
自动 未指定,无思考 未指定 未指定,效果取决于后端 未指定 未指定
最小 预算 1024 个令牌 "low" "low",或最大响应的 20% "low" "low"
最大响应的 15%,最小 1024 "low" "low",或最大响应的 20% "low" "low"
最大响应的 25%,最小 1024 "medium" "medium",或最大响应的 50% "low" "medium"
最大响应的 50%,最小 1024 "high" "high",或最大响应的 80% "high" "high"
最大 最大响应的 95%,最小 1024 "high" "high",或最大响应的 80% "high" "high"
  • 对于 Claude,如果禁用流式传输,预算上限为 21333。如果计算出的预算将小于 1024,则最大响应将更改为 2048。
  • 对于 OpenRouter、Perplexity 和 AI/ML API,只发送 OpenAI 风格的关键字。

Google AI Studio 和 Vertex AI 如下:

模型 自动(动态思考) 最小 最大
2.5 Pro thinkingBudget = -1 128 最大响应的 15%,最小 128 最大响应的 25% 最大响应的 50% 最大或 32768 中的较小者
2.5 Flash thinkingBudget = -1 0,无思考 最大响应的 15% 最大响应的 25% 最大响应的 50% 最大或 24576 中的较小者
2.5 Flash Lite thinkingBudget = -1 0,无思考 最大响应的 15%,最小 512 最大响应的 25% 最大响应的 50% 最大或 24576 中的较小者
  • 对于 Gemini 2.5 Pro 和 2.5 Flash/Lite,无论流式传输设置如何,预算分别上限为 32768 或 24576 个令牌。