源码系统概览
文章正文
Omnigent 是一个开源的 AI 智能体元框架(meta-harness),它不直接替代 Claude Code、Codex、Cursor、Pi 这些编码智能体,而是站在它们之上做统一编排。
你可以在同一个会话里混用多家 harness,切换或组合时无需重写任何配置。
项目用 Python 实现后端,配套 React 网页端与 macOS 原生桌面端,会话可在终端、浏览器、手机之间无缝接力,并内置策略治理与系统级沙箱。
下面基于仓库源码梳理它的技术栈、功能边界与安全取向,并提供部署与下载说明。
源码简介
Omnigent 的仓库是一个 pnpm 工作区与 Python 包共存的 Monorepo:后端以 Python 为主(约 1750 个 .py 文件),网页端基于 Vite + React + TypeScript + Tailwind v4 + shadcn/ui 构建(约 385 个 TypeScript 文件),另含 Swift 与 Kotlin 的移动端工程、Rust 写的辅助工具,以及 Electron 桌面壳。索引显示代码节点超过 5 万、调用边超过 33 万,模块划分清晰,核心包包括 server(协调层)、runner(执行层)、policies(策略治理)、host(沙箱宿主)与 repl(终端封装)。
许可证为 Apache-2.0。
它的核心定位是“元执行层”:Claude Code、Codex、Cursor、OpenCode、Hermes、Pi,加上你自己用 YAML 定义的自定义智能体,都能接入同一套编排、沙箱与多端同步能力。
仓库 README 明确将其描述为“open-source meta-harness for all your AI agents”。
适用场景
同时订阅了多个编码智能体、却被迫在工具间反复重建上下文的重度用户,是最直接的受益者——现在可以全都要,并在同一个会话里按需切换 harness。
需要多智能体分工协作的团队也很合适:可以让一个智能体审阅另一个智能体的产出,或按各自擅长领域拆分同一任务。
团队协作场景下,会话可分享给同事实时围观、协同驾驶,或 fork 一份独立继续推进。对安全与成本敏感的团队负责人,则能用内置 policies 直接拿到审批门禁、花销上限与工具白名单。
| 维度 | 本套源码 | 同类通用方案 |
|---|---|---|
| 技术栈 | 后端为 Python,官方安装基于 uv 或 pip(uv tool install omnigent / pip in | 依具体方案选型,需自行搭建与维护 |
| 部署方式 | 一键安装:curl -fsSL https://raw.githubusercontent.com/omnigent-a | 多托管于第三方平台或订阅云服务 |
| 功能侧重 | 统一编排:用 YAML 定义自定义智能体,与各家 harness 纳入同一层调度,切换组合不重写代码,模型来源涵盖第一方 | 功能通用,定制深度有限 |
| 数据归属 | 数据自持,部署在自有服务器,不出站 | 数据通常留存于服务商侧 |
| 成本模式 | 获取后自主部署,无持续授权费用 | 通常按订阅或调用量计费 |
技术栈与运行环境
后端为 Python,官方安装基于 uv 或 pip(uv tool install omnigent / pip install “omnigent”),并可通过 brew 安装 macOS 原生封装。网页端用 Vite 开发,默认服务端端口 6767,开发代理端口 5173,与 /v1/agents、/v1/sessions 等接口通信,编辑器基于 Monaco。
数据层采用 SQLAlchemy 存储抽象,默认 SQLite,也可接 Postgres(Docker 部署)、Cloudflare D1、Databricks Lakebase;产物以 S3ArtifactStore 形式落盘(R2、UC Volumes 等)。多用户与单点登录通过内置的 header-proxy 或原生 OIDC 实现,无需独立 auth 代理容器。云沙箱支持 Modal、Daytona、Islo、E2B、CoreWeave、Kubernetes、OpenShell、BoxLite、Databricks,CLI 或 server 按会话托管均可。
功能亮点
统一编排:用 YAML 定义自定义智能体,与各家 harness 纳入同一层调度,切换组合不重写代码,模型来源涵盖第一方 API Key、Claude/ChatGPT 订阅与任意兼容网关。
多端接力:终端、浏览器、手机、macOS 原生桌面 App 四端通吃,消息、子智能体、终端与文件全程同步;会话可分享、可协同驾驶、可 fork。
策略治理是一等公民:policies 系统作用于 server / 单个 agent / 单个对话三级粒度,支持危险操作前人工审批、花销封顶、工具权限收敛。Linux 下原生终端封装与 pi harness 会把每个智能体终端包进 bubblewrap(bwrap)操作系统级沙箱,且这层隔离是强制的。
可集成的 SDK:omnigent_client 是无依赖的纯 HTTP/SSE 无头客户端,适合脚本、Slack 机器人、前端;omnigent_ui_sdk 在其之上提供 Rich + prompt_toolkit 的终端 UI 层。
技术架构与部署指南
安装与部署提示
一键安装:curl -fsSL https://raw.githubusercontent.com/omnigent-ai/omnigent/main/scripts/install_oss.sh | sh,可加 –extra 选装 modal、e2b、databricks、bedrock、vertex、kubernetes 等集成。
本地起原生终端封装:omnigent <harness>(claude / codex / cursor / hermes / kiro / pi,需 tmux);起服务端用 omnigent server,自动拉起各家 CLI 需 Node.js 22 LTS+;omnigent run 可一键装好 coding harness;omnigent sandbox create / connect 用于纳管云沙箱。环境前置:uv 与 git 必需,Web UI 需 pnpm,原生封装需 tmux,Linux 额外需 bubblewrap。Docker 部署见 deploy/docker(Postgres + 服务镜像,端口 8000),Render 提供一键按钮。
截图与演示说明
下面这张官方桌面端截图展示了新建会话的界面,以及左侧按项目分组的置顶会话列表,直观体现了多端会话的统一管理:

服务端侧,omnigent server 是协调枢纽,你的代码与模型密钥留在注册为 host 的机器上,server 只负责会话与调度;网页端通过 /v1 接口与 server 通信,移动端为同套界面做了响应式适配。
常见问题
问:Omnigent 会取代我现有的编码智能体吗?答:不会。它是编排层,Claude Code、Codex、Cursor 等仍在各自熟悉的形态下运行,只是被统一调度与共享上下文。
问:没有云账号能跑吗?答:能。本机即可运行原生终端封装与服务端,bwrap 沙箱在 Linux 上强制启用;云沙箱是可选增强,按会话托管可让任务在云端执行。
问:多用户怎么鉴权?答:服务端内置 header-proxy 与原生 OIDC 两种模式,也支持 accounts 多用户,无需单独的认证代理容器,部署时自行设置 OMNIGENT_OIDC_COOKIE_SECRET 等密钥。
安全风险提示
项目安全取向偏保守:Linux 下 bwrap 系统级沙箱为强制隔离,policies 可在危险操作前暂停审批、对花销封顶、收敛工具权限,密钥读取走 GitHubAppTokenProvider 等专用提供方,未见 eval / base64 混淆 / shell_exec 等后门特征。
需要注意:deploy 目录的部分 README 含示例密钥占位(被静态扫描标记为 hardcoded-credential),自部署时务必替换为真实凭据且不要提交到仓库。云沙箱集成(Modal / Daytona / 等)需要对应 API Key,密钥存于 server 环境,应通过 policies 收敛其权限;多用户 OIDC 模式需妥善保管 cookie 密钥。此外仓库状态为 alpha,接口与行为仍可能变化,不建议在未充分测试前用于关键生产。
下载说明
本站提供 Omnigent 仓库源码打包下载,便于离线研读与自行部署。下载后按上文安装与部署提示即可本地运行,建议先在 Linux 或 macOS 开发机验证 bwrap / tmux 等前置依赖。
源码免费下载
GitHub项目开源地址:https://github.com/omnigent-ai/omnigent