OpenBot 是 CopilotKit 这周开源的「AI 同事」平台,本周热门榜第二名。核心思路很直接:给每个 AI Agent 一台属于自己的电脑——一个真实的浏览器(自带独立登录态)、自己的文件目录,以及你授权给它的工具。它做什么动作,执行前先决定、执行后记审计,遇到不该自己拿主意的事,会交回给你确认。所有东西都跑在你自己机器上,数据存在你自己的 PostgreSQL,模型也用你自己的 Key。
先说清楚:项目目前是 Alpha,官方自己都写了「会有粗糙的边角和 bug」。所以这篇不是让你直接上生产,而是把本地跑通、体验完整流程的路给你趟平,你自己判断值不值得继续用。
准备什么
- Docker(start.sh 会用它拉起 PostgreSQL 等服务)
- Bun 1.3+(项目用 Bun 装依赖、跑脚本)
- 一个 CopilotKit 账号(免费注册,用于拿 Intelligence 凭据)
- 一个 OpenAI API Key(也可以配 Anthropic / Google,见后文)
硬件没有特别要求,普通笔记本就行。系统建议 macOS / Linux(start.sh 是 bash 脚本);Windows 可以用 WSL。
第一步:克隆仓库并准备配置
git clone https://github.com/CopilotKit/OpenBot.git
cd OpenBot
cp .env.example .env.env.example 默认开了 OPENBOT_SINGLE_USER=true,也就是本地以管理员身份直接使用全部功能,不用先折腾 OAuth 登录。想体验完整产品,这一行先留着。
第二步:配置 CopilotKit Intelligence 凭据
OpenBot 的持久会话和记忆依赖 CopilotKit 的托管服务 Intelligence,下面四项必须配齐:INTELLIGENCE_API_URL、INTELLIGENCE_GATEWAY_WS_URL、INTELLIGENCE_API_KEY、COPILOTKIT_LICENSE_TOKEN,缺一个服务都拒绝启动。拿凭据的方式是官方 CLI:
npx --yes copilotkit@latest login
npx --yes copilotkit@latest project select
npx --yes copilotkit@latest license --write登录后 project select 会显示一个 cpk- 开头的运行时 Key,把它填进 .env 的 INTELLIGENCE_API_KEY;license --write 会把 COPILOTKIT_LICENSE_TOKEN 自动写进 .env。两条 URL 用 .env.example 里默认的托管地址就行,不用自己搭。
第三步:填模型 Key
OPENAI_API_KEY=sk-xxxx默认模型走 OpenAI。国内访问 OpenAI 不方便的话,把 OPENAI_BASE_URL 指到你用的中转或兼容端点即可。想换 Anthropic 或 Google,把 BOT_PROVIDER 改成 anthropic 或 google,再填对应的 ANTHROPIC_API_KEY / GOOGLE_API_KEY。
第四步:启动
bun install
bash scripts/start.shstart.sh 做的事比想象中多:拉起 Docker 里的 PostgreSQL、执行数据库迁移、启动 API(端口 3001)、前端(3010)、agent-langgraph(4201)、supervisor(4500)等一整套,还会在首次运行时自动生成 MANAGED_AGENT_TOKEN 和 AGENT_TOOL_TOKEN 两个密钥写回 .env。它会在每个服务通过健康检查后才打印下一步提示,耐心等一两分钟。启动成功后打开 http://localhost:3010。
第五步:交给它第一个任务
打开 /bot 页面,直接问:
Open news.ycombinator.com and tell me the top story.它会用自己专属的浏览器打开 Hacker News,把头条带回来。你也可以让它去 httpbin.org/forms/post 填个表单,然后在 /admin/audit 里看到它每一步动作的审计记录——这是它跟普通聊天机器人最大的区别:每一步都可追溯。
第六步:试试边界(安全机制)
在 /admin/boundaries 加一条拒绝规则(比如禁止访问某个域名),再让 Bot 干同样的事,它会被拦下来。这个「先决定、再执行、后审计」的设计,就是 OpenBot 想解决的核心问题:让 Agent 在你有控制权的前提下干活。
常见坑
- 服务起不来,先看是不是四个 Intelligence 变量没配齐,缺一个会直接拒绝启动
- cpk- Key 一定要从 project select 的输出里复制;license --write 之后检查 .env 里 COPILOTKIT_LICENSE_TOKEN 是否有值
- 本地不要设 NODE_ENV=production:production 模式会拒绝 .env.example 里那个示例加密 Key,服务直接起不来
- start.sh 首次运行会自动生成密钥写进 .env,别手动删;改了 AGENT_TOOL_TOKEN / MANAGED_AGENT_TOKEN 要重启整个栈
- 端口冲突:start.sh 会报告哪个端口被占用(3001 / 3010 / 4100 / 4200 / 4201 / 4500),先查一下再重跑
- 项目自带的集成测试会往 DATABASE_URL 指向的库里写数据,别拿正在用的库跑测试
- 网络:克隆 GitHub、npx 拉包、OpenAI 直连在国内都可能很慢,提前准备代理或镜像
想直接部署到服务器?
docker build -t openbot .
docker run -p 3001:3001 --env-file .env \
-e EMBEDDED_POSTGRES=on -v openbot-data:/var/lib/postgresql/data openbot单容器镜像把应用、API、Bot 用的浏览器都打进去了,EMBEDDED_POSTGRES=on 让容器自己带数据库,适合先跑起来看看。正式多实例部署参考官方 docs/deployment.md。
「先决定、再执行、后审计」——OpenBot 想解决的是 Agent 的可信问题,这周最值得自己动手跑一遍的开源项目。