Omnigent:用于编排AI代理的开源元框架

Omnigent 是一个开源元框架,将 Claude Code、Codex、Cursor 和自定义代理统一在单一编排层下,提供策略执行、沙箱隔离和实时协作功能。

什么是 Omnigent?

Omnigent 是一个面向 AI 代理的开源元框架。你可以把它想象成编程代理的万能遥控器:无需再为 Claude Code、Codex、Cursor、OpenCode、Hermes、Pi 以及你构建的任何自定义代理分别管理不同的 CLI、配置和凭据,Omnigent 提供了一个统一的编排层,将它们全部整合在一起。

核心思想简单而强大:无需重写任何内容即可切换或组合代理框架。你可以在 YAML 文件中定义代理,设置控制其行为的策略,并从任何设备(终端、浏览器、手机或原生 macOS 桌面应用)运行它们。会话会跟随你,子代理可以协作,所有内容保持同步。

为什么这很重要

如果你使用过多个 AI 编程代理,你一定体会过其中的痛苦。每个代理都有自己的 CLI、凭据管理和沙箱模型(或根本没有)。切换代理意味着上下文切换,组合代理则意味着用勉强能用的脚本拼凑起来。

Omnigent 通过提供一个通用的编排层解决了这些问题:

  • 在单个会话中统一多个代理。混合使用 Claude Code、Codex、Cursor 和自定义代理。让一个代理审查另一个代理的工作,或将任务拆分给擅长不同领域的代理。
  • 从任何设备工作。在终端开始会话,在浏览器中继续,在手机上接续。消息、子代理、终端和文件保持同步。
  • 执行策略和沙箱。创建策略,在风险操作前暂停等待批准、限制支出或限制代理可以使用的工具。策略可应用于服务器全局、每个代理或每个会话。
  • 支持任何模型。使用第一方 API 密钥、Claude/ChatGPT 订阅或任何兼容的网关(OpenRouter、LiteLLM、Ollama、vLLM、Azure)。

快速开始

安装

一条命令即可安装 Omnigent 及其所有依赖:

curl -fsSL https://raw.githubusercontent.com/omnigent-ai/omnigent/main/scripts/install_oss.sh | sh

或使用 uv 手动安装:

uv tool install omnigent
# 或:pip install "omnigent"

Homebrew 用户:

brew install omnigent-ai/tap/omnigent

启动你的第一个代理

omnigent

这会与你选择一个模型,并在终端中启动一个会话。同时还会在 http://localhost:6767 启动一个本地 Web UI,在浏览器或同一网络下的手机上显示相同的会话。

你也可以启动特定的代理运行时:

omnigent claude    # Claude Code
omnigent codex     # Codex
omnigent cursor    # Cursor
omnigent opencode  # OpenCode
omnigent hermes    # Hermes Agent (Nous Research)
omnigent pi        # Pi

示例代理

仓库中附带两个示例代理:

omnigent run examples/polly/
omnigent run examples/debby/

Polly 是一个多代理编程编排器,她自己不编写任何代码。她规划任务,将工作委托给并行 git 工作树中的编程子代理(Claude Code、Codex 或 Pi),然后将每个差异路由给与编写者不同供应商的审查者。

Debby 是一个双头头脑风暴伙伴——一个 Claude 和一个 GPT。每个问题都会发送给两个头,她会将两个答案并排展示。输入 /debate,两个头会互相批评,然后达成一致。

策略治理

策略决定代理可以做什么:运行 shell 命令、编辑文件、消耗令牌。它们检查每个操作,要么允许,要么阻止,要么暂停等待你的批准。

在 Web UI 中,打开会话的信息面板,浏览可用策略并切换开关。在聊天中,只需说:“添加一个策略,在运行 shell 命令前询问我。”代理会为你设置。

对于服务器全局默认值,在服务器配置或代理的 YAML 文件中定义:

policies:
  approve_shell:
    type: function
    handler: omnigent.policies.builtins.safety.ask_on_os_tools
  cap_calls:
    type: function
    handler: omnigent.policies.builtins.safety.max_tool_calls_per_session
    factory_params:
      limit: 50
  budget:
    type: function
    handler: omnigent.policies.builtins.cost.cost_budget
    factory_params:
      max_cost_usd: 5.00
      ask_thresholds_usd: [3.00]

策略在三个层级上叠加——服务器全局(管理员)、每个代理(开发者)和每个会话(你)——更严格的会话规则优先检查。

编写你自己的代理

一个代理就是一个简短的 YAML 文件:你的提示词、你的工具——本地 Python 函数、MCP 服务器以及主管可以委托的子代理。

name: my_agent
prompt: 你是一个乐于助人的数据分析师。

executor:
  harness: claude-sdk

tools:
  word_count:
    type: function
    callable: mypackage.mymodule.word_count
  docs:
    type: mcp
    url: https://example.com/mcp
  researcher:
    type: agent
    prompt: 搜索相关信息并总结。
    tools:
      word_count: inherit

使用以下命令运行:

omnigent run path/to/my_agent.yaml

部署

在具有稳定 URL 的服务器上运行 Omnigent,你的会话就可以从任何地方访问,包括你的手机。只需一条 docker compose up 命令,即可在任何你拥有的主机(VPS、家庭服务器)上运行服务器。Render 和 Railway 支持一键部署。Fly.io、Hugging Face Spaces、Modal、Cloudflare(无服务器,缩到零)和 Databricks Apps 也支持。

协作

Omnigent 支持多用户账户。使用以下命令启用身份验证:

OMNIGENT_AUTH_ENABLED=1 omnigent server start

通过 Web UI 共享实时会话,使用 omnigent attach <session_id> 与队友共同驾驶,或使用 omnigent run --fork <session_id> 分叉对话以独立继续。

结论

Omnigent 仍处于 alpha 阶段,但对于任何使用多个 AI 编程代理的人来说,它已经是一个强大的工具。通过提供统一的编排层,包含策略治理、沙箱和实时协作,它解决了开发者日常面临的真正痛点。开源性质意味着你可以扩展它、为其做出贡献,并塑造它的未来。

查看 GitHub 仓库 开始使用。

来源

omnigent-ai/omnigent: Omnigent 是一个开源 AI 代理框架和元框架:编排 Claude Code、Codex、Cursor、Pi 和自定义代理——无需重写即可切换框架,执行策略和沙箱,并从任何设备实时协作。