64 lines
2.3 KiB
Markdown
Raw Permalink Normal View History

2026-05-20 21:39:12 +08:00
---
title: LLM 提供商适配
created: 2026-04-13
updated: 2026-04-14
type: entity
tags: [llm, agent, api]
sources: [packages/backend/src/modules/netaclaw/plugins/llm_providers/, packages/backend/src/modules/netaclaw/runtime/thinking.ts]
---
# LLM 提供商适配
多模型提供商的统一适配层,将不同 API 格式转换为内部统一接口。支持 Thinking/Reasoning 能力的统一管理。
## 关键文件
| 文件 | 提供商 | API 格式 |
|------|--------|---------|
| `llm_providers/anthropic.ts` | Anthropic | Messages API原生支持 extended_thinking |
| `llm_providers/openai.ts` | OpenAI / 兼容 | Chat Completions支持 reasoning_effort |
| `llm_providers/deepseek.ts` | DeepSeek | OpenAI 兼容格式(支持 reasoning_content |
| `llm_providers/plugin_entry.ts` | - | 提供商接口定义 |
| `llm_providers/logging.ts` | - | 请求/响应日志 |
| `runtime/thinking.ts` | - | 思考能力检测、预算映射、参数构建 |
## 模型选择
通过 `runtime/model_selection.ts` 解析 `"provider:modelId"` 格式:
```
"anthropic:claude-3-5-sonnet" → Anthropic 适配器
"openai:gpt-4o" → OpenAI 适配器
"openai:MiniMax-M2.7" → OpenAI 兼容(自定义 baseUrl
"deepseek:deepseek-chat" → DeepSeek 适配器
```
## Thinking/Reasoning 支持
各提供商的思考能力通过 `runtime/thinking.ts` 统一管理:
| 提供商 | 参数注入 | 思考内容提取 |
|--------|---------|-------------|
| Anthropic | `thinking: { type: 'adaptive' }``{ type: 'enabled', budget_tokens: N }` | response.content[] 中 `{ type: 'thinking' }` 块 |
| OpenAI | `reasoning_effort: 'low'|'medium'|'high'` | `thinking` 字段 |
| DeepSeek | 无参数控制 | `reasoning_content` 字段 或 `<think>` 标签 |
详见 [[thinking-system]]。
## 模型渠道管理
通过 `netaclaw_model_channel` 表配置:
- `supplier`OpenAI / Anthropic / DeepSeek
- `baseUrl`API 地址(支持自定义,如 MiniMax
- `apiKey`:密钥
- `models`JSON 数组 `[{name, capability}]`
前端通过级联选择器选择:供应商 → 渠道 → 模型
## 相关页面
- [[netaclaw-module]] — 所属模块
- [[agent-runtime]] — 运行时初始化提供商
- [[thinking-system]] — Thinking/Reasoning 能力详解
- [[crew-orchestration]] — Crew 编排中的模型配置解析