AI News HubLIVE
站内改写3 分钟阅读

Databricks 开源 Omnigent:一个跨 Claude Code、Codex 和 Pi 的元框架,用于组合、治理和共享 AI 代理

Databricks 发布了 Omnigent,一个开源的 AI 代理元框架,位于 Claude Code、Codex 和 Pi 等代理之上,提供统一的接口、状态化策略和实时会话共享。该项目采用 Apache 2.0 许可证,目前处于 alpha 阶段。

来源MarkTechPost作者: Asif Razzaq

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 setup

Omnigent 接受四种凭据类型:第一方 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 仓库、快速入门指南和技术文档。