跳到主要内容

AI 软件工程 Agent 框架

你要找的 OpenDevin,现在叫 OpenHands ——一张 24GB 卡就能把它跑成私有编程 Agent

OpenDevin 在论文里已经写明「f.k.a. OpenDevin」,项目改名为 OpenHands,仓库也从 All-Hands-AI 迁到了 OpenHands 组织。框架本身几乎不吃显存,显存全花在你自托管的那颗模型上。

先把身份问题说清楚:OpenDevin 是 2024 年由 Xingyao Wang 等人发起的开源软件工程 Agent 平台,后来改名为 OpenHands,ICLR 2025 收录的论文标题直接写着「OpenHands: An Open Platform for AI Software Developers as Generalist Agents (f.k.a. OpenDevin)」。所以现在你搜到的任何「OpenDevin 安装教程」,真正要装的都是 OpenHands。GitHub 组织也从 All-Hands-AI 改成了 OpenHands,许可证仍是 MIT。

更需要注意的是它已经拆成了四个仓库,而且形态变了。`OpenHands/OpenHands` 这个主仓现在承载的是 Agent Canvas —— 一个自托管的「Agent 控制中心」,当前 1.15.0,用 npm 包 `@openhands/agent-canvas` 或镜像 `ghcr.io/openhands/agent-canvas:1.15.0` 起,默认 8000 端口,需要 Node.js 22.12+ 和 uv。真正跑 Agent 的引擎在 `OpenHands/software-agent-sdk`(PyPI 上是 `openhands-sdk` / `openhands-tools` / `openhands-agent-server`,均为 1.43.x),SWE-Bench 成绩 77.6。另外两个仓库是 `typescript-client` 和 `automation`(定时任务与 webhook)。文档里的「Local GUI」「CLI」「V0 Reference」三块已经明确标成 Deprecated Projects,老的 V0 Runtime 概念被 V1 Sandbox 取代 —— 照着 2024 年的 `openhands-ai` 教程走,你会踩一路坑。

OpenHands 本体是编排层:它管对话、工具调用、文件编辑、终端和沙箱,本身跑在 CPU 上。显存的账全部记在模型上。官方文档在 2026/05/21 更新了推荐:本地自托管首选 Qwen3.6-35B-A3B,一个 35B 总参、每 token 激活约 3B 的 MoE(256 个专家、每 token 路由 8 个),Apache-2.0,原生 262144 上下文,还带视觉。官方给的硬件门槛是「量化版至少 24GB 显存,全精度或更长上下文需要多卡」。这就是为什么租一张卡比买一张卡划算:你只在 Agent 真正干活的那几个小时付费。

01 —

OpenHands 官方推荐的本地模型:Qwen3.6-35B-A3B 各档位

以下体积为 HuggingFace 上权重文件的真实大小,不是估算;KV cache 另算。

版本参数量显存上下文说明
Qwen/Qwen3.6-35B-A3B(bf16 safetensors)35B 总参 / 约 3B 激活(A3B)权重 66.96GiB(71.9GB)262144 原生官方全精度权重。单卡 80GB 装得下但余量紧张,官方 vLLM / SGLang 示例用的是 --tensor-parallel-size 2。
Qwen/Qwen3.6-35B-A3B-FP835B-A3B权重 34.89GiB262144 原生官方 FP8 量化,下载量比 bf16 还高。48GB 卡单卡可上,80GB 卡上可以把上下文和并发都拉满。
unsloth Qwen3.6-35B-A3B-Q8_0 GGUF35B-A3B34.37GiB(UD-Q8_K_XL 35.81GiB)自行设定,OpenHands 建议 32768 起llama.cpp / LM Studio / Ollama 路线里最接近全精度的一档,适合做质量对照基线。
unsloth Qwen3.6-35B-A3B-UD-Q5_K_M GGUF35B-A3B24.64GiB128K 可行(KV 约 2.5GiB)32GB 卡的甜点位。留出的余量足够把上下文开到 131072 还不 OOM。
unsloth Qwen3.6-35B-A3B-UD-Q4_K_M GGUF35B-A3B20.61GiB(MXFP4_MOE 变体 20.22GiB)32768 推荐官方「至少 24GB 显存」那条线就是照它划的。24GB 卡上装完只剩约 2.5GiB 余量,够 32K 上下文但别再开别的。
unsloth Qwen3.6-35B-A3B-UD-IQ4_XS GGUF35B-A3B16.51GiB(UD-IQ3_S 12.74GiB / UD-Q2_K_XL 11.45GiB)32768 舒适24GB 卡上真正跑得舒服的一档,能同时给视觉塔(mmproj-F16,0.84GiB)和长上下文留位置。

02 —

按你的用法选卡:NexGPU 实价对照

Qwen3.6-35B-A3B 用的是混合线性注意力,40 层里只有 10 层是全注意力(full_attention_interval=4),2 个 KV head × 256 head_dim,算下来 KV cache 约 20KiB/token —— 32K 上下文只要约 0.6GiB,128K 也才约 2.5GiB。这颗模型的显存几乎全是权重,选卡时按权重体积对号入座即可。

  • 先跑通:单卡 GGUF Q4 摸底,验证 OpenHands 能不能正常调工具

    RTX 4090 24GB$0.540/卡·时

    UD-IQ4_XS 16.51GiB 或 UD-Q4_K_S 19.46GiB 装进去还剩足够 KV 余量,32K 上下文稳跑,一个下午的验证成本不到两美元。

  • 日常开发:Q5/Q6 量化 + 131072 长上下文,让 Agent 一次读完整个仓库

    RTX 5090 32GB$0.723/卡·时

    UD-Q5_K_M 24.64GiB 加 128K 的约 2.5GiB KV 仍有余量,Blackwell 原生支持 FP4/FP8,MXFP4_MOE 那档也能吃满。

  • 团队共用:官方 FP8 权重 + vLLM 多路并发,接 Agent Canvas 的自动化任务

    A100 PCIE 80GB$0.824/卡·时

    FP8 权重 34.89GiB 只占四成多,剩下 40GB 全给 KV 和并发批次,而它只比 48GB 的 A6000($0.817)贵 $0.007。

  • 全精度基线:bf16 权重按官方示例做 TP=2,复现评测口径

    RTX A6000 48GB × 2$0.817/卡·时(双卡 $1.634/时)

    66.96GiB 权重切两半后每卡约 34GiB,正好对上官方 SGLang / vLLM 的 --tensor-parallel-size 2 与 --context-length 131072 示例。

03 —

在 NexGPU 上把 OpenHands 跑起来

四步:拉权重 → 起 OpenAI 兼容端点 → 起 Agent Canvas → 填 LLM 设置。全程不超过一杯咖啡的时间。

  1. 01

    1. 开一台带 vLLM 的实例,拉官方 FP8 权重

    在 console.nexgpu.net 选 A100 PCIE 80GB,镜像直接挑预置的 vLLM(2000+ 预置镜像里有 PyTorch、vLLM、Ubuntu CLI 等,不用自己装 CUDA)。34.89GiB 的 FP8 权重在千兆节点上几分钟就下完,落到实例存储上。

    huggingface-cli download Qwen/Qwen3.6-35B-A3B-FP8 --local-dir /workspace/qwen3.6-35b-a3b-fp8
  2. 02

    2. 起一个 OpenAI 兼容端点

    OpenHands 走的是 OpenAI 协议,所以 vLLM、SGLang、Ollama、LM Studio 都行。--enable-prefix-caching 对 Agent 场景收益极大:系统提示词和工具定义每轮都重复,缓存命中后首 token 延迟明显下降。想再快可以试 Snowflake 的 ArcticInference,用 suffix 投机解码在部分场景能到 2 倍。

    vllm serve /workspace/qwen3.6-35b-a3b-fp8 --served-model-name Qwen3.6-35B-A3B --host 0.0.0.0 --port 8000 --api-key mykey --enable-prefix-caching
  3. 03

    3. 起 Agent Canvas

    注意端口:Agent Canvas 镜像内部也监听 8000,和 vLLM 撞车,映射到 8080 上避开。PROJECTS_PATH 指向你要让 Agent 改的代码目录 —— 这一步在租来的实例上做,比在自己笔记本上挂 docker.sock 安全得多,跑砸了销毁重开就行。

    export PROJECTS_PATH=$HOME/projects && mkdir -p $PROJECTS_PATH $HOME/.openhands && docker run -it --rm -p 8080:8000 -v $HOME/.openhands:/home/openhands/.openhands -v $PROJECTS_PATH:/projects ghcr.io/openhands/agent-canvas:1.15.0
  4. 04

    4. 在 LLM 设置里指向你自己的端点

    打开 UI,进 LLM 设置,点「see advanced settings」并打开 Advanced 开关。Custom Model 填 openai/Qwen3.6-35B-A3B(前缀 openai/ 不能省),Base URL 填端点地址,API Key 填你启动 vLLM 时给的 mykey。上下文务必 ≥22000,推荐 32768 —— 这是 OpenHands 本地部署最常见的翻车点。若走 SDK 而不是 UI,pip 装三个包直接写脚本也行。

    pip install openhands-sdk openhands-tools openhands-agent-server

一个八人后端组自托管 OpenHands,一个月要花多少

场景:用 Agent Canvas 挂 automation 做依赖升级和自动 code review,工作日每天开机 10 小时,跑 A100 PCIE 80GB + 官方 FP8 权重。算术摊开:算力 220 小时(10 小时 × 22 个工作日)× $0.824 = $181.28;存储放 FP8 权重约 37.5GB、再备一份 Q4 GGUF 约 22GB、加上 Docker 镜像与沙箱层,按 100GB 算,100 × $0.414 = $41.40(注意:实例停了算力就停止计费,存储要销毁才停);出网 300GB × $0.0081 = $2.43。合计约 $225.11/月,摊到 8 个人是每人每月不到 $29。而在此之前,你完全可以先花 $0.81(RTX 4090 24GB $0.540 × 1.5 小时)跑一遍 UD-IQ4_XS,确认 Agent 真的会调工具、会改文件,再决定要不要上 80GB 卡。按秒计费、无最低消费、无开通费、无配额申请,验证失败的成本几乎为零。

04 —

常见问题

OpenDevin 还在维护吗?为什么 GitHub 仓库打不开了?

在维护,只是不叫 OpenDevin 了。项目改名为 OpenHands,GitHub 组织从 All-Hands-AI 迁到了 OpenHands,所以旧链接会跳转或失效。论文(ICLR 2025)标题里保留了「f.k.a. OpenDevin」的说明,许可证仍是 MIT。要留意的是主仓 `OpenHands/OpenHands` 现在是 Agent Canvas(1.15.0),Agent 引擎搬到了 `OpenHands/software-agent-sdk`,而文档里的 V0 Reference、Local GUI、CLI 三块已归入 Deprecated Projects。想在干净环境里按新架构走一遍,NexGPU 开一台实例几十秒就能起来,不用在本机反复清理旧版残留。

OpenHands(OpenDevin)本身需要多大显存?

OpenHands 本体不需要 GPU。它是编排层,负责对话状态、工具调用、文件编辑、终端和沙箱,跑在 CPU 上,Docker 镜像起来就几百 MB 内存。显存的账全部记在你自托管的模型上 —— 官方推荐的 Qwen3.6-35B-A3B,Q4 量化 20.61GiB、FP8 34.89GiB、bf16 66.96GiB。所以选卡时看的是模型,不是框架。NexGPU 从 RTX 3090 24GB($0.193/卡·时)到 H200 141GB($6.660/卡·时)都能按秒租,先按量化档位对号入座即可。

OpenHands 本地部署用什么模型?24GB 显卡够不够?

官方文档在 2026/05/21 明确推荐 Qwen3.6-35B-A3B,一个 35B 总参、约 3B 激活的 MoE,Apache-2.0,原生 262144 上下文。官方硬件要求写的是「量化版至少 24GB 显存」。实测对应关系:UD-Q4_K_M 是 20.61GiB,塞进 24GB 卡后只剩约 2.5GiB,够 32K 上下文;想更舒服就用 UD-IQ4_XS(16.51GiB)。NexGPU 的 RTX 4090 24GB 是 $0.540/卡·时,想一步到位换 32GB 余量的话 RTX 5090 32GB $0.723/卡·时。

为什么本地模型下 OpenHands 像个聊天机器人,不肯调用工具、不改文件?

九成是上下文窗口太短。OpenHands 的系统提示词加工具定义本身就很长,Ollama 默认的 4096 连系统提示词都装不下,官方文档原话是「not even the system prompt will fit」。解法是把 OLLAMA_CONTEXT_LENGTH 设到 32768(下限 22000),LM Studio 里则是在模型加载参数中把 Context Length 调到 22000 以上并打开 Flash Attention。剩下一成是模型本身工具调用能力弱,社区反馈 qwen2.5-coder-14b-instruct 可以作为退路。上下文一拉长显存就吃紧,这也是租一张大卡最直接的好处 —— 在 NexGPU 上换卡重开只是几分钟的事。

OpenHands 在 Docker 里连不上宿主机的 LM Studio / Ollama,怎么办?

两个经典坑。一是 LM Studio 在 Linux 上默认只绑 127.0.0.1,容器再怎么加 --add-host host.docker.internal:host-gateway 也够不着,要在服务端设置里打开「Serve on Local Network」把绑定切到 0.0.0.0;二是 Base URL 里的 host 写错,容器内要用 host.docker.internal,端口 LM Studio 是 1234、Ollama 是 11434、vLLM 与 SGLang 是 8000。验证一句话:docker exec -it openhands-app curl -s http://host.docker.internal:1234/v1/models,能列出模型就通了。在 NexGPU 单机上把推理端点和 Agent 放在同一台实例里,这类跨主机网络问题直接消失。

OpenHands 要挂载 docker.sock、还要给 Agent 完整文件系统权限,这样安全吗?

官方 README 自己就打了 WARNING:无沙箱模式下 agent 对文件系统有完整访问权。正确做法是用 Agent Server 的沙箱(V1 Sandbox,可跑在 Docker 或 Kubernetes 里),并且不要让它跑在你的开发笔记本上。把整套东西放进一台专用的租用实例,是最省心的隔离方式:代码目录只挂你愿意让它改的那个 PROJECTS_PATH,出事了销毁实例即可,算力计费当场停止。NexGPU 覆盖 51 个国家和地区、1,175 个已验证可租节点、2,498 张 GPU,SSH、Jupyter、Web 终端、REST API、CLI 五种接入方式随便挑,Telegram 上还有中英双语支持,不用排工单。

开始使用 NexGPU

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

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