支持的模型
注意:
OpenAIChatModel兼容 OpenAI API 规范,可用于 vLLM、DeepSeek 等提供商GeminiChatModel同时支持 Gemini API 和 Vertex AI
获取 API Key
ModelRegistry
ModelRegistry(io.agentscope.core.model.ModelRegistry)用字符串 id得到 Model 实例,适合不想手写各厂商 *ChatModel.builder() 的场景。例如 Harness 场景下可使用 HarnessAgent.builder().model(String);任意需要 Model 的地方可先调用 ModelRegistry.resolve(...) 再传入 ReActAgent 等构建器。
API 一览
ModelFactory 为函数式接口:Model create(String modelId),参数为完整模型 id 字符串。
内置 id 格式与环境变量
在已配置对应环境变量的前提下,可使用下列 id 形式(适用于resolve 以及 HarnessAgent.Builder.model(String) 等):
同一进程内,对相同工厂解析 id 多次时,返回的
Model 实例会被缓存复用;具名注册不走该缓存。
示例:具名注册(自定义配置后复用)
需要先精细配置(温度、超时等)时,用 Builder 构建一次,再注册成名字:示例:内置前缀(默认连接参数)
示例:自定义工厂
DashScope
阿里云 LLM 平台,提供通义千问系列模型。配置项
端点类型(endpointType)
DashScope 模型支持文本和多模态两种 API 端点。默认情况下,框架会根据模型名称自动识别应使用的端点类型(如qwen-vl-* 以及 qwen3.5 系列自动使用多模态端点)。
当自动识别不准确时(例如使用自定义模型名称或兼容 API),可以手动指定端点类型:
思考模式
OpenAI
OpenAI 模型及兼容 API。兼容 API
适用于 DeepSeek、vLLM 等兼容提供商。注意需要配置对应的 Formatter 和结构化输出能力:配置项
Anthropic
Anthropic 的 Claude 系列模型。配置项
Gemini
Google 的 Gemini 系列模型,支持 Gemini API 和 Vertex AI。Gemini API
Vertex AI
配置项
如需覆盖请求端点,可使用
baseUrl(...)。更高级的传输层或代理配置,仍建议通过 httpOptions(...) 或 clientOptions(...) 处理。
Ollama
自托管开源 LLM 平台,支持多种模型。配置项
高级配置
高级模型加载和生成参数:GenerateOptions 支持
Ollama 也支持GenerateOptions 进行标准配置:
可用参数
Ollama 支持超过 40 个参数进行精细调整:模型加载参数
numCtx: 上下文窗口大小(默认:2048)numBatch: 提示处理的批处理大小(默认:512)numGPU: 卸载到 GPU 的层数(-1 表示全部)lowVRAM: 为有限 GPU 内存启用低显存模式useMMap: 使用内存映射加载模型useMLock: 锁定模型在内存中以防止交换
生成参数
temperature: 生成随机性(0.0-2.0)topK: Top-K 采样(标准:40)topP: 核采样(标准:0.9)minP: 最小概率阈值(默认:0.0)numPredict: 生成的最大 token 数(-1 表示无限)repeatPenalty: 重复惩罚(默认:1.1)presencePenalty: 基于 token 存在性的惩罚frequencyPenalty: 基于 token 频率的惩罚seed: 可重现结果的随机种子stop: 立即停止生成的字符串
采样策略
mirostat: Mirostat 采样(0=禁用,1=Mirostat v1,2=Mirostat v2)mirostatTau: Mirostat 目标熵(默认:5.0)mirostatEta: Mirostat 学习率(默认:0.1)tfsZ: 尾部自由采样(默认:1.0 禁用)typicalP: 典型概率采样(默认:1.0)
生成选项
通过GenerateOptions 配置生成参数:
参数说明
工具选择策略
扩展参数
支持传递提供商特有的参数:超时和重试
Formatter
Formatter 负责将 AgentScope 的统一消息格式转换为各 LLM 提供商的 API 格式。每个提供商有两种 Formatter:默认行为
不指定 Formatter 时,模型使用对应的ChatFormatter,适用于单智能体场景。
多智能体场景
在多智能体协作(如 Pipeline、MsgHub)中,需要使用MultiAgentFormatter。它会:
- 将多个智能体的消息合并为对话历史
- 使用
<history></history>标签结构化历史消息 - 区分当前智能体和其他智能体的发言