j0x7c4/OpenKimo

GitHub: j0x7c4/OpenKimo

一个容器化的服务端 AI Agent 平台,通过 Docker 沙盒为每个会话提供完全隔离的代码执行环境,支持多用户权限管理和多 LLM 切换,一键部署即可使用。

Stars: 4 | Forks: 1

OpenKimo

一个 Docker。零烦恼。

一个命令即可运行的容器化服务端 Agent 平台。
完全隔离的会话。支持多 LLM。

🚀 一键部署  |  🛡️ 默认安全  |  🔌 支持 Multi-LLM

License Docker Compose Python React GitHub Stars Release

## 什么是 OpenKimo? OpenKimo 是一个**容器化的服务端 Agent 平台**。你通过 Web 浏览器操作 Agent,而所有代码执行任务都在沙盒化的 Docker 容器中运行——主机上不会执行任何内容。 - **一条命令**部署整个技术栈(`docker-compose up -d`)。 - **一个浏览器标签页**用于创建会话、与 Agent 聊天以及审查输出。 - **零主机依赖**——机器只需安装 Docker Engine。 ``` flowchart LR U[👤 User Browser] -->|WebSocket| G[kimi-gateway] G -->|spawn| S1[🛡️ Session Sandbox 1] G -->|spawn| S2[🛡️ Session Sandbox 2] S1 -->|results| U S2 -->|results| U ``` ## 演示 - 🎬 [快速入门演示] (即将推出) - 🔒 [沙盒安全演示] (即将推出) - 🔌 [多 LLM 切换演示] (即将推出) ## 快速入门 ### 前置条件 - [Docker](https://docs.docker.com/get-docker/) - [Docker Compose](https://docs.docker.com/compose/install/) ### 选项 A — 无需 Git Clone(最快) ``` # 下载 config 文件 curl -O https://raw.githubusercontent.com/j0x7c4/OpenKimo/main/docker-compose.yml curl -O https://raw.githubusercontent.com/j0x7c4/OpenKimo/main/.env.example cp .env.example .env # 编辑 .env — 至少设置一个 LLM API key # Pull 镜像并启动 docker compose up -d ``` ### 选项 B — Clone 并通过向导部署 ``` git clone --recurse-submodules git@github.com:j0x7c4/OpenKimo.git cd OpenKimo ./scripts/deploy.sh ``` 向导会自动配置你的 `.env` 并拉取预构建的镜像。 ### 选项 C — 本地构建(开发者) ``` git clone --recurse-submodules git@github.com:j0x7c4/OpenKimo.git cd OpenKimo cp .env.example .env # 编辑 .env 并至少设置一个 LLM API key docker-compose build docker-compose up -d ``` ### 选项 D — 统一启动器(Docker 或本地) `scripts/start.sh` 会自动检测 Docker,如果不可用则回退至直接在主机上运行。这在 Docker 不可用、macOS 上 Docker Desktop 开销过高,或用于快速本地开发迭代时非常有用。 ``` git clone --recurse-submodules git@github.com:j0x7c4/OpenKimo.git cd OpenKimo cp .env.example .env # 编辑 .env 并至少设置一个 LLM API key ./scripts/start.sh # auto-detect: docker if available, else local ./scripts/start.sh --mode=docker # force docker compose ./scripts/start.sh --mode=local # force local mode (no Docker) ./scripts/start.sh --mode=local --port=8080 --host=127.0.0.1 ``` 本地模式需要安装了 Python 3.10+ 和 `kimi-cli`(`pip install -e ./kimi-cli`);它会禁用每个会话的沙盒、浏览器和 Jupyter,因此仅用于开发。有关前置条件和限制,请参阅 [`docs/LOCAL-MODE.md`](docs/LOCAL-MODE.md)。 ### 访问 Web UI 在浏览器中打开 http://localhost:5494。 #### 默认管理员账户 | 字段 | 值 | |----------|-----------| | 用户名 | `admin` | | 密码 | `admin123` | 如果同时启用了 Bearer token 认证,请将你的 token 附加到 URL 中: ``` http://localhost:5494/?token= ``` ## 适用人群? - **独立开发者**,希望能在几分钟而非几小时内部署好 AI Agent 后端。 - **小团队**,需要共享的 Agent 基础设施,而无需在每台机器上管理 Python/Node.js 运行时。 - **对安全敏感的环境**,代码绝对不能在主机文件系统上运行。 - **进行 OEM 或私有化部署的团队**,需要使用自己的品牌对平台进行白标处理。 - **Kimi / Moonshot 用户**,希望与其现有工作流进行原生的容器化集成。 ## 功能特性 ### 🚀 一键部署 `docker-compose up -d` 即可启动整个平台。无需安装运行时,没有依赖地狱。 ### 🛡️ 默认安全 每个会话都**强制**在各自独立的 Docker 容器中运行——这不是可选插件,也不是配置开关。这就是它的架构。 ### 🌐 原生 Web 单个浏览器标签页即可处理会话创建、聊天、文件审查和管理。无需 WhatsApp 机器人,无需 Telegram 频道,无需安装桌面应用。 ### 🔌 支持 Multi-LLM 通过单个环境变量即可在 Kimi (Moonshot)、OpenAI 和 Anthropic (Claude) 之间切换。 ### 📊 资源限制 通过 cgroup 为每个容器设定 CPU、内存、磁盘和 PID 上限——即使在繁重的 Agent 工作负载下,你的主机也能得到保护。 ### 🧪 内置工具 开箱即用的 Jupyter Kernel + Headless Chromium + Shell 执行。无需额外安装插件。 ### 👥 多用户与访问控制 内置用户管理和基于角色的访问控制。每个用户只能看到自己的会话。提供管理面板用于用户生命周期管理。 ### 🎨 白标品牌定制 直接从管理面板定制 logo、品牌名称、页面标题和 favicon——无需修改代码或重新构建。非常适合 OEM 和私有化部署。 ### 🔌 可扩展的 UI 插件 通过事件驱动的插件系统,将自定义 React 组件注入到 Agent 生命周期中。可视化思维过程、子 Agent 集群或任何自定义覆盖层,无需触及核心代码。 ## 架构 OpenKimo 采用双容器架构:一个用于代理流量和编排沙盒的**网关(gateway)**,以及一个按会话克隆的**沙盒(sandbox)**模板。 - **kimi-gateway** — FastAPI Web 服务器,WebSocket 会话代理,容器编排。 - **会话沙盒** — 每个会话对应一个 Docker 容器。运行 Agent worker、Jupyter kernel 和 headless Chromium 浏览器。 - **主机** — 只需要 Docker Engine。不需要 Python、Node.js 或其他运行时。 ``` flowchart TB subgraph Host["Host Machine (Docker Engine only)"] direction TB G["kimi-gateway
(FastAPI + WebSocket Proxy)"] D["Docker Daemon"] end subgraph Sandbox1["Session Sandbox 1"] direction TB A1["Agent Worker"] J1["Jupyter Kernel"] C1["Headless Chromium"] end subgraph Sandbox2["Session Sandbox 2"] direction TB A2["Agent Worker"] J2["Jupyter Kernel"] C2["Headless Chromium"] end B["👤 Browser (Web UI)"] B <-->|WebSocket| G G <-->|spawn / stop| D D -->|creates| Sandbox1 D -->|creates| Sandbox2 G <-->|proxy| A1 G <-->|proxy| A2 ``` ## 配置 所有配置均通过 `.env` 中的环境变量完成: | 变量 | 必填 | 描述 | |----------|----------|-------------| | `KIMI_API_KEY` | 是* | Kimi / Moonshot API key | | `OPENAI_API_KEY` | 是* | OpenAI API key | | `ANTHROPIC_API_KEY` | 是* | Anthropic API key | | `LLM_PROVIDER` | 否 | 默认提供商(`kimi` / `openai` / `anthropic`) | | `KIMI_WEB_SESSION_TOKEN` | 否 | Web UI 认证的 Bearer token | | `KIMI_WEB_PORT` | 否 | Web 服务器端口(默认:`5494`) | | `SANDBOX_CPU_LIMIT` | 否 | 每次会话的 CPU 限制(默认:`2`) | | `SANDBOX_MEMORY_LIMIT` | 否 | 每次会话的内存限制(默认:`4g`) | \* 至少需要一个 API key。 完整列表请参阅 [`.env.example`](.env.example)。 ## OpenKimo 与其他项目的对比 **OpenKimo 并不打算成为你的个人聊天伴侣。** 如果你想要一个存在于 WhatsApp 或 Telegram 中的 AI,请查看该领域的其他项目。 **如果你符合以下情况,OpenKimo 就是为你准备的:** - 你需要一个 7x24 小时运行并通过浏览器访问的**服务端 Agent**。 - 你希望**零主机污染**——每次代码执行都在一次性的容器内发生。 - 你偏爱**基础设施即代码**——使用 Docker Compose 进行部署、扩容和升级。 - 你使用 **Kimi / Moonshot** 并希望获得原生的容器化集成,而不是包装脚本。 ## 贡献 我们欢迎各种贡献!请查阅 [CONTRIBUTING.md](CONTRIBUTING.md) 了解指南。 ## 许可证 本项目基于 [Apache License 2.0](LICENSE) 授权。

如果 OpenKimo 为你节省了时间,请考虑在 GitHub 上给我们点个 ⭐!

标签:AI代码执行, AI智能体平台, Apache 2.0, Docker Compose, Docker沙箱, Google搜索, LLM代理, NIDS, Python, React, Syscalls, WebSocket, 会话隔离, 依赖分析, 多LLM支持, 多用户RBAC, 大语言模型应用, 安全隔离, 容器化, 并发沙箱, 开源, 无后门, 服务端代理平台, 版权保护, 特权提升, 白标品牌定制, 私有化部署, 网关代理, 自动化部署, 请求拦截, 逆向工具, 防御规避, 隔离环境, 零信任执行