Bỏ qua để đến nội dung

Chế độ

Chế độ là một thuộc tính của space, được lưu thành một cột trên hàng space. Mọi cuộc hội thoại bên trong một space đều dùng chung chế độ đó, kể cả các luồng — một luồng thừa hưởng chế độ của space chứa nó như mọi cuộc hội thoại khác. Vì vậy cùng một agent có thể ở những chế độ khác nhau trong các space khác nhau cùng một lúc, và đổi chế độ của một space sẽ thay đổi điều xảy ra ở lượt kế tiếp mà không đụng tới agent.

Có đúng bốn chế độ: chat, review, plan, orchestrate. Bản thân enum không mang chính sách nào. Mọi thứ mà một chế độ bảo đảm đều được khai báo một lần, trong một hồ sơ năng lực, và mọi lớp thực thi đều chiếu ra từ đó:

  1. Bề mặt công cụ — những công cụ tồn tại trong chế độ đó, được biểu diễn bằng cấp phê duyệt tối đa, một danh sách cho phép, một danh sách từ chối và một tập hợp các lớp hiệu ứng bị từ chối.
  2. Động từ đầu ra bắt buộc — thứ mà lượt chạy phải gọi thì mới được coi là đã giao được gì đó.
  3. Các lớp hiệu ứng bị từ chối — thứ mà bộ chặn hành động từ chối thẳng.
  4. Trạng thái worktree — liệu worktree có được ghi hay không. Điều này được thực thi bằng cách gỡ các công cụ thay đổi khỏi bề mặt, và chính điều đó khiến nó đúng trên mọi host. Ở đâu host có sandbox của hệ điều hành, trạng thái đó cũng vạch ra các quy tắc ghi lên hệ thống tệp — một chế độ chỉ đọc sẽ gắn kết worktree ở dạng chỉ đọc — nhưng đó là bản sao thứ hai của bảo đảm, không phải bản đang làm việc.
  5. Khối prompt hệ thống — một phần mở đầu về năng lực được sinh tự động từ chính danh sách công cụ đã được hiện thực hóa, cộng với hướng dẫn viết tay.

Mọi lớp thực thi đều chiếu ra từ một hồ sơ duy nhất đó, nên bề mặt công cụ, bộ chặn, trạng thái worktree và prompt không thể mâu thuẫn nhau.

Chế độ mặc định và là chế độ duy nhất không có ràng buộc thêm: toàn bộ bề mặt công cụ tới cấp thực thi, một worktree ghi được, không có lớp hiệu ứng nào bị từ chối và không có hợp đồng hoàn tất. Dùng nó cho triển khai, sửa lỗi, câu hỏi về cơ sở mã và mọi việc tùy hứng.

Lưu ý nhãn: trong trình soạn, chế độ này hiển thị là “Agent”, không phải “Trò chuyện”.

Kế hoạch — chỉ đọc, một kết quả giao

Phần tiêu đề “Kế hoạch — chỉ đọc, một kết quả giao”

Chế độ Kế hoạch khiến worktree chỉ đọc và gỡ hẳn các công cụ ghi khỏi bề mặt, nên hạn chế này mang tính cấu trúc chứ không phải chỉ được chỉ thị. Agent đọc, tìm kiếm và nghiên cứu rồi giao đúng một thứ: một lời gọi submit_plan mang theo một đồ thị phụ thuộc có kiểu — một mục tiêu cùng các nút có khóa, tiêu đề, mô tả và các khóa nút mà mỗi nút phụ thuộc vào.

Kế hoạch hiển thị thành một hàng gọn trong cuộc hội thoại và mở Studio kế hoạch trong một tab bên cạnh. Phê duyệt nó sẽ biên dịch đồ thị thành một điều phối, chạy công việc đã sinh và chuyển space tác giả trở lại chế độ agent.

Nếu một lượt chạy ở chế độ Kế hoạch kết thúc mà không hề gọi submit_plan, vòng lặp trước tiên chèn một lời thúc nói rằng kế hoạch không tồn tại cho tới khi lời gọi đó thành công. Lời thúc này cho phép rõ ràng một lối thoát trung thực kiểu “ở đây không cần kế hoạch”, vì chế độ Kế hoạch là một thiết lập của space và một câu hỏi đơn giản đặt ra trong đó không nên ép ra một kế hoạch giả tạo.

Còn một lối thoát thứ hai, tách biệt: exit_plan_mode. Đây là một cổng phê duyệt cứng, không phải một động từ đầu ra — một agent gọi nó thay vì submit_plan thì chưa giao được gì. Lời gọi đầu tiên mở một phê duyệt plan_exit bền vững và trả về pending, còn space vẫn chỉ đọc; những lời gọi lặp lại vẫn ở pending thay vì mở thêm cổng thứ hai. Chỉ khi phê duyệt được chấp thuận thì một lời gọi sau đó mới chuyển space sang chế độ trò chuyện. Một lần từ chối cho phép agent mở một yêu cầu mới cho một kế hoạch đã chỉnh sửa.

Để tự mình rời chế độ Kế hoạch, hãy đổi hộp chọn trong trình soạn (hoặc Shift+Tab). exit_plan_mode được quyết định bằng công cụ MCP decide_approval. Các hàng “phê duyệt agent” trong Hộp thư là chuyện khác: đó là những lời nhắc xác nhận theo từng lượt từ một agent đang chạy.

Rà soát — chỉ đọc, không có hợp đồng

Phần tiêu đề “Rà soát — chỉ đọc, không có hợp đồng”

Chế độ Rà soát dùng cho việc xem xét PR. Nó khiến worktree chỉ đọc, giới hạn bề mặt công cụ xuống dưới cấp thực thi và áp dụng một danh sách cho phép được tuyển chọn gồm các công cụ xem xét, phiếu công việc và liên lạc. Một space mở cho một pull request sẽ tự động được tạo ở chế độ Rà soát.

Đầu ra của agent là những phát hiện có cấu trúc — nút rà soát — và, khi một cuộc rà soát được chốt, một kết luận. Một nút mang theo một loại (bug, suggestion, recommendation, question hoặc ticket), mức ưu tiên từ P0 (chặn phát hành) tới P3 (có thì tốt), một độ tin cậy tự đánh giá, một điểm neo tùy chọn (tệp kèm một khoảng dòng; ghi chú trên toàn kho lưu trữ thì không có) và một trạng thái vòng đời chuyển từ open sang consensusReady khi một đồng nghiệp — không bao giờ là tác giả — xác nhận nó. Một phát hiện thiếu mức ưu tiên hoặc độ tin cậy, hay có giá trị ngoài khoảng, sẽ bị loại bỏ ở ranh giới đọc thay vì làm nhiễu kết luận.

Kết luận là ship, hold hoặc block và nó chỉ có thể bị làm nghiêm trọng hơn bởi các kết quả theo từng trục được gộp vào: một trục có cổng bị lỗi buộc block, và một trục có cổng không thể chạy buộc ít nhất hold. Thiếu bằng chứng không bao giờ làm một cổng chuyển xanh.

Khác với Kế hoạch và Điều phối, Rà soát không mang hợp đồng hoàn tất. Các phát hiện tích lũy qua add_review_node và được công bố bằng finalize_review, và cả hai đều có thể được gọi đúng không lần — một agent quy trình chạy ở chế độ Rà soát có thể ở đó để hoàn tất một phiếu thay vì vậy.

Điều phối — chỉ đọc, đề xuất một đội

Phần tiêu đề “Điều phối — chỉ đọc, đề xuất một đội”

Chế độ Điều phối biến một mục tiêu thành kế hoạch cho cả một đội. Giống chế độ Kế hoạch, nó chỉ đọc và không thể ghi tệp; trên nền bề mặt nghiên cứu, nó có một động từ đặc quyền duy nhất, propose_orchestration, phát ra một đề xuất có cấu trúc: các vai trò, một cây phiếu con, một bước tổng hợp và một ngân sách. Prompt chỉ nêu tên những công cụ có trên bề mặt, nên mô hình không tốn các lượt để kể lể việc tuyển người hay việc phiếu mà nó không thể gọi.

Không có gì trong đề xuất được thực thi cho tới khi bạn phê duyệt. Khi được phê duyệt, một bộ hiện thực hóa tất định sẽ tuyển các agent, tạo các phiếu cùng một dự án và chạy một quy trình đã sinh. Việc phê duyệt chỉ dành cho người vận hành: không có công cụ MCP nào cho nó, nên một agent có thể đề xuất nhưng không bao giờ tự phê duyệt kế hoạch của mình. Những đề xuất lại do agent khởi tạo bị giới hạn tần suất bởi thời gian chờ hai phút, nên các lần lập kế hoạch lại liên tiếp đều bị từ chối và được yêu cầu gộp lại. Xem Điều phối.

Động từ đầu ra của chính một chế độ không bao giờ bị từ chối. submit_plan và propose_orchestration được ghim vào bề mặt công cụ và được phê duyệt trước, vượt qua cả bộ lọc công cụ, cổng phê duyệt lẫn bộ chặn hành động, nên núm tự chủ theo từng space không thể làm im lặng kết quả giao của một chế độ. ask_user của harness cũng được ghim vì cùng lý do: nó chính là cách một lượt chạy tiếp cận người vận hành, nên gác nó sẽ làm chết cứng một lượt chạy đang cần hỏi điều gì đó. Nó thuộc cấp đọc, nên mọi chế độ chỉ đọc đều giữ nó, và nó được miễn khỏi lớp bọc phê duyệt — một lời nhắc đặt trước một lời nhắc sẽ thất bại theo hướng đóng khi không có người phê duyệt nào được kết nối, điều sẽ tước của agent chính hành vi hỏi.

Các chế độ chỉ đọc không từ chối truy cập mạng hay secret. Những lớp hiệu ứng mà Rà soát, Kế hoạch và Điều phối từ chối là những lớp làm thay đổi thế giới: xóa tệp, ghi bên ngoài worktree, tạo commit, push, tạo và xuất bản PR, ghi đồng bộ với nhà cung cấp, cài gói, sinh tiến trình, biến đổi không gian làm việc và điều khiển enclosure. Lưu lượng mạng ra ngoài và quyền truy cập secret vẫn giữ nguyên mặc định là có chủ đích — nghiên cứu chính là toàn bộ ý nghĩa của một chế độ chỉ đọc.

Hộp chọn chế độ của trình soạn đưa ra ba lựa chọn: Agent (trò chuyện), Kế hoạch và Điều phối. review không cho người dùng chọn — nó do hệ thống đặt khi một space xem xét PR được tạo và do các bước quy trình đặt.

Một nút quy trình mở một space có thể ghim chế độ của phòng đó bằng khóa extras['mode'] (chat, review hoặc plan). Khóa này khớp chính xác: mọi cách viết khác — kể cả orchestrate — đều bị bỏ qua âm thầm và phòng sẽ nhận mặc định của body (review trên body create-space). Một bước agent tham gia vào phòng mà nó không tạo ra và không cấp lại quyền cho phòng đó.

Bản thân việc phân giải rất đơn giản. Bộ điều phối đọc cột mode của space; một lượt điều phối không có space — một lượt chạy một lần, một lệnh gọi CLI, hay một id space từ một không gian làm việc khác, thứ đơn giản là không nằm trong tệp cơ sở dữ liệu của không gian làm việc này — sẽ phân giải thành chat. Đổi chế độ có hiệu lực từ lượt kế tiếp.

Bề mặt công cụ của một chế độ được harness tích hợp dựng nên và thực thi. Đây là kênh truyền duy nhất có thể khiến một công cụ trở nên vô hình thay vì chỉ bị từ chối, gác mọi lời gọi trước khi nó chạy và quan sát một hợp đồng hoàn tất.

Trên kênh truyền Claude Code, một chế độ không phải trò chuyện được truyền dưới dạng --permission-mode plan. Claude tôn trọng điều đó theo quy ước; các công cụ đọc, ghi và sửa của riêng nó vẫn chạy mà không bị nhìn thấy, còn các lệnh shell của nó chỉ được một hook đọc dòng lệnh kiểm tra. Với kênh truyền đó, chế độ chỉ là hướng dẫn, không phải ranh giới của Control Center — xem Mô hình agent.

Các danh sách cho phép ràng buộc những công cụ từ cấp ghi trở lên. Cấp đọc của harness tích hợp vẫn chạm tới những công cụ mà không danh sách nào nêu tên; trên Claude Code, một công cụ bị danh sách cho phép bỏ qua sẽ bị từ chối dù máy chủ có nó hay không.