【OpenBot】把可审计的 AI 同事放进你自己的基础设施
这是一个运行在企业自有基础设施中的 AI 助手与代理平台,用于解决如何把 AI 代理接入公司环境,并对其进行权限控制、行为治理和审计记录的问题。
它是什么
这个项目提供一个可自托管的 AI 代理工作台。它可以让不同的 AI 代理以“同事”的形式进入工作流程,拥有自己的频道、浏览器环境和文件空间,同时所有操作都要经过统一网关判断并留下审计记录。
它不是一个托管服务,而是一个可以被克隆、改造并纳入公司内部体系的模板型项目。项目仍处于早期 Beta 阶段,适合愿意自行部署和定制的团队。
主要功能与特性
- 运行在自有基础设施中
- 通过 Docker Compose 启动各个组件。
- 数据存储在 PostgreSQL 中。
-
模型由管理员自行配置密钥,密钥加密存储,且不会被记录到日志中。
-
AI 代理以“同事”形式工作
- 初始包含两个配置型同事:
General Assistant:用于日常工作。Knowledge:用于公司知识问答。
- 配置对应 endpoint 后,可以加入
Risk Analyst。 -
示例目录中还有更多单一职责代理,例如处理报销、整理会议纪要、生成发布说明、工单分类、入职问答等。
-
支持通过 AG-UI 接入代理
- 任何符合 AG-UI 协议的 endpoint 都可以成为 Bot。
- 不绑定特定框架,代理可以由框架生成,也可以手写实现。
-
治理逻辑作用在协议层,而不是绑定某个具体代理框架。
-
每个代理都有受控的执行环境
- 每个同事可以获得自己的容器、文件夹和浏览器 profile。
- Bot 可以在自己的工作空间中运行命令、安装依赖、处理文件。
-
所有动作都要经过统一网关,规则可以拒绝 shell 命令或特定命令。
-
统一网关与审计记录
- Bot 对浏览器、文件、MCP 服务器或组件的操作,都会经过同一个网关。
- 网关会先解析目标、评估策略、写入审计记录,然后再执行操作。
-
不存在没有审计记录就直接执行的路径。
-
策略控制采用失败关闭设计
- 规则可以检查工具名、意图、Bot ID、用户 ID、页面 URL、页面 host、元素、命令、文件、MCP 信息和发起者信息。
- 拒绝规则会先于允许规则评估。
- 如果缺少策略,则默认不放行。
-
如果规则损坏,系统会拒绝执行,而不是开放执行。
-
支持人工接管
- 当 Bot 遇到登录墙或二次验证时,可以请求人工帮助。
- 控制权可以在同一界面中移交。
- 接管过程会被记录。
-
人工操作期间,Bot 的动作会被拒绝,而不是排队等待。
-
支持组件化回复
- Bot 不只输出文字,也可以使用 React 组件回复。
- 组件可以发布、授权,并控制哪些 Bot 可以使用。
-
支持在沙箱环境中编写和发布组件。
-
受治理的 MCP 与技能
- 内置目录包含 Google Drive、Notion,以及 Parallel、Exa、Firecrawl 等公开网络研究服务。
- 可通过 Composio 连接更多应用。
- 自定义 MCP 服务器需要通过 URL 检查。
- 未知工具和自定义服务器工具默认按写操作处理。
-
技能分为个人技能和部署技能,并通过
/在对话中调用。 -
企业登录与人员管理
- 支持 Google、Microsoft、Okta 登录。
- 支持公司注册自己的 SAML 或 OpenID Connect 提供商。
- 可以查看已登录人员,提升或降低角色,移除访问权限。
-
默认配置中包含单用户管理员模式,方便本地首次启动;对外开放前需要配置真实登录。
-
可读取的审计轨迹
- 可以查看哪些操作被允许、被拒绝或失败。
- 每次拒绝都会记录触发它的规则。
-
密钥不会进入对话记录,审计中只记录请求和长度,不记录内容。
-
定时任务
- 可以让 Bot 按计划执行任务。
- 定时任务有最低 15 分钟间隔限制。
- 最多启用 20 个定时任务。
- 连续失败 10 次后会自动关闭,避免持续消耗模型资源。
安装和使用示例
运行前需要准备:
- Docker
- Bun 1.4+
- CopilotKit Intelligence 项目和许可,免费计划可用,也支持自托管
- 模型密钥。示例 Bot 使用 OpenAI;LangGraph Bot 可使用 OpenAI、Anthropic 或 Google
本地快速开始:
cp .env.example .env
bun install
连接托管 Intelligence 项目:
npx --yes copilotkit@latest login
npx --yes copilotkit@latest project select
bun scripts/setup-learning.ts
填写剩余必填值,例如:
OPENAI_API_KEY
如果需要生成自己的 KEY_ENCRYPTION_KEY,可以执行:
openssl rand -base64 32
启动:
bash scripts/start.sh
启动脚本会拉起 Docker 服务、执行数据库迁移、启动 API 服务、启动例行任务 worker、启动前端应用,并检查服务健康状态。
也可以直接使用镜像运行:
docker run -p 3001:3001 --env-file .env \
-e EMBEDDED_POSTGRES=on -v openbot-data:/var/lib/postgresql \
ghcr.io/copilotkit/openbot:latest
简单体验方式包括:
- 打开
/bot,输入:
Open news.ycombinator.com and tell me the top story.
- 让 Bot 填写一个表单,然后到
/admin/audit查看审计记录。 - 打开
/admin/boundaries,添加一条拒绝规则或预设,然后重新尝试同一个浏览器动作。 - 从
/bots创建一个 Bot,为它设置长期角色,并开启一个频道。
适合哪些场景和用户
这个项目适合希望把 AI 代理放进公司内部环境,并且需要控制、审计和边界管理的团队。
适合的场景包括:
- 企业希望在自己的基础设施中运行 AI 助手。
- 需要给不同员工或团队分配不同 AI 同事。
- 需要让 AI 操作浏览器、文件、内部工具,但必须有审批和审计。
- 需要接入已有 AG-UI 代理,并统一展示和管理。
- 希望构建内部知识问答、办公自动化、工单处理、会议跟进、材料整理等代理工作流。
- 需要在真实使用前配置边界规则,避免 AI 执行不该执行的操作。
目标用户主要包括:
- 企业内部平台团队。
- 负责 AI 工具落地的工程师。
- 需要管理 AI 权限和审计的管理员。
- 想基于模板二次开发自有 AI 工作台的开发者。
- 对 Docker、环境变量、API 密钥和基础服务部署有一定了解的技术团队。
如果只是想找一个注册即用的托管聊天机器人,这个项目并不适合。它更强调自持、可控、可配置和可审计。
总结
整体来看,这是一个强调自主控制、边界治理和操作审计的 AI 代理平台。它把 AI 代理放在企业自己的基础设施中运行,并通过统一网关、策略规则、审计记录和人工接管机制,让代理行为变得可管理。
它的定位是模板,而不是开箱即用的托管产品。项目仍处于 Beta 阶段,适合愿意克隆代码、配置环境并持续改造的团队。对于希望把 AI 代理纳入公司登录体系、权限边界和审计流程的组织来说,它提供了一个清晰的起点。