推荐模型
能填进 AI_MODEL 的模型有成千上万个。但其中大部分都不适合这门课,原因归结到一个能力上。
唯一的硬性要求:工具调用(tool calling)
智能体(agent)本质上是一个能请求你的应用程序代它执行某个操作的模型。它自己并不会真正去执行任何操作。
它返回的是一个结构化请求,大意是:“调用 get_weather,把 city 设为 Oslo,然后把结果告诉我。”你的代码运行这个函数,再把结果交回给它。
这个结构化请求就是工具调用(tool calling),一个不支持它的模型,无论周围的代码怎么写,都无法变成一个智能体。这不是模型强弱或快慢的问题,而是整门课程都依赖的那种消息结构,在这个模型里根本就不存在。
除了工具调用之外,这门课在讲解过程中还会依赖几项相关能力:传递严格类型化的参数、控制是否使用某个工具,以及返回结构化输出——也就是按你界面能渲染的模式(schema)组织的回复,而不是一段松散的文字。不同模型在这些能力上的可靠程度差异很大,这也是下面这份推荐清单存在的原因。
如果后面出了问题,先怀疑模型
这是这门课里最有用的排错直觉。如果某一课其他人都能跑通,只有你不行,而你的代码和答案对得上,那就先换一个推荐模型试试,别急着怀疑自己的代码。模型能力不足和代码有 bug,在控制台输出上看起来往往非常相似。
这一来一回正是智能体的核心思路。一个发不出这种请求的模型,不是一个能力弱一点的智能体,而是根本算不上智能体,所以这是你考察任何一个模型时第一件要确认的事。
推荐清单
下面每个模型都是针对课程实际的智能体工作流实测过的,不是靠抽象的 benchmark 打分。它们都速度快、成本低。
| 适用场景 | 模型 | 服务商 |
|---|---|---|
| 想用默认选项 | gpt-5.4-nano | OpenAI |
| 想找最便宜的非 OpenAI 路线 | mistralai/ministral-3b-2512 | OpenRouter |
| 想要更大的余量 | gpt-5.4-mini | OpenAI |
| 想用最新的低成本模型 | gpt-5.6-luna | OpenAI |
| 想要一个更均衡的新模型 | gpt-5.6-terra | OpenAI |
| 想用更大的 Mistral 模型 | mistralai/ministral-14b-2512 | OpenRouter |
**如果不想多想,直接用 gpt-5.4-nano 就对了。**它通过了课程依赖的每一项能力检查,也是能跑通完整工作流里最便宜的、经过验证的选择。
关于其余几个模型再补充几句。Ministral 3B 是一个平价替代品,不是质量上的升级,选它主要是图便宜。5.6 系列比 5.4 更新,但更新不代表更便宜,Nano 依然是最省钱的默认选择。Ministral 14B 能用,但在课程里“工具调用 + 结构化输出”混合流程的测试中,一致性略逊于 3B,这也是它排名靠后的原因。
如果你想只用一个账号、一个 key,OpenAI 的模型也可以通过 OpenRouter 访问到。OpenRouter 上的 openai/gpt-5.4-nano 是一条经过验证的路线。
gpt-5.4-nano,继续往下学就好。它是所有检查项都通过的模型里最便宜的一个,而选模型这件事本身并不是这门课有意思的地方! 如果之后想试试别的,表格就在这里,没人拦着你。
顺序调用 vs 并行调用
有些模型会在一轮里发出多个工具调用,有些模型每轮只发一个调用,然后循环。两种方式都能顺利完成这门课。
如果你用的模型每次只调用一个工具,你依然能得到相同的结果。只是你不会看到后面课程里演示的那种“批量调用”效果——模型一次性请求两个工具。这是模型本身的设计选择,不是你需要修复的问题。
所以如果某一课演示的是一次回复里包含两个工具调用,而你的模型是一个接一个地做,这并不是出了问题,只是模型的风格不同,不是你的 bug。
免费模型
免费的接口是存在的,大多通过 OpenRouter 提供,用它们来学习、不花一分钱也是完全可行的。
这门课建议尝试的免费路线是 OpenRouter 上的 google/gemma-4-26b-a4b-it:free。请把它当作一种实验,而不要当成上面推荐清单里的选项,因为免费接口有速率限制(意味着服务商会限制你在某个时间段内能发出的请求数量,超出部分直接拒绝),而且免费接口往往没有经过和推荐清单同等程度的测试。
任何免费路线都要留意这两点:
- **可用性会变。**今天能用的免费模型,下个月可能就被限流甚至下线了,免费套餐的政策变动很频繁,文档里列出的清单很快就会过时。
- **一致性也会变。**免费路线经常在不同的底层服务商之间切换,所以同一个 prompt 在不同次运行中表现可能不一样。当你在学一个新概念时,这种不稳定性会让你很难判断,某个奇怪的结果究竟是你代码的问题,还是这条路线本身的问题。
如果某一课因为免费路线而卡住了,花几分钱切换到上面推荐的付费模型试试。这是排除“模型本身有问题”这一可能性、继续往下学最快的办法。
先检查 Privacy(隐私)设置
在启用任何免费接口之前,先打开 OpenRouter 的Privacy设置页。免费路线可能会把你的请求发送给数据政策不同的服务商,而这个页面就是你决定允许哪些服务商的地方。
原因很简单:你没法区分“奇怪的答案”和“奇怪的路线”,而这恰恰是学习过程中最需要分清楚的两件事。如果某一课开始出怪状况,先花几分钱换个付费模型试试,别急着在自己代码上花一整个小时!
跳出推荐清单
放心大胆地去试。这本身就是最有意思的部分。但要记住上面那条排错原则:当后面某一课的表现不符合预期时,先确认是不是模型能力的问题,再去代码里翻找。
模型目录和价格的变动速度,比文档更新的速度快得多,所以这里提到的任何具体模型名称,都只是某个时间点的快照。服务商自己的模型页面,永远是关于“现在有哪些模型、各自要花多少钱”最权威的信息来源。
保持这两个习惯就能少踩坑:先确认模型支持工具调用,再去怀疑自己的代码;模型 ID 要从服务商自己的页面复制,而不是从任何写好一段时间的资料里抄,包括这篇文档本身!
接下来去哪儿
Chat Completions 与 Responses 这一节,讲的是你会遇到的两种 API 结构,以及这门课为什么最终选定了其中一种。如果你的服务商配置还没保存,那就先去看 服务商配置 这一页。

