🏪 模型配置
# ModelSpec 核心设计
ModelSpec<SELF> 是所有平台模型描述符的基类。子类按"哪个平台 + 哪个模型 + 可选参数"三段式给出,框架负责从配置解析凭据并构造 agentscope Model。
所有平台共享的共性参数:
| 方法 | 类型 | 说明 |
|---|---|---|
temperature(double) | Double | 采样温度 |
topP(double) | Double | nucleus sampling |
topK(int) | Integer | top-k sampling |
maxTokens(int) | Integer | 最大输出 token |
seed(long) | Long | 随机种子 |
stream(boolean) | Boolean | 底层模型请求是否使用流式模式 |
cacheControl(boolean) | Boolean | 缓存控制 |
所有参数均为可选,未设置时使用服务端或 SDK 默认值。
关于 stream 参数
ModelSpec.stream(true) 只控制底层模型请求是否使用流式传输。调用方能否在 LiteFlow 执行期间收到事件,取决于是否通过 ExecuteOption.eventListener(...) 注册了监听器。两者的配合关系详见 流式输出。
# 平台模块与入口类
| 模块 | 入口类 | 个性参数 |
|---|---|---|
liteflow-react-agent-openai | OpenAI | reasoningEffort, frequencyPenalty, presencePenalty |
liteflow-react-agent-openai | DeepSeek | 继承 OpenAI 全部参数,内置默认 baseUrl |
liteflow-react-agent-openai | Kimi | 同上 |
liteflow-react-agent-openai | GLM | 同上 |
liteflow-react-agent-openai | Minimax | 同上 |
liteflow-react-agent-openai | OpenAICompatible | 自定义 configKey,用于任意兼容厂商 |
liteflow-react-agent-anthropic | Anthropic | thinking(t -> t.budget(...).enabled(...)) |
liteflow-react-agent-anthropic | AnthropicCompatible | 自定义 configKey,用于 Anthropic 兼容网关 |
liteflow-react-agent-gemini | Gemini | thinking(t -> t.level(...).budget(...)) |
liteflow-react-agent-dashscope | DashScope | thinking(t -> t.budget(...)) |
# 凭据解析规则
框架内建两种凭据解析策略:
- 头等平台(OpenAI / Anthropic / Gemini / DashScope):从
AgentConfig的单一字段读取。配置路径为liteflow.agent.<platform>.api-key - 兼容平台(DeepSeek / Kimi / GLM / Minimax / 自定义厂商):从 Map 中按 configKey 读取。配置路径为
liteflow.agent.openai-compatible.<configKey>.api-key
# 各平台使用示例
# OpenAI
@Override
protected ModelSpec<?> model() {
return OpenAI.of("gpt-4o")
.temperature(0.7)
.maxTokens(1000)
.stream(true);
}
凭据来源:liteflow.agent.openai.api-key
# DeepSeek
@Override
protected ModelSpec<?> model() {
return DeepSeek.of("deepseek-chat")
.temperature(0.5);
}
凭据来源:liteflow.agent.openai-compatible.deepseek.api-key,base-url 可选
# 其他 OpenAI 兼容平台(Kimi / GLM / Minimax)
这几家与 DeepSeek 用法完全一致:Xxx.of("model"),参数全部继承 OpenAI,内置了各自的默认 base-url,区别只在 configKey 与模型名。
// Kimi(月之暗面)
@Override
protected ModelSpec<?> model() {
return Kimi.of("kimi-k2.6")
.temperature(0.6);
}
// GLM(智谱)
@Override
protected ModelSpec<?> model() {
return GLM.of("glm-5.1")
.temperature(0.7);
}
// Minimax
@Override
protected ModelSpec<?> model() {
return Minimax.of("MiniMax-M2.7")
.temperature(0.7);
}
凭据来源(均从 liteflow.agent.openai-compatible.<configKey>.api-key 读取,base-url 可选):
liteflow:
agent:
openai-compatible:
kimi:
api-key: ${KIMI_API_KEY}
glm:
api-key: ${GLM_API_KEY}
minimax:
api-key: ${MINIMAX_API_KEY}
# 自定义 OpenAI 兼容厂商
@Override
protected ModelSpec<?> model() {
return OpenAICompatible.custom("myvendor", "my-model")
.temperature(0.7);
}
凭据来源:liteflow.agent.openai-compatible.myvendor.api-key / base-url。自定义厂商没有内置默认地址,通常需要配置 base-url。
# Anthropic Claude
@Override
protected ModelSpec<?> model() {
return Anthropic.of("claude-sonnet-4-5")
.temperature(0.5)
.thinking(t -> t.budget(2000).enabled(true));
}
凭据来源:liteflow.agent.anthropic.api-key
# Google Gemini
@Override
protected ModelSpec<?> model() {
return Gemini.of("gemini-2.5-flash")
.thinking(t -> t.level("high").budget(1024));
}
凭据来源:liteflow.agent.gemini.api-key
# 阿里云 DashScope
@Override
protected ModelSpec<?> model() {
return DashScope.of("qwen-plus")
.thinking(t -> t.budget(2048));
}
凭据来源:liteflow.agent.dashscope.api-key
# 逃生舱:完全自定义 Model
如果 ModelSpec 无法满足需求(如需要传入 agentscope 原生高级参数),可以直接覆写 buildModel():
@Override
protected Model buildModel() {
return OpenAIChatModel.builder()
.apiKey(agentConfig().getOpenai().getApiKey())
.modelName("gpt-4o")
.generateOptions(GenerateOptions.builder()
.temperature(0.7)
.build())
.stream(true)
.build();
}
覆写 buildModel() 后,默认的 model().resolve(agentConfig()) 不会被调用。但 model() 仍是抽象方法,子类仍需实现。


