❤️ 如果你也关注 AI 的发展现状,且对 AI 应用开发非常感兴趣,我会每日分享大模型与 AI 领域的最新应用和热点信息,提供开源实例和实用教程,帮助你快速上手AI技术,欢迎关注我哦!
🥦 微信公众号|搜一搜:蚝油菜花 🥦
🚀 快速阅读
- 功能强大:支持代码生成、命令行操作、网页浏览等多种功能,提升开发效率。
- 多智能体协作:通过多代理协作机制,实现复杂任务的分解与执行。
- 安全沙箱环境:基于 Docker 沙箱技术,确保代码执行的安全性。
正文(附运行示例)
OpenHands 是什么
OpenHands 是一款基于 AI 的编程工具,旨在通过多智能体协作提升开发效率,减少开发者的编码工作量。它支持代码编写、命令行操作、网页浏览等多种功能,帮助开发者快速完成项目构建、测试和部署。
OpenHands 提供了一个安全的沙箱环境,确保代码执行的安全性。同时,它还支持多代理协作,能够将复杂任务分解为多个子任务,由不同的代理协同完成。OpenHands 涵盖了软件工程、网页浏览等多个领域的 15 个基准测试,为学术界和工业界的研究与应用提供了有力支持。
OpenHands 的主要功能
- 代码编写与修改:自动生成符合项目需求的代码片段,并进行修改。
- 命令行操作:支持执行各种命令行操作,帮助完成项目的构建、测试和部署。
- 网页资源检索:集成网页浏览功能,自动检索开发所需的资源和信息。
- API 调用集成:简化与外部服务的交互,支持多种 API 的集成。
- 代码片段复制与应用:从开发者社区如 StackOverflow 复制代码片段,根据需求进行应用和调整。
OpenHands 的技术原理
- 事件流架构:基于事件流管理代理与环境的交互,包括代理的动作和环境的观察结果。
- Docker 沙箱:为每个任务会话启动一个安全隔离的 Docker 容器沙箱,所有动作都在沙箱中执行。
- 动作执行 API:API 服务器在 Docker 沙箱中运行,处理命令执行、Python 代码执行和网页浏览等动作。
- 任意 Docker 镜像支持:支持代理在任意操作系统和软件环境中运行,基于任意 Docker 镜像的运行时实现。
- 代理技能:AgentSkills 库提供一些基本工具无法实现的实用功能,如文件编辑、文档阅读等。
- 多代理委托:支持一个代理将特定子任务委托给另一个代理执行,实现多代理之间的协作。
如何运行 OpenHands
1. 使用 Docker 运行 OpenHands
OpenHands 可以通过 Docker 快速启动。以下是运行 OpenHands 的命令:
docker pull docker.all-hands.dev/all-hands-ai/runtime:0.18-nikolaik
docker 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
启动后,OpenHands 将在 http://localhost:3000
运行。
2. 配置大模型 API
你需要配置一个模型提供者和 API 密钥。推荐使用 Anthropic 的 Claude 3.5 Sonnet 模型,但你也可以选择其他支持的模型。
资源
- 项目官网:https://all-hands.dev
- GitHub 仓库:https://github.com/All-Hands-AI/OpenHands
- HuggingFace 模型库:https://huggingface.co/OpenHands
- arXiv 技术论文:https://arxiv.org/pdf/2407.16741
❤️ 如果你也关注 AI 的发展现状,且对 AI 应用开发非常感兴趣,我会每日分享大模型与 AI 领域的最新应用和热点信息,提供开源实例和实用教程,帮助你快速上手AI技术,欢迎关注我哦!
🥦 微信公众号|搜一搜:蚝油菜花 🥦