Bỏ qua tới nội dung
Track 05 · Hướng dẫn

Hiểu về agent harness trong VS Code

Agent harness là gì, khác gì với model, vai trò agent, session target và môi trường thực thi, và cách cô lập code trong VS Code.

Trung cấp@shine19047 phút đọc

Bài này giải thích harness làm gì và nó khác gì với model, vai trò agent, session target và môi trường thực thi. Muốn chọn và cấu hình harness, xem Choose and use an agent harness.

Harness là gì

Agent harness là lớp phần mềm chạy một agent session. Nó biến model ngôn ngữ thành agent bằng cách nối model với ngữ cảnh (context) và tool, điều phối vòng lặp agent và lưu trạng thái session trong quá trình làm việc.

VS Code hỗ trợ nhiều harness, gồm Copilot, Claude và OpenAI Codex. Nhờ vậy bạn dùng được tool và quy trình (workflow) riêng của từng nhà cung cấp phù hợp với tác vụ, trong khi vẫn quản lý session qua cùng một trải nghiệm VS Code.

Model lo phần suy luận và quyết định nói gì hoặc xin gọi tool nào. Harness biến các quyết định đó thành một quy trình có trạng thái: chuẩn bị yêu cầu (request) gửi model, điều phối lời gọi tool và việc phê duyệt, trả kết quả về model, theo dõi hội thoại và thay đổi. Model và tool có thể chạy ở nơi khác với harness.

Một lượt đi qua harness

Khi bạn gửi prompt:

  1. Harness nhận yêu cầu cùng trạng thái session hiện tại, chuẩn bị chỉ dẫn, ngữ cảnh và định nghĩa tool cho model.
  2. Model suy luận và trả về phản hồi (response) hoặc một yêu cầu gọi tool.
  3. Với yêu cầu gọi tool, harness áp quy tắc quyền và phê duyệt đã cấu hình, chuyển lời gọi tới môi trường nơi tool chạy và lấy kết quả.
  4. Harness trả kết quả tool cho model. Model quyết định gọi tool tiếp, hỏi thêm input hay kết thúc.
  5. Harness gắn tin nhắn, lời gọi tool, kết quả và thay đổi code vào session, và hiển thị trạng thái trong VS Code.

Model chọn hành động; harness điều phối hệ thống thực hiện chúng.

Harness khác gì các khái niệm khác

Khái niệmQuyết định điều gìQuan hệ với harness
Language modelAgent suy luận và sinh phản hồi thế nào.Một harness có thể cung cấp nhiều model; cùng một model có thể có ở nhiều harness. Model có thể chạy ở nơi khác harness.
Agent roleChỉ dẫn, tool và hành vi áp cho tác vụ, ví dụ Agent, Plan, Ask và custom agent.Vai trò định hình hành vi bên trong một harness; đổi vai trò không thay harness.
Execution environmentNơi tool của workspace chạy và code được sửa: máy bạn, host đã kết nối, Dev Container hoặc hạ tầng cloud.Harness điều phối công việc trong môi trường được chọn; môi trường không phải là harness.
Session targetHarness hoặc cloud target mà VS Code dùng cho session.Control Session Target liệt kê các harness và target Cloud. Với session Agent Host, bộ chọn workspace chọn host hoặc Dev Container tách riêng khỏi harness.

Harness, runtime và host

Copilot harness dùng Copilot SDK để truy cập runtime agent chung của Copilot, runtime này cũng chạy Copilot CLI và ứng dụng GitHub Copilot. SDK cung cấp phần tích hợp (integration) với runtime, không phải model hay giao diện người dùng.

Trong VS Code, Agent Host chạy harness và sở hữu các session của nó; Chat view và Agents window hiển thị và điều khiển các session đó. Host cũng chạy được các harness khác, nên khả năng (capability) host session không chỉ dành cho Copilot.

Chọn harness thay đổi điều gì

Tuỳ harness và cấu hình, lựa chọn này ảnh hưởng tới:

  • Tool và khả năng: tool tích hợp sẵn, tool từ extension, MCP hoặc tích hợp riêng của nhà cung cấp, và cách harness định tuyến lời gọi tool.
  • Model: harness cung cấp model nào và cấu hình yêu cầu tới chúng ra sao.
  • Quy trình agent: lệnh, tuỳ biến và tính năng session riêng của nhà cung cấp.
  • Quyền: chế độ phê duyệt và thiết lập quyền tool được hỗ trợ.

Bản thân harness không quyết định model chạy ở đâu hay thay đổi code đi vào thư mục hay worktree; những điều đó tuỳ model, môi trường thực thi và tuỳ chọn cô lập mà session target hỗ trợ.

Session target và harness

VS Code có chung trải nghiệm chat, quản lý session, review thay đổi và handoff cho mọi session target:

Session targetHarnessMôi trường thực thi
LocalHarness tích hợp sẵn của VS Code, dùng được tool sẵn có, tool extension, MCP server và model cấu hình trong VS Code.Extension host trên máy bạn.
Copilot, Claude, or CodexHarness tương ứng của nhà cung cấp cùng các khả năng riêng.Máy bạn, host đã kết nối hoặc Dev Container, tuỳ host và harness có sẵn.
CloudHarness của cloud agent bạn chọn, như Copilot, Claude hoặc Codex.Hạ tầng cloud của nhà cung cấp, làm việc trên repo GitHub và trả kết quả qua pull request.

Cloud là một target thực thi gom các cloud agent có sẵn, không phải một harness riêng. Chọn Cloud xong, bạn chọn tiếp một cloud agent.

Môi trường thực thi và cô lập code

Môi trường thực thi quyết định nơi harness chạy tool và sửa code:

  • Máy bạn: làm việc với thư mục local hoặc Git worktree, truy cập được ngữ cảnh local như kết quả test, output terminal.
  • Host đã kết nối: harness chạy cạnh source code trên host SSH, Tunnel hoặc WSL. Xem remote agent sessions.
  • Dev Container: Agent Host chạy trong container của dự án và dùng tool, dependency đã cấu hình. Container có thể ở máy bạn hoặc trên host SSH, Tunnel, WSL được hỗ trợ.
  • Hạ tầng cloud: làm việc với repo GitHub và tạo pull request, dùng tool và model cấu hình trong dịch vụ cloud thay vì môi trường VS Code local.

Đây là nơi session làm việc với code, không phải nơi bạn kết nối từ đó hay nơi model chạy (xem cách client kết nối tới Agent Host). Harness nào dùng được tuỳ môi trường đã chọn.

Session trong Dev Container cần Agents window bản desktop và host hỗ trợ chạy Dev Container. Chọn container trong bộ chọn workspace là đổi môi trường thực thi, không đổi harness. Xem chạy session trong Dev Container.

Với session có tuỳ chọn folder và worktree, cô lập code quyết định thư mục nào nhận thay đổi:

  • Folder: sửa thẳng vào workspace hiện tại, kể cả phần chưa commit.
  • Worktree: session có một Git worktree riêng dựa trên trạng thái Git đã commit.
  • Session Dev Container làm việc thẳng trong workspace của container và không hỗ trợ New Worktree.

Đổi session target cho công việc đang dở là một dạng handoff: lịch sử hội thoại và ngữ cảnh được chuyển sang harness hoặc môi trường mới.

Tài liệu liên quan

Nguồn

Viết thêm guide cho track này