Databricks 开源 Omnigent:一个跨 Claude Code、Codex 和 Pi 的元框架,用于组合、治理和共享 AI 代理
Databricks 发布了 Omnigent,一个开源的 AI 代理元框架,位于 Claude Code、Codex 和 Pi 等代理之上,提供统一的接口、状态化策略和实时会话共享。该项目采用 Apache 2.0 许可证,目前处于 alpha 阶段。
Databricks 近日开源了 Omnigent,一个针对 AI 代理的“元框架”(meta-harness)。该项目采用 Apache 2.0 许可证,由 Databricks AI 团队与 Neon 共同构建。
在 AI 代理的术语中,“框架”(harness)是围绕模型的外壳,将其转化为代理。Claude Code、Codex 和 Pi 就是这样的框架。而 Omnigent 位于这些框架之上的一层,将每个框架视为更大系统中的可互换组件。
许多工程师经常同时操作四到五个代理,在编码代理、搜索工具、文档和 Slack 之间复制粘贴文本。每个框架只理解自己的会话。Omnigent 增加了一个共享层,集成了组合、控制和协作功能。
Omnigent 是什么
Omnigent 是命令行代理和代理 SDK 之上的通用接口。它封装了像 Claude Code、Codex 和 Pi 这样的终端编码代理,也支持 OpenAI Agents 和 Claude Agents SDK 等 SDK。
其设计基于一个观察:无论框架内部如何调用模型,用户面对的都是相同的界面——消息和文件输入,文本流和工具调用输出。Omnigent 标准化了这一接口,使框架可以互换。
用户自行提供模型和基础设施,Omnigent 在其上运行代理。它可以协调多个代理作为可互换的工作者,在一个编排器下工作。
Omnigent 的工作原理
架构分为两部分:一个“运行器”(runner)将任何代理封装在沙箱化会话中,提供统一的 API;一个“服务器”(server)提供策略和共享功能。服务器通过终端、应用程序和 Web API 公开每个会话。
一条命令即可在终端启动会话,同时在 localhost:6767 启动本地 Web UI。同一会话可在浏览器或手机上访问。消息、子代理、终端和文件保持同步。
CLI 安装后有两个名称:omnigent 和 omni,两者可互换。首次运行时会检测环境中已有的模型凭据。
三大能力:组合、控制与协作
Databricks 团队将 Omnigent 围绕三个能力构建:
- 组合(Composition):无需重写代码即可组合不同的模型、框架和技术。只需一行代码更改即可在 Claude Code、Codex、Pi 和自定义代理之间切换。
- 控制(Control):状态化上下文策略,跟踪代理操作并在元框架层执行限制,而非通过提示。例如,代理每花费 $100 即暂停,或安装新 npm 包后需人工批准才能 git push。
- 协作(Collaboration):通过 URL 共享实时代理会话。团队成员可以实时观察代理工作、与其聊天、评论文件、协同驱动会话或分叉对话。
一个名为 Omnibox 的 OS 沙箱支持这些能力。它可以锁定系统访问,转换网络请求。例如,保持 GitHub 令牌对代理隐藏,仅在出口代理的批准请求中注入。
用例与示例
项目自带两个示例代理:
- Polly:一个多代理编码编排器,本身不写代码。它规划任务,然后将工作委派给并行 git worktrees 中的编码子代理。每个差异由不同供应商的审查者审查,然后合并结果。
- Debby:一个双头头脑风暴伙伴,一头是 Claude,另一头是 GPT。每个问题同时发给两个模型,答案并排显示。输入 /debate 则两个头相互批评后趋同。
其他实用模式类似:一个前沿顾问模型可以指导更便宜的开源工作器;一个主代理可以编排并行子代理;不同的 LLM 可以在一个流程中处理规划、搜索和代码生成。
交互式概念演示
Marktechpost 团队创建了一个交互式演示,展示 Omnigent 的元框架工作流。用户为 Polly 编排器选择任务,它规划并委派给三个子代理(Claude Code、Codex 和 Pi)并行运行并实时流式输出步骤。会话成本计费器随着工作增加,两个策略开关展示控制层:成本预算在 $3.00 暂停请求批准,上下文策略在 npm install 后阻止 git push 直到允许。子代理完成后,每个差异由不同供应商交叉审查,然后标记为可合并。终端、Web 和移动标签显示同一会话跨界面同步。这是一个说明性模拟,不调用真实模型。
与单一框架的对比
| 能力 | 单一框架(例如 Claude Code) | Omnigent 元框架 | |------|-----------------------------|-----------------| | 代理和模型 | 单一框架;内部交换模型 | Claude Code、Codex、Pi、SDK、自定义——可互换 | | 切换成本 | 每工具重新集成 | 一行更改 | | 界面 | 终端或工具自有 UI | 终端、Web、桌面、移动、API——同一会话 | | 治理 | 允许/拒绝列表,通常基于提示 | 状态化上下文策略,在框架层 | | 成本控制 | 手动跟踪 | 预算策略在设定阈值暂停 | | 协作 | 工具间复制粘贴 | 实时共享会话、协同驱动、分叉 | | 沙箱 | 取决于工具 | OS 沙箱加出口代理秘密注入 | | 云执行 | 本地机器 | 可部署的 Modal 或 Daytona 沙箱 | | 许可证 | 各不相同 | Apache 2.0,开源 |
快速开始
Omnigent 需要 Python 3.12+、Node.js 22 LTS 和 tmux。一键安装命令:
curl -fsSL https://omnigent.ai/install.sh | sh然后设置模型凭据:
omni setupOmnigent 接受四种凭据类型:第一方 API 密钥和 Claude 或 ChatGPT 订阅,OpenAI 或 Anthropic 兼容网关,以及 Databricks 工作区。/model 命令可在会话中切换模型。
自定义代理是一个简短的 YAML 文件,声明提示、框架、工具和可选的子代理。
name: my_agent
prompt: You are a helpful data analyst.
executor:
harness: claude-sdk # or: codex, codex-native, claude-native, openai-agents, pi
tools:
researcher:
type: agent
prompt: Search for relevant information and summarize it.运行命令:
omnigent run path/to/my_agent.yaml策略也使用 YAML。内置策略示例:
policies:
budget:
type: function
handler: omnigent.policies.builtins.cost.cost_budget
factory_params:
max_cost_usd: 5.00
ask_thresholds_usd: [3.00]策略在三个级别堆叠:服务器范围、代理级别和会话级别。更严格的会话规则优先。
优势与局限
优势:
- 统一接口管理 Claude Code、Codex、Pi 和自定义代理
- 会话可在终端、Web、桌面和手机访问
- 状态化策略,而不仅仅是允许/拒绝
- 实时会话共享替代工具间复制粘贴
- 云沙箱(Modal 和 Daytona)无需本地笔记本电脑
- Apache 2.0 许可证,支持 Fly.io、Railway、Render 等
局限:
- 项目处于 alpha 阶段,早期生命周期
- 需要 Python、Node.js 和 tmux 设置
- 用户自带模型、基础设施和费用
- 路线图项目如 Omnigent Server MCP 尚未发布
- 离线团队成员需要始终在线的部署服务器才能加入
更多信息请访问 GitHub 仓库、快速入门指南和技术文档。