SSD Nodes Learn Hosting plans →
Hướng dẫn Matt ConnorBởi Matt Connor · Cập nhật ngày 2026-11-06

Omnigent: meta-harness cho nhiều agent CLI

Tìm hiểu Omnigent, cách pin đúng release 0.7.0 và sandbox từng agent trên VPS, trong khi vẫn dùng các agent CLI bạn đã cài như Claude Code, Codex.

Omnigent là gì

Omnigent là một meta-harness mã nguồn mở: một lớp orchestration điều khiển các công cụ dòng lệnh của agent (CLI) mà bạn đã cài đặt. Nó không thay thế Claude Code, Codex, Cursor, OpenCode, Hermes hoặc Pi. Omnigent khởi chạy các công cụ này, giao nhiệm vụ cho từng công cụ và giám sát kết quả trong một session duy nhất với cùng một bộ policy. Databricks đã công bố repository vào tháng 6 năm 2026 theo giấy phép Apache 2.0, còn PyPI vẫn phân loại package này là alpha.

Phạm vi tuyên bố thực tế khá hẹp và cần nói rõ. Bạn mô tả agent một lần bằng YAML và chỉ định harness dùng để chạy agent đó. Chỉ cần thay đổi một dòng, cùng agent đó sẽ chạy trên CLI của vendor khác. Không cần thay đổi phần nào khác trong thiết lập, vì Omnigent quản lý vòng lặp bên trên các agent thay vì vòng lặp bên trong chúng.

Meta-harness là gì và khác framework như thế nào?

Harness là chương trình bọc một model trong một vòng lặp. Nó đọc prompt của bạn, gọi tool, chỉnh sửa file và trả kết quả. Claude Code là một harness. Codex là một harness. Bạn cài nó, đăng nhập và nó tự hoạt động.

Framework là một thư viện để bạn viết code dựa trên đó. Bạn import thư viện, định nghĩa các bước trong Python, rồi chương trình của bạn trở thành agent. Khi đổi vendor, bạn phải sửa code vì client của vendor được tích hợp trực tiếp vào chương trình.

Meta-harness nằm ở cấp cao hơn cả hai. Đây là một supervisor chạy các harness dưới dạng tiến trình con. Omnigent khởi động vendor CLI, giao việc cho CLI và đọc kết quả trả về. Bạn tiếp tục dùng CLI đã cài sẵn, cùng subscription hoặc API (application programming interface) key đang dùng để thanh toán. Đó là toàn bộ khác biệt. Khác biệt này cũng xác định tool dành cho ai: những người đã có nhiều agent CLI hoạt động ổn định nhưng mệt mỏi vì phải điều khiển từng CLI trong từng terminal riêng lẻ.

Lớp điều phối giải quyết vấn đề gì?

  • Đổi nhà cung cấp chỉ cần sửa một dòng. Định nghĩa agent lưu harness và model dưới dạng dữ liệu, nên chuyển một vai trò từ nhà cung cấp này sang nhà cung cấp khác chỉ là sửa file YAML, không phải viết lại.
  • Có thể review xuyên qua các nhà cung cấp. Một diff do model này tạo ra sẽ được model thuộc công ty khác đọc lại. Hai model cùng một họ thường có chung các điểm mù, nên ý kiến thứ hai từ cùng một nhà cung cấp có giá trị thấp hơn.
  • Policy được quản lý tại một nơi. Các ngưỡng ngân sách và prompt phê duyệt được khai báo trong file agent, áp dụng cho mọi sub-agent bên dưới.
  • Session không phụ thuộc vào một tool cụ thể. Một transcript bao quát công việc thực hiện qua nhiều CLI, nên bạn có thể xem lại những gì đã xảy ra mà không phải ghép 4 lịch sử cuộn với nhau.

Chi phí nằm ở chính lớp này. Mọi bug trong Omnigent giờ trở thành một bug nằm giữa bạn và một agent vốn trước đây có thể tự chạy. Ở giai đoạn alpha, đây là một chi phí thực tế, không phải chi phí trên lý thuyết.

Vị trí của multi-agent harness bên cạnh các công cụ single agent

Nếu bạn chưa từng chạy một agent trên server, hãy bắt đầu từ đó. Hướng dẫn chạy coding agent trên VPS của chúng tôi bao quát toàn bộ trường hợp single agent; Omnigent giả định bạn đã có sẵn thiết lập này. Lĩnh vực rộng hơn về self-hosted AI agent là nơi bạn chọn các agent, còn tìm hiểu cách agent thực sự hoạt động sẽ phù hợp hơn nếu các thuật ngữ ở đây còn mới với bạn.

Omnigent cũng hoạt động trên một phương diện khác với connector layer. Nội dung như cho agent truy cập các nguồn dữ liệu của bạn liên quan đến những gì agent có thể truy cập. Omnigent tập trung vào việc agent nào chạy, chạy theo thứ tự nào và chịu các giới hạn nào. Bạn có thể cần cả hai cùng lúc; hai phần này không trùng lặp.

Bạn cần chuẩn bị gì trước khi cài đặt

  • Python 3.12 trở lên. Package đã phát hành khai báo requires-python >= 3.12.
  • tmux, vì các terminal harness chạy bên trong đó.
  • Ít nhất một vendor CLI đã được cài đặt và đăng nhập.
  • Node.js 22 trở lên cùng với npm, vì các harness Claude, Codex và Pi cần chúng. Installer kiểm tra Node 22.10 trở lên và cảnh báo nếu không tìm thấy. Bản thân Omnigent không cần Node: wheel trên PyPI đã chứa sẵn web assets đã build, và chỉ khi build từ git checkout thì Node mới trở thành dependency bắt buộc.

Cài bản release được pin, không dùng main

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

Phần sh -s -- không phải để trang trí. Nếu thiếu phần này, sh sẽ đọc --version như một option riêng và installer hoàn toàn không chạy. Khi sh là Bash, Bash sẽ in phiên bản của chính nó rồi thoát với trạng thái thành công. Vì vậy không có gì được cài đặt và cũng không có cảnh báo nào. Với -s --, sh đọc script từ pipe và truyền --version 0.7.0 cho installer. Với một repository phát hành breaking change vài tuần một lần, đây là khác biệt giữa một máy chủ có thể tái lập và một sự cố bất ngờ.

Release 0.7.0 vẫn được publish trên PyPI tại thời điểm 29 October 2026, nhưng release mới nhất hiện là 0.21.0, từ 5 November 2026. Release 0.19.1 trước đó là một bản patch tập trung vào bảo mật và không có tính năng mới: bản này cập nhật dependencies sau sự cố CA trung gian của eMudhra bị compromise, và project khuyến nghị nâng cấp. Điều quan trọng là pin, không phải con số: hãy pin version bạn đã kiểm thử và đọc các breaking change trong release notes trước khi thay đổi pin. Tuy nhiên, pin không phải là lý do để bỏ qua security release. Hãy cập nhật pin khi có security release mới.

Installer dùng uv, Python package manager của Astral, và đề nghị cài uv trước nếu uv chưa có. Nếu uv đã có, hãy bỏ qua script:

uv tool install --force --python 3.12 "omnigent==0.7.0"

Extras cũng dùng cùng pattern và flag được lặp lại: --extra e2b --extra kubernetes trên script hoặc "omnigent[e2b,kubernetes]" với uv. Script cũng thêm extra databricks, trừ khi bạn truyền --no-databricks. Trong khi đó, dòng uv ở trên cài package mà không có extra này. Lưu ý rằng git tag là v0.7.0, còn package version trên PyPI là 0.7.0.

uv đặt binary vào thư mục do uv tool dir --bin báo cáo, thường là ~/.local/bin, và installer đề nghị thêm thư mục đó vào shell profile. Nếu lệnh không được tìm thấy ngay sau một lần cài đặt mới, đó là nguyên nhân. Kiểm tra kết quả thực tế:

omni upgrade --check

Lệnh này so sánh version đã cài với version mới nhất đã publish và cho biết có bản nâng cấp hay không mà không thực hiện nâng cấp. omni và omnigent là cùng một program dưới hai tên.

Trỏ đến nhà cung cấp model

omni setup

Trình hướng dẫn tìm các thông tin xác thực đã có trong môi trường và yêu cầu bạn nhập những thông tin còn thiếu. Nó hỗ trợ API key, gói thuê bao của nhà cung cấp, các gateway như OpenRouter hoặc Ollama và workspace Databricks. Nếu bạn đã chạy một model server cục bộ bằng Ollama trên cùng máy, hãy trỏ gateway đến server đó để traffic không bao giờ rời khỏi máy.

Chạy multi-agent tối thiểu

Các agent mẫu nằm trong repository. Hãy clone đúng tag bạn đã cài đặt thay vì main.

git clone --depth 1 --branch v0.7.0 https://github.com/omnigent-ai/omnigent.git
cd omnigent
omnigent run examples/polly/

Polly là orchestrator lập trình multi-agent được phát hành cùng repository. Cấu hình của nó khai báo các sub-agent có tên claude_code, codex, opencode, cursor, hermes và pi, cùng một rule khiến toàn bộ bài thực hành này đáng để chạy: việc review luôn do vendor khác với bên implement thực hiện. Polly không tự viết code. Nó lập kế hoạch, chia mục tiêu thành các work item, giao từng mục cho agent và chuyển từng diff đến reviewer thuộc vendor khác.

Trước khi giao bất kỳ việc nào, Polly chạy preflight check để xác định những sub-agent CLI nào thực sự tồn tại trên máy. Nếu chỉ cài CLI của một vendor thì không có ai để nhận diff, vì vậy hãy cài ít nhất hai CLI trước khi đánh giá output. Debby, ví dụ còn lại được phát hành cùng repository, là một debate agent có hai head, một Claude và một GPT:

omni debby

Đây là cách nhanh để xác nhận hai provider đã được cấu hình, vì Debby cần cả hai provider để tạo ra bất kỳ output nào.

Sub-agent được khai báo dưới dạng tool

File agent dùng định dạng YAML. executor xác định harness, model và thông tin xác thực. tools chứa các server MCP (model context protocol), các hàm Python và các sub-agent. Sub-agent là một tool có type: agent và executor riêng. Đây là cơ chế đứng sau tất cả các thành phần trên.

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-6
omnigent run path/to/my_agent.yaml

Các model id đó lấy từ ví dụ docs/AGENT_YAML_SPEC.md của chính project và là các tên được Databricks host. Thay harness và model bằng các giá trị omni setup đã cấu hình trên máy của bạn. Các giá trị harness khác trong spec gồm antigravity, copilot, kimi và qwen. Spec hiện tại trên main cũng ghi nhận acp:<slug> cho mọi Agent Client Protocol server, nhưng spec v0.7.0 không liệt kê mục này. Vì vậy, hãy xác nhận nó hoạt động trên phiên bản bạn đã pin trước khi dùng. Spec cũng hỗ trợ pass_history: true trên sub-agent để truyền cho nó conversation của parent. Việc này tiêu tốn token trong mỗi lần delegation, nên tắt tùy chọn này với các sub-agent chỉ cần task hiện tại. Một coder có prompt yêu cầu nó tạo ra thay đổi nhỏ nhất nhưng vẫn hoạt động sẽ đưa cho reviewer một diff đủ ngắn để thực sự đọc được. Trong trường hợp này, điều đó quan trọng hơn model bạn chọn cho mỗi vai trò.

Vì sao orchestration chạy lâu nên đặt trên VPS

Một lần chạy multi-agent không phải là lệnh chạy trong hai phút. Bạn cần lập kế hoạch, giao việc, chờ các git worktree chạy song song, xem xét và chỉnh sửa. Đóng nắp laptop sẽ dừng toàn bộ quá trình. VPS (virtual private server) luôn hoạt động và giữ kết nối mạng, nên session vẫn tiếp tục khi bạn không theo dõi.

omnigent server --background
omnigent server status

Server cung cấp web user interface trên port 6767. omnigent server status cho biết server có đang chạy hay không, còn omnigent stop sẽ tắt server. v0.7.0 đã xóa omni server start để thay bằng omni server --background; v0.9.0 khôi phục omni server start dưới dạng alias đã deprecated.

Không publish 6767 trên địa chỉ public. Có 2 cách triển khai an toàn. Giữ port này đóng trên firewall và forward qua SSH bằng ssh -N -L 6767:localhost:6767 you@your-server, sau đó mở web interface tại http://localhost:6767 trên máy của bạn. Hoặc terminate TLS (transport layer security) ở phía trước nó và bật authentication:

OMNIGENT_AUTH_ENABLED=1 omnigent server --background

Phần firewall này là công việc thông thường, đã được trình bày trong kiến thức cơ bản về ufw firewall cho VPS, và nếu máy đã chạy các container phía sau Traefik đứng trước nhiều ứng dụng Docker Compose thì Omnigent chỉ là thêm một service theo cùng mô hình.

Khi deploy bằng container, thư mục deploy/docker/ của repository chứa cấu hình Compose: ./bootstrap.sh tạo các secret vào .env, sau đó docker compose up -d khởi động Omnigent và Postgres, với server chạy trên port 8000 thay vì 6767. OMNIGENT_PORT thay đổi host port đó. Compose tự tính DATABASE_URL cho bạn (trên các target deploy khác, cùng biến này sẽ chọn Postgres hoặc SQLite), còn OMNIGENT_AUTH_ENABLED mặc định là 1 bên trong các container. Đây là giá trị mặc định phù hợp cho mọi thứ có thể truy cập từ bên ngoài.

Về sizing, ghi chú deploy ước tính mức dùng memory idle của server là khoảng 275 MB RSS, còn cấu hình Fly.io cố định một machine 1 GB. Số đo idle chỉ áp dụng cho supervisor; 1 GB là dung lượng memory được cấp cho machine. Các sub-agent có thể dùng chung working directory và environment của parent, bao gồm sandbox của parent thông qua os_env: inherit. Việc dùng các git worktree riêng là lựa chọn orchestration, nên hãy sizing máy cho các harness và agent mà bạn chạy đồng thời. Khi server đã chạy, omnigent login https://your-host rồi omnigent host https://your-host sẽ đăng ký laptop của bạn với server, còn omnigent attach <session_id> sẽ tiếp tục một session đang chạy từ thiết bị khác.

Cô lập sandbox cho mọi sub-agent trước khi rời máy

Omnigent cung cấp một sandbox ở cấp hệ điều hành có tên Omnibox. Trên Linux, công cụ này dùng namespace của bubblewrap cùng với seccomp, nên kernel thực thi ranh giới bảo vệ thay vì dựa vào prompt của agent. Agent bị prompt injection không thể dùng lời lẽ để vượt qua một rule của kernel. Trước tiên, hãy cài dependency:

sudo apt install bubblewrap

Cấu hình nằm trong os_env của file agent:

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: []

Working directory ở chế độ chỉ đọc cho đến khi bạn liệt kê nó trong write_paths, nên agent gặp lỗi không thể ghi ra ngoài workspace. Các dotfile cấp cao nhất trong working directory và mỗi root của read_paths vẫn bị ẩn trừ khi được nêu trong cwd_allow_hidden. Nhờ đó, quyền đọc rộng không âm thầm để lộ các thư mục .ssh hoặc .aws cấp cao nhất. Dotfile lồng nhau vẫn hiển thị theo mặc định; đặt cwd_hidden_scan_recursive: true để che chúng trên toàn bộ cây thư mục. Đặt egress_rules thì toàn bộ lưu lượng HTTP và HTTPS sẽ đi qua một proxy mặc định từ chối, với mỗi rule được viết dưới dạng "METHODS host/path-glob". credential_proxy còn chặt hơn: agent chỉ giữ một placeholder, còn proxy thay bằng secret thật khi request rời hệ thống. Vì vậy, transcript bị lộ cũng không làm lộ secret có thể sử dụng. Trong mô hình nhiều harness, mỗi sub-agent có block sandbox riêng trong file cấu hình riêng dưới agents/. Nhờ đó, bạn có thể chặn network của reviewer trong khi vẫn cho implementer sử dụng network.

Giới hạn này được nêu rõ trong tài liệu và rất quan trọng. OS sandbox áp dụng cho các tool call sys_os_* và terminal. Nó không bao phủ MCP server và cũng không bao phủ chính tiến trình supervisor của Omnigent. MCP server do bạn khởi động sẽ chạy bên ngoài sandbox với quyền của bạn. Đây là lý do pattern an toàn hơn vẫn là dùng một máy dùng một lần cho mỗi agent. Nội dung này được trình bày trong chạy coding agent trong VM dùng một lần. Phần còn lại là credential. Việc giữ secret ngoài tầm với của agent sẽ khó hơn, không dễ hơn, khi sáu sub-agent dùng chung một host.

Các ngưỡng chi tiêu là policy, được khai báo trong cùng file:

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]

Policy cost_budget yêu cầu phê duyệt khi chạm các ngưỡng mềm và mặc định chặn mọi model tại max_cost_usd. Đặt danh sách expensive_models không rỗng sẽ biến giới hạn thành cổng downgrade: các model không nằm trong danh sách đó vẫn có thể tiếp tục chi tiêu. Một run lập kế hoạch với vendor thứ nhất, triển khai với vendor thứ hai và review với vendor thứ ba sẽ phát sinh chi phí ở cả ba nơi cùng lúc. Vì vậy, hãy đặt ngưỡng trước run unattended đầu tiên, không chờ đến khi nhận invoice đầu tiên. Các policy dựng sẵn còn có max_tool_calls_per_session và ask_on_os_tools, yêu cầu phê duyệt trước các thao tác trên file và shell. Các ghi chú của chúng tôi về kiểm soát chi phí AI agent trên VPS áp dụng trực tiếp ở đây, thậm chí còn quan trọng hơn, vì các sub-agent chạy song song sẽ nhân tốc độ tiêu thụ chi phí.

Kho lưu trữ này thay đổi nhanh đến mức nào?

Biểu đồDays between tagged Omnigent releases, v0.2.0 to v0.7.0
Dữ liệu đằng sau biểu đồ này
[
  {
    "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
  }
]

Đó là ngày phát hành được công bố trên trang releases của chính dự án, được kiểm tra vào ngày 3 August 2026. Có 7 bản phát hành được gắn tag trong khoảng từ 2026-06-19 đến 2026-07-27, và khoảng cách dài nhất giữa hai bản bất kỳ là 11 ngày. v0.5.1 được phát hành cùng ngày với bản phát hành ngay trước đó. Hai bản phát hành PyPI đầu tiên, 0.1.0 vào ngày 13 June 2026 và 0.1.1 vào ngày 16 June 2026, không có mục tương ứng trên trang releases của GitHub nên không được đưa vào biểu đồ; 3 ngày của v0.2.0 được tính từ 0.1.1.

Hai bản phát hành trong số đó đã thay đổi các command mà các guide trước đó đã ghi lại. v0.7.0 xóa omni server start để thay bằng omni server --background. v0.6.0 đổi tên extra omnigent[memory] thành omnigent[hindsight], nhưng vẫn giữ memory làm alias tương thích, hoạt động đến hết 0.10.0. Từ 0.11.0, được phát hành ngày 25 August 2026, alias này không còn nữa. Vì vậy, dòng install được sao chép từ một bài viết hồi June sẽ không còn cài thêm Hindsight client. Đây là lý do bạn nên dùng --version trong install command và dùng tag trong git clone, chứ không chỉ là vấn đề về phong cách.

Tốc độ phát hành không chậm lại kể từ lần kiểm tra đó. Đến ngày 29 October 2026, PyPI liệt kê 0.20.0, được phát hành ngày 28 October, tức 13 bản minor release sau 0.7.0; release notes của dự án cũng nêu các breaking change trong một số bản. Có 2 thay đổi ảnh hưởng đến mọi nội dung được sao chép từ trang này: v0.12.0 khiến omni không có đối số khởi động background host thay vì Polly agent (omni run hiện khởi chạy agent mặc định), còn v0.13.0 yêu cầu tmux 3.3 trở lên cho các terminal được quản lý.

Những việc tôi chưa sẵn sàng tin cậy nó

Tính đến ngày 27 October 2026, repository này có khoảng 11k star, 1.8k fork và khoảng 910 issue đang mở. Bản release công khai đầu tiên mới được phát hành hơn 4 tháng. Star chỉ đo mức độ quan tâm, không đo độ trưởng thành. Dự án tự mô tả là alpha, và lịch sử release ở trên cho thấy điều đó đúng nghĩa là alpha.

  • Tôi sẽ không chạy nó trên host chứa credential production, vì sandbox chưa bao phủ MCP server hoặc supervisor.
  • Tôi sẽ không để một run chạy mà không có người giám sát nếu thiếu policy cost_budget, vì 3 vendor có thể tính phí song song. Khi danh sách expensive_models không rỗng, hệ thống vẫn có thể tiếp tục chi tiền cho các model rẻ hơn.
  • Tôi sẽ không expose server trên địa chỉ IP public nếu chưa đặt OMNIGENT_AUTH_ENABLED và chưa đặt TLS phía trước nó.
  • Tôi chưa xem agent YAML là ổn định giữa các minor version. Vì vậy, hãy pin version và đọc release note trước khi upgrade.

Có một điểm khác bạn cần biết để tránh bị bất ngờ: v0.6.0 đã thêm telemetry sử dụng được ẩn danh. README cho biết telemetry này được thu thập theo mặc định. Dự án cũng có tài liệu về tính năng này, bao gồm cách opt out, trên một trang telemetry riêng. Hãy đọc trang đó và chủ động quyết định nếu máy này xử lý công việc của client.

Hiện tại, Omnigent thực sự làm tốt đúng việc mà nó được xây dựng để làm. Bạn có 3 hoặc 4 agent CLI, đã trả phí cho chúng và muốn một agent viết trong khi agent khác review. Việc đó hiện đã hoạt động trên một máy, với sandboxing thực sự trên Linux. Hãy xem mọi khả năng vượt quá phạm vi đó là đầy hứa hẹn nhưng vẫn chưa hoàn thiện.

FAQ

Omnigent là một agent hay là thứ chạy các agent?

Nó chạy các agent. Omnigent là một meta-harness: nó khởi chạy các vendor CLI mà bạn đã cài, chẳng hạn như Claude Code, Codex hoặc OpenCode, giao việc cho từng CLI và giám sát kết quả trong một session. Nó không có model riêng. Vì vậy, Omnigent khác framework, nơi bạn viết Python gọi một library và chương trình của bạn trở thành agent.

Tôi có cần cài Claude Code và Codex trước khi Omnigent có ích không?

Bạn cần cài đặt và đăng nhập ít nhất một vendor CLI, vì Omnigent điều khiển các chương trình đó thay vì thay thế chúng. Với ví dụ Polly được cung cấp, bạn nên dùng từ hai vendor khác nhau trở lên. Quy tắc của Polly là việc review luôn do vendor khác với implementer thực hiện. Vì vậy, nếu chỉ có một CLI, sẽ không có vendor thứ hai để nhận diff.

Làm cách nào để cài một phiên bản Omnigent cụ thể thay vì phiên bản mới nhất?

Truyền --version qua install script bằng sh -s --, như trong sh -s -- --version 0.7.0. Nếu không có -s --, sh sẽ coi --version là option của chính nó và installer không bao giờ chạy: chẳng hạn, Bash sẽ in phiên bản của chính nó rồi thoát. Nếu đã có uv, uv tool install --force --python 3.12 "omnigent==0.7.0" cũng thực hiện cùng tác vụ. Git tag là v0.7.0, còn chuỗi phiên bản trên PyPI là 0.7.0.

Sandbox Omnibox có đủ để chạy agent không cần giám sát không?

Sandbox này bảo vệ tốt trong phạm vi được hỗ trợ và nêu rõ những gì nó không bao phủ. Trên Linux, nó dùng bubblewrap cùng seccomp, nên kernel thực thi các giới hạn về file và network, đồng thời agent không thể bỏ qua các giới hạn đó. Tài liệu nêu rằng sandbox áp dụng cho các tool call và terminal sys_os_*, nhưng không áp dụng cho MCP server hoặc tiến trình supervisor của Omnigent. Vì vậy, MCP server chạy với quyền thông thường của bạn. Đây là lý do một virtual machine dùng riêng cho từng agent vẫn cho mức isolation mạnh hơn khi chạy không cần giám sát.

Một server Omnigent trên VPS cần bao nhiêu memory?

Ghi chú deploy của dự án cho biết mức RSS khi idle khoảng 275 MB, còn cấu hình Fly.io cấp một machine 1 GB. Số liệu khi idle chỉ tính server, không tính các sub-agent. Các sub-agent có thể dùng chung working directory và environment của parent, bao gồm sandbox của parent thông qua os_env: inherit; không đảm bảo mỗi sub-agent có working copy riêng. Các lần chạy kiểu Polly dùng git worktree song song. Vì vậy, hãy tính RAM và disk theo số agent bạn dự định chạy đồng thời, không chỉ theo server.

Bài viết này có hữu ích không?