DeepSeek Harness v0.1: Hướng dẫn cài đặt kiến trúc Cordis

deepseek v4trang chủ deepseekhướng dẫn deepseekDeepSeek HarnessAgent

Sơ đồ kiến trúc khung Agent và plugin mã nguồn mở DeepSeek Harness

DeepSeek chính thức phát hành mã nguồn mở DeepSeek Harness (dsh). Đây là một khung làm việc mã nguồn mở dành cho các ứng dụng Agent, hiện đang ở bản v0.1 Developer Preview và sử dụng giấy phép MIT. Nó không phải là một mô hình ngôn ngữ lớn mới, cũng không chỉ đơn thuần là một trang web chat; mà nó là lớp nền tảng kết nối các mô hình, công cụ, hệ thống tệp, môi trường sandbox, phiên làm việc và giao diện người dùng.

Nếu coi DeepSeek V4 là “bộ não” chịu trách nhiệm về khả năng hiểu và suy luận, thì Harness chính là “bàn làm việc” giúp mô hình đọc được dự án, gọi công cụ, thực thi lệnh, lưu trạng thái nhiệm vụ và hoàn thành công việc liên tục. Bài viết này không bàn về các khẩu hiệu quảng bá, mà tập trung vào việc giải thích DeepSeek Harness là gì, nó hoạt động ra sao, phù hợp với những tình huống nào, và người dùng phổ thông nên lựa chọn như thế nào.

DeepSeek Harness là gì?

Các ứng dụng chat thông thường thường vận hành theo quy trình “người dùng đặt câu hỏi — mô hình trả lời”. Trong khi đó, một nhiệm vụ của Agent cần thực hiện thêm nhiều bước: mô hình trước tiên phải phán đoán hành động tiếp theo, sau đó gọi công cụ, đọc kết quả thực thi và nếu cần thiết, sẽ lên kế hoạch lại cho đến khi nhiệm vụ hoàn thành. Hệ thống chịu trách nhiệm điều phối quy trình này chính là Agent Harness.

DeepSeek Harness do DeepSeek AI phát triển, sử dụng khung nền tảng Cordis. Tư tưởng cốt lõi được đưa ra bởi các nhà phát hành khá trực tiếp: Everything is a Plugin (Mọi thứ đều là plugin). Trình kết nối mô hình, bảng đăng ký công cụ, nhật ký phiên, Agent Loop, thậm chí cả giao diện và chính sách phê duyệt, đều có thể được tải vào, thay thế hoặc kết hợp dưới dạng plugin.

Điều này có nghĩa là đội ngũ không cần phải viết lại toàn bộ hệ thống Agent chỉ để thay đổi mô hình, môi trường sandbox hoặc hệ thống công cụ. Một cấu hình có thể tạo ra ứng dụng web, trong khi một cấu hình khác có thể chạy các tác vụ tự động không có giao diện; ranh giới giữa mã nghiệp vụ và năng lực nền tảng cũng trở nên rõ ràng hơn.

Mối quan hệ giữa nó với DeepSeek V4 và trang chủ DeepSeek?

Ba khái niệm này dễ bị nhầm lẫn với nhau, bạn có thể phân biệt chúng qua bảng sau:

TênVai trò chínhĐối tượng phù hợp
DeepSeek V4Cung cấp các năng lực mô hình như hiểu ngôn ngữ, suy luận, tạo mãCá nhân và nhà phát triển cần đến năng lực mô hình
Trang chủ DeepSeek và cổng chatCung cấp trải nghiệm trò chuyện trực tuyến sẵn sàng sử dụng ngay lập tứcNgười dùng muốn đặt câu hỏi nhanh, viết lách, dịch thuật hoặc xử lý tài liệu
DeepSeek HarnessKết hợp mô hình, công cụ, phiên, hệ thống tệp và quy trình thực thi thành một AgentNhà phát triển muốn xây dựng, tùy chỉnh hoặc nghiên cứu hệ thống Agent

Do đó, Harness không thay thế cho mô hình. Nó giải quyết vấn đề “làm thế nào để mô hình tham gia vào các nhiệm vụ thực tế một cách đáng tin cậy”. Nếu bạn chỉ muốn trải nghiệm trực tiếp mô hình, hãy bắt đầu từ cổng trang chủ DeepSeek của trang này; nếu muốn tìm hiểu cách sử dụng cơ bản, hãy tiếp tục đọc Hướng dẫn DeepSeek và Hướng dẫn sử dụng phiên bản web.

”Mọi thứ đều là plugin” giải quyết vấn đề gì?

Các dự án Agent truyền thống dễ dàng trộn lẫn việc gọi mô hình, thực thi công cụ, trạng thái phiên và logic giao diện vào chung một khối. Khi chức năng ít, bạn khó nhận ra vấn đề, nhưng một khi cần chuyển đổi mô hình, kết nối sandbox từ xa hoặc thêm quy tắc phê duyệt, mọi thứ có thể trở nên phức tạp và liên đới lớn.

DeepSeek Harness tách các năng lực thành các giao diện có thể thay thế. Tài liệu kiến trúc chính thức gọi ranh giới này là capability seam (ranh giới năng lực), thường bao gồm ba vai trò: Service Definition (Định nghĩa dịch vụ) để xác định giao diện, Service Provider (Nhà cung cấp dịch vụ) để triển khai năng lực, và Consumer (Người tiêu dùng) để gọi năng lực. Ví dụ với hệ thống tệp, các thư mục cục bộ, container từ xa và sandbox bị hạn chế có thể cung cấp cùng một loại giao diện, trong khi các công cụ ở lớp trên không cần biết tập tin thực sự tồn tại ở đâu.

Lớp PluginNội dung chịu trách nhiệmGiá trị mang lại bởi khả năng thay thế
Trình kết nối mô hìnhYêu cầu mô hình, tin nhắn và đầu ra luồngCó thể tích hợp nhiều loại mô hình hoặc điểm cuối tương thích
Công cụ và quyền hạnĐăng ký công cụ, kiểm tra trước khi gọi, thực thi và xử lý kết quảCó thể giới hạn quyền đọc/ghi, lệnh và mạng theo từng tình huống
Phiên và nhật kýLưu tin nhắn, cuộc gọi công cụ, kết quả và sự thay đổi trạng tháiHỗ trợ khôi phục, phát lại, phân nhánh và kiểm toán
Hệ thống tệp và SandboxĐọc/ghi file, thực thi lệnh và môi trường cách lyCó thể chuyển đổi giữa môi trường thực thi cục bộ và từ xa
Agent LoopTổ chức yêu cầu mô hình, cuộc gọi công cụ và các bước tiếp theoCó thể tùy chỉnh vòng lặp nhiệm vụ và điều kiện dừng
Web hoặc HeadlessCung cấp giao diện trình duyệt hoặc chế độ chạy không có giao diệnCùng một tập năng lực có thể dùng cho tương tác và tự động hóa

Giá trị thực sự của việc plugin hóa không nằm ở “số lượng plugin nhiều”, mà nằm ở việc giảm chi phí thay thế. Nhà phát triển chỉ cần thay đổi một nhà cung cấp năng lực, thay vì sao chép và bảo trì toàn bộ một hệ thống Agent.

DeepSeek Harness hoàn thành một nhiệm vụ như thế nào?

Các nhà phát hành gọi một nhiệm vụ người dùng là Turn (Lượt), trong đó một Turn có thể chứa nhiều Step (Bước). Mỗi Step tương ứng với một yêu cầu mô hình và các cuộc gọi công cụ được kích hoạt bởi yêu cầu đó. Quy trình đơn giản hóa như sau:

  1. Harness nhận tin nhắn người dùng và tập hợp nhắc hệ thống, lịch sử tin nhắn và các công cụ hiện có.
  2. Mô hình phán đoán xem nên trả lời trực tiếp hay gọi các công cụ như file, terminal, tìm kiếm.
  3. Cuộc gọi công cụ đi qua chính sách quyền hạn và đường ống thực thi, kết quả được ghi vào nhật ký phiên.
  4. Nếu kết quả công cụ yêu cầu mô hình tiếp tục xử lý, Harness sẽ khởi động Step tiếp theo.
  5. Khi không còn lệnh gọi công cụ hoặc đầu vào mới cần xử lý, lượt nhiệm vụ này kết thúc.

Nhật ký phiên là phần quan trọng của kiến trúc này. Những nội dung mà mô hình đã xem phải có thể được khôi phục lại từ nhật ký; tin nhắn, cuộc gọi công cụ, đầu ra luồng và sự thay đổi trạng thái đều có thể trở thành các sự kiện lưu trữ lâu dài. Điều này thuận tiện cho việc khôi phục nhiệm vụ, khắc phục lỗi và cung cấp căn cứ đáng tin cậy cho việc phát lại sau này và kiểm toán.

Những tình huống nào phù hợp để sử dụng DeepSeek Harness?

1. Agent lập trình cần đọc/ghi dự án

Khi nhiệm vụ không chỉ đơn thuần là tạo ra một đoạn mã, mà còn phải hiểu kho lưu trữ (repository), sửa đổi nhiều tập tin, chạy các kiểm tra và tiếp tục sửa lỗi dựa trên thông báo lỗi, Harness có thể kết hợp hệ thống tệp, terminal, LSP, kế hoạch và phê duyệt vào cùng một quy trình. Nó phù hợp hơn với các nhiệm vụ liên tục chứ không phải là hỏi đáp mã nguồn chỉ xảy ra một lần.

2. Tự động hóa công cụ và quy trình nội bộ doanh nghiệp

Đội ngũ có thể chỉ tải vào các công cụ cần thiết cho nghiệp vụ, và đặt các thao tác nhạy cảm sau bước phê duyệt. Ví dụ, Agent tra cứu tài liệu chỉ mở quyền đọc, trong khi Agent phát hành mới được phép ghi vào các thư mục chỉ định. Quyền hạn đến từ ranh giới giữa công cụ và sandbox, dễ quản lý hơn nhiều so với việc đơn thuần viết “không được sửa đổi file” trong lời nhắc (prompt).

3. Thử nghiệm đa mô hình hoặc môi trường thực thi đa dạng

Khi cần so sánh các tổ hợp mô hình, công cụ khác nhau và cách triển khai sandbox, cấu trúc plugin giúp giảm thiểu công trình trùng lặp. Nhà phát triển có thể giữ nguyên nhiệm vụ và giao diện, chỉ thay thế trình kết nối mô hình hoặc backend thực thi, sau đó quan sát tỷ lệ thành công, thời gian tiêu tốn và loại lỗi.

4. Nhiệm vụ dài, tác vụ nền và hợp tác đa Agent

Các nhiệm vụ phức tạp thường cần được chia nhỏ, chờ kết quả bên ngoài hoặc giao cho Agent con. Harness đã đặt các khả năng liên quan đến phiên, mục tiêu, công việc nền và Agent con vào một kiến trúc thống nhất, phù hợp để xây dựng các quy trình dài có thể khôi phục và quan sát được. Tuy nhiên, v0.1 vẫn đang ở giai đoạn Developer Preview; trước khi đưa vào sản xuất cần thực hiện kiểm tra kỹ lưỡng.

5. Nghiên cứu khung Agent và plugin

Đối với các tác giả khung làm việc, giá trị của DeepSeek Harness còn nằm ở việc nó cung cấp một thư viện mã nguồn thực tế: cách phân chia Agent Loop, sự kiện phiên, thực thi công cụ, giao diện năng lực và UI. Các nhà nghiên cứu có thể đọc, sửa đổi và xác minh thiết kế dựa trên giấy phép MIT mà không cần chỉ phụ thuộc vào các bài viết lý thuyết.

Những trường hợp không cần sử dụng?

Không phải tất cả người dùng DeepSeek đều cần cài đặt Harness.

  • Nếu chỉ làm việc đặt câu hỏi, viết lách, dịch thuật hoặc sắp xếp tài liệu, việc sử dụng chat trực tuyến thuận tiện hơn hẳn.
  • Nếu chỉ gọi API mô hình một lần, không có vòng lặp công cụ và phiên lưu trữ lâu dài, SDK thông thường đã đủ dùng.
  • Đội ngũ nếu chưa có kinh nghiệm với Node.js, sandbox, quyền hạn và bảo trì plugin thì không nên đưa bản preview vào quy trình sản xuất quan trọng ngay lập tức.
  • Nếu nhu cầu rất cố định và kịch bản tự động hóa hiện tại đang hoạt động ổn định, việc chuyển đổi sang Agent có thể không mang lại lợi ích đáng kể.

Tiêu chí phán đoán rất đơn giản: Nhiệm vụ có cần mô hình sử dụng công cụ qua nhiều bước lặp, đọc trạng thái và tiếp tục hành động dựa trên kết quả hay không? Nếu câu trả lời là không, thì không nhất thiết phải tăng độ phức tạp của hệ thống chỉ để theo đuổi khái niệm mới.

Hướng dẫn nhanh bắt đầu với DeepSeek Harness

Hiện tại, cách trực tiếp nhất là khởi động Web UI thông qua npm. Trước tiên hãy cài đặt phiên bản Node.js được hỗ trợ, sau đó chạy lệnh:

npx @deepseek-ai/dsh web

Mặc định, giao diện web sẽ chạy trên http://127.0.0.1:3080. Sau khi vào giao diện, bạn có thể thực hiện theo các bước sau:

  1. Mở mục Models trong phần Cài đặt (Settings), điền DeepSeek API Key và lưu lại.
  2. Chọn một thư mục làm việc; ô nhập nhiệm vụ sẽ chưa được kích hoạt cho đến khi chọn workspace.
  3. Tạo phiên mới, bắt đầu với các nhiệm vụ chỉ đọc như “Tóm tắt kho lưu trữ này và giải thích các thư mục chính”.
  4. Kiểm tra nhắc phê duyệt cho mỗi thao tác công cụ, xác nhận phạm vi quyền hạn phù hợp với mong đợi.
  5. Sau đó thử các thao tác phức tạp hơn như sửa đổi file, chạy thử nghiệm hoặc chia nhỏ nhiệm vụ con.

Nếu cần chạy từ mã nguồn, hãy clone kho lưu trữ chính thức, sau đó cài đặt dependency và build:

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

Khuyến nghị tách biệt thư mục dùng thử khỏi thư mục sản xuất thật, không cấp quyền truy cập vào file nhạy cảm, thông tin xác thực hoặc lệnh có rủi ro cao khi chưa hiểu rõ về chính sách quyền hạn. Các hướng dẫn cơ bản khác cũng có thể xem tại Hướng dẫn sử dụng trang chủ DeepSeek của trang này.

Những hạn chế cần lưu ý trước khi sử dụng

Nhà phát hành DeepSeek đã nêu rõ rằng phiên bản hiện tại là Developer Preview, sẽ cập nhật nhanh chóng trong tương lai và có thể xuất hiện các thay đổi phá vỡ tính tương thích (breaking changes). Do đó, cấu hình, giao diện plugin hoặc cách thức vận hành đều có khả năng bị điều chỉnh.

Trước khi áp dụng chính thức, ít nhất bạn nên xác nhận bốn điều sau: Khóa phiên bản đã được kiểm thử; xác thực plugin trong môi trường biệt lập; thiết lập phê duyệt cho các thao tác ghi, lệnh và mạng; giữ lại nhật ký phiên và xử lý thông tin nhạy cảm phù hợp. Việc mã nguồn mở và giấy phép MIT thuận tiện cho việc phát triển lại, nhưng không có nghĩa là bản preview đã có độ ổn định và đảm bảo an toàn cần thiết cho môi trường sản xuất.

Tổng kết

Vị thế của DeepSeek Harness có thể tóm tắt là: Tổ chức năng lực mô hình thành hệ thống Agent có thể thực thi, mở rộng và khôi phục. Nó dựa trên Cordis, đưa mô hình, công cụ, phiên, sandbox, hệ thống tệp, Agent Loop và UI vào chung một hệ thống plugin. Đối với các nhà phát triển cần tùy chỉnh Agent, chuyển đổi môi trường thực thi hoặc nghiên cứu kiến trúc Agent, đây là điểm xuất phát mã nguồn mở đáng để đi sâu tìm hiểu; còn đối với người dùng phổ thông, việc trực tiếp sử dụng chat online DeepSeek V4 vẫn là lựa chọn đơn giản hơn.

Nếu muốn trải nghiệm khả năng trò chuyện, tạo mã và xử lý tài liệu của DeepSeek V4 trước tiên, bạn có thể bắt đầu từ cổng bên dưới.

Nguồn tài liệu