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 协议
|