OpenHands:能自主检索外部知识的 AI 编程工具,自动执行命令、网页浏览和生成代码等操作

OpenHands:能自主检索外部知识的 AI 编程工具,自动执行命令、网页浏览和生成代码等操作
最新回答
一生玺爱

2026-05-05 06:23:09

OpenHands 是一款基于 AI 的多智能体协作编程工具,支持代码生成、命令行操作、网页资源检索等功能,通过安全沙箱环境和多代理协作机制提升开发效率。

功能特点
  • 代码编写与修改

    自动生成符合项目需求的代码片段,支持根据上下文修改代码逻辑。

    示例:输入功能描述后,工具可生成完整函数或类,并自动处理依赖关系。

  • 命令行操作

    支持执行项目构建、测试、部署等命令,例如 npm install、docker build 等。

    通过 API 封装复杂命令,降低操作门槛。

  • 网页资源检索

    集成浏览器内核,可自动访问技术文档、开发者社区(如 StackOverflow)获取信息。

    支持关键词搜索与内容提取,例如检索特定框架的官方教程。

  • API 调用集成

    简化与外部服务的交互流程,支持 RESTful、GraphQL 等接口调用。

    自动处理认证、参数格式化等细节,例如调用 GitHub API 获取仓库信息。

  • 代码片段复制与应用

    从开发者社区抓取代码片段,根据当前项目环境调整语法或依赖。

    示例:将 StackOverflow 上的 Python 排序算法转换为当前项目使用的版本。

技术原理
  • 事件流架构

    基于事件驱动模型管理代理(Agent)与环境交互,代理动作与环境观察结果通过事件流同步。

    例如:代理发送代码执行请求后,环境返回运行结果并触发后续操作。

  • Docker 沙箱隔离

    每个任务会话启动独立 Docker 容器,隔离代码执行环境,防止恶意操作影响主机系统。

    支持自定义镜像,例如使用 python:3.9 镜像运行数据分析任务。

  • 动作执行 API

    核心 API 服务器运行在沙箱内,处理三类动作:

    命令执行:如 bash script.sh

    代码执行:支持 Python、JavaScript 等语言

    网页浏览:模拟用户访问网页并提取数据

  • 多代理协作机制

    主代理可将子任务委托给其他代理,例如:

    主代理接收“搭建 Web 服务器”任务

    委托代理 A 编写 Dockerfile

    委托代理 B 配置 Nginx

    汇总结果并部署

  • 代理技能库(AgentSkills)

    提供文件编辑、文档解析等高级功能,扩展基础工具能力。

    示例:FileEditorSkill 可直接修改项目中的配置文件。

运行方式1. Docker 快速启动docker pull docker.all-hands.dev/all-hands-ai/runtime:0.18-nikolaikdocker run -it --rm --pull=always -e SANDBOX_RUNTIME_CONTAINER_IMAGE=docker.all-hands.dev/all-hands-ai/runtime:0.18-nikolaik -e LOG_ALL_EVENTS=true -v /var/run/docker.sock:/var/run/docker.sock -v ~/.openhands-state:/.openhands-state -p 3000:3000 --add-host host.docker.internal:host-gateway --name openhands-app docker.all-hands.dev/all-hands-ai/openhands:0.18
  • 访问
    http://localhost:3000
    即可使用 Web 界面。
2. 配置大模型 API
  • 在设置中填入模型提供商(如 Anthropic Claude 3.5 Sonnet)的 API 密钥。
  • 支持模型列表:

    Claude 3.5 Sonnet(推荐)

    GPT-4 Turbo

    Llama 3 70B

应用场景
  • 快速原型开发:通过自然语言描述需求,自动生成前端页面或后端接口。
  • 自动化运维:编写脚本监控服务器状态,异常时自动执行修复命令。
  • 技术调研:检索最新框架文档并生成对比报告,辅助技术选型。
资源链接
  • 项目官网:
    https://all-hands.dev
  • GitHub 仓库:
    https://github.com/All-Hands-AI/OpenHands
  • 技术论文:
    https://arxiv.org/pdf/2407.16741