如何驯服十几个编程代理并在 Omnigent 中让它们协同工作
如果你曾在终端中运行过 Claude Code、Codex 或 Cursor,你可能已经注意到一个问题。每个 CLI 代理都有自己独特的界面、参数和修改项目文件的习惯。一个在重构方面表现出色,另一个在编写测试时更准确,但让它们在单个任务上协同工作而无需大量手动切换过去一直是个挑战。
最近我发现了 Omnigent 仓库。这是一个开源的 Python 元框架,将不同的 AI 代理整合在一起。你可以获得共享的编排层、统一接口、安全策略,以及从笔记本电脑甚至手机连接会话的能力。
这个元框架能做什么
该项目的核心思想是将开发者与特定提供商和接口的细节隔离开来。你可以通过声明方式定义代理,并将它们组合成组,而无需重写代码以适配不同的底层 SDK。
以下是 Omnigent 在实际应用中的功能:
- 在单个会话中运行多个不同的代理。例如,一个负责规划,其他在独立的 git 分支上并行编写代码。
- 连接任何模型。Anthropic 或 OpenAI API 密钥都可以使用,常规的 Claude Pro 或 ChatGPT 订阅也行,或者通过 OpenRouter、Ollama 或 vLLM 等第三方网关连接。
- 跨设备持久化会话上下文。你可以在终端开始工作,通过桌面应用继续,或者通过 Web 界面从手机查看状态。
- 与同事共享会话。实时协作代理查看、副驾驶模式或将对话分叉到独立分支等功能都可以使用。
- 在沙箱中隔离执行。支持 Linux 上的 bubblewrap 和 macOS 上的 seatbelt 等本地机制,以及 Modal、E2B、Daytona 或 Kubernetes 等云环境。
启动和配置的工作原理
安装通过 uv 工具或安装脚本用一条命令完成:
curl -fsSL https://raw.githubusercontent.com/omnigent-ai/omnigent/main/scripts/install_oss.sh | sh
安装后,系统中会提供 omnigent CLI 工具(或简称 omni)。
如果运行 omnigent 命令,系统会提示导入环境中的 API 密钥或之前控制台客户端的授权信息。
接下来,你可以启动特定环境:
omnigent claude
omnigent codex
omnigent cursor
启动后,不仅会启动控制台进程,还会启动本地 Web 服务器,端口为 6767。如果你导航到 http://localhost:6767,会打开一个 Web 界面,镜像终端输出。
通过 YAML 声明式定义代理
最有趣的部分是能够用单个配置文件描述你自己的代理及其交互方式。以下是一个基本代理文件的示例:
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
仓库中包含多个现成的示例。Polly 示例(examples/polly/)尤其值得关注。
Polly 是一个多代理技术负责人。这个代理本身不编写代码。它分解任务并将子任务委托给其他代理(Claude Code、Codex 或 Pi),在隔离的 git worktree 分支中执行。当代码就绪后,Polly 将差异发送给来自不同供应商的代理进行审查。你会获得现成的拉取请求和跨代码审查,无需额外麻烦。
另一个示例是 Debby。她同时向两个模型(Claude 和 GPT)发送请求,并并排显示它们的响应。/debate 命令使模型相互批评对方的决策,直到达成共识。
安全性和预算限制
给代理完全访问终端和文件系统的权限可能很危险。Omnigent 通过安全策略来解决这个问题。
策略检查每个代理操作,可以阻止它,或在执行命令前请求你的确认。此外,可以在服务器级别、单个代理级别或当前会话级别设置规则:
policies:
approve_shell:
type: function
handler: omnigent.policies.builtins.safety.ask_on_os_tools
budget:
type: function
handler: omnigent.policies.builtins.cost.cost_budget
factory_params:
max_cost_usd: 5.00
ask_thresholds_usd: [3.00]
在这个示例中,代理在执行 shell 命令前会请求确认,并在达到 5 美元的限额时停止。
这个项目适合谁
Omnigent 非常适合在日常开发中积极实验 AI 代理的团队。如果你缺乏对费用的控制,想在云沙箱中运行代理,或需要一个与同事共享会话的便捷方式,这个项目会满足这些需求。
该项目处于 alpha 阶段,但已经在 GitHub 上获得了 8.7k 星标,并且社区活跃。要开始使用,只需安装 CLI 并运行一个现成的示例。
相关项目