Cara Guna Omnigent: Satu Harness Untuk Semua CLI Ejen
Ketahui cara Omnigent menguruskan pelbagai CLI ejen dalam satu sesi. Panduan ini merangkumi penetapan versi 0.7.0 dan teknik menyandboks sub-ejen pada pelayan VPS anda.
Apakah itu Omnigent
Omnigent ialah meta-harness sumber terbuka: satu lapisan orkestrasi yang memacu alat baris perintah (CLI) ejen yang telah anda pasang. Ia tidak menggantikan Claude Code, Codex, Cursor, OpenCode, Hermes atau Pi. Ia memulakan alat tersebut, memberikan tugasan kepada setiap satu, dan menyelia hasilnya dalam satu sesi dengan satu set polisi. Databricks menerbitkan repositori ini pada Jun 2026 di bawah lesen Apache 2.0, dan halaman hadapan masih memaparkan Status: alpha.
Tuntutan praktikalnya adalah terhad, dan wajar dinyatakan dengan jelas. Anda menerangkan sesuatu ejen sekali sahaja, dalam YAML, dan anda menamakan harness yang menjalankannya. Tukar satu baris itu dan ejen yang sama akan berjalan pada CLI vendor yang berbeza. Tiada apa-apa lagi dalam persediaan anda yang berubah, kerana Omnigent mengawal gelung di atas ejen dan bukannya gelung di dalam ejen tersebut.
Apakah itu meta-harness, dan bagaimana ia berbeza daripada framework?
Harness ialah program yang membalut model dalam satu gelung. Ia membaca prompt anda, memanggil alatan, menyunting fail dan melaporkan kembali. Claude Code ialah satu harness. Codex ialah satu harness. Anda memasangnya, anda log masuk, dan ia berfungsi dengan sendirinya.
Framework ialah pustaka yang anda gunakan untuk menulis kod. Anda mengimportnya, anda menentukan langkah-langkah dalam Python, dan program anda menjadi ejen tersebut. Menukar vendor dalam konteks ini bermakna menyunting kod anda, kerana klien vendor tersebut disambungkan melalui program anda.
Meta-harness berada satu tahap di atas kedua-duanya. Ia merupakan penyelia yang menjalankan harness sebagai proses anak (child processes). Omnigent memulakan CLI vendor, memberikan tugasan kepadanya, dan membaca hasil yang dikembalikan. Anda mengekalkan CLI yang telah anda pasang, dan anda mengekalkan sebarang langganan atau kunci API (application programming interface) yang digunakan untuk membayarnya. Itulah perbezaan keseluruhannya, dan ia menentukan untuk siapa alat ini dicipta: pengguna yang sudah mempunyai beberapa CLI ejen yang berfungsi, dan berasa penat untuk mengendalikannya satu terminal demi satu terminal.
Apakah masalah yang diselesaikan oleh lapisan orkestrasi?
- Kos penukaran vendor adalah satu baris. Definisi ejen menyimpan
harnessdanmodelsebagai data, jadi memindahkan peranan daripada satu vendor kepada vendor lain hanyalah suntingan pada fail YAML, bukan penulisan semula. - Semakan boleh merentasi vendor. Perbezaan (diff) yang ditulis oleh satu model dibaca oleh model daripada syarikat yang berbeza. Dua model daripada keluarga yang sama cenderung berkongsi titik buta yang sama, jadi pendapat kedua daripada vendor yang sama kurang nilainya.
- Polisi mempunyai satu lokasi. Had perbelanjaan dan gesaan kelulusan diisytiharkan dalam fail ejen, dan ia terpakai kepada setiap sub-ejen di bawahnya.
- Sesi bertahan lebih lama daripada mana-mana satu alat. Satu transkrip merangkumi kerja yang dilakukan oleh beberapa CLI, jadi anda boleh membaca semula apa yang berlaku tanpa perlu mencantumkan empat skrol balik (scrollback) secara manual.
Kosnya ialah lapisan itu sendiri. Setiap pepijat dalam Omnigent kini menjadi pepijat yang berada di antara anda dan ejen yang dahulunya berfungsi secara kendiri. Pada peringkat alfa, ini adalah kos yang nyata, bukan sekadar teori.
Kedudukan harness berbilang ejen berbanding alatan ejen tunggal
Jika anda masih belum menjalankan satu ejen pada pelayan, mulakan dengan langkah tersebut. Panduan kami mengenai menjalankan ejen pengekodan pada VPS merangkumi kes ejen tunggal dari awal hingga akhir, dan itulah persediaan yang diandaikan oleh Omnigent sudah tersedia pada sistem anda. Bidang yang lebih luas mengenai ejen AI yang dihoskan sendiri adalah tempat anda memilih ejen itu sendiri, dan mempelajari cara ejen sebenarnya berfungsi merupakan langkah permulaan yang lebih baik jika kosa kata di sini adalah perkara baharu bagi anda.
Omnigent juga berada pada paksi yang berbeza daripada lapisan penyambung (connector layer). Kerja seperti memberikan ejen akses kepada sumber data anda sendiri adalah mengenai perkara yang boleh dicapai oleh sesuatu ejen. Omnigent pula adalah mengenai ejen mana yang berjalan, dalam urutan yang bagaimana, dan di bawah had yang ditetapkan. Anda boleh menginginkan kedua-duanya sekali gus, dan fungsi kedua-duanya tidak bertindih.
Keperluan sebelum pemasangan
- Python 3.12 atau lebih baharu. Pakej yang diterbitkan mengisytiharkan
requires-python >= 3.12. tmux, kerana terminal harnesses berjalan di dalamnya.- Sekurang-kurangnya satu CLI vendor, yang telah dipasang dan dilog masuk.
- Node.js 22 hanya jika anda membina daripada git checkout. Wheel pada PyPI menghantar aset web yang telah dibina, jadi pemasangan biasa tidak memerlukan Node langsung.
Pasang keluaran yang disemat (pinned), bukan main
curl -fsSL https://raw.githubusercontent.com/omnigent-ai/omnigent/main/scripts/install_oss.sh | sh -s -- --version 0.7.0Bahagian sh -s -- bukan sekadar hiasan. Tanpanya, sh membaca --version sebagai pilihannya sendiri dan pemasang tidak akan melihat flag tersebut, jadi anda akan mendapat versi terkini pada hari itu. Bagi repositori yang mengeluarkan perubahan drastik (breaking changes) setiap beberapa minggu, ini adalah perbezaan antara pelayan yang boleh dihasilkan semula (reproducible) dengan kejutan yang tidak diingini.
Pemasang menggunakan uv, pengurus pakej Python daripada Astral, dan menawarkan untuk memasang uv terlebih dahulu jika ia tiada. Jika uv sudah tersedia, langkau skrip tersebut:
uv tool install --force --python 3.12 "omnigent==0.7.0"Tambahan (extras) mengikut corak yang sama, dan flag tersebut diulang: --extra e2b --extra kubernetes pada skrip, atau "omnigent[e2b,kubernetes]" dengan uv. Perhatikan bahawa tag git ialah v0.7.0 manakala versi pakej pada PyPI ialah 0.7.0.
uv meletakkan binari dalam direktori yang dilaporkan oleh uv tool dir --bin, biasanya ~/.local/bin, dan pemasang menawarkan untuk menambahkannya ke profil shell anda. Jika arahan tidak ditemui sejurus selepas pemasangan bersih, itulah puncanya. Semak apa yang anda perolehi:
omni upgrade --checkIni membandingkan versi yang dipasang dengan versi terkini yang diterbitkan dan memberitahu anda sama ada peningkatan tersedia, tanpa melaksanakannya. omni dan omnigent adalah program yang sama di bawah dua nama.
Halakan kepada pembekal model
omni setupWizard ini mencari kelayakan yang sudah tersedia dalam persekitaran anda dan meminta kelayakan yang belum ada. Ia mengendalikan API key, langganan vendor, gateway seperti OpenRouter atau Ollama, serta ruang kerja Databricks. Jika anda sudah menjalankan pelayan model tempatan dengan Ollama pada mesin yang sama, halakan gateway ke situ dan trafik tidak akan keluar daripada mesin tersebut.
Jalankan ejen berbilang yang minimum
Ejen contoh berada di dalam repositori, jadi klon tag yang sama dengan yang anda pasang dan bukannya main.
git clone --depth 1 --branch v0.7.0 https://github.com/omnigent-ai/omnigent.git
cd omnigent
omnigent run examples/polly/Polly ialah orkestrator pengekodan berbilang ejen yang disertakan bersama repo tersebut. Konfigurasinya mengisytiharkan sub-ejen bernama claude_code, codex, opencode, cursor, hermes dan pi, serta satu peraturan yang menjadikan keseluruhan latihan ini berbaloi untuk dijalankan: semakan sentiasa dilakukan oleh vendor yang berbeza daripada pelaksana. Polly tidak menulis kod sendiri. Ia merancang, memecahkan matlamat kepada item kerja, mewakilkan setiap satu, dan menghalakan setiap diff kepada penyemak daripada vendor lain.
Sebelum mewakilkan apa-apa, Polly menjalankan pemeriksaan pra-penerbangan untuk melihat CLI sub-ejen yang manakah sebenarnya wujud pada mesin tersebut. Dengan hanya satu CLI vendor dipasang, tiada sesiapa untuk menyerahkan diff tersebut, jadi pasang sekurang-kurangnya dua sebelum anda menilai outputnya. Debby, satu lagi contoh yang disertakan, ialah ejen perdebatan dengan dua kepala, satu Claude dan satu GPT:
omni debbyIni adalah cara ringkas untuk mengesahkan dua penyedia telah dikonfigurasikan, kerana ia memerlukan kedua-duanya untuk mengeluarkan sebarang kenyataan.
Sub-agent diisytiharkan sebagai tool
Fail ejen menggunakan format YAML. executor menamakan harness, model dan pengesahan. tools mengandungi pelayan MCP (model context protocol), fungsi Python dan sub-agent. Sub-agent ialah tool dengan type: agent dan pelaksana (executor) tersendiri, yang merupakan mekanisme di sebalik semua perkara di atas.
name: orchestrator
prompt: |
You coordinate coding and review tasks.
executor:
harness: claude-sdk
model: databricks-claude-sonnet-4-6
tools:
coder:
type: agent
prompt: Write and test code.
executor:
harness: claude-sdk
model: databricks-claude-opus-4-7
reviewer:
type: agent
prompt: Review proposed changes.
executor:
harness: claude-sdk
model: databricks-claude-sonnet-4-6omnigent run path/to/my_agent.yamlID model tersebut datang daripada contoh docs/AGENT_YAML_SPEC.md projek itu sendiri, dan ia merupakan nama yang dihoskan oleh Databricks. Gantikan harness dan model dengan apa sahaja yang omni setup konfigurasikan pada mesin anda. Nilai harness lain dalam spesifikasi termasuk antigravity, copilot, kimi, qwen dan acp:<slug> untuk mana-mana entiti yang menggunakan protokol generik. Spesifikasi ini juga menyokong pass_history: true pada sub-agent, yang memberikan perbualan induk kepadanya. Tindakan ini menggunakan token pada setiap delegasi, jadi jangan aktifkannya untuk sub-agent yang hanya memerlukan tugasan yang diberikan kepada mereka. Seorang pengekod yang prompt arahannya adalah untuk membuat perubahan paling kecil yang berfungsi akan memberikan penyemaknya diff yang cukup pendek untuk dibaca, yang lebih penting di sini berbanding model yang anda pilih untuk mana-mana peranan.
Mengapa orkestrasi yang berjalan lama perlu diletakkan pada VPS
Larian berbilang ejen bukanlah arahan yang mengambil masa dua minit. Ia melibatkan perancangan, delegasi, menunggu kerja git worktrees selari, semakan, dan pindaan. Menutup penutup komputer riba akan menamatkan segala-galanya. VPS (virtual private server) sentiasa aktif dan mengekalkan rangkaiannya, jadi sesi tersebut akan terus berjalan walaupun anda tidak memantaunya.
omnigent server --background
omnigent server statusPelayan ini mengehoskan antara muka pengguna web pada port 6767. omnigent server status melaporkan sama ada satu sesi sedang berjalan, dan omnigent stop mematikannya. Dalam keluaran sebelum v0.7.0, ini adalah omni server start, yang telah dibuang, jadi penulisan dan tangkapan skrin lama tidak akan sepadan dengan apa yang dilakukan oleh terminal anda.
Jangan terbitkan 6767 pada alamat awam. Dua bentuk adalah selamat. Pastikan port ditutup pada firewall dan buat forwarding melalui SSH dengan ssh -N -L 6767:localhost:6767 you@your-server, kemudian buka antara muka web pada http://localhost:6767 di mesin anda sendiri. Atau tamatkan TLS (transport layer security) di hadapannya dan hidupkan pengesahan:
OMNIGENT_AUTH_ENABLED=1 omnigent server --backgroundBahagian firewall bagi perkara tersebut adalah kerja biasa, yang diliputi dalam asas firewall ufw untuk VPS, dan jika kotak tersebut sudah menjalankan kontena di belakang Traefik di hadapan beberapa aplikasi Docker Compose maka Omnigent hanyalah satu lagi servis dalam corak yang sama.
Untuk penggunaan kontena, direktori deploy/ dalam repositori menyimpan persediaan Compose: ./bootstrap.sh menjana rahsia ke dalam .env, kemudian docker compose up -d memulakan Omnigent dan Postgres pada port 6767. DATABASE_URL memilih Postgres atau SQLite, dan OMNIGENT_AUTH_ENABLED menetapkan lalai kepada 1 di dalam kontena, yang merupakan lalai yang betul untuk apa-apa yang boleh dicapai dari luar.
Mengenai saiz, nota penggunaan meletakkan set kerja pelayan pada kira-kira 512 MB hingga 1 GB, dan konfigurasi Fly.io menetapkan 1 GB. Angka itu adalah untuk penyelia sahaja. Setiap sub-ejen adalah proses berasingan yang memegang checkout sendiri dan klien model sendiri, jadi saizkan kotak tersebut mengikut keperluan ejen. Sebaik sahaja pelayan aktif, omnigent login https://your-host diikuti dengan omnigent host https://your-host mendaftarkan komputer riba anda dengannya, dan omnigent attach <session_id> menyambung semula sesi yang sedang berjalan daripada peranti lain.
Sandbox setiap sub-ejen sebelum anda beredar
Omnigent mengeluarkan sandbox peringkat sistem operasi yang dipanggil Omnibox. Pada Linux, ia menggunakan namespace bubblewrap serta seccomp, jadi kernel yang menguatkuasakan sempadan tersebut dan bukannya arahan ejen. Ejen yang terdedah kepada prompt injection tidak boleh melepasi peraturan kernel. Pasang dependensi terlebih dahulu:
sudo apt install bubblewrapKonfigurasi terletak di bawah os_env dalam fail ejen:
os_env:
type: caller_process
cwd: .
sandbox:
type: linux_bwrap
write_paths: [.]
write_files: []
read_paths: []
allow_network: true
cwd_allow_hidden: [.venv]
env_passthrough: []
egress_rules: []
credential_proxy: []Direktori kerja adalah baca-sahaja sehingga anda menyenaraikannya dalam write_paths, jadi ejen yang bermasalah tidak boleh menulis di luar ruang kerja. Dotfiles kekal tersembunyi kecuali jika dinamakan dalam cwd_allow_hidden, yang bermaksud pemberian akses baca yang luas tidak akan mendedahkan .ssh atau .aws secara senyap. Tetapkan egress_rules dan semua trafik HTTP serta HTTPS akan melalui proksi default deny, dengan setiap peraturan ditulis sebagai "METHODS host/path-glob". credential_proxy melangkah lebih jauh: ejen hanya memegang placeholder, dan proksi akan menukarnya dengan rahsia sebenar apabila permintaan keluar, jadi transkrip yang bocor tidak akan mendedahkan apa-apa yang boleh digunakan. Dalam persediaan multi-harness, setiap sub-ejen membawa blok sandbox sendiri dalam fail konfigurasi masing-masing di bawah agents/, jadi penyemak boleh dinafikan akses rangkaian sementara pelaksana mengekalkannya.
Had tersebut dinyatakan dalam dokumentasi, dan ia adalah penting. Sandbox OS terpakai pada panggilan alat sys_os_* dan terminal. Ia tidak meliputi pelayan MCP, dan ia tidak meliputi proses penyelia Omnigent itu sendiri. Pelayan MCP yang anda mulakan berjalan di luar kotak dengan kebenaran anda. Jurang itulah sebabnya corak yang lebih kukuh masih menggunakan satu mesin pakai buang bagi setiap ejen, yang merupakan subjek menjalankan ejen pengekodan dalam VM pakai buang. Separuh lagi daripada tugas tersebut ialah kelayakan, dan menjaga rahsia daripada capaian ejen menjadi lebih sukar, bukan lebih mudah, apabila enam sub-ejen berkongsi satu hos.
Had perbelanjaan adalah polisi, yang diisytiharkan dalam fail yang sama:
policies:
budget:
type: function
handler: omnigent.policies.builtins.cost.cost_budget
factory_params:
max_cost_usd: 5.00
ask_thresholds_usd: [1.00, 3.00]Satu larian yang merancang dengan satu vendor, melaksanakan dengan vendor kedua dan menyemak dengan vendor ketiga akan berbelanja di tiga tempat serentak, jadi tetapkan had sebelum larian tanpa pengawasan pertama dan bukannya selepas invois pertama. Ciri terbina dalam juga termasuk max_tool_calls_per_session dan ask_on_os_tools, yang meminta kelulusan sebelum operasi fail dan shell. Nota kami mengenai mengawal kos ejen AI pada VPS terpakai secara langsung di sini, dan ia lebih kritikal, kerana sub-ejen selari akan melipatgandakan kadar penggunaan kos.
Sejauh mana pantasnya repositori ini berkembang?
The data behind this chart
[
{
"version": "v0.2.0",
"released": "2026-06-19",
"interval": 3
},
{
"version": "v0.3.0",
"released": "2026-06-27",
"interval": 8
},
{
"version": "v0.4.0",
"released": "2026-07-03",
"interval": 6
},
{
"version": "v0.5.0",
"released": "2026-07-10",
"interval": 7
},
{
"version": "v0.5.1",
"released": "2026-07-10",
"interval": 0
},
{
"version": "v0.6.0",
"released": "2026-07-21",
"interval": 11
},
{
"version": "v0.7.0",
"released": "2026-07-27",
"interval": 6
}
]Berikut adalah tarikh keluaran rasmi daripada halaman keluaran projek tersebut, yang dibaca pada 3 Ogos 2026. 7 keluaran bertanda telah dilancarkan antara 2026-06-19 dan 2026-07-27, dan jurang masa paling lama antara mana-mana dua keluaran adalah 11 hari. v0.5.1 telah dikeluarkan pada hari yang sama dengan keluaran sebelumnya. Keluaran pertama, 0.1.1 pada 16 Jun 2026, tidak disertakan dalam carta kerana tiada tag sebelumnya untuk dijadikan ukuran.
Dua daripada keluaran tersebut menyebabkan kegagalan pada arahan yang telah didokumentasikan dalam panduan. v0.7.0 membuang omni server start dan menggantikannya dengan omni server --background. v0.6.0 menamakan semula extra omnigent[memory] kepada omnigent[hindsight], menyebabkan baris pemasangan yang disalin daripada penulisan bulan Jun gagal pada binaan bulan Julai. Inilah sebab mengapa penggunaan --version dalam arahan pemasangan anda dan penggunaan tag dalam git clone anda adalah perlu, bukannya sekadar pilihan gaya.
Perkara yang saya belum percayakan
Sehingga Ogos 2026, repositori ini mempunyai kira-kira 8.1k bintang, 1.2k fork dan lebih kurang 350 isu terbuka, dengan keluaran awam pertama yang berusia tujuh minggu. Bintang mengukur minat, dan minat bukanlah kematangan. Projek ini menyatakan status alpha, dan sejarah keluaran di atas menunjukkan bahawa ia benar-benar berada pada tahap alpha.
- Saya tidak akan menjalankannya pada hos yang menyimpan kelayakan pengeluaran (production credentials), kerana sandbox tidak meliputi pelayan MCP atau supervisor.
- Saya tidak akan membiarkan proses berjalan tanpa pengawasan tanpa polisi
cost_budget, kerana tiga vendor boleh mengenakan caj secara selari dan tiada mekanisme lain yang menghalangnya. - Saya tidak akan mendedahkan pelayan pada alamat IP awam tanpa
OMNIGENT_AUTH_ENABLEDditetapkan dan TLS di hadapannya. - Saya tidak akan menganggap YAML ejen sebagai stabil merentas versi minor buat masa ini, jadi tetapkan versi (pin) dan baca nota keluaran sebelum menaik taraf.
Satu lagi perkara yang perlu diketahui sebelum ia mengejutkan anda: v0.6.0 menambah telemetri penggunaan tanpa nama, dan projek ini mendokumentasikannya pada halaman telemetri khusus. Baca halaman tersebut dan buat keputusan secara sengaja jika mesin tersebut mengendalikan kerja pelanggan.
Apa yang Omnigent benar-benar mahir pada hari ini adalah tujuan ia dibina. Anda mempunyai tiga atau empat CLI ejen, anda sudah membayar untuknya, dan anda mahu salah satu daripadanya menulis sementara yang lain menyemak. Itu berfungsi sekarang, pada satu mesin, dengan sandbox sebenar pada Linux. Anggap segala-galanya selain daripada itu sebagai sesuatu yang menjanjikan tetapi belum siap.
FAQ
Adakah Omnigent merupakan ejen, atau sesuatu yang menjalankan ejen?
Ia menjalankan ejen. Omnigent ialah meta-harness: ia memulakan CLI vendor yang telah anda pasang, seperti Claude Code, Codex atau OpenCode, memberikan tugasan kepada setiap satu, dan menyelia hasilnya dalam satu sesi. Ia tidak membawa modelnya sendiri. Inilah sebabnya ia berbeza daripada rangka kerja (framework), di mana anda menulis Python menggunakan pustaka dan program anda sendiri menjadi ejen tersebut.
Adakah saya perlu memasang Claude Code dan Codex sebelum Omnigent berguna?
Anda perlu memasang sekurang-kurangnya satu CLI vendor dan log masuk, kerana Omnigent memacu program tersebut dan bukannya menggantikannya. Bagi contoh Polly yang disertakan, anda memerlukan dua atau lebih daripada vendor yang berbeza. Peraturan Polly ialah semakan sentiasa dilakukan oleh vendor yang berbeza daripada pelaksana, jadi dengan hanya satu CLI, tiada vendor kedua untuk menghantar diff tersebut.
Bagaimanakah cara saya memasang versi Omnigent tertentu dan bukannya yang terkini?
Lalukan --version melalui skrip pemasangan dengan sh -s --, seperti dalam sh -s -- --version 0.7.0. Tanpa -s --, flag tersebut digunakan oleh sh sendiri dan skrip akan memasang keluaran (release) yang paling baharu. Jika uv sudah tersedia, uv tool install --force --python 3.12 "omnigent==0.7.0" melakukan tugas yang sama. Tag git ialah v0.7.0 manakala rentetan versi PyPI ialah 0.7.0.
Adakah sandbox Omnibox mencukupi untuk menjalankan ejen tanpa pengawasan?
Ia kukuh untuk skop yang dilindunginya dan jelas tentang perkara yang tidak dilindunginya. Pada Linux, ia menggunakan bubblewrap berserta seccomp, jadi kernel menguatkuasakan had fail dan rangkaian, dan ejen tidak boleh menarik diri. Dokumentasi menyatakan bahawa ia terpakai pada panggilan alat sys_os_* dan terminal, dan ia tidak meliputi pelayan MCP atau proses penyelia Omnigent. Oleh itu, pelayan MCP berjalan dengan kebenaran biasa anda, itulah sebabnya mesin maya pakai buang bagi setiap ejen kekal sebagai pengasingan yang lebih kuat untuk kerja tanpa pengawasan.
Berapakah memori yang diperlukan oleh pelayan Omnigent pada VPS?
Nota penggunaan (deploy) projek memberikan pelayan set kerja sekitar 512 MB hingga 1 GB, dan konfigurasi Fly.io menetapkannya pada 1 GB. Itu hanya meliputi penyelia dan antara muka web pada port 6767. Setiap sub-ejen ialah proses berasingan dengan salinan kerja dan klien modelnya sendiri, dan pelaksanaan gaya Polly menggunakan git worktrees selari, jadi tetapkan saiz RAM dan cakera berdasarkan bilangan ejen yang anda rancang untuk jalankan serentak dan bukannya untuk pelayan tersebut.