<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>多供应商 on 超越网</title><link>https://www.chaoyuewang.cn/tags/%E5%A4%9A%E4%BE%9B%E5%BA%94%E5%95%86/</link><description>Recent content in 多供应商 on 超越网</description><generator>Hugo</generator><language>zh-cn</language><lastBuildDate>Wed, 27 May 2026 13:00:00 +0800</lastBuildDate><atom:link href="https://www.chaoyuewang.cn/tags/%E5%A4%9A%E4%BE%9B%E5%BA%94%E5%95%86/index.xml" rel="self" type="application/rss+xml"/><item><title>多供应商AI服务组合架构：为什么我不用单一API</title><link>https://www.chaoyuewang.cn/posts/infra/multi-provider-ai-architecture/</link><pubDate>Wed, 27 May 2026 13:00:00 +0800</pubDate><guid>https://www.chaoyuewang.cn/posts/infra/multi-provider-ai-architecture/</guid><description>&lt;h2 id="前言"&gt;前言&lt;/h2&gt;
&lt;p&gt;过去两年，我经历过三次AI服务供应商切换：从最初的单一供应商依赖，到发现限流和成本问题后的多供应商组合，再到现在的&amp;quot;可编程认知系统&amp;quot;架构。&lt;/p&gt;
&lt;p&gt;这篇文章记录我当前的AI服务组合架构，以及为什么&amp;quot;单一供应商&amp;quot;在长期生产环境中是一个风险点。&lt;/p&gt;
&lt;h2 id="一当前架构概览"&gt;一、当前架构概览&lt;/h2&gt;
&lt;p&gt;我的AI服务组合由四个供应商组成：&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;供应商&lt;/th&gt;
&lt;th&gt;模型&lt;/th&gt;
&lt;th&gt;主要用途&lt;/th&gt;
&lt;th&gt;接入方式&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;智谱AI&lt;/td&gt;
&lt;td&gt;GLM Coding Lite&lt;/td&gt;
&lt;td&gt;代码生成、技术问答&lt;/td&gt;
&lt;td&gt;API&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;MiniMax&lt;/td&gt;
&lt;td&gt;多种模型&lt;/td&gt;
&lt;td&gt;文本生成、创意写作&lt;/td&gt;
&lt;td&gt;API&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;DeepSeek&lt;/td&gt;
&lt;td&gt;DeepSeek-V3&lt;/td&gt;
&lt;td&gt;代码审查、复杂推理&lt;/td&gt;
&lt;td&gt;API&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;SenseNova&lt;/td&gt;
&lt;td&gt;6.7 Flash-Lite&lt;/td&gt;
&lt;td&gt;日常协作、多模态&lt;/td&gt;
&lt;td&gt;自定义提供商&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;strong&gt;核心原则&lt;/strong&gt;：没有单一供应商承担超过40%的工作负载。&lt;/p&gt;
&lt;h2 id="二为什么需要多供应商"&gt;二、为什么需要多供应商&lt;/h2&gt;
&lt;h3 id="21-限流风险"&gt;2.1 限流风险&lt;/h3&gt;
&lt;p&gt;2025年Q3，我遇到的第一个限流事件：某供应商在高峰期对API调用实施软限流，返回429错误但不提供明确的重试头信息。当时我的自动化脚本全部阻塞，等待了12分钟才恢复。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;教训&lt;/strong&gt;：单一供应商的限流策略不可控，多供应商可以自动降级。&lt;/p&gt;
&lt;h3 id="22-成本优化"&gt;2.2 成本优化&lt;/h3&gt;
&lt;p&gt;不同供应商的定价策略差异显著：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;简单任务（文本摘要、格式转换）→ 使用低价供应商&lt;/li&gt;
&lt;li&gt;中等复杂度（代码审查、技术文档）→ 使用性价比最优供应商&lt;/li&gt;
&lt;li&gt;高复杂度（架构设计、深度分析）→ 使用高能力供应商&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;通过任务路由，整体成本比单一使用高能力供应商降低约35%。&lt;/p&gt;
&lt;h3 id="23-能力互补"&gt;2.3 能力互补&lt;/h3&gt;
&lt;p&gt;没有哪个供应商在所有任务上都是最优的：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;代码生成&lt;/strong&gt;：GLM Coding Lite 在小型脚本上表现优异&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;复杂推理&lt;/strong&gt;：DeepSeek-V3 在多步推理任务上更稳定&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;创意写作&lt;/strong&gt;：MiniMax 在中文创意内容上更有表现力&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;多模态&lt;/strong&gt;：SenseNova 在图像理解和生成上有独特优势&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="三架构实现"&gt;三、架构实现&lt;/h2&gt;
&lt;h3 id="31-统一接入层"&gt;3.1 统一接入层&lt;/h3&gt;
&lt;p&gt;我使用 Hermes Agent 作为统一接入层，配置如下：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-yaml" data-lang="yaml"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c"&gt;# config.yaml 片段&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;providers&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;- &lt;span class="nt"&gt;name&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;glm-coding&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;provider&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;custom:glm-coding-lite&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;weight&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;30&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;- &lt;span class="nt"&gt;name&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;minimax&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;provider&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;minimax&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;weight&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;25&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;- &lt;span class="nt"&gt;name&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;deepseek&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;provider&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;deepseek&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;weight&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;25&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;- &lt;span class="nt"&gt;name&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;sensenova&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;provider&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;custom:sensenova-6.7-flash-lite&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;weight&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;20&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="32-任务路由策略"&gt;3.2 任务路由策略&lt;/h3&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;任务类型 → 路由规则
─────────────────────────────────────
代码生成 → glm-coding (优先) → deepseek (降级)
技术问答 → deepseek (优先) → glm-coding (降级)
创意写作 → minimax (优先) → sensenova (降级)
多模态 → sensenova (唯一)
日常协作 → sensenova (优先) → 其他 (降级)
&lt;/code&gt;&lt;/pre&gt;&lt;h3 id="33-降级机制"&gt;3.3 降级机制&lt;/h3&gt;
&lt;p&gt;当主供应商不可用时，自动切换到备用供应商：&lt;/p&gt;</description><content:encoded><![CDATA[<h2 id="前言">前言</h2>
<p>过去两年，我经历过三次AI服务供应商切换：从最初的单一供应商依赖，到发现限流和成本问题后的多供应商组合，再到现在的&quot;可编程认知系统&quot;架构。</p>
<p>这篇文章记录我当前的AI服务组合架构，以及为什么&quot;单一供应商&quot;在长期生产环境中是一个风险点。</p>
<h2 id="一当前架构概览">一、当前架构概览</h2>
<p>我的AI服务组合由四个供应商组成：</p>
<table>
	<thead>
			<tr>
					<th>供应商</th>
					<th>模型</th>
					<th>主要用途</th>
					<th>接入方式</th>
			</tr>
	</thead>
	<tbody>
			<tr>
					<td>智谱AI</td>
					<td>GLM Coding Lite</td>
					<td>代码生成、技术问答</td>
					<td>API</td>
			</tr>
			<tr>
					<td>MiniMax</td>
					<td>多种模型</td>
					<td>文本生成、创意写作</td>
					<td>API</td>
			</tr>
			<tr>
					<td>DeepSeek</td>
					<td>DeepSeek-V3</td>
					<td>代码审查、复杂推理</td>
					<td>API</td>
			</tr>
			<tr>
					<td>SenseNova</td>
					<td>6.7 Flash-Lite</td>
					<td>日常协作、多模态</td>
					<td>自定义提供商</td>
			</tr>
	</tbody>
</table>
<p><strong>核心原则</strong>：没有单一供应商承担超过40%的工作负载。</p>
<h2 id="二为什么需要多供应商">二、为什么需要多供应商</h2>
<h3 id="21-限流风险">2.1 限流风险</h3>
<p>2025年Q3，我遇到的第一个限流事件：某供应商在高峰期对API调用实施软限流，返回429错误但不提供明确的重试头信息。当时我的自动化脚本全部阻塞，等待了12分钟才恢复。</p>
<p><strong>教训</strong>：单一供应商的限流策略不可控，多供应商可以自动降级。</p>
<h3 id="22-成本优化">2.2 成本优化</h3>
<p>不同供应商的定价策略差异显著：</p>
<ul>
<li>简单任务（文本摘要、格式转换）→ 使用低价供应商</li>
<li>中等复杂度（代码审查、技术文档）→ 使用性价比最优供应商</li>
<li>高复杂度（架构设计、深度分析）→ 使用高能力供应商</li>
</ul>
<p>通过任务路由，整体成本比单一使用高能力供应商降低约35%。</p>
<h3 id="23-能力互补">2.3 能力互补</h3>
<p>没有哪个供应商在所有任务上都是最优的：</p>
<ul>
<li><strong>代码生成</strong>：GLM Coding Lite 在小型脚本上表现优异</li>
<li><strong>复杂推理</strong>：DeepSeek-V3 在多步推理任务上更稳定</li>
<li><strong>创意写作</strong>：MiniMax 在中文创意内容上更有表现力</li>
<li><strong>多模态</strong>：SenseNova 在图像理解和生成上有独特优势</li>
</ul>
<h2 id="三架构实现">三、架构实现</h2>
<h3 id="31-统一接入层">3.1 统一接入层</h3>
<p>我使用 Hermes Agent 作为统一接入层，配置如下：</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-yaml" data-lang="yaml"><span class="line"><span class="cl"><span class="c"># config.yaml 片段</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="nt">providers</span><span class="p">:</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">  </span>- <span class="nt">name</span><span class="p">:</span><span class="w"> </span><span class="l">glm-coding</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">    </span><span class="nt">provider</span><span class="p">:</span><span class="w"> </span><span class="l">custom:glm-coding-lite</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">    </span><span class="nt">weight</span><span class="p">:</span><span class="w"> </span><span class="m">30</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">  </span>- <span class="nt">name</span><span class="p">:</span><span class="w"> </span><span class="l">minimax</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">    </span><span class="nt">provider</span><span class="p">:</span><span class="w"> </span><span class="l">minimax</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">    </span><span class="nt">weight</span><span class="p">:</span><span class="w"> </span><span class="m">25</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">  </span>- <span class="nt">name</span><span class="p">:</span><span class="w"> </span><span class="l">deepseek</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">    </span><span class="nt">provider</span><span class="p">:</span><span class="w"> </span><span class="l">deepseek</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">    </span><span class="nt">weight</span><span class="p">:</span><span class="w"> </span><span class="m">25</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">  </span>- <span class="nt">name</span><span class="p">:</span><span class="w"> </span><span class="l">sensenova</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">    </span><span class="nt">provider</span><span class="p">:</span><span class="w"> </span><span class="l">custom:sensenova-6.7-flash-lite</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">    </span><span class="nt">weight</span><span class="p">:</span><span class="w"> </span><span class="m">20</span><span class="w">
</span></span></span></code></pre></div><h3 id="32-任务路由策略">3.2 任务路由策略</h3>
<pre tabindex="0"><code>任务类型 → 路由规则
─────────────────────────────────────
代码生成    → glm-coding (优先) → deepseek (降级)
技术问答    → deepseek (优先) → glm-coding (降级)
创意写作    → minimax (优先) → sensenova (降级)
多模态      → sensenova (唯一)
日常协作    → sensenova (优先) → 其他 (降级)
</code></pre><h3 id="33-降级机制">3.3 降级机制</h3>
<p>当主供应商不可用时，自动切换到备用供应商：</p>
<ol>
<li><strong>检测到错误</strong>（超时、5xx、限流）</li>
<li><strong>记录错误日志</strong>（用于后续分析）</li>
<li><strong>切换备用供应商</strong></li>
<li><strong>通知用户</strong>（仅当所有供应商都不可用时）</li>
</ol>
<h2 id="四代理环境集成">四、代理环境集成</h2>
<p>所有AI API调用都经过 Clash Meta 代理（聚合飞鸟云46节点 + 杜卡迪21节点 = 67节点），确保：</p>
<ul>
<li><strong>网络稳定性</strong>：多节点冗余，单节点故障不影响整体</li>
<li><strong>地理优化</strong>：根据供应商服务器位置选择最优出口节点</li>
<li><strong>合规性</strong>：国内供应商走国内节点，海外供应商走海外节点</li>
</ul>
<h2 id="五成本分析">五、成本分析</h2>
<table>
	<thead>
			<tr>
					<th>项目</th>
					<th>单一供应商</th>
					<th>多供应商组合</th>
					<th>节省</th>
			</tr>
	</thead>
	<tbody>
			<tr>
					<td>月均API调用</td>
					<td>50,000次</td>
					<td>50,000次</td>
					<td>-</td>
			</tr>
			<tr>
					<td>月均成本</td>
					<td>¥1,200</td>
					<td>¥780</td>
					<td>35%</td>
			</tr>
			<tr>
					<td>限流事件</td>
					<td>3次/月</td>
					<td>0次/月</td>
					<td>100%</td>
			</tr>
			<tr>
					<td>平均响应时间</td>
					<td>2.3s</td>
					<td>1.8s</td>
					<td>22%</td>
			</tr>
	</tbody>
</table>
<h2 id="六总结">六、总结</h2>
<p>多供应商AI服务组合的核心价值不是&quot;省钱&quot;，而是<strong>可控性</strong>：</p>
<ol>
<li><strong>限流可控</strong>：一个供应商限流，其他供应商可以承接</li>
<li><strong>成本可控</strong>：根据任务复杂度选择最优供应商</li>
<li><strong>能力可控</strong>：不同任务使用最适合的模型</li>
<li><strong>架构可控</strong>：统一接入层可以灵活调整供应商配置</li>
</ol>
<p>如果你也在构建AI基础设施，我的建议是：<strong>不要把所有鸡蛋放在一个篮子里</strong>，尤其是在生产环境中。</p>
<hr>
<blockquote>
<p><strong>更新日志</strong>：本文基于2026年5月实际架构编写，供应商和模型可能随时间变化，请以实际配置为准。</p>
</blockquote>
]]></content:encoded></item></channel></rss>