OpenHands 项目介绍
OpenHands 项目介绍
项目定位
OpenHands 是一个开源的 AI 驱动软件开发 Agent(代号「AI 程序员」),能够在沙箱环境中自主执行编码、调试、测试和部署任务。它通过 Docker 容器化运行时提供安全保障,支持从个人终端到企业级部署的全场景使用方式。
核心能力
- 自主软件开发:Agent 可理解自然语言指令,自主编写代码、运行命令、调试错误并完成 PR
- 多模型支持:通过 LiteLLM 集成 Anthropic、OpenAI、Google、Mistral 等主流 LLM
- 浏览器自动化:内置 Playwright 支持,Agent 可操作网页界面完成交互任务
- 多部署模式:CLI(终端)、Local GUI(本地 Web)、Cloud(托管 SaaS)、Enterprise(私有化 K8s)
- Skills / Microagents:基于 Markdown 的可复用专业知识系统,支持仓库级和组织级技能分发
- Hooks 扩展系统:V1 架构引入的钩子系统,支持事件驱动的自定义逻辑
- 多 Git 平台集成:GitHub、GitLab、Bitbucket、Azure DevOps 一等公民支持
- MCP 协议支持:通过 Model Context Protocol 连接外部工具服务器
技术栈
| 层级 | 技术 |
|---|---|
| 后端 | Python 3.12+、FastAPI、LiteLLM、SQLAlchemy |
| 前端 | React、Vitest、TanStack Query |
| 沙箱 | Docker、tmux、Playwright |
| 协议 | MCP(SSE/SHTTP/Stdio)、WebSocket(Socket.IO) |
| Agent SDK | openhands-sdk、openhands-agent-server、openhands-tools(v1.22.1) |
| 部署 | Docker Compose、Kubernetes、Cloudflare |
架构概览
快速体验
CLI 模式
# 安装pip install openhands-ai
# 运行(需配置 API key)openhands --model claude-sonnet-4-5-20250514 -d "修复项目中的类型错误"Docker 本地运行
# 完整构建make build
# 启动应用make run访问 http://localhost:3001 打开 Web GUI。
教程导读
本教程分为两个部分:
AI 应用通用知识
从 OpenHands 源码中抽象出 AI Agent 设计的通用模式,写入独立通用知识教程:
- Skills / Microagents 系统 — 首次覆盖,OpenHands 的上下文注入架构
- Agent 核心循环设计 — 引用已有教程
- 工具调用协议 — 引用已有教程
- MCP 协议 — 引用已有教程
- 记忆系统与上下文管理 — 引用已有教程
编程核心技术
聚焦 OpenHands 的具体工程实践:
- V1 双 Server 架构(App Server + Agent Server)
- 沙箱运行时多后端支持(Docker / E2B / Modal / Kubernetes)
- 上下文压缩策略(Condenser)的工程实现
- 安全确认模式(Confirmation Mode)与安全分析器
- 事件驱动架构与 Webhook 系统