跳到主要内容

智能体框架

CrewAI 私有化部署,显存预算全花在模型这一侧

CrewAI 本身是个纯 Python 编排框架,一张卡都不占。真正决定你要租多大显存的,是你让它去调的那个本地模型 —— 而多智能体的调用密度,会让这个选择跟跑一个聊天机器人完全不同。

先把最容易搜错的一件事说清楚:CrewAI 不是模型,是模型的调度层。它由 CrewAI Inc 维护,仓库在 crewAIInc/crewAI,MIT 协议,要求 Python >=3.10 且 <3.14。装完之后它在你机器上就是几百 MB 内存的一个进程,显存占用是零。所以「CrewAI 需要多大显存」这个问题的真实答案是:取决于你把 Agent 的 llm 指向了谁。指向 OpenAI 的 API,显存需求就是 0;指向本地起的 gpt-oss:20b,那就是 14GB 权重起步。

第二件事:版本。CrewAI 早已跨过 1.0 —— 1.0.0 在 2025 年 10 月 20 日发布,如今主线已经走到 1.15.17。如果你搜到的教程还在写 0.28、0.86 那一代的 `config/agents.yaml` + `@CrewBase` 装饰器,那是旧脚手架。1.x 的 `crewai create crew` 默认生成的是 JSONC 配置:Agent 定义在 `agents/<name>.jsonc`,Crew 设置在 `crew.jsonc`,顶层字段与 `settings` 对象合并、后者优先。想沿用老写法,加 `--classic` 参数回到 YAML 脚手架。另一个大变化是 LiteLLM 不再是硬依赖:OpenAI、Anthropic、Gemini、Azure、Bedrock 走原生 SDK,其余供应商才需要 LiteLLM 兜底,而本地推理服务可以用 `custom_openai=True` 直连、完全绕开它。

第三件事,也是决定你租哪张卡的关键:CrewAI 是多智能体框架,不是单轮问答。一个 Agent 的 `max_iter` 默认就是 20 —— 意味着单个任务最多可以打 20 轮模型调用,再乘以 Crew 里的 Agent 数量、乘以工具调用往返、再加上 `respect_context_window=True` 触发的自动摘要重跑。同一段业务逻辑,聊天场景可能只发 3 次请求,Crew 跑一遍能发 60 次。所以本地部署 CrewAI 的选卡标准不是「能不能装下权重」,而是「装下权重之后还剩多少 KV Cache,以及吞吐扛不扛得住这种打法」。这一页把每档配置对应的真实显存和 NexGPU 卡价一次说完。

01 —

CrewAI 本体,以及它能驱动的本地模型

第一行是框架自己,剩下几行才是真正花钱的地方 —— 显存数字取 Ollama 官方分发的权重体积,实际还需为 KV Cache 留出余量。

版本参数量显存上下文说明
CrewAI 1.15.17(框架本体)纯 Python,无模型权重0GB 显存,约 300–500MB 内存由所接模型决定当前稳定主线。提供 Crew(角色协作)与 Flow(事件驱动、可 @persist 检查点续跑)两种编排范式,MIT 协议,`uv tool install crewai` 一行装完。
gpt-oss:20b(MXFP4)20B MoE,4.25 bit/参数权重 14GB,建议 24GB 卡128K本地跑 CrewAI 的默认推荐。原生支持 function calling 与结构化输出,这正是 Crew 最依赖的能力;官方标称 16GB 内存即可起,但要留 KV Cache 就得上 24GB。
Qwen3-14B14B 稠密Q4_K_M 9.3GB,建议 24GB 卡40K稠密模型,延迟稳定、没有 MoE 路由抖动。9.3GB 权重给 24GB 卡留下大片余量,适合 Agent 数量多、并发跑多个 Crew 的场景。
Qwen3-30B-A3B30B 总参 / 约 3B 激活Q4 19GB,建议 48GB 卡256K长上下文生产 Crew 的甜点。256K 原生上下文意味着 `respect_context_window` 很难被触发,省掉自动摘要那一轮额外调用;激活参数只有 3B,吞吐远好过同体积稠密模型。
gpt-oss:120b(MXFP4)120B MoE权重 65GB,单张 80GB 卡可跑128K质量档。官方明确说明可装进单张 80GB 卡,不必做张量并行,部署复杂度和 20b 几乎一样,只是卡更贵。
Qwen3-235B-A22B235B 总参 / 约 22B 激活Q4 约 142GB,需 2×80GB256K顶配。142GB 权重放不进单张 141GB 的 H200,老老实实上双卡 80GB 更稳也更便宜。适合把 CrewAI 当业务中枢、对最终产出质量苛刻的场景。

02 —

按 Crew 规模选卡

四档配置,从一个人调 Crew 到把多智能体系统推上生产,价格是 NexGPU 的按秒计费单价。

  • 单人开发调试:跑 gpt-oss:20b 或 Qwen3-14B,把 Crew 的角色和任务先调通

    RTX 3090 24GB$0.193/卡·时

    14GB 权重装进 24GB 还剩约 8–9GB 做 KV Cache,够 CrewAI 那 20 轮迭代来回折腾,而这是我们整个网络里跑 20B 级模型最便宜的一张卡。

  • 追求交互速度:同样是 20B 档,但希望每轮 Agent 调用快到能一边改代码一边看结果

    RTX 4090 24GB$0.540/卡·时

    显存和 3090 同为 24GB,但带宽与算力显著更高;Crew 一次跑动辄几十次模型调用,单轮延迟的差距会被这个倍数放大成体感差距。

  • 长上下文生产 Crew:Qwen3-30B-A3B 跑 256K 上下文,多 Agent 常驻

    RTX A6000 48GB$0.817/卡·时

    19GB 权重之后还有近 29GB 全给 KV Cache —— 长上下文场景真正的瓶颈从来是 Cache 不是权重,32GB 的卡在 256K 下会先撑不住。

  • 质量优先:gpt-oss:120b 单卡部署,给对外交付的 Crew 用

    A100 PCIE 80GB$0.824/卡·时

    65GB 权重正好落在官方标称的单张 80GB 卡区间内,不用配张量并行、不用改启动参数,部署脚本跟 20b 那套几乎可以直接复用。

03 —

从零把 CrewAI 跑在自己的卡上

四步,全部在一台 NexGPU 实例里完成,模型调用不出机器。

  1. 01

    开机,选推理镜像,拉权重

    在 console.nexgpu.net 按上面的表选卡开机。我们有 2000+ 预置镜像,直接挑 vLLM 或 PyTorch 那套,省掉 CUDA 和驱动的对版环节。开机后拉模型权重,14GB 通常一两分钟就落盘。

    ollama pull gpt-oss:20b && ollama serve
  2. 02

    先确认 OpenAI 兼容端点是通的

    这一步别跳过。CrewAI 社区里最高频的报错就是 `litellm.APIConnectionError: OllamaException` 和 `[Errno 65] No route to host` —— 九成不是 CrewAI 的问题,是推理服务绑在了 127.0.0.1 而调用方在容器里,或者端口没起来。先 curl 一把,能列出模型再往下走。

    curl http://127.0.0.1:11434/v1/models
  3. 03

    装 CrewAI,生成 Crew 项目骨架

    CrewAI 1.x 用 uv 管依赖。`crewai create crew` 会生成 JSONC 脚手架:Agent 写在 `agents/<name>.jsonc`,Crew 配置在 `crew.jsonc`。如果你手上的教程还是老 YAML 那一套,在命令后面加 `--classic` 就能拿回 `config/agents.yaml` 结构。

    uv tool install crewai && crewai create crew nex_crew && cd nex_crew && crewai install
  4. 04

    把 Agent 指向本地端点,跑起来

    关键是 `custom_openai=True`:它让 CrewAI 走原生 OpenAI 兼容客户端,彻底绕开 LiteLLM。这条路径同时适用于 Ollama、vLLM、LM Studio。api_key 随便填个非空字符串本地服务不校验。配好之后 `crewai run` 即可。

    llm = LLM(model="gpt-oss:20b", custom_openai=True, base_url="http://127.0.0.1:11434/v1", api_key="local")

一个月的 CrewAI 私有化开发,到底多少钱

按最常见的路径算:RTX 3090 24GB 跑 gpt-oss:20b,$0.193/卡·时。开发期每天开机 6 小时、一个月 20 个工作日,就是 120 小时 × $0.193 = $23.16。存储按 30GB 算(14GB 权重 + 项目代码 + LanceDB 记忆库),30 × $0.414 = $12.42/月。合计约 $35.58/月 —— 比很多人一个月的模型 API 账单还便宜,而且数据完全没出机器。落到单次运行更直观:一个 Crew 跑 12 分钟 = 0.2 小时 × $0.193 ≈ $0.04,四美分一次。要上质量档也算得清:A100 PCIE 80GB 跑 gpt-oss:120b,$0.824 × 120 小时 = $98.88,存储 80GB × $0.414 = $33.12,一个月 $132.00 整。计费按秒结算、按小时定价,没有起租时长、没有开通费、不用申请配额;实例一停算力就不计费,只有存储会一直算到你把它销毁为止 —— 所以调完 Crew 记得把不用的卷清掉。

04 —

常见问题

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

CrewAI 框架本体需要 0GB 显存,它是纯 Python 进程,内存占用大约 300–500MB。显存全部消耗在你指定的本地模型上:gpt-oss:20b 权重 14GB,配 24GB 卡;Qwen3-14B 的 Q4_K_M 是 9.3GB;Qwen3-30B-A3B 的 Q4 是 19GB,长上下文建议 48GB 卡;gpt-oss:120b 是 65GB,需要 80GB 卡。在 NexGPU 上这四档分别对应 RTX 3090 $0.193、RTX 4090 $0.540、RTX A6000 48GB $0.817、A100 PCIE 80GB $0.824,都是按秒计费,选错了停掉换一张就行。

本地开源模型跑 CrewAI,工具调用老是失败怎么办?

这是 CrewAI 自托管最典型的坑,issue 区里一整排。核心原因是很多开源模型的 function calling 不达标:CrewAI 内部会用 `supports_function_calling()` 判断能力,判断失准时会出现 `output_pydantic` 被当成原生 tool 注入的情况;一些较新的 OSS 模型(如 Olmo、Nemotron-3-nano)则会直接忽略 system prompt、工具调用整体失效;还有部分推理后端不支持 `response_format` 参数。实操上的解法是:优先选原生支持 function calling 和结构化输出的模型(gpt-oss 系列、Qwen3 系列都可以),把 `max_iter` 从默认 20 调低以免死循环烧 token,并打开 `verbose=True` 看清楚是哪一轮崩的。这类调试最怕换卡麻烦 —— 在 NexGPU 上换个模型换张卡就是重开一台,按秒计费,试错成本几乎可以忽略。

pip 装 litellm 装不上,CrewAI 还能用吗?

能,而且本地部署场景根本不需要它。`litellm` 曾在 PyPI 上被隔离,CrewAI 为此专门出了迁移指南:现在 OpenAI、Anthropic、Google Gemini、Azure OpenAI、AWS Bedrock 五家走原生 SDK,装 `crewai[openai]` 这类 provider extra 即可;本地推理服务则用 `LLM(model=..., custom_openai=True, base_url=..., api_key=...)` 直连,完全不经过 LiteLLM。这条路同时覆盖 Ollama、vLLM 和 LM Studio。在 NexGPU 的预置镜像里这几个后端都是现成的,开机就能验。

CrewAI 的 Crew 和 Flow 有什么区别,生产环境该用哪个?

Crew 是角色协作:你定义一组有 role、goal、backstory 的 Agent,让它们自主分工完成任务,适合探索性、路径不确定的工作。Flow 是事件驱动的编排,给你条件分支和确定性执行路径,官方对生产应用的建议明确是「从 Flow 开始」—— 它支持 `@persist` 装饰器保存状态,崩溃后能用 `restore_from_state_id` 恢复甚至分叉出新的执行谱系,长任务还可以 `kickoff_async` 异步跑。实际项目里两者是嵌套关系:Flow 做主干,在需要发散的节点里调 Crew。这种长时任务恰好最适合按秒计费的租用模式 —— 跑多久算多久,NexGPU 上跑完停机就不再计算力费用。

CrewAI 的记忆功能报向量维度不匹配,怎么修?

这是升级后的已知兼容问题。CrewAI 的统一记忆系统默认用 LanceDB,数据落在项目下的 `./.crewai/memory`(可用 `CREWAI_STORAGE_DIR` 改路径)。OpenAI 侧的默认 embedder 已经从 `text-embedding-ada-002`(1536 维)换成 `text-embedding-3-large`(3072 维),于是用老默认建出来的本地记忆库读不了。解法要么重置记忆库重建索引,要么显式把 embedder 配回旧模型。想彻底不出网的话,把 embedder 换成本地的就行 —— Ollama 的 `mxbai-embed-large` 只有 670MB、335M 参数,或者用 HuggingFace 的 `all-MiniLM-L6-v2`,几乎不占显存,正好跟你那张跑主模型的卡挤在一起。这种「主模型 + 小 embedder 同卡共存」的配置,24GB 起步的卡就能容下,NexGPU 上 RTX 3090 $0.193/卡·时。

CrewAI 能做到完全私有化、数据不出机器吗?

可以,前提是三样东西都在本地:模型推理、embedding、记忆存储。模型和 embedding 用上面的 Ollama / vLLM 方案本地起;记忆默认就是 LanceDB 写在本地磁盘,不依赖任何托管向量库。只要 Agent 的 `llm` 和 embedder 都指向 127.0.0.1,且不配置任何云厂商的 API key,推理数据就不会离开这台机器。NexGPU 提供 SSH、Jupyter、Web 终端、REST API 和 CLI 五种接入方式,覆盖 51 个国家和地区、1175 个已验证可租节点,单节点最多 14 张卡、最大节点显存 2152GB —— 你可以把机器开在业务合规要求的那个区域里,再决定给它开什么样的网络出口。有问题直接 Telegram 找我们,中英文都行,没有工单排队。

开始使用 NexGPU

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

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