OpenBot:把 AG-UI 智能体变成可审计的浏览器同事
给企业把 AG-UI 智能体装进自有浏览器和文件环境,所有动作先过 CEL 再留审计记录。
GitHub CopilotKit/OpenBot 更新 2026-10-30 分支 main 星标 8.2K 分叉 1.0K
TypeScript Rust Python AG-UI 浏览器自动化 CEL 策略 Docker 自托管

🧭 决策指南

适合,如果你

  • 你已有 AG-UI endpoint,想让它获得独立浏览器、文件夹和工具权限。
    README 的 “Bring your own agent” 和 “A computer per person” 说明任意 AG-UI endpoint 可成为 Bot,并可分配 browser profile 与文件夹。
  • 你需要在 Shell、浏览器和 MCP 操作前用 CEL 拒绝高风险动作。
    README 的 “CEL policy, fail closed” 说明策略可检查 command、page.url、mcp.*,且 deny 先于 allow。
  • 你需要观察 Bot 屏幕,并在登录墙或 2FA 处人工接管。
    README 的 “Watch what it is doing” 和 “Take the wheel” 说明可查看屏幕、Activity,并记录 computer.control_taken。
  • 你想在自己的机器或基础设施运行可修改的 AI coworker 模板。
    README 正文写明 runs on your machine、没有 hosted version,并称 OpenBot 是 template 而非 product。

不适合,如果你

  • 你需要注册即用的 hosted SaaS,而不想维护 OpenBot 仓库和部署。
    README 明确写着 “There is no hosted version to sign up for”,并要求 clone repository 后自行替换 examples/。
  • 你要把 OpenBot 作为稳定发布的 npm package 依赖。
    README 明确写着 “nothing here is published as a package to depend on”。
  • 你不能接受 Beta 阶段的 bugs 和 rough edges。
    README 的 Beta 声明写明项目 early、expect rough edges and bugs、expect things to move。
  • 你的部署不能接受 supervisor 持有 Docker socket。
    Features 的 “Loopback by default” 写明 supervisor binds locally because it holds the Docker socket。

前置条件

  • README Quick start 要求先执行 `cp .env.example .env` 和 `bun install`。
  • README Quick start 使用 `npx --yes copilotkit@latest login` 与 `npx --yes copilotkit@latest project select` 连接 managed Intelligence project。
  • README 的 Runs on your machine 说明内容面向 laptop;CopilotKit Intelligence 可在 Mac 的 Docker 中本地运行。
  • `.env.example` 包含 `OPENBOT_SINGLE_USER=true`;README 说明启用 Sign-in 后才允许其他用户访问部署。
  • README Quick start 提醒需要填写 CopilotKit key 和 model key;其余空白 key 由启动脚本处理。

第一步命令(README 原文)

cp .env.example .env

要注意

  • 初始的 OPENBOT_SINGLE_USER=true 会让所有请求进入同一管理员身份。
    README 的 Runs on your machine 章节明确说明该设置 admits every request as one administrator。
  • Bot 被人工接管时,Bot 动作会被拒绝而不是排队。
    Features 的 “Take the wheel” 明确写着 while a person is driving, Bot actions are refused rather than queued。
  • 缺失 CEL policy 或规则损坏都会拒绝动作,而不是默认放行。
    Features 的 “CEL policy, fail closed” 写明 missing policy permits nothing,broken rule refuses。
  • Routines 需要 worker process,并有 15 分钟最短间隔和 20 个启用上限。
    Features 的 “Routines” 写明需要 worker process,最短间隔为 15 minutes,最多 20 enabled routines。
  • 自定义 MCP server 必须通过 URL 检查,未知工具按写操作处理。
    Features 的 “Governed MCP” 写明 custom servers must pass URL checks,unknown tools are treated as writes。

材料未说明

  • 材料没有说明支持的浏览器版本、Docker 版本或宿主机最低硬件配置。
  • 材料没有说明 AG-UI 的协议版本、事件兼容矩阵和可接入 agent 框架清单。
  • 材料没有给出并发 Bot 数、容器规模、审计存储容量或生产部署性能数据。
  • 材料没有说明 CopilotKit Intelligence 使用哪些模型、支持哪些模型供应商及其成本。
  • 材料没有提供 gVisor 对各类宿主机的具体支持矩阵,只说明 host supports it 时可使用 `COMPUTER_RUNTIME=runsc`。
  • 材料没有说明 Docker socket 暴露后的具体隔离边界、威胁模型和安全加固步骤。

💡 深度解析

6
适合 我需要让 Bot 使用浏览器、Shell 和文件,但组织要求未知工具默认拒绝、Shell 命令可按规则限制,并且每次允许或拒绝都可审计;OpenBot 能否满足这个约束?
适合读者: 需要让 Bot 操作浏览器、Shell 和文件,但必须按命令、页面和文件上下文实施默认拒绝策略的安全平台工程师

适合,因为 OpenBot 的执行入口、策略判断和审计记录集中在网关,并且 CEL 策略默认拒绝。

  • README 写明网关先解析服务器保存的目标快照、评估策略、写入审计行,之后才调用计算机;不存在“先执行后记录”的路径。
  • CEL 可检查 tool.name、command、file.*、页面 URL、Bot、用户和发起方式;拒绝优先于允许,缺少策略或规则损坏时都会拒绝。
  • Shell 通过与其他工具相同的闸门,命令无论被允许还是拒绝都会留痕;审计页列出允许、拒绝和失败,并显示触发规则。

这适合治理层,但不等于业务动作可靠或宿主机天然安全。README 未给出策略规模、评估延迟及企业现有规则迁移方式。

  • Features:"CEL policy, fail closed"
  • Features:"The gateway is the only way in"
  • Features:"A shell, not just a browser"
  • Features:"An audit trail you can read"
材料未说明:README 未说明 CEL 策略数量、复杂度和评估延迟上限;README 未说明审计日志的保留周期、导出接口和外部 SIEM 集成方式
适合 我已经有一个兼容 AG-UI 的 Agent,不想重写 Agent 逻辑,但需要给它独立浏览器、文件目录、工具权限和审计记录;OpenBot 是否适合作为接入层?
适合读者: 已经有手写或框架式 AG-UI Agent、希望在公司自有基础设施中补齐浏览器、文件和治理能力的平台工程师

适合,因为 OpenBot 明确把 AG-UI Agent 包装成拥有独立计算机环境的 Bot,而不是要求替换现有 Agent。

  • README 写明“any AG-UI endpoint is a Bot”,Agent 可以基于框架编写,也可以手写。
  • 网关会先解析目标、评估策略并写入审计记录,再调用浏览器、Shell 或文件能力;因此治理边界不需要散落在 Agent 内部。
  • Agent endpoint 会经过目标校验,认证头以只写方式保存,降低接入凭证进入普通配置或对话的风险。

但它是模板而非已托管产品,接入方仍需自行配置 endpoint、模型和部署环境。README 未说明 AG-UI 事件版本兼容矩阵、流式错误处理和现有 Agent 工具语义如何映射。

  • Features:"Bring your own agent: any AG-UI endpoint is a Bot"
  • Features:"The gateway is the only way in"
  • README 引言:"A template, not a product"
  • 项目数据:主语言 TypeScript;主题包含 ag-ui、agent-governance
材料未说明:README 未提供 AG-UI 版本兼容矩阵和不同 Agent 框架的适配限制;README 未说明高并发 Agent endpoint 的连接数、超时和重试行为
适合 我希望 Bot 使用 Google Drive、Notion、Parallel、Exa、Firecrawl 和 Composio,但安全规则要求未知工具和自定义 MCP server 工具按写操作处理;OpenBot 是否能提供这种连接器治理?
适合读者: 需要把 Google Drive、Notion、Parallel、Exa、Firecrawl 和 Composio 接入 Bot,同时限制未知工具和自定义服务器写权限的企业集成工程师

适合,因为 OpenBot 不只是把 MCP 连接器直接暴露给模型,而是提供目录、Bot 授权和工具分类规则。

  • README 列出 Google Drive、Notion、Parallel、Exa、Firecrawl,以及由 Composio 代理的数百个应用。
  • 目录只包含部署方认可的供应商,新增供应商需要经过审查;自定义服务器必须通过 URL 检查。
  • 未知工具和自定义服务器工具按写操作处理;目录中未明确标为写入类的工具才按读取类分类。
  • Bot 会获知部署中有哪些连接器以及自己持有哪些连接器,因此没有权限时应明确表示未获授予,而不是访问供应商网站绕过治理。

但连接器可用不代表数据边界自动合规。README 未说明每个供应商的具体 OAuth scope、速率限制、数据驻留和失败重试策略。

  • Features:"Governed MCP"
  • Features:"Google Drive, Notion and the public-web research providers Parallel, Exa and Firecrawl"
  • Features:"unknown tools and custom-server tools are treated as writes"
  • Features:"A Bot is told which connectors exist here and which it holds"
材料未说明:README 未列出各连接器请求的具体 OAuth scope 和组织管理员审批流程;README 未说明各供应商的数据驻留、速率限制、配额和错误重试策略;README 未说明 Composio 代理的应用数量是否受套餐或外部服务限制
视情况 我需要让每个人拥有独立浏览器和文件空间,并可让某些 Bot 使用独立容器;宿主机支持 gVisor 时还希望用 `COMPUTER_RUNTIME=runsc`,OpenBot 是否满足这个部署约束?
适合读者: 需要按人员和 Bot 隔离浏览器、文件和容器,并考虑 gVisor 支持情况的企业基础设施工程师

视情况:OpenBot 提供了所需的隔离开关,但能否达到企业目标取决于宿主机是否支持 gVisor,以及你是否补齐模板之外的生产运维能力。

  • README 的“一人一台计算机”设计为每人分配容器、文件夹和 Bot 浏览器 profile;在 Bot 上勾选 Isolated 可再分配独立容器。
  • README 明确给出 COMPUTER_RUNTIME=runsc,但前提是宿主机支持 gVisor。
  • Shell 只继承 PATH、locale、terminal 和 proxy 变量,不继承部署环境的其余变量,减少把宿主环境直接暴露给 Bot 的范围。
  • 项目是 MIT 许可的可克隆模板,不是托管产品;README 还明确处于 Beta,因此高可用、灾备、集中监控和大规模多租户不能直接视为已解决。

所以它适合作为隔离基础,但不应直接等同于完整生产隔离平台。

  • Features:"A computer per person"
  • Features:"Set `COMPUTER_RUNTIME=runsc` to run them under gVisor where the host supports it"
  • Features:"A shell, not just a browser"
  • README 引言:"A template, not a product"、"Beta, and under active development"
材料未说明:README 未说明不同宿主机内核、Docker 版本和 gVisor 配置的兼容范围;README 未说明容器资源上限、并发 Bot 数量和跨节点调度能力;README 未说明高可用、灾备和集中监控的实现方式
视情况 我需要把 OpenBot 放进企业内部,只允许经过 Google、Microsoft、Okta 或自有 SAML/OIDC 的人员登录,并由管理员在 `/admin/people` 撤销访问;它是否适合这个身份约束?
适合读者: 需要用 Google、Microsoft、Okta 或企业自有 SAML/OIDC 登录,并通过管理员页面管理人员访问权限的内部平台负责人

视情况:README 覆盖了多种企业登录和人员管理入口,但部署者必须关闭默认单用户模式并自行完成身份配置。

  • 默认 .env.example 使用 OPENBOT_SINGLE_USER=true,会把每个请求视为同一个管理员;README 明确说其他人访问部署前必须启用 Sign-in。
  • 支持 Google、Microsoft、Okta,以及运行时注册并按邮箱域路由的企业 SAML 或 OpenID Connect 提供商。
  • /admin/people 可查看已登录人员、提升或降级权限、移除访问;这些变更进入审计记录,并会结束被移除用户的当前会话。
  • 凭证通过 /admin/credentials 加密存储,不由 API 返回,审计事件会脱敏。

它适合身份治理起点,但不等于完整 IAM 产品。README 未说明多租户边界、SCIM、群组同步、密钥轮换和灾备策略。

  • README 引言:"OPENBOT_SINGLE_USER=true" 以及 "Sign-in ... is required before anybody else can reach the deployment"
  • Features:"Sign in with what your company already has"
  • Features:"Decide who gets in"
  • Features:"Credentials encrypted at rest"
材料未说明:README 未说明 SCIM、LDAP、群组同步和自动离职回收流程;README 未说明多租户之间的用户、Bot、文件和审计数据隔离边界;README 未说明 OAuth/OIDC/SAML 密钥轮换和身份提供商故障时的恢复机制
适合 我主要用 TypeScript,在 Mac 上通过 Docker 本地运行 Intelligence;我的浏览器流程经常遇到登录和 2FA,需要人在同一界面接管后再交还给 Bot,OpenBot 是否适合?
适合读者: 在 Mac 上用 Docker 运行本地 Intelligence、希望让 Bot 遇到登录和 2FA 时交给人工处理的 TypeScript 应用工程师

适合,尤其适合需要在本地验证浏览器 Agent 并处理登录墙或 2FA 的开发者,但它仍处于 Beta。

  • README 明确支持在自己的机器上运行,且 CopilotKit Developer plan 覆盖 Mac 上 Docker 中的本地 Intelligence。
  • Bot 遇到登录墙或 2FA 会请求帮助,用户可在同一面板接管浏览器,完成后再交还控制权。
  • 人工接管会记录为 computer.help_requested、computer.control_taken 和 computer.control_released;人工驾驶期间,Bot 动作会被拒绝而不是排队。
  • 项目主语言是 TypeScript,适合需要修改界面、Bot 和工作区模板的 TypeScript 工程师。

不过浏览器流程仍受网站结构、网络和登录状态影响。README 未说明 2FA 类型覆盖范围、人工接管超时以及 Docker 在不同 Mac 架构上的差异。

  • README 引言:"Runs on your machine"
  • README 引言:"CopilotKit's free Developer plan covers running Intelligence locally in Docker on a Mac"
  • Features:"Take the wheel"
  • 项目数据:主语言 TypeScript
材料未说明:README 未说明支持哪些具体 2FA 方式以及人工接管会话的超时规则;README 未说明 Apple Silicon 与 Intel Mac 上 Docker 运行时的性能差异

✨ 核心亮点

  • AG-UI endpoint 可直接变成带浏览器和文件的 Bot
  • CEL 策略在执行前拒绝动作,审计记录随后写入
  • 浏览器、Shell、MCP 和文件操作统一经过 gateway
  • 8,150 星但仍是 Beta 模板,README 明确存在粗糙点

🔧 工程化

  • 为每个用户分配容器、文件夹和浏览器 profile,可启用 gVisor
  • Shell 命令继承 PATH 和代理变量,并通过同一 gateway 留痕
  • CEL 可检查 tool.name、page.url、command 和 initiator.*
  • 支持 2FA 人工接管,并记录 computer.control_taken 等事件
  • 内置 Google Drive、Notion、Parallel、Exa 和 Firecrawl MCP

⚠️ 风险

  • README 明确标注 Beta,预计会遇到 rough edges 和 bugs
  • 项目是模板而非产品,没有 hosted 版本或可依赖 package
  • OPENBOT_SINGLE_USER=true 会让每个请求成为同一管理员
  • supervisor 持有 Docker socket,token 只是共享密钥而非网络边界

👥 适合谁?

  • 希望把自有 AG-UI agent 接入浏览器和 Shell 的 TypeScript 团队
  • 需要 CEL、审计和人工接管的企业内网自动化团队
  • 能在 Docker Mac 环境运行 CopilotKit Intelligence 的开发者