62 lines
2.4 KiB
Markdown
62 lines
2.4 KiB
Markdown
|
|
---
|
|||
|
|
title: Thinking/Reasoning 能力系统
|
|||
|
|
created: 2026-04-14
|
|||
|
|
updated: 2026-04-14
|
|||
|
|
type: concept
|
|||
|
|
tags: [llm, agent, runtime]
|
|||
|
|
sources: [packages/backend/src/modules/netaclaw/runtime/thinking.ts, packages/backend/src/modules/netaclaw/plugins/llm_providers/anthropic.ts]
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# Thinking/Reasoning 能力系统
|
|||
|
|
|
|||
|
|
统一管理不同 LLM 提供商的思考/推理能力,支持会话级动态调节思考深度。
|
|||
|
|
|
|||
|
|
## 支持的模型
|
|||
|
|
|
|||
|
|
| 提供商 | 模型 | 机制 | 级别 |
|
|||
|
|
|--------|------|------|------|
|
|||
|
|
| Anthropic | claude-3-5-sonnet, claude-4* | extended_thinking (budget_tokens) | minimal(2k)/low(4k)/medium(8k)/high(16k) |
|
|||
|
|
| Anthropic | claude-4.6+ | adaptive thinking | 自适应(无需指定预算) |
|
|||
|
|
| OpenAI | o1, o3 | reasoning_effort | low/medium/high |
|
|||
|
|
| DeepSeek | deepseek-r1 | reasoning_content 字段 | 无级别控制 |
|
|||
|
|
|
|||
|
|
## 核心函数(runtime/thinking.ts)
|
|||
|
|
|
|||
|
|
| 函数 | 用途 |
|
|||
|
|
|------|------|
|
|||
|
|
| `isThinkingSupported(model)` | 检查模型是否支持思考 |
|
|||
|
|
| `supportsAdaptiveThinking(model)` | 检测 Claude 4.6+ 自适应思考 |
|
|||
|
|
| `getModelThinkingCapability(supplier, model)` | 返回能力描述(supported, adaptive, levels, defaultLevel) |
|
|||
|
|
| `buildAnthropicThinkingParams(model, level)` | 构建 Anthropic 参数(adaptive 或 budget_tokens) |
|
|||
|
|
| `buildOpenAIThinkingParams(level)` | 构建 OpenAI reasoning_effort 参数 |
|
|||
|
|
|
|||
|
|
## 参数注入
|
|||
|
|
|
|||
|
|
**Anthropic 适配器**:
|
|||
|
|
- 自适应模式:`thinking: { type: 'adaptive' }` + beta header `interleaved-thinking-2025-05-14`
|
|||
|
|
- 固定预算:`thinking: { type: 'enabled', budget_tokens: N }` + 强制 `temperature: 1.0`
|
|||
|
|
|
|||
|
|
**OpenAI 适配器**:
|
|||
|
|
- `reasoning_effort: 'low' | 'medium' | 'high'`
|
|||
|
|
|
|||
|
|
## 思考内容提取
|
|||
|
|
|
|||
|
|
| 提供商 | 提取方式 |
|
|||
|
|
|--------|---------|
|
|||
|
|
| Anthropic | response.content[] 中 `{ type: 'thinking' }` 块 |
|
|||
|
|
| OpenAI/o1/o3 | `thinking` 字段 |
|
|||
|
|
| DeepSeek-R1 | `reasoning_content` 字段 |
|
|||
|
|
| 通用 | `<think>...</think>` 标签解析 |
|
|||
|
|
|
|||
|
|
## 会话级控制
|
|||
|
|
|
|||
|
|
优先级链:会话级 `sessionThinkLevel` > Agent 配置 `defaultThinkLevel` > 模型默认值
|
|||
|
|
|
|||
|
|
前端通过 `ClientSetThinkingLevelMessage` WebSocket 消息动态调节,服务端通过 `ServerThinkingEvent` / `ServerThinkingDeltaEvent` / `ServerThinkingDoneEvent` 流式推送思考内容。
|
|||
|
|
|
|||
|
|
## 相关页面
|
|||
|
|
|
|||
|
|
- [[llm-providers]] — 提供商适配层实现
|
|||
|
|
- [[agent-runtime]] — 运行时集成思考参数
|
|||
|
|
- [[websocket-gateway]] — 思考事件的 WebSocket 协议
|