AutoGen 是微软开源的多智能体编排框架,MIT 协议,仓库在 github.com/microsoft/autogen。需要先说清楚它今天的状态:Python 侧的 autogen-core / autogen-agentchat / autogen-ext 三个包停在 0.7.5(2025 年 9 月 30 日),项目已进入维护模式、转为社区托管,官方不再往里加新特性;微软把接力棒交给了 Microsoft Agent Framework(PyPI 包名 agent-framework,已到 1.15.0,MIT,Python ≥ 3.10),仓库里直接放了从 AutoGen 迁移过去的指南。而 v0.2 那条老血脉(ConversableAgent、GroupChatManager、OAI_CONFIG_LIST)被社区分叉成 AG2,Apache-2.0,现在是 1.0.2,经典 API 被搬到了 ag2-classic 里。停更不等于不能用——0.7.5 的 API 冻结了,反而是做私有化部署最省心的一件事:依赖不会在你背后变。
所以「AutoGen 需要多大显存」这个问题问错了对象。autogen-core 是一个 actor 模型的消息运行时,agent 之间靠邮箱投递消息,整个框架进程跑在 CPU 上,可以和 GPU 节点分机部署;autogen-ext 里的 OpenAIChatCompletionClient、OllamaChatCompletionClient 也只是 HTTP 客户端。显存账全部记在后端推理服务头上:Qwen3-8B 的 GGUF Q4_K_M 是 4.68GB、Q8_0 是 8.11GB,bf16 权重按 8.2B × 2 字节算约 16.4GB;换成 Qwen3-30B-A3B 这种 MoE,Q4_K_M 18.6GB、Q6_K 25.1GB、Q8_0 32.5GB,bf16 大约 61GB。你要按这些数字选卡,而不是按 AutoGen 的版本号。
多智能体真正烧钱的地方在 token,不在权重。RoundRobinGroupChat 每一轮都会把全量对话历史重新喂给下一个 agent,token 消耗接近 O(n²);SelectorGroupChat 更狠,每换一次发言人还要额外调一次模型来选人。Qwen3 GGUF 的原生上下文是 40,960,三个 agent 聊十来轮就能把它顶穿。这就是为什么本地部署 AutoGen 的正确姿势是:一张按秒计费、随时能停的卡,加上写死的 MaxMessageTermination 和 TokenUsageTermination。NexGPU 在 51 个国家和地区有 1,175 个已验证可租节点、2,498 张 GPU、75 种型号,从 $0.188/卡·时的 Tesla V100 32GB 到 141GB 的 H200 都能按秒起停。
01 —
AutoGen 现在到底有哪几个包,该装哪个
0.7.5 是最后一条稳定线;旁边还站着 AG2 和微软的接班人 Agent Framework
| 版本 | 参数量 | 显存 | 上下文 | 说明 |
|---|---|---|---|---|
| autogen-agentchat 0.7.5 | 高层 API:AssistantAgent、RoundRobinGroupChat、SelectorGroupChat、Swarm、MagenticOneGroupChat、GraphFlow | 0GB(纯 Python 进程);显存全部由后端 LLM 服务承担 | 受后端模型上下文限制,且团队每轮重放全量历史 | 绝大多数人装的就是这个。安装命令是 pip install -U "autogen-agentchat" "autogen-ext[openai]"。注意 0.4 之后 tools 由同一个 AssistantAgent 在同一次 run() 里直接执行,不再需要 v0.2 那套 UserProxyAgent 配对——从老代码迁过来的人第一个踩的就是这里。 |
| autogen-core 0.7.5 | 事件驱动 actor 运行时与基础接口,Python ≥ 3.10 | 0GB;可以完全跑在 CPU 节点上,只让推理服务占卡 | 运行时本身无上下文概念,消息经 agent 邮箱投递 | 官方定位是「事件驱动、分布式、可扩展、有韧性」的 agent 运行时。它带来的最大部署自由度是:编排逻辑和 GPU 解耦,你可以只在跑推理的那几个小时里租卡,编排进程留在便宜机器上常驻。 |
| autogen-ext 0.7.5 | 模型客户端 / 工具 / 代码执行器 / MCP 扩展层 | 0GB;openai、ollama 客户端只发 HTTP 请求 | 客户端通过 model_info 声明能力,不改变上下文预算 | extras 名字要选对:[openai] 给 vLLM / SGLang / LM Studio 这类 OpenAI 兼容端点,[ollama] 给 OllamaChatCompletionClient,[magentic-one] 装 Magentic-One 那套通才 agent(要额外跑 Playwright 浏览器,还需要一个带视觉能力的模型)。 |
| AutoGen Studio 0.4.2.2 | 低代码 Web UI,包名 autogenstudio | 0GB;但它要求后端有一张常驻卡,建议至少喂得下 Q8_0 的 8.11GB | 由你在界面里选的 model client 决定 | pip install -U "autogenstudio" 之后 autogenstudio ui --port 8081 就起来了。适合把编排流程画给不写 Python 的同事看,但它是原型工具,别拿它当生产网关。 |
| AG2 1.0.2 | v0.2 血脉的社区分叉,Apache-2.0 | 0GB;同样外接推理服务,显存结论完全一致 | 取决于外接模型 | 如果你手上是 2024 年那批 ConversableAgent / GroupChat / config_list 代码,AG2 才是继承者。注意 1.0 做了重构,经典命名空间被挪进了 ag2-classic,直接 pip install ag2 装到的是新的协议化 Agent 架构。 |
| Microsoft Agent Framework 1.15.0 | 微软官方接班人,合并了 AutoGen 与 Semantic Kernel 的路线,MIT | 0GB;迁移过去显存账一分不变,还是后端模型说了算 | 同上,由所选模型客户端决定 | AutoGen 仓库自己写明它是「面向企业的 AutoGen 继任者」,提供稳定 API 和长期支持。新项目建议直接从它起步;但迁移与否不影响你今天该租哪张卡——两边打的都是同一个 OpenAI 兼容端点。 |
02 —
AutoGen 本地部署选什么 GPU
按你要挂在后面的那个模型选卡,NexGPU 按秒计费、无最低消费
调通编排逻辑:三个 agent、几个 tool schema、终止条件,跑 Qwen3-8B 的 Q8_0(8.11GB)或 Q4_K_M(4.68GB)
RTX 4090 24GB$0.540/卡·时
8B 级模型 Q8_0 只占 8.11GB,24GB 里剩下十几 GB 全给 KV 缓存,足够撑住多轮群聊被反复重放的长历史,而且 4090 的 tool call 首 token 延迟对交互式调试最友好。
跑真实任务:Qwen3-30B-A3B 的 Q4_K_M(18.6GB)做主力 agent,配长上下文
RTX 5090 32GB$0.723/卡·时
18.6GB 权重装进 32GB 后还剩十几 GB 喂 KV,正好扛住 SelectorGroupChat 那种「每轮多一次选人调用」的额外开销,比上 80GB 卡便宜一个数量级。
精度优先:Q8_0(32.5GB)或 32B 级 bf16 常驻,多个 agent 共享一个端点并发
RTX A6000 48GB$0.817/卡·时
32.5GB 的 Q8_0 在 32GB 卡上会因为 KV 缓存被挤爆而频繁抢占,48GB 才能让权重和大 batch 的 KV 同时住下,工具调用的 JSON 出错率也比 Q4 明显低。
生产级 / 70B 级 bf16 后端,或一个端点供整个团队的 AutoGen 实验共用
A100 SXM4 80GB$1.088/卡·时
70B 的 bf16 权重约 140GB,必须两张 80GB 做张量并行($2.176/时),NexGPU 单节点最多 14 卡、节点最大显存 2,152GB,扩到多卡不用换供应商。
03 —
在 NexGPU 上把 AutoGen 接到自己的模型上
四步,从空实例到一个能真正调用工具的多智能体团队
- 01
起一个带工具解析器的 vLLM 端点
在 NexGPU 控制台选一张 RTX 4090 24GB 或 RTX 5090 32GB,用预置的 vLLM 镜像开机。关键在于两个参数:--enable-auto-tool-choice 是强制项,--tool-call-parser 对 Qwen 系列选 hermes(Qwen 的 tokenizer 配置本身就是 Hermes 风格的工具调用格式)。漏掉它们,vLLM 会把工具调用当普通文本吐出来,AutoGen 永远收不到 tool call。
vllm serve Qwen/Qwen3-8B --enable-auto-tool-choice --tool-call-parser hermes --max-model-len 32768 --port 8000 - 02
装 AutoGen,只装你要的 extras
接 vLLM / SGLang / LM Studio 这类 OpenAI 兼容端点走 [openai];如果你打算用 Ollama 拉 GGUF,改装 autogen-ext[ollama] 并换成 OllamaChatCompletionClient。两条路的 API 表面不一样,别混。
pip install -U "autogen-agentchat" "autogen-ext[openai]" - 03
手写 model_info——这一步不能省
OpenAIChatCompletionClient 只对官方模型名内置能力表,你填 Qwen/Qwen3-8B 这种名字时它不知道该模型支不支持函数调用,会直接报错要求你补 model_info。五个字段一个都不能少:family、function_calling、json_output、vision、structured_output。function_calling 写 False 的话 AssistantAgent 的 tools 会被静默忽略——这是本地部署 AutoGen 最高频的一个「工具不触发」原因。base_url 指向你的实例,api_key 随便填个非空字符串。
model_client = OpenAIChatCompletionClient(model="Qwen/Qwen3-8B", base_url="http://127.0.0.1:8000/v1", api_key="EMPTY", model_info={"family": "unknown", "function_calling": True, "json_output": True, "vision": False, "structured_output": True}) - 04
组队,并且先写好刹车
先用 RoundRobinGroupChat 跑通,再考虑 SelectorGroupChat 或 Swarm。终止条件用 | 组合起来:只靠 TextMentionTermination("APPROVE") 很危险,本地小模型经常忘记吐那个关键词,然后两个 agent 互相客套到你的卡时耗尽。一定要并上一条硬性的 MaxMessageTermination 或 TokenUsageTermination。代码执行方面,如果实例里没开嵌套 Docker,就用 LocalCommandLineCodeExecutor 配一个隔离 venv,别硬等 DockerCommandLineCodeExecutor。
team = RoundRobinGroupChat([primary, critic], termination_condition=TextMentionTermination("APPROVE") | MaxMessageTermination(12))
跑一个三 agent 团队,一周花多少钱
第一阶段先把编排调通:Qwen3-8B 的 Q8_0 只有 8.11GB,塞进 RTX 4090 24GB 绰绰有余,$0.540/卡·时 × 8 小时 = $4.32,这段时间用来对 tool schema、试终止条件、看 agent 是不是真在传消息。第二阶段换成 Qwen3-30B-A3B 的 Q4_K_M(18.6GB)压真实任务,上 RTX 5090 32GB,剩下的十几 GB 正好喂被反复重放的对话历史,$0.723/卡·时 × 12 小时 = $8.68。权重、vLLM 镜像层和运行日志按 50GB 算,存储 50 × $0.414 = $20.70/月;把结果和 trace 拉回本地按 5GB 计,出网 5 × $0.0081 = $0.04。首周合计 $4.32 + $8.68 + $20.70 + $0.04 ≈ $33.74,其中真正的算力只有 $13.00。这里有个计费口径必须记住:实例一停,算力立刻停止计费,而存储要到卷被销毁才停。多智能体开发有大半时间花在改 prompt、读日志、重画流程图上,这些时间本来就不该继续付卡钱——NexGPU 按秒计费、按小时定价、无最低消费、无开通费、不用申请配额,正好吃这个节奏。对照一下:同样的活如果一路挂在 H100 SXM 80GB 上,$3.582/卡·时 × 20 小时就是 $71.64,是上面算力部分的五倍多,而 8B 和 30B-A3B 根本用不上那张卡。
04 —
