OpenCowork
核心概念

AI 提供商体系

OpenCowork 的 API 提供商抽象层与协议支持。

AI 提供商体系 / API Providers

提供商层位于 src/renderer/src/lib/api/,抽象了不同 LLM API 的差异。

APIProvider 接口

interface APIProvider {
  sendMessage(
    messages: Message[],
    config: ProviderConfig,
    signal?: AbortSignal
  ): AsyncIterable<StreamEvent>
}

支持的协议 / Protocols

协议文件适用提供商
anthropicanthropic.tsClaude 系列
openai-chatopenai-chat.tsOpenAI、DeepSeek、Ollama 等
openai-responsesopenai-responses.tsOpenAI Responses API

StreamEvent 类型

type StreamEvent =
  | { type: 'text_delta'; delta: string }
  | { type: 'thinking_delta'; delta: string }
  | { type: 'tool_use_start'; id: string; name: string }
  | { type: 'tool_use_delta'; id: string; delta: string }
  | { type: 'tool_use_end'; id: string }
  | { type: 'image_generated'; imageBlock: ImageBlock }
  | { type: 'image_error'; imageError: { code: ImageErrorCode; message: string } }
  | { type: 'message_stop'; usage: Usage }

图像生成事件 / Image Events

当使用图像生成模型(如 DALL·E)时,流事件中会包含图像相关事件:

  • image_generated:图像生成成功,包含 ImageBlock(base64 或 URL 格式)
  • image_error:图像生成失败,错误码包括 timeoutnetworkrequest_abortedapi_errorunknown

模型分类 / Model Categories

每个模型可以通过 category 字段标注用途:

分类说明
chat聊天/对话模型(默认)
image图像生成模型(如 DALL·E、Flux)
speech语音模型
embedding向量嵌入模型

图像模型需将 category 设置为 image,才能被图像生成插件识别和使用。

提供商特性 / Features

每个提供商配置支持以下特性标志:

  • vision:是否支持图片输入
  • thinking:是否支持扩展思考(Extended Thinking)
  • reasoning:是否支持推理模式
  • pricing:每百万 token 的输入/输出价格

详见各提供商配置页面:AnthropicOpenAIDeepSeek

On this page