Skip to content

OpenHands 智能体框架详解

OpenHands(原 OpenDevin)是开源的通用软件工程智能体框架,其核心创新在于 Agent-Computer Interface(ACI)——为 LLM 设计的交互接口,使智能体能像人类开发者一样操作代码仓库。

OpenHands 框架

核心架构

OpenHands 的架构由三个核心组件构成:

  1. Agent:基于 LLM 的决策引擎,负责分析问题、制定计划、调用工具
  2. Runtime:沙箱化的代码执行环境,基于 Docker 容器
  3. Controller:编排 Agent 和 Runtime 的交互循环
python
# OpenHands 核心循环
class AgentController:
    def step(self, task: str) -> Action:
        # 获取当前环境状态
        observation = self.runtime.observe()
        
        # Agent 决策
        action = self.agent.think(task, observation, self.history)
        
        # 执行动作
        result = self.runtime.execute(action)
        
        # 记录历史
        self.history.append((action, result))
        
        return action

ACI 设计

Agent-Computer Interface 是 OpenHands 的核心抽象,为 LLM 提供结构化的环境交互:

  • 文件操作:read、write、edit,带行号精确定位
  • 命令执行:bash 命令,带超时和输出截断
  • 浏览器操作:网页浏览和交互(用于 Web 开发任务)
  • 信息查询:搜索代码、查看 Git 历史

ACI vs 直接 Shell

ACI 的关键优势在于为 LLM 提供了结构化的观察格式。直接使用 Shell 输出作为观察会导致信息噪声过大,ACI 通过格式化和截断确保观察信息的信息密度。

Runtime 沙箱

Runtime 基于 Docker 容器,提供完全隔离的执行环境:

  • 独立的文件系统,可挂载项目目录
  • 独立的网络栈,可配置访问策略
  • 资源限制(CPU、内存、磁盘)
  • 快照和回滚能力

相关资源

最近更新