菜单

OpenHands 概述

相关源文件

目的与范围

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 + TypeScriptSocket.IO, Monaco Editor, XTerm
后端Python 3.12 + FastAPIUvicorn, Python-SocketIO, Pydantic
AI/LLMLiteLLM 集成Anthropic, OpenAI, Google AI
运行时Docker 容器Docker Python SDK, E2B
通信WebSocket + RESTSocket.IO, HTTP/JSON APIs
构建系统Poetry + NPMMake, 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 驱动的软件开发提供了全面的平台。该系统在对不同部署场景的灵活性与通过容器化执行环境提供的安全性之间取得了平衡。