Omnigent架构深度解析:SDK与Native双轨Harness如何实现一套编排层驱动10+编码智能体

Omnigent架构深度解析:SDK与Native双轨Harness如何实现一套编排层驱动10+编码智能体 Omnigent架构深度解析SDK与Native双轨Harness如何实现一套编排层驱动10编码智能体【免费下载链接】omnigentOmnigent is an open-source AI agent framework and meta-harness: orchestrate Claude Code, Codex, Cursor, Pi, and custom agents — swap harnesses without rewriting, enforce policies and sandboxing, and collaborate in real time from any device.项目地址: https://gitcode.com/gh_mirrors/om/omnigentOmnigent 是一个开源的AI 智能体编排框架meta-harness元框架它提供一套统一的编排层来同时驾驭 Claude Code、Codex、Cursor、OpenCode、Hermes、Pi 等 10 编码智能体无需重写代码即可切换或混用不同的 harness智能体外壳统一执行策略管控与沙箱隔离并支持从终端、浏览器、手机甚至桌面 App 实时协作。本文带你深入拆解它最核心的设计SDK 与 Native 双轨 Harness 架构。什么是Meta-Harness为什么需要统一编排层用过多个编码智能体的人都知道痛点每个 Agent 的调用方式、会话管理、工具审批、模型切换各不相同想混用它们就得为每家写一套胶水代码。Omnigent 的做法是站在这些智能体之上再抽象一层称之为 meta-harness元外壳智能体是可插拔的零件——用一行 YAML 就能切换底层 harness编排、策略、沙箱、协作归这一层管——所有智能体共享同一套治理能力你只关心任务——写一个 Agent 定义文件就能把它跑在任何设备上。第一轨SDK Harness——直接驱动模型深度掌控SDK Harness 直接运行厂商的模型接口进程内 SDK、CLI 子进程或 ACP 子进程Omnigent 完整拥有模型生命周期它把框架内部的抽象消息/工具模型翻译成厂商 SDK 的原生调用并把工具调用桥接进厂商的工具接口。典型成员包括claude-sdk、codex、cursor、copilot、antigravity、openai-agents等。它为什么掌控力强所有工具本地 Python 函数、MCP 服务器、子智能体通过内建 MCP 服务器桥接给模型Omnigent 策略引擎可以在工具调用前和工具结果返回后两个检查点执行 ALLOW / ASK / DENY 三级裁决——ASK 时审批卡片直接出现在 Web UI 里支持流式输出、中途打断interrupt、回合队列、工具边界注入引导语、对话压缩、推理过程转发、成本跟踪等完整能力。核心契约定义在 omnigent/inner/executor.pyExecutor是 SDK Harness 与编排层之间的翻译官每个具体实现如 omnigent/inner/claude_sdk_executor.py只需实现同一组事件流接口。第二轨Native Harness——包裹厂商原版 TUI如实镜像Native Harness 不替代智能体而是包裹厂商自己的终端TUI或服务器把它的输出实时镜像回 Omnigent 会话——它是观察与中继而非驱动。典型成员是claude-native、codex-native、cursor-native、hermes-native、pi-native等命令如omnigent claude会在 tmux 终端里启动厂商原版 CLI。它的价值在于原汁原味厂商 TUI 的所有功能review 模式、plan 模式、工作树 diff都可用而你在 Web/手机端看到的仍是同步镜像。技术上Native 轨按通信方式分为几种传输tmux TUI、厂商 App ServerWS/JSON-RPC、HTTP/SSE 桥接。其中服务器型 harness 共享一个薄执行器 omnigent/native_server_harness.py——它刻意保持传输无关同一套编排逻辑同时驱动 codex-nativeWebSocket JSON-RPC和 opencode-nativeHTTP SSE流式输出则交给 runner 侧的 forwarder 负责。双轨合一5 种集成模式与声明式能力模型 双轨架构最优雅的地方在于两条轨道共用同一套抽象。Omnigent 用IntegrationMode枚举把harness 如何运行厂商智能体显式声明为 5 种模式见 omnigent/harness_capabilities.py模式含义轨道sdk-in-process厂商 SDK 跑在 harness 子进程内SDKcli-subprocess每回合驱动厂商 CLISDKacp-subprocess厂商 CLI 走 Agent Client ProtocolSDKnative-tui包裹常驻厂商 TUItmux/文件注入Nativenative-serverrunner 拥有厂商服务器 HTTP/SSE 桥Native每个 harness 还以声明式HarnessCapabilities描述自己的能力集审批如何呈现hook / JSON-RPC / SSE、会话恢复是热重连还是冷重建、是否支持打断/流式/图片/成本跟踪……注册表因此可以直接回答这个 harness 能做什么而不是散落在if harness x的分支里。而对外所有名字最终都归一omnigent/harness_aliases.py 把用户输入的各种别名claude_sdk、native-codex…映射到规范 ID再判断是 SDK 轨还是 Native 轨——这就是换 harness 不重写能成立的机制。统一治理策略与沙箱如何作用于 10 智能体️ 无论底层是 SDK 还是 Native 轨策略引擎的三级裁决ALLOW / ASK / DENY都会在工具调用和工具结果两个检查点生效审批请求以卡片形式出现在 Web UI。策略分三层叠加服务器级管理员、Agent 级开发者、会话级你自己更严格的会话规则优先检查。配合 Linux 上的 bubblewrap / macOS 上的 seatbelt 沙箱源码见 omnigent/inner/bwrap_sandbox.py即使是最野生的 Native 智能体也在受控边界内工作。完整目录见 docs/POLICIES.md。快速上手一行 YAML 切换 Harness体验双轨架构只需改一行配置name: my_agent prompt: You are a helpful data analyst. executor: harness: claude-sdk # 或 claude-native / codex / codex-native / cursor-native ...然后用omnigent run path/to/my_agent.yaml启动或加--harness name临时换轨。官方示例 Agent如多智能体编排器 Polly都在 examples/polly/Agent 定义完整规范见 docs/AGENT_YAML_SPEC.md。总结维度SDK HarnessNative Harness定位直接驱动厂商模型包裹厂商原版 TUI/服务器掌控力完整生命周期掌控观察、中继、镜像保真度受桥接能力约束厂商功能 100% 保留共享契约Executor事件流NativeServerHarness传输层Omnigent 的双轨 Harness 架构证明了统一的编排层不必牺牲任何一端的特性——想要深度集成走 SDK 轨想要原汁原味走 Native 轨而策略、沙箱、多端协作、成本治理这层元能力始终归一。对于同时使用多种编码智能体的团队这或许正是当前 AI 工程化落地最实用的架构范式。【免费下载链接】omnigentOmnigent is an open-source AI agent framework and meta-harness: orchestrate Claude Code, Codex, Cursor, Pi, and custom agents — swap harnesses without rewriting, enforce policies and sandboxing, and collaborate in real time from any device.项目地址: https://gitcode.com/gh_mirrors/om/omnigent创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考