Skip to main content
模型层通过两层结构把 AgentScope 与模型 API 连接起来:顶层是 API 凭证(Credential),其下是该 API 开放的各模型族,包括大语言模型(LLM)语音合成(TTS)嵌入模型(Embedding)实时模型(Realtime) 凭证承载某个模型 API 的认证字段(api_keybase_url 等)。从一个凭证出发,可以发现该 API 在每个模型族下提供的全部模型。下表列出内置凭证及其下的模型类: 这种分层与前端的自然交互流程(先注册凭证,再从凭证下挑选模型)一致,让界面只需鉴权一次,就能展示该 API 支持的所有模型族。 所有模型族共享同一种构造模式:模型接收一个凭证、一个模型名,以及可选的 API 专属 Parameters 对象。各模型族的创建与调用细节参见对应页面:
实时模型即将上线:Realtime Model 支持正在从 v1.0 迁移到 v2.0。

前端集成

什么是模型卡片

模型卡片(ModelCard)是对模型能力与约束的声明式描述,用于驱动前端:模型选择器、参数表单、能力开关都可以基于它动态渲染,无需在前端硬编码任何与特定模型 API 相关的逻辑。每个模型族有自己的卡片类: 三种卡片类共享一组核心字段: 在核心字段之外,每种卡片还有各自的专属字段: input_typesoutput_types 都用 MIME 类型描述模态,常见取值如下: 每张卡片由模型实现旁的 YAML 文件定义。下面三个 tab 分别展示各模型族的一张真实卡片:

参数 Schema 与覆盖

暴露给前端的 parameter_schema 由两层叠加而成:
  1. 基础 schema:由模型的 Parameters 类通过 model_json_schema() 自动生成,列出全部可调参数(temperaturemax_tokensthinking_enable 等),并给出类型与 API 通用范围。
  2. 逐模型覆盖:YAML 中的 parameter_overrides 块会按字段叠加在基础 schema 之上。
覆盖之所以重要,是因为同一个 API 下不同模型的可调范围并不一致:每个 Qwen 模型都接受 max_tokens,但上限各不相同。借助覆盖,模型卡片可以收紧某个范围、固定默认值,或隐藏某个不适用的参数。
部分调整无需显式覆盖即会自动生效:output_types 中没有 application/x-thinking 时,Chat 卡片会自动去掉 thinking_enable / thinking_budget,并将 max_tokens 上限设为 output_size;TTS 卡片会把 voices 列表转换为 voice 字段的 enum。

获取模型卡片

模型卡片的发现遵循 凭证类 ⇒ 模型类 ⇒ 模型卡片 的层级:每个凭证都知道各模型族下与之关联的模型类(get_chat_model_class()get_tts_model_classes()get_embedding_model_class()),每个模型类则从实现旁的 _models/ 目录加载 YAML 卡片定义:
实践中,链路两端都可以直接调用 list_models()。下面三个 tab 分别展示各模型族的获取方式:
这种设计让前端只需一个凭证,就能发现所有可用模型、它们的能力与合法参数范围,无需硬编码任何与特定模型 API 相关的逻辑。

延伸阅读

大语言模型

创建与调用对话模型、生成结构化输出、接入自定义模型 API。

语音合成

标准与实时两种模式的语音合成,以及与智能体的集成。

嵌入模型

文本与多模态内容嵌入,内置分批、重试与缓存。