OpenHands 深度分析报告
一句话总结
开源 AI 编码 Agent 赛道的领跑者——以学术论文(CodeAct)为根基、Docker 沙箱为安全底线、10 种记忆压缩策略为技术壁垒,构建从 SDK 到企业版的完整 AI 驱动开发平台。
值得关注的理由
- 学术+工业最强组合:CMU 教授 + UIUC PhD + 工程老兵,$23.8M 融资,SWE-Bench 77.6% 得分,480+ 贡献者
- 架构深度领先:Action-Observation 事件驱动 + Docker 沙箱内执行服务器 + 10 种 Condenser 记忆策略 + 多 Agent 委托——每一层都是可复用的工程模式
- 最完整的开源 Agent 产品矩阵:SDK → CLI → Local GUI → Cloud → Enterprise,模型无关(支持 Claude/GPT/DeepSeek/Qwen/Ollama),5 平台集成(GitHub/GitLab/Bitbucket/Forgejo/AzureDevOps)
项目画像
| 维度 | 数据 |
|---|---|
| GitHub | https://github.com/OpenHands/OpenHands |
| Star / Fork | 69,507 / 8,714 |
| 代码行数 | 353,000 (Python 61%, TSX/TypeScript 25%) |
| 项目年龄 | 25 个月 |
| 开发阶段 | 密集开发(月均 252 commit,V0→V1 架构迁移中) |
| 贡献模式 | 社区驱动(480+ 贡献者,核心团队 7-8 人) |
| 热度定位 | 大众热门(69.5K stars,开源 AI Agent 赛道 Top 3) |
| 质量评级 | 代码[优秀] 文档[良好] 测试[良好] |
作者视角:为什么存在这个项目
创始人/作者背景
CMU 教授 Graham Neubig + UIUC PhD Xingyao Wang + 工程老兵 Robert Brennan,累计融资 $23.8M(Seed $5M + Series A $18.8M)。学术根基(CodeAct 论文 arXiv:2402.01030)+ 产业化执行力的罕见组合。
问题判断
从学术研究中发现:现有 LLM Agent 框架在行动空间设计上过于碎片化——对话、文件操作、命令执行各自独立。CodeAct 论文的核心发现:让 Agent 通过代码执行统一所有操作,比分散的工具调用更高效。
解法哲学
- 统一动作空间:bash + Python 就是 Agent 的”手和脚”
- 沙箱优先安全:Docker 沙箱是默认架构,不是可选插件
- 模型无关设计:通过 LiteLLM 支持任意 LLM 后端
- 学术-工业双轨:保持 SWE-Bench 竞争力的同时推进商业化
战略意图
SDK → CLI → Local GUI → Cloud → Enterprise 五层产品矩阵。当前处于 V0→V1 大规模架构迁移期(deadline 2026-04-01),核心 Agent 逻辑正外迁至独立的 software-agent-sdk。
动机与定位
OpenHands(原 OpenDevin)是当前开源 AI 编码 Agent 赛道的领跑者,定位为”Code Less, Make More”的 AI 驱动开发平台。项目核心动机源于一个学术洞察:将 LLM 的所有”行动”统一到代码执行这个单一动作空间,既简化了架构又提高了性能(CodeAct 论文, arXiv:2402.01030)。
项目不是简单的”给 LLM 加个终端”,而是构建了一个完整的 Agent 运行时环境,包含沙箱隔离、多 Agent 委托、记忆管理、安全分析、浏览器交互和多平台集成。其最终愿景是成为软件开发的”AI 操作系统”——从 Issue 解决、PR 创建到代码审查的全流程自动化。
作者视角
问题发现
Graham Neubig(CMU NLP 教授)和 Xingyao Wang(UIUC PhD)从学术研究中发现:现有 LLM Agent 框架在行动空间设计上过于碎片化——对话、文件操作、命令执行各自独立,导致上下文切换成本高、泛化能力弱。CodeAct 论文的核心发现是:让 Agent 通过代码执行来统一所有操作,比分散的工具调用更高效。
解法哲学
- 统一动作空间:CodeAct 的核心理念——bash + Python 就是 Agent 的”手和脚”,所有复杂操作都通过代码组合实现
- 沙箱优先安全:Docker 沙箱是默认架构,不是可选插件。Agent 的一切操作都在隔离环境中执行
- 模型无关设计:通过 LiteLLM 抽象层支持任意 LLM 后端,不绑定特定模型厂商
- 学术-工业双轨:保持 SWE-Bench 评测竞争力(77.6%)的同时推进商业化
背景知识迁移
- NLP 研究方法论 → Agent 评测体系(SWE-Bench 驱动开发)和 Prompt Engineering 精细化
- 分布式系统经验(Robert Brennan)→ 沙箱架构、Runtime 抽象、事件流设计
- 开源社区运营 → 480+ 贡献者的 Microagent/Skills 生态策略
战略图景
SDK (software-agent-sdk) → CLI → Local GUI → Cloud → Enterprise
↑ V1 核心 ↓ V0 遗留
Agent 解耦 单体架构 (2026-04-01 淘汰)
当前处于 V0→V1 大规模架构迁移期(deadline 2026-04-01),核心 Agent 逻辑正在外迁至独立的 software-agent-sdk 仓库,本仓库 openhands/ 下的 controller/agent/runtime 大量文件标注 Legacy-V0。这是一次”行驶中换发动机”的迁移。
架构与设计决策
目录结构概览
openhands/ # ~79,500 行 Python
├── agenthub/ # Agent 实现注册中心
│ ├── codeact_agent/ # 核心 Agent:CodeAct(V2.2)
│ │ ├── codeact_agent.py # step() 核心循环
│ │ ├── function_calling.py # LLM Function Calling 解析
│ │ ├── tools/ # 12 个内置工具定义
│ │ │ ├── bash.py, browser.py, finish.py, think.py
│ │ │ ├── str_replace_editor.py, llm_based_edit.py
│ │ │ ├── ipython.py, task_tracker.py, condensation_request.py
│ │ │ └── security_utils.py, prompt.py
│ │ └── prompts/ # Jinja2 系统提示模板
│ ├── browsing_agent/ # 独立浏览 Agent
│ ├── loc_agent/ # 代码定位 Agent
│ ├── readonly_agent/ # 只读分析 Agent
│ ├── visualbrowsing_agent/ # 视觉浏览 Agent
│ └── dummy_agent/ # 测试用 Agent
├── controller/ # Agent 控制器 (V0, ~1,400 行)
│ ├── agent_controller.py # 主循环:on_event→should_step→_step
│ ├── agent.py # Agent 抽象基类(注册表模式)
│ ├── stuck.py # 循环卡死检测器
│ ├── replay.py # 轨迹回放
│ └── state/ # 状态管理(State + StateTracker)
├── runtime/ # 执行运行时
│ ├── base.py # Runtime 抽象基类 (~1,345 行)
│ ├── action_execution_server.py # 沙箱内 FastAPI 服务 (~1,085 行)
│ ├── impl/
│ │ ├── docker/ # Docker 运行时 (~778 行)
│ │ ├── local/ # 本地运行时
│ │ ├── remote/ # 远程运行时
│ │ └── kubernetes/ # K8s 运行时
│ ├── browser/ # 浏览器环境(BrowserGym)
│ ├── mcp/ # MCP 代理层
│ ├── plugins/ # 插件(Jupyter, VSCode, AgentSkills)
│ ├── builder/ # Docker 镜像构建器
│ └── utils/ # Bash 会话(tmux)、文件编辑、Git 处理
├── events/ # 事件系统(Action/Observation 二元模型)
│ ├── event.py # Event 基类
│ ├── action/ # 16+ 种 Action 类型
│ ├── observation/ # 对应 Observation 类型
│ ├── stream.py # EventStream 发布-订阅
│ └── serialization/ # 事件序列化/反序列化
├── llm/ # LLM 抽象层
│ ├── llm.py # LiteLLM 封装
│ ├── llm_registry.py # LLM 注册与路由
│ ├── fn_call_converter.py # 函数调用格式转换器
│ └── retry_mixin.py # 重试逻辑
├── memory/ # 记忆管理
│ ├── condenser/ # 10 种历史压缩策略
│ │ ├── amortized_forgetting_condenser.py
│ │ ├── llm_attention_condenser.py
│ │ ├── llm_summarizing_condenser.py
│ │ ├── structured_summary_condenser.py
│ │ ├── observation_masking_condenser.py
│ │ ├── browser_output_condenser.py
│ │ ├── conversation_window_condenser.py
│ │ ├── recent_events_condenser.py
│ │ ├── no_op_condenser.py
│ │ └── pipeline.py # 压缩器管道组合
│ └── conversation_memory.py
├── microagent/ # 微代理系统
│ ├── microagent.py # Knowledge/Repo 两种微代理
│ └── prompts/
├── mcp/ # MCP(Model Context Protocol)客户端
│ ├── client.py, tool.py
│ └── utils.py
├── integrations/ # 多平台集成
│ ├── github/, gitlab/, bitbucket/
│ ├── azure_devops/, forgejo/
│ └── protocols/
├── resolver/ # Issue 自动解决器
│ ├── resolve_issue.py # 端到端 Issue→PR
│ ├── send_pull_request.py
│ └── interfaces/ # GitHub/GitLab/Bitbucket/Forgejo/AzureDevOps
├── security/ # 安全分析
│ ├── invariant/ # 不变量检查
│ ├── grayswan/ # 对抗安全
│ └── llm/ # LLM 风险评估
├── critic/ # Agent 评估器
│ └── base.py # BaseCritic → CriticResult (score + message)
├── server/ # V0 Web 服务器 (Legacy)
│ ├── app.py # FastAPI 应用入口
│ ├── routes/ # REST + WebSocket 路由
│ └── session/ # 会话管理
├── app_server/ # V1 应用服务器 (新架构)
│ ├── v1_router.py # /api/v1 路由
│ ├── sandbox/ # 沙箱生命周期管理
│ ├── event/ # 事件存储与流式传输
│ └── services/ # JWT 认证等核心服务
├── storage/ # 存储抽象
│ ├── local.py, s3.py, google_cloud.py
│ └── conversation/, settings/, secrets/
├── core/ # 核心配置与常量
│ └── config/ # 9 种配置类型
├── linter/ # 内置代码检查
├── io/ # I/O 抽象
└── utils/ # 通用工具函数
frontend/ # React + TypeScript
├── src/
│ ├── api/ # 17 个 API 服务模块
│ ├── components/
│ │ ├── features/ # 功能组件
│ │ ├── v1/ # V1 新组件
│ │ └── ui/ # 基础 UI 组件
│ ├── hooks/ # React Hooks (chat, mutation, query)
│ ├── routes/ # React Router 路由
│ ├── stores/ # 状态管理
│ └── types/ # TypeScript 类型 (core + v1)
skills/ # 36 个 Microagent 技能文件 (.md)
tests/ # 221 个 Python 测试 + 209 个前端测试
关键设计决策
1. Action-Observation 事件驱动架构
整个系统围绕 EventStream 构建。Agent 产生 Action(如 CmdRunAction, FileEditAction),Runtime 执行后返回 Observation(如 CmdOutputObservation, FileEditObservation)。这是一个清晰的命令-响应模式,通过发布-订阅解耦了 Agent 逻辑和执行逻辑。
User → MessageAction → EventStream → AgentController.on_event()
↓
agent.step(state) → Action
↓
EventStream → Runtime
↓
Observation → EventStream → agent.step()
2. 沙箱内 Action Execution Server(关键隔离设计)
action_execution_server.py 是一个运行在 Docker 容器内部的 FastAPI 服务,Agent 通过 HTTP 与其通信。这意味着:
- Agent 代码(宿主机)和执行环境(容器)完全隔离
- 容器内有独立的 bash 会话(基于 tmux)、Jupyter、浏览器、MCP 代理
- 文件编辑使用
openhands-aci(Anthropic Computer Interface)的 OHEditor
3. Condenser 记忆压缩系统(10 种策略)
这是对 LLM 上下文窗口限制的系统化解法。Condenser 返回 View(压缩后的事件列表)或 Condensation(需要 Agent 执行的压缩动作),形成一个双向协议:
NoOpCondenser:不压缩ConversationWindowCondenser:滑动窗口RecentEventsCondenser:只保留最近事件ObservationMaskingCondenser:遮盖旧 Observation 内容AmortizedForgettingCondenser:分摊遗忘LLMAttentionCondenser:LLM 驱动注意力选择LLMSummarizingCondenser:LLM 摘要压缩StructuredSummaryCondenser:结构化摘要BrowserOutputCondenser:浏览器输出专用压缩Pipeline:上述策略的组合管道
4. Agent 注册表 + 委托模式
Agent 基类维护一个全局 _registry,通过 Agent.register('CodeActAgent', CodeActAgent) 注册。AgentController 支持 AgentDelegateAction 将子任务委派给不同类型的 Agent(如 BrowsingAgent),实现了多 Agent 协作。
5. 双轨架构(V0/V1 并行)
当前代码库处于罕见的”双轨运行”状态:
- V0(
openhands/controller/,openhands/server/):单体架构,Agent 逻辑、Runtime、Server 紧耦合 - V1(
openhands/app_server/, 外部software-agent-sdk):解耦架构,Agent 核心逻辑迁入独立 SDK
server/app.py 同时挂载了 V0 的路由和 V1 的 /api/v1 路由,实现了渐进式迁移。
创新点
-
CodeAct 统一动作空间:将 LLM Agent 的所有操作统一为代码执行(bash + Python),而非碎片化的工具调用。这是有学术论文支撑的核心创新,实测在 SWE-Bench 上显著优于传统方法。
-
10 种 Condenser 记忆管理:业界最丰富的 Agent 记忆压缩策略集合。特别是
AmortizedForgettingCondenser(分摊遗忘)和LLMAttentionCondenser(LLM 驱动的注意力选择)是新颖的方法。Pipeline 组合模式允许按需构建压缩策略链。 -
沙箱内执行服务器模式:不是简单地在容器中运行命令,而是在容器内运行一个完整的 FastAPI 服务,通过 HTTP 通信。这提供了:(a) 结构化的请求-响应通信,(b) 容器内独立的插件生态(Jupyter, VSCode, Browser),(c) 比 docker exec 更可靠的长期会话管理。
-
StuckDetector 循环卡死检测:Agent 循环卡死是 AI Agent 的常见问题。OpenHands 实现了专门的检测器,能识别多种卡死模式(重复命令、语法错误循环等),并提供三种恢复策略(回退到循环前、重试用户消息、停止)。
-
Microagent 技能系统:36 个
.md文件定义的轻量技能,通过 RAG 方式在运行时动态注入 Agent 上下文。分为 Knowledge(通用知识)和 Repo(仓库特定指令),支持社区贡献。 -
Critic 评估框架:内置
BaseCritic和AgentFinishedCritic,为 Agent 行为提供量化评分(score >= 0.5 为成功),支持基于 git patch 的评估,直接对接 SWE-Bench 评测。 -
多平台 Issue Resolver:
openhands/resolver/实现了从 Issue 到 PR 的全自动化流水线,支持 GitHub、GitLab、Bitbucket、Forgejo、Azure DevOps 五个平台。
可复用模式
-
EventStream 发布-订阅模式:
EventStream+EventStreamSubscriber模式可用于任何需要解耦生产者-消费者的 Agent 系统。事件的序列化/反序列化层使状态持久化和轨迹回放成为自然能力。 -
Agent 注册表模式:
Agent._registry+Agent.register(name, cls)+Agent.get_cls(name)是一个干净的插件注册模式,适用于任何需要运行时发现和实例化策略的场景。 -
Condenser Pipeline 组合模式:将多种压缩策略组合成管道,每种策略返回
View | Condensation的联合类型。这个模式可直接用于任何 LLM 上下文管理场景。 -
Action Execution Client/Server 分离:宿主机运行 Client(发送 Action),容器运行 Server(执行并返回 Observation)。这种通过 HTTP 桥接的隔离模式可用于任何需要安全执行不可信代码的场景。
-
StateTracker + ControlFlags 模式:用迭代次数标志和预算标志控制 Agent 执行边界,
sync_budget_flag_with_metrics()实时同步 LLM 消费。适用于任何需要成本控制的 Agent 系统。 -
SecurityAnalyzer 可插拔安全层:安全分析器是可选的,不存在时默认
UNKNOWN风险(fail-safe)。支持不变量检查、LLM 风险评估、对抗安全三种模式。 -
LLMRegistry + Router 模式:通过 Registry 管理多个 LLM 实例,支持按 Agent 配置路由到不同模型。适合需要多模型协调的应用。
-
Microagent RAG 注入模式:将领域知识以 Markdown 文件形式存储,运行时通过语义匹配注入 Agent 系统提示。低成本、可社区贡献、支持仓库级定制。
竞品交叉分析
vs Claude Code
| 维度 | OpenHands | Claude Code |
|---|---|---|
| 核心理念 | CodeAct(代码即行动) | 终端原生推理 |
| 模型绑定 | 模型无关(LiteLLM 支持全系列) | 绑定 Claude 系列 |
| 安全隔离 | Docker 沙箱默认隔离 | 权限系统 + 用户确认 |
| 记忆管理 | 10 种 Condenser 策略 | 压缩摘要机制 |
| 开放性 | 完全开源 + 可自部署 | 闭源商业产品 |
| 部署形态 | SDK/CLI/GUI/Cloud/Enterprise | 终端 CLI |
| 多 Agent | 原生委托机制 | 单 Agent |
| 代码执行 | 容器内 FastAPI Server | 直接终端执行 |
OpenHands 的优势在于开放性、模型选择自由度和企业级部署选项。Claude Code 的优势在于推理深度(Anthropic 模型直接优化)和极简的终端体验。
vs Devin
| 维度 | OpenHands | Devin |
|---|---|---|
| 定位 | 开源 AI 开发平台 | 最自主 AI 工程师(商业) |
| 自主性 | 中高(需要确认关键操作) | 最高(全自主执行) |
| 开放性 | 完全开源 | 闭源 |
| 评测 | SWE-Bench 77.6% | SWE-Bench 领先 |
| 集成 | 5 平台(GitHub/GitLab/Bitbucket/Forgejo/AzureDevOps) | 深度 Slack/GitHub |
| 定价 | 自部署免费 / Cloud 付费 | 高端定价 |
OpenHands 是 Devin 的开源替代。二者在 SWE-Bench 上不相上下,但 OpenHands 的自部署能力和模型选择自由度是其差异化优势。Devin 在产品打磨和全自主体验上更领先。
vs Cursor/Cline
| 维度 | OpenHands | Cursor | Cline |
|---|---|---|---|
| 形态 | 独立 Agent 平台 | IDE(VS Code Fork) | VS Code 插件 |
| Agent 能力 | 全自主任务执行 | 辅助编码为主 | IDE 内 Agent |
| 沙箱 | Docker 隔离 | 无沙箱 | 无沙箱 |
| 多 Agent | 原生支持 | 无 | 无 |
| 记忆管理 | 10 种 Condenser | 基础上下文管理 | 基础 |
| Issue→PR | 原生 Resolver | 无 | 无 |
OpenHands 和 Cursor/Cline 本质上不在同一赛道:OpenHands 是”自主 Agent”,Cursor/Cline 是”辅助工具”。OpenHands 更适合自动化的 Issue 解决和批量代码任务,Cursor/Cline 更适合开发者日常编码中的交互式协助。
综合竞争结论
OpenHands 在开源 AI Agent 赛道占据独特位置:
- 唯一同时具备学术根基(CMU/UIUC)、产品矩阵(SDK→Cloud)、商业化路径($23.8M 融资)的开源方案
- 核心壁垒:CodeAct 方法论 + 沙箱隔离架构 + 10 种记忆管理策略 + 5 平台集成
- 主要风险:V0→V1 架构迁移是一次高风险的”行驶中换引擎”操作,deadline 仅剩 10 天(2026-04-01);代码库中大量 Legacy 标记暗示技术债务沉重
- 竞争策略:以开放性和模型自由度对抗闭源产品(Claude Code, Devin, Cursor),以 Agent 自主性和沙箱安全对抗轻量插件(Cline)
代码质量
质量检查清单
| 检查项 | 状态 | 说明 |
|---|---|---|
| 目录结构清晰 | ★★★★☆ | 模块划分合理但 V0/V1 双轨造成混乱。agenthub/controller/runtime/events 四层分明,但 server/ vs app_server/ 的共存让新人困惑 |
| 代码量合理 | ★★★☆☆ | ~79,500 行 Python 偏重。agent_controller.py 1,392 行、base.py 1,345 行单文件过长。V0 遗留代码占比可观 |
| 抽象层次 | ★★★★★ | 优秀。Agent → Controller → Runtime → EventStream 四层抽象清晰。Condenser 的 View/Condensation 联合返回类型设计精妙 |
| 命名规范 | ★★★★☆ | Python 标准命名,类名清晰(StuckDetector, AmortizedForgettingCondenser)。部分私有方法命名过长 |
| 错误处理 | ★★★★★ | 异常体系完善,LLMContextWindowExceedError, AgentStuckInLoopError 等语义明确。_react_to_exception 对不同 LLM 错误分类处理,包含 Rate Limit 重试逻辑 |
| 测试覆盖 | ★★★★☆ | 221 个 Python 测试文件 + 209 个前端测试。覆盖 unit/runtime/e2e 三层。condenser、controller、events 均有专门测试 |
| 安全设计 | ★★★★★ | Docker 沙箱默认隔离、SecurityAnalyzer 可插拔、fail-safe 默认 UNKNOWN 风险、确认模式、安全风险分级(LOW/MEDIUM/HIGH/UNKNOWN) |
| 可扩展性 | ★★★★★ | Agent 注册表、Runtime 多实现、Condenser Pipeline、LLM Registry、Integration 多平台——每一层都是可插拔的 |
| 配置管理 | ★★★★☆ | 9 种配置类型(OpenHands/Agent/LLM/Sandbox/Security/MCP/ModelRouting/Extended/Condenser),支持 TOML + 环境变量。略显复杂 |
| 文档 | ★★★★☆ | 关键模块有 README(runtime, server, app_server)。代码注释质量高,特别是 CodeAct Agent 的 docstring 详尽。但 V0/V1 迁移状态缺乏用户可见的迁移指南 |
| 依赖管理 | ★★★☆☆ | 依赖较重(docker, litellm, browsergym, fastapi, libtmux, bashlex 等)。同时使用 Poetry + UV 双构建工具,处于迁移期 |
| 技术债务 | ★★☆☆☆ | V0 遗留代码大量标记为 Legacy,但仍是运行时实际路径。server/ 和 app_server/ 并存、controller/ 整体标记 Legacy 但仍活跃——技术债务显著 |
总体评分:★★★★☆
OpenHands 展现了高水平的软件工程实践:事件驱动架构、多层抽象、可插拔设计、全面的错误处理和安全考量。其创新性(CodeAct、Condenser Pipeline、沙箱执行服务器)在开源 Agent 项目中领先。主要扣分项是 V0→V1 迁移造成的架构分裂和技术债务,以及偏重的代码量和依赖。
套利机会分析
- 信息差: 69.5K stars 已被充分发现,但其 10 种 Condenser 记忆策略和 Action-Observation 事件架构的工程深度被低估——很多人只当它是”开源 Devin”
- 技术借鉴: (1) EventStream 发布-订阅模式;(2) Condenser Pipeline 记忆压缩组合;(3) Agent 注册表+委托模式;(4) 沙箱内 FastAPI 执行服务器;(5) StuckDetector 循环卡死检测
- 生态位: 开源 AI Agent 赛道唯一同时具备学术根基、产品矩阵和商业化路径的方案
- 趋势判断: V1 架构迁移是关键转折点——成功则奠定长期技术领先,失败则可能被竞品追赶。SWE-Bench 77.6% 证明技术实力,$23.8M 融资保证持续投入
风险与不足
- V0→V1 架构迁移风险:deadline 2026-04-01(仅剩约 10 天),大量 Legacy 标记的代码仍是运行时实际路径,“行驶中换引擎”风险极高
- 技术债务显著:server/ 和 app_server/ 并存、controller/ 整体标记 Legacy 但仍活跃、Poetry + UV 双构建工具共存
- 代码量偏重:79,500 行 Python,部分单文件过长(agent_controller.py 1,392 行、base.py 1,345 行)
- 依赖较重:docker, litellm, browsergym, fastapi, libtmux, bashlex 等,供应链管理压力大
- 商业化压力:$23.8M 融资意味着需要快速商业化回报,可能影响开源社区方向
- 竞品追赶:Claude Code 在终端体验上持续改进,Devin 在全自主性上领先,Cursor 在日常编码体验上更打磨
行动建议
- 如果你要用它: 最适合需要”自托管 + 模型无关 + 自动化 Issue→PR”的团队。如果只需编码辅助选 Cursor/Cline,如果不介意闭源选 Devin,如果只用 Claude 选 Claude Code。OpenHands 的独特价值在于开放性和企业级部署灵活性
- 如果你要学它: 重点关注 (1)
openhands/events/— Action-Observation 事件架构;(2)openhands/memory/condenser/— 10 种记忆压缩策略;(3)openhands/runtime/action_execution_server.py— 沙箱内执行服务器;(4)openhands/agenthub/codeact_agent/— CodeAct Agent 核心循环;(5)openhands/controller/stuck.py— 循环卡死检测 - 如果你要 fork 它: (1) 等 V1 迁移完成后再 fork(当前双轨状态不适合);(2) 清理 Legacy 代码减少认知负担;(3) 简化配置系统(当前 9 种配置类型过于复杂)
知识入口
| 资源 | 链接 |
|---|---|
| DeepWiki | deepwiki.com/OpenHands/OpenHands |
| Zread.ai | zread.ai/OpenHands/OpenHands |
| 关联论文 | CodeAct: Pretraining Large Language Models for Code Acting |
| 在线 Demo | app.openhands.ai — 官方 Cloud 版本 |
| 官方文档 | docs.openhands.ai |