OpenHands AI 开发者

在 Clore.ai 部署 OpenHands(前称 OpenDevin)——在经济型 GPU 云服务器上运行一个完全自主的 AI 软件工程师,用于编码、调试和解决 GitHub 问题。

概览

OpenHandsarrow-up-right (前称 OpenDevin)是一个用于自主 AI 软件开发代理的开源平台。拥有 65K+ GitHub 星标,它已成为将实际编程任务委派给 AI 的最受欢迎工具之一——编写代码、修复错误、解决 GitHub 问题、运行 shell 命令、浏览网页,并端到端地与代码库交互。

与典型的代码补全工具不同,OpenHands 运行一个 代理循环:它接收任务、制定计划、编写代码、执行、观察输出并迭代——所有这些均无需人工干预。它支持数十种 LLM 后端,包括 OpenAI、Anthropic Claude、Google Gemini,以及通过 Ollama 或 vLLM 本地托管的模型。

为什么选择 Clore.ai 托管 OpenHands?

  • OpenHands 本身是基于 CPU 的,不需要 GPU

  • 然而,将其与同一服务器上的 本地大模型 (Ollama、vLLM)配合使用可以消除 API 成本和延迟

  • Clore.ai 的低成本 GPU 服务器让你以最低 $0.20–$0.35/小时

  • 你将获得持久的工作区存储、Docker-in-Docker 支持和完整的 root 访问权限

  • 非常适合那些通过云 LLM API 会非常昂贵的长时间自动化任务

在 Clore.ai 上的典型使用场景:

  • 根据规范或问题描述进行自主代码生成

  • 对大型代码库进行批量重构

  • 在 100% 离线环境下运行 OpenHands + Ollama 进行代理式开发

  • 无需 API 成本的 CI/CD 任务自动化


要求

OpenHands 需要 Docker socket 访问权限,并在内部运行一个沙箱运行时容器。下表涵盖了在 Clore.ai 上的推荐配置:

配置
GPU
显存
内存
存储
预计价格

仅 API(无本地 LLM)

任意 / 仅 CPU

不适用

8 GB

20 GB

约 $0.05–0.10/小时

+ Ollama(Llama 3.1 8B)

速度

24 GB

16 GB

40 GB

~$0.20/小时

+ Ollama(Qwen2.5 32B)

512x512

24 GB

32 GB

60 GB

~$0.35/小时

+ vLLM(Llama 3.1 70B)

4 小时会话

80 GB

64 GB

100 GB

~$1.10/小时

+ vLLM(Llama 3.3 70B INT4)

512x512

24 GB

32 GB

80 GB

~$0.35/小时

注意: 如果你仅使用 OpenAI/Anthropic/Gemini 的 API,任何 ≥8 GB 内存的服务器都可工作。只有当你希望在同一台机器上运行本地 LLM 时才需要 GPU。详见 GPU 比较指南 以获取更多细节。

Clore.ai 服务器上的软件要求:

  • Docker 引擎(所有 Clore.ai 镜像预装)

  • NVIDIA 容器工具包(GPU 镜像上预装)

  • Docker socket 可通过以下路径访问: /var/run/docker.sock

  • 用于拉取 GHCR 镜像的出站互联网访问


快速开始

步骤 1:选择并连接到 Clore.ai 服务器

Clore.ai 市场arrow-up-right,按以下条件过滤服务器:

  • 内存 ≥ 16 GB(用于本地 LLM 组合)

  • Docker:✓ 已启用

  • 如果使用本地模型,请选择你偏好的 GPU

服务器配置完成后通过 SSH 连接:

步骤 2:验证 Docker 是否运行

两个命令都应成功。如果缺少 Docker socket,请联系 Clore.ai 支持或选择其他镜像。

步骤 3:拉取并运行 OpenHands

步骤 4:访问 Web 界面

UI 可通过以下地址访问: http://<server-ip>:3000

Clore.ai 端口转发: 在 Clore.ai 仪表板中,确保端口 3000 在你的服务器配置中已转发/暴露。有些模板会限制外部端口——请查看服务器详情中的“端口”部分。

首次启动时,OpenHands 会提示你配置 LLM 提供商。

步骤 5:配置你的 LLM

在 Web 界面设置中:

  • 提供商: 选择 OpenAI、Anthropic、Google 或 自定义

  • API 密钥: 输入你的 API 密钥

  • 模型: 例如, gpt-4o, claude-3-5-sonnet-20241022,或 ollama/llama3.1

对于本地 Ollama(见下方 GPU 加速部分),使用:

  • 提供商: ollama

  • 基础 URL: http://host.docker.internal:11434

  • 模型: ollama/llama3.1:8b


配置

使用环境变量进行 SSH 和 Jupyter 访问:

OpenHands 可以完全通过传递给 docker run 的环境变量来配置,:

变量
4s
默认值

LLM_MODEL

模型标识符(例如 gpt-4o, claude-3-5-sonnet-20241022)

在 UI 中设置

LLM_API_KEY

LLM 提供商的 API 密钥

在 UI 中设置

LLM_BASE_URL

自定义基准 URL(用于 Ollama、vLLM、LiteLLM)

提供商默认值

SANDBOX_TIMEOUT

代理沙箱超时时间(秒)

120

MAX_ITERATIONS

每个任务的最大代理循环迭代次数

100

SANDBOX_USER_ID

运行沙箱的 UID(使用 $(id -u))

0

LOG_ALL_EVENTS

启用详细事件日志(true/false)

false

持久化配置文件

你可以通过挂载配置目录来持久化设置:

后台运行(分离模式)

针对 Clore.ai 上的长时间会话:


GPU 加速(本地 LLM 集成)

虽然 OpenHands 本身不使用 GPU,但将其与运行在 Clore.ai GPU 上的 本地大模型 结合使用可为你提供强大、具成本效益且无需 API 的自主代理。

方案 A:OpenHands + Ollama(推荐初学者)

先运行 Ollama,然后将 OpenHands 指向它:

请参阅完整的 Ollama 指南 以获取模型选择、性能调优和 GPU 配置。

方案 B:OpenHands + vLLM(高性能)

对于更大模型以获得最大吞吐量:

参见 vLLM 指南 以获取完整设置、量化选项和多 GPU 配置。

推荐的本地编码模型

A100
规模
最小显存
质量

qwen2.5-coder:7b

7B

8 GB

★★★☆☆

deepseek-coder-v2:16b

16B

12 GB

★★★★☆

qwen2.5-coder:32b

32B

24 GB

★★★★☆

llama3.1:70b

70B

48 GB

★★★★★


提示与最佳实践

1. 明智使用工作区挂载

将你实际的项目目录挂载为工作区,以便 OpenHands 可以直接编辑你的文件:

2. 为获得最佳结果的任务提示(Prompt)

OpenHands 在具体、可执行的提示下表现最佳:

3. 监控资源使用情况

4. 设定迭代限制

防止失控的代理消耗过多的 API 令牌:

5. GitHub 集成

OpenHands 可以直接解决 GitHub 问题。在 UI 中配置:

  • GitHub 令牌:你的个人访问令牌,需具备 repo 权限范围

  • OpenHands 会克隆仓库、修复问题并创建一个 PR

6. 成本估算

对于基于 API 的 LLM,估算每个任务的成本:

  • 简单错误修复:~$0.05–0.15(Claude Haiku/GPT-4o-mini)

  • 复杂功能:~$0.50–2.00(Claude Sonnet/GPT-4o)

  • 对于每天 100+ 个任务,Clore.ai 上的本地 LLM 能收回成本


# 使用固定种子以获得一致结果

Docker Socket 权限被拒绝

沙箱容器无法启动

端口 3000 无法访问

与 Ollama 的 LLM 连接错误

代理循环无限运行

内存不足(OOM)


延伸阅读

最后更新于

这有帮助吗?