一天一个开源项目

开源项目第180期:Omnigent — Databricks 出品的 AI Agent 元编排层,让 Claude Code、Codex、Cursor 统一管控

Databricks 联合创始人 Matei Zaharia 主导开源的 AI coding agent 元编排框架。坐在 Claude Code、Codex、Cursor 等现有工具之上,提供策略治理(token 预算、工具访问限制)、云沙箱(Modal/E2B/Daytona/Kubernetes)、实时协作(会话共享/共驾/分叉)、MLflow 可观测性,以及 YAML 定义的多 Agent 编排。类比:Kubernetes 之于服务器,Omnigent 之于 AI Agent。8.1k Stars,Apache 2.0,Alpha 阶段。

·约 9 分钟阅读·AI Tools

引言

"你同时用着 Claude Code 和 Codex,一个擅长规划,另一个跑得快。但你只能在两个工具之间手动复制粘贴输出。"

这是「每日一个开源项目」系列的第 180 篇。今天的项目是 Omnigent —— Databricks 联合创始人 Matei Zaharia 主导开源的 AI agent 元编排框架,2026 年 6 月发布,8,100 颗 Star。

Omnigent 的定位很明确:它不是又一个 AI coding agent,而是坐在现有 agent 之上的那一层——元编排层(meta-harness)。就像 Kubernetes 不替代服务器,只是在服务器之上提供编排、策略、可观测性,Omnigent 让 Claude Code、Codex、Cursor、Pi 等工具成为可统一管理的组件,而不是一堆各自为政的独立工具。

如果你用过多个 AI coding 工具,这个问题你大概遇到过:每个工具有自己的界面、各自的 API key 管理、不同的上下文和会话,在团队里还要各自配置权限和预算。Omnigent 解决的是这整个层面的问题。

8,100 颗 Star,1,200 个 Fork,Apache 2.0,Alpha 阶段。

你会学到什么

  • 什么是"元编排层",Omnigent 和 agent 框架的关系
  • 策略治理(Policy Governance):三层策略如何控制 token 预算和工具访问
  • 云沙箱:bwrap/seatbelt 本地隔离 + Modal/E2B/Daytona 云执行
  • 多 Agent 编排:YAML 定义子 Agent、并行 worktree、跨厂商 reviewer
  • 实时协作:会话共享、共驾、分叉
  • MLflow Tracing 集成:跨 harness 的统一可观测性

前提知识

  • 使用过 Claude Code、Codex 或 Cursor 中的至少一个
  • 了解 AI coding agent 的基本概念(上下文、工具调用、system prompt)
  • 熟悉 YAML 配置格式

问题背景:碎片化的 Agent 生态

2026 年的 AI coding 工具市场:Claude Code 有 claude-sdk 和 claude-native 两种模式,Codex 有自己的 CLI,Cursor 集成在 IDE 里,OpenCode、Hermes、Pi 各有差异。每个工具都有能力,但每个工具也都是孤岛。

Matei Zaharia(Apache Spark 的创始人,Databricks 联合创始人)在带领 Databricks 5,000+ 人工程团队推进 AI agent 落地时,直接撞上了这个问题:

  • 不同 agent 有不同的能力,一个任务可能需要多个 agent 协作
  • 每个 agent 的输出要手动转移到下一个工具
  • 团队级别的策略管控无从下手(谁能访问哪些工具?token 预算多少?)
  • 没有统一的可观测性,不知道哪个 agent 花了多少钱、做了什么决策

Omnigent 从实际部署经验中提炼出来,解决的是同一套问题。


核心架构:元编排层

Omnigent 的架构分三层:

┌─────────────────────────────────────────┐
│           Omnigent Server               │
│   策略治理 / 协作 / 可观测性 / API       │
├─────────────────────────────────────────┤
│           Omnigent Runner               │
│   沙箱 / 统一 API / 会话管理            │
├──────────┬──────────┬───────────────────┤
│ claude-sdk│  codex  │  cursor / pi / …  │
│ (harness) │(harness) │   (harnesses)    │
└──────────┴──────────┴───────────────────┘
  • Harness(执行层):各个现有 agent 工具——claude-sdk、claude-native、codex、codex-native、cursor、hermes、opencode、pi、openai-agents
  • Runner(运行时层):把任意 harness 包装进一个沙箱化的会话,对外提供统一 API
  • Server(服务层):策略执行、会话共享、跨设备同步

Omnigent 的论文类比:Omnigent 之于 AI agent,如同 Kubernetes 之于服务器。Kubernetes 不替代服务器,只是在上面加了编排、弹性、策略;Omnigent 不替代 Claude Code,只是在上面加了统一管控。


策略治理(Policy Governance)

策略是 Omnigent 的核心差异点之一,支持三级叠加:

服务器级别(所有 agent 共享)

Agent 级别(特定 agent 定义)

会话级别(单次任务动态调整)

成本控制

# 在 agent 定义里设置 token 预算
policies:
  cost:
    max_tokens_per_session: 50000
    max_tokens_per_turn: 5000
    alert_at: 40000   # 达到 40k 时提醒
    pause_at: 50000   # 达到 50k 时暂停

Agent 超出预算后自动暂停,等待人工确认继续还是停止。这解决了 AI agent 在复杂任务里悄悄消耗大量 token 却没有预警的问题。

工具访问控制

策略可以做有状态的条件限制,不只是简单的白名单/黑名单:

policies:
  tools:
    # 下载 npm 包之后,要求人工批准才能 git push
    - condition: "after:tool:npm_install"
      require_approval: ["git_push"]
    
    # 永远不允许 agent 直接读取 .env 文件
    - block: ["read_file:.env*"]
    
    # agent 可以调用 API,但凭据通过代理注入,不让 agent 直接看见
    - network:
        egress_proxy: "https://my-credential-proxy"
        direct_credential_access: false

"下载 npm 包之后要求批准 git push"这种有状态规则,在以往的 agent 工具里很难做到。


云沙箱

Omnigent 支持两种沙箱方式:

本地 OS 沙箱

  • Linux: bwrap(Bubblewrap)命名空间隔离
  • macOS: seatbelt 沙箱
  • Windows: Windows Job Objects(支持有限,无 PTY/tmux wrapper)

云执行环境

不需要在本机跑 agent,可以接入云沙箱:

提供商适用场景
Modal无状态函数型任务
E2B代码执行沙箱
Daytona开发环境
Kubernetes企业私有云
CoreWeaveGPU 密集型任务
Databricks数据分析任务

多 Agent 编排:YAML 定义

Omnigent 的 agent 用 YAML 定义,一个 agent 可以把其他 agent 作为工具来调用:

# 基础 agent 定义
name: my_coder
prompt: |
  You are an expert Python developer.
  Focus on correctness and test coverage.
executor:
  harness: claude-sdk
tools:
  run_tests:
    type: function
    callable: mypackage.testing.run_pytest
  search_docs:
    type: mcp
    url: https://docs-mcp.example.com

多 Agent 模式:Polly

Omnigent 内置了一个名为 Polly 的示例——一个多 Agent 编排器,展示了并行 worktree 模式:

name: polly
prompt: |
  You are a supervisor coordinating multiple coding agents.
  Delegate coding tasks to sub-agents, then route diffs to reviewers.
tools:
  coder_a:
    type: agent
    harness: claude-sdk
    prompt: "Implement the feature in a git worktree"
  coder_b:
    type: agent
    harness: codex
    prompt: "Implement the same feature independently"
  reviewer_anthropic:
    type: agent
    harness: claude-sdk
    prompt: "Review the diff for correctness"
  reviewer_openai:
    type: agent
    harness: codex
    prompt: "Review the diff for security issues"

这个模式:

  1. 两个不同 harness 的 coder 在独立的 git worktree 里并行实现同一功能
  2. 完成后把 diff 路由给两个不同厂商的 reviewer
  3. supervisor 综合评审意见,做出最终决策

双头 Agent:Debby

另一个示例是 Debby —— 同时跑 Claude 和 GPT,内置 /debate 模式:

用户提问
    → Claude 给出答案 A
    → GPT 给出答案 B
    → /debate 触发:两个模型互相评价对方的答案
    → Debby 综合两边的论点,给出最终回答

实时协作

Omnigent 的协作功能把 agent 会话变成多人可见的工作空间:

会话共享

# 生成一个可分享的 URL
omnigent share <session_id>
# → https://omnigent.ai/s/abc123

队友打开这个 URL,可以实时看到 agent 的输出,可以插入命令,可以接管会话。

会话分叉

# 从一个已有会话分叉,保留上下文但独立发展
omnigent run --fork <session_id>

这个功能在 code review 场景里特别有用:主 agent 完成了一个实现,分叉出两个会话分别用不同的 reviewer agent 评审,最后把结论合并回主会话。

身份认证

支持 OIDC 登录:Google / GitHub / Okta / Microsoft
邀请制:单次使用的邀请链接

MLflow Tracing 集成

Omnigent 与 MLflow Tracing 的集成提供跨 harness 的统一可观测性。配置只需几行:

uv tool install omnigent mlflow
 
export MLFLOW_TRACKING_URI="http://your-mlflow-server:5000"
export OMNIGENT_TELEMETRY_ENABLED="true"
 
omnigent run

每次 agent 执行,MLflow 自动记录:

  • Agent 的每一轮对话(prompt + response)
  • 工具调用及参数、结果、耗时
  • 每轮的 token 消耗
  • 会话元数据(模型名、agent 名、harness 类型)

实际用途

  • 模型对比:同一任务分别用 Claude 和 GPT,对比成本和质量
  • A/B 测试:评估不同 MCP server 提供商的性价比
  • 团队洞察:哪个 harness 擅长规划?哪类请求最慢?feature 和 bug 各花了多少时间?

安装和快速上手

# 安装(推荐用 uv)
uv tool install omnigent
 
# 或者用 pip
pip install omnigent
 
# 启动(选择模型后自动打开 localhost:6767)
omnigent
 
# 简写别名
omni
 
# 升级
omni upgrade

启动后浏览器自动打开 http://localhost:6767,提供图形界面配置 agent 和查看会话。也可以直接在终端里交互。

部署到服务器

# Docker
docker run -p 6767:6767 omnigentai/omnigent
 
# 支持的托管平台:Render, Railway, Fly.io, Cloudflare

部署到服务器后,团队成员通过 OIDC 登录,共享同一个 Omnigent 实例,所有策略和协作功能统一在服务端管理。


项目地址与资源


总结

Omnigent 的切入点不是"造一个更好的 AI coding agent",而是"当你已经有多个 agent,怎么把它们变成一个系统"。

从 Databricks 在 5,000 人工程团队里落地 AI agent 的实际经验来看,这个问题是真实的:工具碎片化、策略无从统一、团队协作没有基础设施、可观测性几乎空白。Omnigent 把这些问题一次打包处理——元编排层 + 策略治理 + 沙箱 + 协作 + 可观测性,构成一个完整的 agent 运营体系。

"元编排层"这个概念本身值得记住。随着 AI agent 工具越来越多、越来越专业化,需要这一层的场景只会增加,不会减少。今天是 Claude Code + Codex,明天可能是五个更专业化的工具,而 Omnigent 要解决的那些问题——策略、成本、协作、可观测性——在每种组合里都会存在。


探索 PrimeSkills —— 精选 AI Agent 与技能的市场,每一个都经过真实企业工作流验证,去掉浮夸,留下真正有用的。

欢迎访问我的个人主页,发现更多有价值的见解和有趣的产品。