找回密码
立即注册
搜索
热搜: Java Python Linux Go
发回帖 发新帖

4073

积分

0

好友

525

主题
发表于 2 小时前 | 查看: 5| 回复: 0

你可能已经在用 Claude Code、Codex、Gemini CLI 这类编码 Agent了。单人、单项目、盯着一个终端跑,问题不大。麻烦通常出在后面:一个 Agent 在本机改代码,一个 Agent 想放到 VM 上长期跑,PR 审查、Issue 拆分、Slack 通知又希望自动触发,还要管 API Key、文件系统权限和团队共享。这时,普通 CLI 就开始吃力。

Automations 自动化工作流管理界面

今天要聊的 OpenHands(解放双手)就是干这个的:一个自托管的编码 Agent 控制台。目前 OpenHands 主仓在 GitHub 上有 80.7k+ Star。

OpenHands GitHub 仓库页面

和普通 CLI Agent 有什么不同

普通 CLI 更适合当前终端里的单次任务。OpenHands Agent Canvas 管的是一组运行位置和一组 Agent:本机、Docker、VM、公司内网机器、OpenHands Cloud / Enterprise,都可以作为 Backend。

Choose your agent 界面

OpenHands 主要通过 Agent Canvas 来用:一个浏览器 UI 加后端服务。它默认可以跑 OpenHands 自家的 Agent,也可以通过 Agent Client Protocol,也就是 ACP,接入 Claude Code、Codex、Gemini CLI 或其他兼容 ACP 的 Agent。

Agent Canvas 说明图

Backend 就是一个 Agent Server 加上它操作的 workspace。所有对话、设置、LLM 配置、MCP Server 和自动化,都跟当前选中的 Backend 绑定。切换 Backend 时,这些配置也一起切过去。

Backend 连接设置界面

所以,偶尔让 AI 改一个函数,CLI 足够了。OpenHands 更适合把 Agent 长期跑起来,比如自动 PR review、依赖更新、监听仓库事件、处理 Slack 触发、在远程机器上持续执行。

Agent Canvas:多个 Agent,一个控制面

你可以本机开一个 Backend 做日常小改动,在 VM 上开一个 Backend 跑耗时任务,再给团队共享一个后端处理 PR review。Canvas 前端负责连接和展示,Agent Server 负责会话、文件、命令和工具调用。

这里也有个限制:代码还在迁移,OpenHands Agent 和 Agent Server 的源码在 OpenHands/software-agent-sdk,Agent Canvas 的源码在 OpenHands/agent-canvas。看版本时要分清主仓 Release、Agent Canvas npm 包和 Agent Server 镜像。

Automations:让 Agent 接进工作流

Agent Canvas 支持 cron 定时任务,也支持 GitHub、Linear、Slack、自定义 Webhook 这类事件触发。预置工作流包括 GitHub PR Review Assistant、GitHub Repository Monitor、Slack Channel Monitor。

系统架构图

以 GitHub PR Review Assistant 为例,你需要先给后端配置 GitHub 访问权限,再从 Automate 里启动 PR review 工作流。PR 审查至少需要 Contents、Issues、Pull requests 相关权限;如果要看 CI,再补 Actions 或 Checks 只读权限。

欢迎页面与工作流入口

不过权限别给太大。GitHub token 优先选择 fine-grained personal access token,只给选定仓库授权,并设置过期时间。

ACP Agent:不被单一 Agent 绑定

ACP 是 Agent Client Protocol。

在 Agent Canvas 里,接入 ACP Agent 时,Agent Server 会启动外部 Agent 的 CLI 子进程,通过 stdio 上的 JSON-RPC 跟它通信。外部 Agent 自己管理模型、工具和执行逻辑,Canvas 负责发消息和展示结果。

默认命令包括:

npx -y @agentclientprotocol/claude-agent-acp
npx -y @zed-industries/codex-acp
npx -y @google/gemini-cli --acp

团队已经在用 Claude Code 或 Codex 的话,可以把它们接到 Canvas 里,用同一套界面、后端和自动化去管理。多人使用时,凭证、日志、运行位置都按 Agent 隔开,不用挤在一台机器上。

安装和自托管

最短路径是 npm。需要 Node.js 22.12 或更高版本、npmuv

npm install -g @openhands/agent-canvas
agent-canvas

默认会启动到 http://localhost:8000。如果想拆开前端和后端,可以用 agent-canvas --frontend-onlyagent-canvas --backend-only

如果要放到 VM 或团队能访问的机器上,建议使用 public 模式,并设置强随机的 LOCAL_BACKEND_API_KEY

export LOCAL_BACKEND_API_KEY="<choose-a-strong-secret>"
agent-canvas --backend-only --public

Docker 也能跑。固定到 1.1.0 可以这样:

mkdir -p ~/projects ~/.openhands
docker run -it --rm -p 8000:8000 -v ~/.openhands:/home/openhands/.openhands -v ~/projects:/projects ghcr.io/openhands/agent-canvas:1.1.0

Agent 能访问什么,跟你挂进去的目录直接相关。不要为了省事把整个 home 目录、密钥目录、公司资料盘都挂进去。

权限风险别跳过

都说本地部署更安全,其实只对了一半。

本地部署确实能让代码和数据留在自己的机器或内网里。但 Agent Server 可以读写宿主机文件系统、执行 shell 命令、访问网络、存储 secrets。

工具调用安全风险分层:按风险等级匹配不同的控制策略
工具调用安全风险分层:按风险等级匹配不同的控制策略

如果你用无沙箱方式直接跑 agent-canvas,或者从源码跑 npm run dev,Agent Server 会直接跑在安装机器上,Agent 将拥有完整文件系统访问权限。

这里建议先卡几条硬规矩:

  • 本机试用时,只在明确的项目目录里工作;
  • Docker 方式只挂载需要处理的目录;
  • VM 暴露到公网前必须使用 --public 和强 LOCAL_BACKEND_API_KEY
  • 公网访问要加 TLS、反向代理、VPN、ngrok OAuth 或其他网络访问控制;
  • 给 GitHub、Slack、Linear 这类集成配置最小权限 token,并设置过期时间;
  • .openhands、后端持久化目录、API Key 当成敏感资产看待。

Agent 能改代码,也能删文件、提交错误内容、把敏感信息写进日志或外部服务。自托管只是把控制权交回给你,风险还得自己兜住。

写在最后

如果你只是想让 AI 在当前项目里改几个文件,Claude Code、Codex CLI、Gemini CLI 直接用就行,路径短,心智负担也小。

如果你已经把编码 Agent 当成长期后台工人用,想在本机、VM、Docker、云后端之间切换,又想把 PR、Issue、Slack、Webhook 接进工作流,OpenHands 值得单独看一眼。

它现在还是 beta,版本线分散,源码位置还在迁移,这些都要心里有数。企业级权限、审计、团队治理也需要结合 Cloud / Enterprise 或自己的基础设施来做,不能指望开源版一键兜底。

对一个开源、自托管、能管多个 Agent 的工具来说,这个完成度已经值得试一下。

项目地址:https://github.com/OpenHands/OpenHands




上一篇:台积电成熟制程代工将涨价:2027年1月起执行,预计个位数涨幅
下一篇:GPT-5.6 Sol推理预算被砍,960→128背后:模型降智风波全记录
您需要登录后才可以回帖 登录 | 立即注册

手机版|小黑屋|网站地图|云栈社区 ( 苏ICP备2022046150号-2 )

GMT+8, 2026-7-15 05:56 , Processed in 0.750463 second(s), 39 queries , Gzip On.

Powered by Discuz! X3.5

© 2025-2026 云栈社区.

快速回复 返回顶部 返回列表