Files
memind/docs/openhands-install.md
T
john 9b4a25799f Add smart ACK provider for WeChat MP replies
Replace fixed ackText with a rule-based AckProvider that picks
response templates by message type and intent (translate, summary,
rewrite, poster, ppt, mindmap, code, search, schedule). Pure sync,
zero I/O, auto-falls back to config.ackText on any error.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-26 15:19:03 +08:00

172 lines
4.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# OpenHands 安装说明
> 目标:先把 OpenHands 独立安装并跑起来,确认可用后,再接入 `memindadm` 的 Goose 网关策略中心。
>
> 原则:安装阶段不改动现有 Goose 服务,不影响当前生产/测试链路。
## 1. 推荐方案
如果你的目标是后续和 Goose 做集成,建议先用 **OpenHands CLI + GUI Server** 方式启动:
- 本地直接运行
- 可挂载当前仓库目录
- 便于后续做执行器接入验证
官方文档对 `openhands serve` 的说明是:它会通过 Docker 启动本地 GUI Server,支持挂载当前目录,适合直接对仓库做任务。
## 2. 前置条件
### 必需
- `uv`
- Python 3.12+
- Docker Desktop 已安装并运行
- 可用的 LLM Provider / Model / API Key
### Mac 上建议额外确认
- Docker Desktop 的默认 socket 访问已开启
- `docker ps` 可以正常执行
如果后面 `serve` 起不来,优先检查 Docker 是否在运行,以及 Docker Desktop 的相关网络设置。
## 3. 安装方式
### 方式 A:推荐,使用 `uv`
```bash
uv tool install openhands --python 3.12
```
安装完成后启动:
```bash
openhands serve --mount-cwd
```
说明:
- `serve` 会启动 GUI Server
- `--mount-cwd` 会把当前目录挂进 OpenHands 的工作区
- 这样它可以直接面对你的仓库做任务
- 首次启动后需要在界面里选择 LLM Provider、Model,并填入对应 API Key
如果你只想先验证能跑起来,也可以先不加 `--mount-cwd`
```bash
openhands serve
```
### 方式 B:使用官方安装脚本
```bash
curl -fsSL https://install.openhands.dev/install.sh | sh
```
安装后同样可以启动:
```bash
openhands serve --mount-cwd
```
### 方式 CDocker / Agent Canvas
如果你更偏向容器化,可按 OpenHands 的 Agent Canvas / Docker 文档走容器启动方式。这个方式适合未来把 OpenHands 作为更独立的执行环境来跑。
### 端口与资源
- GUI Server 默认会占用 `3000` 端口
- Docker 镜像和运行时需要一定磁盘空间
- 如果要跑 GPU,可以在 `serve` 时加 `--gpu`
## 4. Mac 最短安装路径
如果你现在是在 Mac 上直接装,我建议按这个顺序走:
### 4.1 安装 Docker Desktop
去 Docker 官方页面下载安装包,按芯片类型选择 Apple Silicon 或 Intel 版本。
- 安装页:`Docker Desktop for Mac`
安装完成后,先启动 Docker Desktop,等左上角状态变成运行中。
### 4.2 打开 Docker Socket 选项
按 OpenHands 官方本地安装说明,进入:
- `Docker Desktop`
- `Settings`
- `Advanced`
- 勾选 `Allow the default Docker socket to be used`
这个开关是 OpenHands 本地运行最关键的前置条件之一。
### 4.3 验证 Docker 是否可用
在终端执行:
```bash
docker ps
```
如果能正常返回容器列表或空列表,说明 Docker daemon 已经起来了。
### 4.4 启动 OpenHands
回到你的仓库目录后执行:
```bash
openhands serve --mount-cwd
```
如果一切正常,你会看到 OpenHands GUI Server 在本机启动。
## 5. 如果你暂时不想装 Docker
如果你只是想先体验界面,不急着本地执行仓库任务,可以先考虑 OpenHands 的 `web` 模式。这个模式是终端界面的浏览器版,不是完整 GUI Server,和 `serve` 不是一回事。
但如果你的目标是后面和 `memindadm` 做执行器集成,我还是建议装 Docker,后续链路会更稳。
## 6. 启动后如何确认正常
启动成功后,确认以下几点:
1. 浏览器能打开 OpenHands 的界面。
2. 可以创建一次简单任务。
3. 如果用了 `--mount-cwd`,任务可以看到当前仓库。
4. Docker 不报权限或 socket 错误。
## 7. 用于后续 Goose 集成时的建议
为了后面接入 `memindadm`,建议你先准备好这些信息:
- OpenHands 的启动方式
- 本地可访问地址
- 是否需要挂载仓库目录
- 是否允许命令执行
- 是否要使用 GPU
- 计划给 Goose 侧调用的入口方式
建议后续接入时优先走“策略中心路由到 OpenHands”,而不是让 Goose 直接接管 OpenHands 的所有行为。这样 `memindadm` 的审计和拦截链路会更清晰。
如果你后面已经决定把 `Goose / Aider / OpenHands` 的模型统一收口到 `memindadm`,那么 OpenHands 这边也不要再单独维护自己的模型配置,统一从后台读取即可。
## 8. 和现有 Goose 服务的关系
这一步是旁路安装,不会改动现有 Goose 服务。
后续集成时,建议保持下面的边界:
- 现有 Goose 服务继续照常运行
- `memindadm` 只在旁路做策略判断、审计记录、路由建议
- OpenHands 先作为独立执行器接入
- 真正切流之前,先做只读审计和联调验证
## 9. 官方参考
- OpenHands 安装文档
- OpenHands GUI Server
- OpenHands Local Setup
- OpenHands Docker Sandbox