OpenHands 是一个由 AI 驱动的软件开发代理平台,能够自主完成复杂的编码任务。本文档提供了系统架构、核心组件和技术栈的高级概述。OpenHands 代理可以修改代码、执行命令、浏览网页和与 API 交互——基本上可以执行人类开发人员可以执行的任何任务。
有关特定组件的详细信息,请参见
OpenHands 采用分层架构,用户界面、后端服务、AI 代理编排和沙盒执行环境之间有清晰的划分。
高层系统架构
来源: README.md24-27 pyproject.toml7-19 frontend/package.json1-53 Development.md9-104
OpenHands 构建于现代技术栈之上,支持可扩展的 AI 代理操作。
| 组件 | 技术 | 主要库 |
|---|---|---|
| 前端 | React 19.1.0 + TypeScript | Socket.IO, Monaco Editor, XTerm |
| 后端 | Python 3.12 + FastAPI | Uvicorn, Python-SocketIO, Pydantic |
| AI/LLM | LiteLLM 集成 | Anthropic, OpenAI, Google AI |
| 运行时 | Docker 容器 | Docker Python SDK, E2B |
| 通信 | WebSocket + REST | Socket.IO, HTTP/JSON APIs |
| 构建系统 | Poetry + NPM | Make, Docker Compose |
关键依赖概览
来源: pyproject.toml21-89 frontend/package.json9-53 poetry.lock1-50
OpenHands 通过事件驱动的架构运行,AI 代理在隔离的环境中处理用户请求和执行操作。
代理执行和决策流程
来源: openhands/controller/agent.py openhands/agent/codeact_agent openhands/events/action openhands/events/observation openhands/runtime/runtime.py
OpenHands 在安全的、隔离的运行时环境中执行所有代理操作,以确保代码安全执行并防止系统受到损害。
运行时隔离与执行
来源: openhands/runtime/docker openhands/runtime/client containers/runtime docker-compose.yml10-11
OpenHands 支持多种部署模式,从本地开发到基于云的分布式执行。
构建和部署管道
来源: Development.md51-117 pyproject.toml1-20 docker-compose.yml1-24 containers/dev/compose.yml1-39 Makefile
OpenHands 通过其模块化架构、强大的运行时隔离和广泛的 LLM 集成功能,为 AI 驱动的软件开发提供了全面的平台。该系统在对不同部署场景的灵活性与通过容器化执行环境提供的安全性之间取得了平衡。