跳转到内容

模型提供方

open-multi-agent 在托管、云端与本地提供方之间保持智能体配置的形态一致。更改 providermodel 和相应的凭据;团队定义的其余部分保持不变。

受支持的运行时是 Node.js 20 及以上;推荐 Node.js 22 或 24。Node.js 20 上游已经 EOL,保留它只是作为迁移兼容窗口。OMA 会在下一个大版本移除对 Node.js 20 的支持, 时间不早于 2026-10-31。对 OpenAI 与 OpenAI 兼容的 Chat Completions 端点,core 使用 OpenAI SDK v6。

const agent = {
name: 'my-agent',
provider: 'anthropic',
model: 'claude-sonnet-4-6',
systemPrompt: 'You are a helpful assistant.',
}

框架为下列每一个都内置了对应的提供方名。设置 provider 和对应环境变量,适配器即会处理端点。

在底层,Anthropic、Gemini 和 Bedrock 使用各自专用的 API。其余内置快捷方式是对 OpenAI 兼容端点的预配置封装;与下方 OpenAI 兼容表格相同的线路格式,只是 baseURL 已预先配置好。

ProviderConfigEnv varExample modelNotes
Anthropic (Claude)provider: 'anthropic'ANTHROPIC_API_KEYclaude-sonnet-4-6原生 Anthropic SDK。
Geminiprovider: 'gemini'GEMINI_API_KEYgemini-2.5-pro原生 Google GenAI SDK。需要 npm install @google/genai
OpenAI (GPT)provider: 'openai'OPENAI_API_KEYgpt-4o
Azure OpenAIprovider: 'azure-openai'AZURE_OPENAI_API_KEY, AZURE_OPENAI_ENDPOINTgpt-4可选 AZURE_OPENAI_API_VERSIONAZURE_OPENAI_DEPLOYMENT
GitHub Copilotprovider: 'copilot'GITHUB_COPILOT_TOKEN(回退到 GITHUB_TOKENgpt-4o在 OpenAI 协议之上的自定义 token 交换流程。
Grok (xAI)provider: 'grok'XAI_API_KEYgrok-4OpenAI 兼容;端点为 api.x.ai/v1
DeepSeekprovider: 'deepseek'DEEPSEEK_API_KEYdeepseek-v4-flashOpenAI 兼容 Chat Completions。deepseek-v4-flash 当前解析为 DeepSeek-V4-Flash-0731(公测);deepseek-v4-pro 仍是 Preview API。两者都支持 1M 上下文与 384K 最大输出。Flash 端点也支持 DeepSeek 原生的 Responses API,而 OMA 内置适配器使用 Chat Completions。旧版 deepseek-chat / deepseek-reasoner 已于 2026-07-24 下线。
Doubao (Volcengine)provider: 'doubao'ARK_API_KEYdoubao-seed-1-8-251228OpenAI 兼容。字节跳动火山引擎 Ark 端点 https://ark.cn-beijing.volces.com/api/v3。见 providers/doubao
Hunyuan (Tencent MaaS / TokenHub)provider: 'hunyuan'HUNYUAN_API_KEYhy3-previewOpenAI 兼容。默认端点 https://tokenhub.tencentmaas.com/v1(腾讯当前平台;sk-... 密钥,Hunyuan 3 系列模型)。工具调用已在 hy3-preview 上验证。见 providers/hunyuan
Hunyuan (legacy Tencent Cloud)provider: 'hunyuan' + HUNYUAN_BASE_URLHUNYUAN_API_KEYhunyuan-turbos-latest旧版端点 https://api.hunyuan.cloud.tencent.com/v1(console.cloud.tencent.com/hunyuan 密钥;独立的密钥命名空间)。腾讯已宣布该平台即将下线(2026-06-30 停售,2026-09-30 全面关停)。在此之前可设置 HUNYUAN_BASE_URL=https://api.hunyuan.cloud.tencent.com/v1 指向它。工具调用已在 hunyuan-turboshunyuan-functioncall 上验证。
MiniMax (global)provider: 'minimax'MINIMAX_API_KEYMiniMax-M3OpenAI 兼容。
MiniMax (China)provider: 'minimax' + MINIMAX_BASE_URLMINIMAX_API_KEYMiniMax-M3设置 MINIMAX_BASE_URL=https://api.minimaxi.com/v1
MiMoprovider: 'mimo'MIMO_API_KEY(+ 可选 MIMO_BASE_URLmimo-v2.5-proOpenAI 兼容。默认使用按量付费端点 https://api.xiaomimimo.com/v1;Token Plan 密钥(tp-...)需要订阅页面提供的集群 base URL,例如 https://token-plan-cn.xiaomimimo.com/v1。通过内置的 MiMo 适配器支持推理 / 工具调用循环。见 providers/mimo
Qiniuprovider: 'qiniu'QINIU_API_KEYdeepseek-v3OpenAI 兼容。端点 https://api.qnaigc.com/v1;多个模型系列,见 Qiniu AI docs
AWS Bedrockprovider: 'bedrock'无(AWS SDK 凭据链)anthropic.claude-3-5-haiku-20241022-v1:0无 API 密钥。设置 AWS_REGION,或把 region 作为第 4 个参数传给 createAdapter。凭据来自环境变量、共享配置或 IAM 角色。较新的 Claude 模型可能需要跨区域推理配置前缀,如 us.。同时支持 Llama、Mistral 和 Cohere。见 providers/bedrock。需要 npm install @aws-sdk/client-bedrock-runtime

当一个服务端支持 OpenAI Chat Completions 时,不需要任何捆绑的快捷方式。使用 provider: 'openai' 并把 baseURL 指向该服务。

ServiceConfigEnv varExample modelNotes
Ollama (local)provider: 'openai' + baseURL: 'http://localhost:11434/v1'nonellama3.1
vLLM (local)provider: 'openai' + baseURLnoneserver-loaded
LM Studio (local)provider: 'openai' + baseURLnoneserver-loaded
llama.cpp server (local)provider: 'openai' + baseURLnoneserver-loaded
OpenRouterprovider: 'openai' + baseURL: 'https://openrouter.ai/api/v1' + apiKeyOPENROUTER_API_KEYopenai/gpt-4o-mini
Groqprovider: 'openai' + baseURL: 'https://api.groq.com/openai/v1'GROQ_API_KEYllama-3.3-70b-versatile
Mistralprovider: 'openai' + baseURL: 'https://api.mistral.ai/v1'MISTRAL_API_KEYmistral-large-latestproviders/mistral
MiMoprovider: 'openai' + baseURL: 'https://api.xiaomimimo.com/v1'MIMO_API_KEYmimo-v2.5-pro在使用工具调用的智能体循环时,优先选用内置的 mimo 提供方。Token Plan 用户应设置自己的 token-plan-*.xiaomimimo.com/v1 base URL。
Zhipu GLMprovider: 'openai' + baseURL: 'https://open.bigmodel.cn/api/paas/v4'ZHIPU_API_KEYglm-4-plusproviders/zhipu
Qwen (DashScope)provider: 'openai' + baseURL: 'https://dashscope.aliyuncs.com/compatible-mode/v1'DASHSCOPE_API_KEYqwen-plusproviders/qwen
Moonshot AI (Kimi)provider: 'openai' + baseURL: 'https://api.moonshot.ai/v1'MOONSHOT_API_KEYkimi-k2.5providers/moonshot
LiteLLM (proxy)provider: 'openai' + baseURL: 'http://localhost:4000/v1' + apiKeyLITELLM_API_KEY(若代理启用了鉴权)代理上的任意模型LiteLLM 把 100+ 提供方(OpenAI、Anthropic、Azure、Bedrock、Vertex 等)统一到一个 OpenAI 兼容端点之后。运行 litellm --config config.yaml 并把 baseURL 指向该代理。

其他服务只要实现了 OpenAI Chat Completions API,也能以同样方式接入,但这里未把它们列为已验证的提供方。对于密钥不是 OPENAI_API_KEY 的服务,通过 apiKey 显式传入;否则 openai 适配器会回退到 OPENAI_API_KEY

OMA 注册的是 JSON schema 的 function 工具。如果 OpenAI 兼容响应里出现独立的 custom 工具调用变体,适配器会抛出 UnsupportedToolCallError,而不是丢弃这次调用 或呈现一次空的成功回合。

Token 计数与 provider 无关。成本核算仍由应用拥有,因为 provider 定价、缓存 token 规则、地域与合同价格都会变化。配置一次 estimateCost,再在编排器或单次团队运行上 设置上限:

const orchestrator = new OpenMultiAgent({
maxCostBudget: 1,
estimateCost: (usage, context) => priceTable[context.model](usage),
})
const result = await orchestrator.runTeam(team, goal, {
governanceIntent: 'required',
requiredRoles: ['reviewer', 'security'],
maxCostBudget: 0.25,
})

两个作用域都设置上限时,较低者生效;maxTokenBudget 同理。如果 required 运行在 必要执行事实完整前耗尽有效上限,会报告 governanceConclusion: 'unsatisfied'governanceReason: 'budget',不会被表示为治理成功。应用指定的 mode 优先于 required 拓扑,但未满足的下限会以 unsatisfied / overriddengovernance-overridden 标记披露。自动路由优先级最低。

对于 governanceIntent: 'preferred',可设 preferredUnderBudget: 'degrade',在存在有效上限时选择 Single。结果会携带 review-skipped-due-to-budget;这个软偏好对 required 治理判决仍是 not-applicable。默认值为 attempt,保持原行为。

这些控制不会执行预先的价格或延迟估算。estimateCost 在每次 provider 响应后 转换用量,token / 成本检查仍发生在既有的模型轮次与任务边界,因此可能超出一个 正在执行的模型轮次。preferredUnderBudget: 'degrade' 是应用声明的策略选择, 不是对某个计划必然超预算的预测。

AI SDK 桥接器让智能体通过任意 AI SDK 提供方运行,而不是使用内置的 provider 工厂。使用 npm i ai @ai-sdk/<provider> 安装可选 peer;peer 版本范围接受 AI SDK 5、6 和 7,AI SDK 7 要求 Node.js >= 22。

AgentConfig 上传入 adapter: new AISdkAdapter(model)。设置 adapter 后,该智能体会忽略 providerapiKeybaseURLregion。混合团队仍照常工作:只有带 adapter 的智能体使用 AI SDK。

import { openai } from '@ai-sdk/openai'
import { AISdkAdapter } from '@open-multi-agent/core/ai-sdk'
import { OpenMultiAgent } from '@open-multi-agent/core'
const oma = new OpenMultiAgent()
await oma.runAgent(
{
name: 'researcher',
model: 'gpt-4o',
adapter: new AISdkAdapter(openai('gpt-4o')),
systemPrompt: 'You are a researcher.',
},
'What are the latest AI trends?',
)

协调器通过 runTeam(team, goal, { coordinator: { adapter: new AISdkAdapter(...) } }) 接受同一个钩子。完整应用见 integrations/with-vercel-ai-sdk

AgentConfig 上的一份 thinking 配置会映射到各提供方的原生推理设置:

const agent = {
name: 'deep-reasoner',
provider: 'anthropic',
model: 'claude-opus-4-6',
systemPrompt: 'Reason carefully before answering.',
thinking: { enabled: true, budgetTokens: 8_000 },
}
  • budgetTokens 映射到 Anthropic 的 thinking.budget_tokens 和 Gemini 的 thinkingConfig.thinkingBudget
  • effort'low' | 'medium' | 'high')映射到 OpenAI 兼容的 reasoning_effort。框架 union 之外的值(例如 'minimal''none')可通过 extraBody: { reasoning_effort: '<value>' } 传入。
  • DeepSeek 还会把 enabled 映射为 thinking: { type: 'enabled' | 'disabled' },并接受 effort: 'max'。其他内置的 OpenAI 系列适配器会忽略 DeepSeek 专有的 max 值。显式的 extraBody 取值优先。
  • 适配器会忽略无法识别的字段,因此同一份配置可安全用于混合提供方团队。

推理以 reasoning 事件流式传输。跨提供方切换时保留推理需通过 preserveReasoningAsText 选择启用;参见上下文管理patterns/cross-provider-reasoning

框架支持对由 Ollama、vLLM、LM Studio 或 llama.cpp 提供服务的本地模型进行工具调用。工具调用通过 OpenAI 兼容 API 原生处理。

已验证的本地模型包括 Gemma 4、Llama 3.1、Qwen 3、Mistral 和 Phi-4。Ollama 在 ollama.com/search?c=tools 发布其支持工具的模型。

如果某个本地模型把工具调用以文本形式返回,而非 tool_calls 线路格式,框架会自动从文本输出中提取它们。这对思考型模型或配置不当的本地服务端有帮助。

对慢速的本地推理,在 AgentConfig 上使用 timeoutMs

const localAgent = {
name: 'local',
model: 'llama3.1',
provider: 'openai',
baseURL: 'http://localhost:11434/v1',
apiKey: 'ollama',
tools: ['bash', 'file_read'],
timeoutMs: 120_000,
}

在消费级硬件上高度量化的 MoE 模型,在默认采样下可能陷入重复循环或臆造工具调用 schema。AgentConfig 暴露了 topKminPfrequencyPenaltypresencePenaltyparallelToolCallsextraBody,用于服务端专属的参数,如 vLLM 的 repetition_penalty。完整配置见 providers/local-quantized

  • 模型不调用工具?确认它出现在 Ollama 的 Tools category 中。
  • 正在使用 Ollama?用 ollama update 更新到最新版本。
  • 代理干扰本地服务端?使用 no_proxy=localhost
// 直接联系

把 Open Multi-Agent 用进真实业务

联系框架作者本人,帮你梳理 AI 落地目标、让 AI 真正与业务结合

可提供的工程服务
S-01

AI Agent 定制开发

业务梳理、Agent 设计、Prompt 评估、生产部署、私有化与持续支持。

S-02

多智能体系统集成

多 Agent 架构编排、RAG、CRM / ERP / API 对接、性能与稳定性调优。

S-03

企业 AI 咨询

AI 场景评估、技术选型、POC、ROI 估算与落地路线规划。