跳到主要内容

多智能体框架

AutoGen 多智能体本地部署,显存全花在它背后的模型上

AutoGen 是纯 Python 的事件驱动 agent 运行时,自己一个字节显存都不占。真正要租卡的,是你挂在它后面那个 OpenAI 兼容端点。

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、GraphFlow0GB(纯 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.100GB;可以完全跑在 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,包名 autogenstudio0GB;但它要求后端有一张常驻卡,建议至少喂得下 Q8_0 的 8.11GB由你在界面里选的 model client 决定pip install -U "autogenstudio" 之后 autogenstudio ui --port 8081 就起来了。适合把编排流程画给不写 Python 的同事看,但它是原型工具,别拿它当生产网关。
AG2 1.0.2v0.2 血脉的社区分叉,Apache-2.00GB;同样外接推理服务,显存结论完全一致取决于外接模型如果你手上是 2024 年那批 ConversableAgent / GroupChat / config_list 代码,AG2 才是继承者。注意 1.0 做了重构,经典命名空间被挪进了 ag2-classic,直接 pip install ag2 装到的是新的协议化 Agent 架构。
Microsoft Agent Framework 1.15.0微软官方接班人,合并了 AutoGen 与 Semantic Kernel 的路线,MIT0GB;迁移过去显存账一分不变,还是后端模型说了算同上,由所选模型客户端决定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 接到自己的模型上

四步,从空实例到一个能真正调用工具的多智能体团队

  1. 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
  2. 02

    装 AutoGen,只装你要的 extras

    接 vLLM / SGLang / LM Studio 这类 OpenAI 兼容端点走 [openai];如果你打算用 Ollama 拉 GGUF,改装 autogen-ext[ollama] 并换成 OllamaChatCompletionClient。两条路的 API 表面不一样,别混。

    pip install -U "autogen-agentchat" "autogen-ext[openai]"
  3. 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})
  4. 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 —

常见问题

AutoGen 本地部署到底需要多大显存?

AutoGen 框架本体需要 0GB 显存,它是纯 Python 的事件驱动运行时,甚至可以和 GPU 完全分机部署。显存全部由你挂在后面的模型决定:Qwen3-8B 的 Q4_K_M 是 4.68GB、Q8_0 是 8.11GB、bf16 约 16.4GB;Qwen3-30B-A3B 的 Q4_K_M 是 18.6GB、Q6_K 25.1GB、Q8_0 32.5GB。再加上多智能体每轮重放全量历史带来的 KV 缓存,实际选卡请在权重之上留出至少一半余量。对应到 NexGPU:8B 级选 RTX 4090 24GB($0.540/卡·时),30B-A3B 的 Q4 选 RTX 5090 32GB($0.723/卡·时),Q8_0 常驻选 RTX A6000 48GB($0.817/卡·时),开机即用的 vLLM 与 PyTorch 镜像都在 2,000+ 预置镜像里。

AutoGen 是不是已经停止维护了?2026 年还该不该用?

Python 侧停在 0.7.5,项目进入维护模式并转为社区托管,微软推荐新项目直接用 Microsoft Agent Framework(agent-framework,已到 1.15.0,MIT),仓库里有现成的迁移指南;v0.2 那条老血脉则由 AG2(Apache-2.0,1.0.2)接手。但对私有化部署来说,API 冻结反而是好事——依赖树不会在你背后变,0.7.5 的行为可以长期复现。而且不管你最后用 AutoGen、AG2 还是 Agent Framework,三者打的都是同一个 OpenAI 兼容端点,硬件选型完全通用。在 NexGPU 上你可以开两个实例并排跑迁移对比,用完就停,按秒结算。

AutoGen 接了本地 vLLM,为什么 AssistantAgent 的工具一直不触发?

两个原因占了九成。第一,vLLM 启动时漏了 --enable-auto-tool-choice 和 --tool-call-parser,Qwen 系列要用 hermes 解析器,没有它模型吐出来的工具调用会被当成普通文本;第二,OpenAIChatCompletionClient 的 model_info 里 function_calling 写成了 False,AssistantAgent 会静默忽略 tools 列表。另外要注意很多本地小模型的并行工具调用能力很弱,能力越小越建议一次只给一个工具。在 NexGPU 上验证这类问题很便宜:起一台 RTX 4090 24GB,$0.540/卡·时,改一个参数重启一次 vLLM 就知道结果,SSH、Jupyter、Web 终端和 REST API 都能直接连。

一张 RTX 4090 24GB 够不够跑 AutoGen 多智能体?

跑得动,而且是性价比最高的起点。24GB 足以承载 8B 级模型的 Q8_0(8.11GB)甚至 bf16(约 16.4GB),剩余显存给 KV 缓存,三到五个 agent 的 RoundRobinGroupChat 完全够用。真正会顶穿它的是上下文——Qwen3 GGUF 原生 40,960,团队每轮重放全量历史,聊久了必须靠终止条件兜住。如果要上 30B-A3B 的 Q4(18.6GB)或者高并发,就换 RTX 5090 32GB($0.723/卡·时)或 RTX A6000 48GB($0.817/卡·时)。NexGPU 上这三张卡都是现成节点,换卡就是重开一个实例,不用重新申请配额。

多智能体的 token 消耗为什么会失控,怎么把成本压下来?

因为群聊类编排每一轮都会把完整对话历史再送一遍给下一个发言人,token 增长接近 O(n²);SelectorGroupChat 每次换人还要额外调一次模型来做选人决策。压成本的顺序是:先用 MaxMessageTermination 和 TokenUsageTermination 设硬上限,再收紧 system_message 长度,再考虑给每个 agent 加上下文裁剪,最后才是换更小的模型。硬件侧的杠杆同样明显——本地跑掉的是按 token 计费的 API 账单,换成按秒计费的整卡,NexGPU 上 8B 级方案 $0.540/卡·时,停机即停止算力计费,调 prompt 的那几个小时一分钱不花。

AutoGen 的代码执行要 Docker,租来的 GPU 实例里跑得起来吗?

看你要哪种。DockerCommandLineCodeExecutor 需要实例内可用的 Docker daemon,容器化环境里嵌套 Docker 经常不可用;这种情况下用 LocalCommandLineCodeExecutor 配一个独立 venv 更省事,反正租来的实例本身就是隔离环境,跑完销毁即可。如果确实需要完整的 Docker-in-Docker,请在开实例前跟支持确认节点形态。NexGPU 的支持是中英双语、走 Telegram、没有工单队列,问一句就能确认,2,000+ 预置镜像里 PyTorch、vLLM、Ubuntu CLI、Jupyter 都是开箱可用的。

开始使用 NexGPU

无论你是企业研发团队还是独立开发者,都可以在几分钟内跑起第一个任务。

注册即可浏览全网实时价格,无需绑定支付方式。