DeepSeek 模型

agentscope-extensions-model-openai 通过 OpenAI 兼容模型栈提供 DeepSeek 的一等支持。引入 OpenAI 模型扩展模块后,可以通过 ModelRegistry 使用 deepseek:<model>

添加依赖

<dependency>
    <groupId>io.agentscope</groupId>
    <artifactId>agentscope-extensions-model-openai</artifactId>
    <version>${agentscope.version}</version>
</dependency>

ModelRegistry

设置 DEEPSEEK_API_KEY 后,使用 deepseek:<model> 字符串 id:

ReActAgent agent = ReActAgent.builder()
    .name("assistant")
    .model("deepseek:deepseek-v4-flash") // 底层由 ModelRegistry.resolve(modelId) 解析
    .build();

Provider 默认使用 https://api.deepseek.com,发送请求前会去掉 deepseek: 前缀,并使用 io.agentscope.extensions.model.openai.compat.deepseek 下的 DeepSeek formatter。

思考模式

通过 ModelCreationContext 解析模型时可以开启 DeepSeek 思考模式:

import io.agentscope.core.model.Model;
import io.agentscope.core.model.ModelCreationContext;
import io.agentscope.core.model.ModelRegistry;

Model model = ModelRegistry.resolve(
    "deepseek:deepseek-v4-flash",
    ModelCreationContext.builder()
        .enableThinking(true)
        .build());

流式调用时可以把 ThinkingBlockDeltaEventTextBlockDeltaEvent 分开渲染。

兼容性说明

DeepSeek formatter 会保留 DeepSeek 兼容的消息字段,包括 system 角色和支持的 name 字段;同时会移除历史轮次中过期的 reasoning 内容,并保留当前工具调用上下文需要的 reasoning 内容。

DeepSeek 稳定端点默认不使用工具 schema 的 strict 字段,因此默认 formatter 会省略 strict,即使工具注册时开启了严格 schema 校验。结构化输出默认使用 AgentScope 的 fallback 行为;只有在你明确确认兼容端点支持 native structured output 时才需要手动开启。

使用 beta 或其他兼容端点时,可以通过 ModelCreationContext 传入 baseUrlendpointPath、生成参数或 formatter 覆盖。