SSD Nodes Learn 🎉 VPS từ $5.50/tháng
Hướng dẫn Matt ConnorBởi Matt Connor · Cập nhật ngày 2026-08-21

DeepSeek Harness vs Claude Code vs Omnigent: chọn gì?

So sánh DeepSeek Harness, Claude Code và Omnigent về kiến trúc, model, license, độ trưởng thành và yêu cầu chạy trên VPS, cập nhật 18/8/2026.

DeepSeek Harness và Claude Code và Omnigent: bạn cần công cụ nào

DeepSeek Harness, Claude Code và Omnigent đều được gọi là agent harness, nhưng chúng giải quyết các phần khác nhau của bài toán. DeepSeek Harness là một plugin runtime có web UI (giao diện người dùng), trong đó bạn tự cung cấp model. Claude Code là chương trình terminal của Anthropic, chạy các model của Anthropic. Omnigent là một orchestrator của Databricks, dùng để điều khiển các harness khác, trong đó có Claude Code, thay vì tự triển khai agent loop. Không công cụ nào là bản thay thế trực tiếp cho công cụ khác. Vì vậy, câu hỏi cần trả lời là bạn đang thiếu lớp nào.

Các tiêu chí thực sự khác nhau là kiến trúc, mức phụ thuộc vào model, interface, độ trưởng thành và license. Tất cả phiên bản và ngày tháng bên dưới đã được kiểm tra vào ngày 18 August 2026. Hai trong ba công cụ thay đổi đủ nhanh để bạn nên kiểm tra lại trước khi quyết định dùng một công cụ.

DeepSeek Harness là gì, và mô hình plugin mang lại lợi ích gì?

DeepSeek đã công bố DeepSeek Harness, hay dsh, tại github.com/deepseek-ai/deepseek-harness vào tháng 8 năm 2026. Phần mô tả repository tóm tắt toàn bộ thiết kế bằng 4 từ: mọi thứ đều là plugin. Model adapter, tool registry, session log, sandbox và chính agent loop đều là plugin, được runtime dựa trên Cordis load vào. Việc sử dụng diễn ra nhanh bất thường, và repository đã vượt mốc 150,000 star chỉ vài ngày sau khi được công bố (kiểm tra ngày 18 tháng 8 năm 2026).

DeepSeek Harness hiện đang ở giai đoạn developer preview và được thay đổi nhanh. SẼ CÓ CÁC THAY ĐỔI GÂY MẤT TƯƠNG THÍCH.

Đây là cảnh báo của chính README, đồng thời là câu quan trọng nhất trong phần so sánh này. Bất kỳ thứ gì bạn viết dựa trên plugin API (application programming interface) hôm nay đều có thể phải viết lại.

Khởi động bằng npx. Bạn cần cài Node.js trước:

npx @deepseek-ai/dsh web

Lệnh này in ra URL của ứng dụng. Mặc định, web UI được phục vụ tại http://127.0.0.1:3080. Nếu build từ source, dùng pnpm thay thế:

git clone https://github.com/deepseek-ai/deepseek-harness.git
cd deepseek-harness
pnpm install
pnpm run build
pnpm dsh web

dsh web là dạng viết tắt của dsh --profile web. Profile là một directory bên dưới $DSH_HOME/profiles/, và launcher sẽ khởi động profile mà bạn chỉ định. Điều này quan trọng vì cũng có một profile headless: dsh --profile headless "job" chạy một session đã được persist, in kết quả rồi thoát. Đây là dạng phù hợp cho cron job hoặc build step. Các launcher flag như --profile--patch phải được đặt trước các argument của application, vì launcher dừng việc parse tại điểm chuyển giao. Flag như --port thuộc về profile đã được khởi động, không thuộc về launcher, nên vị trí của nó rất quan trọng. Plugin được quản lý bằng cách chuyển tiếp argument đến pnpm, như trong dsh plugin --profile web add <package>.

Claude Code là gì và vì sao đây là một chương trình chạy trong terminal?

Claude Code là agent CLI (command line interface) của Anthropic. Bản thân sản phẩm không có web UI. Nó chạy trong terminal, tại thư mục bạn muốn xử lý. Vì vậy, Claude Code rất phù hợp với một server session. Cài đặt bằng một command trên macOS, Linux và WSL:

curl -fsSL https://claude.ai/install.sh | bash
claude --version

Cài đặt thành công sẽ in ra version và tên sản phẩm, ví dụ 2.1.211 (Claude Code). Nếu lệnh đó lỗi, claude doctor sẽ in thông tin chẩn đoán chỉ đọc về installation và settings mà không khởi động session. Ngoài ra còn có npm package npm install -g @anthropic-ai/claude-code. Từ v2.1.198, package này yêu cầu Node.js 22 trở lên. Nó cài cùng native binary, nên claude đã cài không dùng Node.js khi runtime. Anthropic cũng cung cấp các repository apt, dnf và apk có chữ ký cho Debian, Ubuntu, Fedora, RHEL và Alpine. Đây là lựa chọn phù hợp hơn trên server được quản lý bằng configuration management, vì các bản cập nhật sẽ đi qua quy trình upgrade thông thường của bạn.

Claude Code yêu cầu tài khoản Pro, Max, Team, Enterprise hoặc Console. Gói Claude.ai miễn phí không bao gồm quyền truy cập. Việc quyết định giữa subscription Claude và thanh toán API ảnh hưởng đến chi phí nhiều hơn bất kỳ setting nào trong tool.

Omnigent là gì và meta-harness điều phối những gì?

Databricks công bố Omnigent vào tháng 6 năm 2026 và phát hành dự án theo giấy phép Apache 2.0. Dự án tự gọi mình là meta-harness. Nó không triển khai agent loop. Nó điều khiển các agent loop đã có sẵn, gồm Claude, Codex, Cursor, OpenCode, Hermes, Pi và agents SDK (software development kit) của OpenAI. Một số agent xuất hiện 2 lần trong danh sách harness: một bản giao tiếp với SDK của nhà cung cấp, và một bản native bọc chương trình terminal thực tế của nhà cung cấp.

Một agent là một file YAML, trong đó YAML là định dạng cấu hình dạng văn bản thuần:

name: my_agent
prompt: You are a helpful data analyst.

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: Search for relevant information.

Dòng executor.harness là mục tiêu chính của toàn bộ dự án. Đổi claude-sdk thành codex thì cùng một prompt với cùng bộ công cụ sẽ chạy trên một nhà cung cấp khác. Tool có thể là một hàm Python, một MCP (model context protocol) server hoặc một agent khác. Trường hợp cuối là cách biểu diễn công việc nhiều agent: sub-agent đơn giản là một tool. Nếu bạn chưa xác định nên đặt skills, MCP server và rules file ở đâu, sự khác nhau giữa agent skills, MCP và rules file là phần nên đọc trước, vì Omnigent kế thừa các thành phần mà harness bên dưới hỗ trợ.

Ví dụ được phát hành giúp ý tưởng này dễ hình dung hơn. Polly là một coding orchestrator không tự viết code. Nó lập kế hoạch, giao việc song song cho các coding sub-agent trong các git worktree, rồi chuyển từng diff cho một reviewer chạy trên model của nhà cung cấp khác.

Cài đặt bằng script đã được phát hành:

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

Hoặc cài thủ công. Cách này cần Python 3.12 hoặc mới hơn:

uv tool install omnigent
omnigent setup
omnigent start

pip install "omnigent" cũng hoạt động, và chọn extras theo cách thông thường bằng uv tool install "omnigent[databricks,modal]". omnigent setup thu thập credentials và các giá trị mặc định. omnigent start khởi động server, đăng ký máy này làm host và cung cấp web UI tại http://localhost:6767. omnigent server statusomnigent stop là 2 lệnh còn lại bạn sẽ dùng hằng ngày. Chạy omnigent không có tham số sẽ mở một interactive session mà không khởi động server.

Danh sách dependency dài hơn những gì one-line installer cho thấy: Python 3.12 hoặc mới hơn, git, Node.js 22 LTS (long term support) hoặc mới hơn cùng npm và pnpm, tmux cho các native terminal wrapper, và bubblewrap (bwrap) cho Linux sandbox. Đây là hệ quả trực tiếp của thiết kế. Omnigent phải tự cài đặt và giám sát các vendor CLI, nên đây là phần mềm Python có nhiệm vụ chạy phần mềm Node.js.

Nhà cung cấp model là ai và ai trả phí?

Đây là tiêu chí có ảnh hưởng thực tế lớn nhất, và ba câu trả lời thực sự khác nhau.

DeepSeek Harness dùng mô hình tự cung cấp provider. Danh mục provider được cài sẵn hỗ trợ Anthropic, OpenAI, Bedrock, Vertex, Azure và Codex. Một mục custom provider cần có provider id viết thường, tên hiển thị, base URL, API protocol, credential và ít nhất một model. Nhờ đó, bạn có thể trỏ nó đến gateway của công ty hoặc server tự host. Các key được ghi vào $DSH_HOME/.credentials.yaml, còn $DSH_HOME/settings.yaml chỉ lưu reference đến các key đó. Vì vậy, có thể chia sẻ file settings, nhưng không được chia sẻ file credentials. Một mục gateway cũng có thể chỉ định một biến môi trường, chẳng hạn như apiKeyEnv: GATEWAY_API_KEY. Dù có tên dự án như vậy, DeepSeek Harness không buộc bạn sử dụng model của DeepSeek.

Claude Code được thiết kế để gắn với một vendor duy nhất. Bạn đăng nhập bằng tài khoản trả phí, hoặc đặt ANTHROPIC_API_KEY để Claude Code chỉ hỏi bạn một lần nhằm xác nhận key đó thay vì mở trình duyệt. Cách thứ hai hoạt động trên headless server. Các tổ chức đã mua capacity từ nơi khác có thể định tuyến qua Amazon Bedrock, Agent Platform của Google Cloud hoặc Microsoft Foundry.

Omnigent cần mọi thứ mà harness bên dưới yêu cầu và thu thập chúng bằng omnigent setup. Nó hỗ trợ API key, subscription CLI hiện có, gateway tương thích với OpenAI hoặc Anthropic, và workspace Databricks. Đây là chi phí thực sự của một meta-harness: một máy cuối cùng phải lưu credential của mọi vendor. Hãy đọc cách giữ secret ngoài tầm với của AI agent trước khi cho máy đó kết nối với public Internet.

Mức độ trưởng thành của từng công cụ tính đến tháng 8 năm 2026 như thế nào?

Claude Code đã được cung cấp rộng rãi từ năm 2025 và thuộc dòng 2.1.x tính đến tháng 8 năm 2026. Công cụ này tự động cập nhật trong nền, cung cấp các kênh phát hành lateststable, công bố các release manifest được ký bằng GPG, đồng thời có tài liệu về minimumVersion pin cho các tổ chức cần đặt phiên bản tối thiểu. Đây là hồ sơ của một sản phẩm đã được sử dụng trong production.

Omnigent được công khai từ tháng 6 năm 2026, vẫn thuộc dòng 0.x, và README mô tả công cụ này là alpha. Hãy dự kiến rằng cả danh sách harness lẫn YAML schema sẽ còn tiếp tục thay đổi. Công cụ này có thể sử dụng được, nhưng chưa ổn định.

DeepSeek Harness mới hơn đáng kể so với hai công cụ còn lại. Công cụ được công bố vào tháng 8 năm 2026, chỉ vài ngày trước khi bài so sánh này được viết, và README của chính dự án nêu rõ sẽ có các thay đổi làm mất khả năng tương thích. Số lượng star rất lớn cho biết nhiều người đang theo dõi dự án. Nó không cho biết gì về việc plugin API đã ổn định hay chưa.

Mỗi công cụ sử dụng licence nào?

DeepSeek Harness sử dụng MIT, với các licence của bên thứ ba được công bố trong THIRD_PARTY_NOTICES.md. Omnigent sử dụng Apache 2.0. Claude Code không phải là open source: đây là sản phẩm thương mại của Anthropic, và để chạy cần có tài khoản trả phí hoặc quyền truy cập API được tính phí. Nếu yêu cầu của bạn là có thể đọc và chỉnh sửa mọi dòng code, Claude Code bị loại ngay từ trước khi bắt đầu so sánh tính năng. Nếu yêu cầu của bạn là công cụ vẫn hoạt động vào tháng sau mà không cần bạn can thiệp, thì yêu cầu đó lại nghiêng theo hướng ngược lại.

Cần gì để chạy từng công cụ trên VPS?

Claude Code là công cụ đơn giản nhất trong 3 công cụ. Cài đặt, đăng nhập và chạy trong tmux để session vẫn tồn tại khi kết nối SSH (secure shell) bị ngắt. Anthropic yêu cầu 4 GB RAM (random access memory) trở lên và bộ xử lý x64 hoặc ARM64, trên Ubuntu 20.04 trở lên, Debian 10 trở lên hoặc Alpine 3.19 trở lên. Trên Alpine, trước tiên bạn cũng cần cài bash, curl, libgcc, libstdc++ripgrep, vì lệnh cài đặt sẽ lỗi với lỗi not found nếu thiếu các gói này. Chạy Claude Code trên VPS trong tmux trình bày chi tiết cách xử lý session.

DeepSeek Harness cần Node.js và một trình duyệt trỏ đến web UI của công cụ. README yêu cầu Node.js nhưng không nêu phiên bản tối thiểu, vì vậy Node 22 LTS là lựa chọn an toàn, do đây là phiên bản mà hệ sinh thái xung quanh hướng đến. Không public port 3080. Giữ server lắng nghe trên 127.0.0.1 và forward port từ laptop:

ssh -N -L 3080:127.0.0.1:3080 you@your-vps

Sau đó mở http://127.0.0.1:3080 trên máy local. Cài đặt đầy đủ DeepSeek Harness trên VPS trình bày layout profile và các lệnh plugin.

Omnigent nặng nhất vì nó cài đặt và giám sát CLI của các bên khác. Công cụ này cần Python 3.12, Node.js 22, npm, pnpm, tmux và bubblewrap trên cùng một máy, sau đó còn tải xuống từng vendor CLI mà bạn bật. Forward port theo cách tương tự:

ssh -N -L 6767:127.0.0.1:6767 you@your-vps

Với server được người khác sử dụng, cách được hỗ trợ là triển khai Docker trong deploy/. Cách này mặc định bật tài khoản multi-user. Bạn cũng có thể có hành vi tương tự trên server khởi động thủ công bằng cách đặt OMNIGENT_AUTH_ENABLED=1. Đăng nhập OIDC (OpenID Connect) hoạt động với Google, GitHub, Okta và Microsoft. Hướng dẫn harness multi-agent của Omnigent trình bày các sandbox provider, vốn bắt đầu trở nên quan trọng ngay khi agent ghi dữ liệu vào disk.

Vì sao giao diện web trống khi truy cập bằng địa chỉ IP public của server?

Cả hai web harness đều listen trên loopback theo mặc định. Cách xử lý dễ nghĩ đến là bind chúng vào 0.0.0.0 rồi mở port. Tuy nhiên, có 2 vấn đề riêng biệt. Vấn đề đầu tiên là bảo mật: ở local mode mặc định, cả hai đều không có authentication. Vì vậy, một port được mở cũng đồng nghĩa với một shell không được bảo vệ trên VPS của bạn. Vấn đề thứ hai là một quy tắc của browser thường gây bất ngờ. crypto.randomUUID() chỉ được định nghĩa trong secure context, tức là HTTPS (hypertext transfer protocol secure), localhost hoặc 127.0.0.1. Khi tải cùng UI qua một địa chỉ không mã hóa như http://203.0.113.10:3080, browser console sẽ báo:

TypeError: crypto.randomUUID is not a function

Sau đó, trang chỉ render một phần hoặc không render được, vì việc tạo session fail trước khi bất kỳ thành phần nào được vẽ. Server không bị lỗi và log sẽ chỉ hiển thị một request bình thường. Browser không tin cậy origin này, nên một function mà front end phụ thuộc vào chưa bao giờ được định nghĩa. SSH tunnel khắc phục được vấn đề này mà không cần certificate, vì 127.0.0.1 được tính là secure context. Reverse proxy sử dụng certificate TLS (transport layer security) thật cũng khắc phục được vấn đề, nhưng khi đó bạn phải tự thêm authentication.

Công cụ nào phù hợp với bạn?

Chọn Claude Code nếu bạn muốn một coding agent có thể dùng ngay hôm nay, sẵn sàng trả phí cho Anthropic và đã làm việc chủ yếu trong terminal. Đây là công cụ duy nhất trong 3 lựa chọn đã là một sản phẩm thương mại hoàn chỉnh, thay vì chỉ là bản preview.

Chọn DeepSeek Harness nếu mô hình plugin mới là yếu tố quan trọng: bạn muốn thay model adapter, sandbox hoặc agent loop, và chấp nhận rằng interface mình tích hợp vào sẽ thay đổi. Danh mục provider của công cụ này có cả Anthropic và OpenAI, nên chọn nó là đặt cược vào runtime, không phải vào model của DeepSeek.

Chọn Omnigent nếu bạn đã chạy nhiều agent CLI và vấn đề thực sự là điều phối: policy, sandboxing, review bằng model của vendor thứ hai và một session dùng chung để người khác có thể theo dõi. Công cụ này thêm một layer vào stack của bạn, và một layer không cần thiết cũng là một layer có thể gây lỗi. Nếu nhu cầu điều phối của bạn đơn giản hơn, 2 session Claude Code trên cùng một máy có thể gửi message cho nhau mà không cần orchestrator ở giữa.

Nếu bạn vẫn đang lập danh sách lựa chọn, coding agent Mimo Code AI thuộc cùng nhóm terminal-agent với Claude Code. Bạn cũng nên đọc chạy coding agent trong một VM dùng một lần dù chọn công cụ nào, vì không có công cụ nào trong 3 lựa chọn này tự làm cho rm -rf bất cẩn trở nên an toàn. Cả 3 công cụ cũng không quyết định diff mà agent đề xuất lớn đến mức nào. Đây là vấn đề ở cấp prompt, nên một skill hướng agent đến thay đổi nhỏ nhất nhưng vẫn hoạt động đáng được thêm vào trên harness mà bạn chọn.

FAQ

Tôi có cần gói Anthropic trả phí để dùng Claude Code không?

Có. Claude Code yêu cầu tài khoản Pro, Max, Team, Enterprise hoặc Console. Gói Claude.ai miễn phí không bao gồm quyền truy cập. Trên VPS không có giao diện, hãy đặt ANTHROPIC_API_KEY trước lần chạy đầu tiên. Sau đó Claude Code sẽ nhắc bạn một lần để phê duyệt key đó, thay vì cố mở browser. Các tổ chức có capacity ở nơi khác có thể trỏ nó đến Amazon Bedrock, Google Cloud's Agent Platform hoặc Microsoft Foundry.

DeepSeek Harness có chạy được model Claude hoặc OpenAI không?

Có. Danh mục provider được cài sẵn bao gồm Anthropic, OpenAI, Bedrock, Vertex, Azure và Codex. Bạn thêm key cho từng provider trong Settings rồi đến Models. Provider không có trong danh mục được thêm dưới dạng custom provider. Provider này cần provider id viết thường, base URL, API protocol, credential và ít nhất một model. Các key được lưu trong $DSH_HOME/.credentials.yaml, còn $DSH_HOME/settings.yaml chỉ chứa một reference. Vì vậy, hãy backup riêng file credential và không đưa file này vào version control.

Omnigent có thay thế Claude Code không?

Không. Omnigent chạy Claude Code. Danh sách harness của nó bao gồm Claude, Codex, Cursor, OpenCode, Hermes và Pi. Agent chọn một harness bằng một dòng harness: duy nhất trong file YAML của nó. Bạn vẫn phải tự cài đặt và xác thực CLI tương ứng. Omnigent bổ sung orchestration, policy và sandboxing ở phía trên lớp đó. Vì vậy, các dependency của nó chỉ đáng dùng khi bạn chạy nhiều hơn một agent hoặc nhiều hơn một vendor.

Vì sao web UI của DeepSeek Harness bị trống trên public IP của server?

Vì origin HTTP thuần không phải là secure context, crypto.randomUUID() chưa được định nghĩa tại đó, và browser console báo TypeError: crypto.randomUUID is not a function. Việc tạo session thất bại, nên trang chỉ render một phần hoặc không render dù log của server vẫn bình thường. Hãy forward port qua SSH bằng ssh -N -L 3080:127.0.0.1:3080 you@your-vps rồi mở http://127.0.0.1:3080, vì loopback được tính là secure context. Reverse proxy với certificate TLS hợp lệ cũng hoạt động. Khi đó, bạn phải tự thêm authentication.

VPS cần bao nhiêu RAM cho các harness này?

Anthropic công bố Claude Code cần 4 GB trở lên. DeepSeek Harness và Omnigent không công bố con số, nên hãy đo thay vì phỏng đoán. Trong cả 3 trường hợp, model chạy từ xa. Harness chỉ thực hiện process supervision và thao tác file, không chạy inference. Kích thước máy thực sự phụ thuộc vào công việc agent thực hiện trên đó, chẳng hạn như build và test suite. Omnigent cần nhiều tài nguyên nhất, vì Python, Node.js, tmux và mọi vendor CLI bạn bật đều chạy trên cùng một máy.