Claude Certification Guide
0% chương trình học đã hoàn thành
1.7

Trạng Thái Phiên Làm Việc và Việc Tiếp Tục

Những điều bạn cần biết

Quản lý phiên làm việc quyết định cách một agent duy trì tính liên tục qua các phiên làm việc. Trong các nhiệm vụ chạy dài — gỡ lỗi một hệ thống phức tạp, rà soát một codebase lớn, tiến hành nghiên cứu nhiều ngày — ngữ cảnh của agent tích lũy các kết quả tool, các phân tích file, và các chuỗi lập luận. Task Statement 1.7 nói về cách quản lý trạng thái tích lũy này: khi nào tiếp tục nó, khi nào phân nhánh nó, và khi nào bắt đầu lại từ đầu.

Ba Tùy Chọn Quản Lý Phiên Làm Việc

Agent SDK và Claude Code cung cấp ba cách tiếp cận khác nhau để quản lý phiên làm việc. Mỗi cách phục vụ một mục đích khác nhau, và kỳ thi mong đợi bạn chọn đúng tùy chọn cho tình huống được đưa ra.

Tùy chọn 1: --resume <session-name>

Resume tiếp tục một phiên làm việc cụ thể đã được đặt tên từ nơi nó dừng lại. Toàn bộ lịch sử hội thoại — bao gồm tất cả kết quả tool, phân tích, và lập luận — được khôi phục.

Khi nào sử dụng: Ngữ cảnh trước đó vẫn còn hợp lệ phần lớn. Các file chưa thay đổi đáng kể kể từ phiên làm việc trước. Bạn muốn tiếp tục chính xác từ nơi bạn dừng lại.

Khi nào KHÔNG sử dụng: Các file đã được chỉnh sửa kể từ phiên làm việc trước. Các kết quả tool trong lịch sử hội thoại không còn phản ánh trạng thái hiện tại của codebase. Điều này dẫn đến vấn đề ngữ cảnh lỗi thời (được trình bày bên dưới).

Tùy chọn 2: fork_session

Fork tạo ra một nhánh độc lập từ một baseline phân tích dùng chung. Sau khi fork, mỗi nhánh hoạt động độc lập — thay đổi ở một nhánh không ảnh hưởng đến nhánh kia, và các nhánh không thể thấy kết quả của nhau.

Khi nào sử dụng: Bạn đã hoàn thành một phân tích ban đầu và muốn khám phá các cách tiếp cận phân kỳ từ điểm khởi đầu dùng chung đó. Ví dụ: sau khi phân tích một codebase, bạn fork để so sánh hai chiến lược tái cấu trúc. Mỗi fork xây dựng dựa trên cùng một sự hiểu biết ban đầu nhưng đi theo một hướng khác.

Khi nào KHÔNG sử dụng: Bạn chỉ đơn giản muốn tiếp tục cùng một hướng điều tra. Fork dành cho sự phân kỳ, không phải sự tiếp tục. Nếu bạn không so sánh các phương án thay thế, hãy dùng resume.

Tùy chọn 3: Bắt đầu mới với việc tiêm tóm tắt

Bắt đầu một phiên làm việc hoàn toàn mới nhưng tiêm một bản tóm tắt có cấu trúc về các phát hiện của phiên trước vào ngữ cảnh ban đầu. Phiên làm việc mới không có kết quả tool lỗi thời — chỉ có bản tóm tắt được chọn lọc mà bạn cung cấp.

Khi nào sử dụng: Các kết quả tool từ phiên trước đã lỗi thời (các file đã thay đổi, các API đã được cập nhật, các dependency đã thay đổi). Ngữ cảnh đã suy giảm qua một phiên làm việc dài (quá nhiều kết quả tool không liên quan làm lộn xộn lịch sử). Bạn cần một baseline sạch với kiến thức được bảo toàn.

Khi nào KHÔNG sử dụng: Ngữ cảnh trước đó vẫn còn hợp lệ và bạn muốn duy trì toàn bộ lịch sử hội thoại. Trong trường hợp này, resume hiệu quả hơn.

Khái niệm chính

Ba tùy chọn quản lý phiên làm việc phục vụ ba mục đích khác nhau: resume để tiếp tục, fork để khám phá phân kỳ, và bắt đầu mới với việc tiêm tóm tắt cho khi các kết quả tool trước đó đã lỗi thời. Kỳ thi kiểm tra khả năng của bạn trong việc chọn đúng tùy chọn cho từng tình huống.

Vấn Đề Ngữ Cảnh Lỗi Thời

Vấn đề ngữ cảnh lỗi thời là khái niệm trung tâm của task statement này. Nó xảy ra khi một agent tiếp tục một phiên làm việc sau khi mã nguồn đã được chỉnh sửa và lập luận dựa trên các kết quả tool đã lưu trong bộ nhớ đệm mà không còn phản ánh trạng thái hiện tại của các file.

Nó biểu hiện như thế nào: Một nhà phát triển làm việc với Claude Code để phân tích một codebase. Họ thực hiện thay đổi ở 3 file và tiếp tục phiên làm việc. Claude đưa ra lời khuyên mâu thuẫn về các file đó — khuyến nghị các thay đổi đã được thực hiện rồi, hoặc tham chiếu đến mã nguồn không còn tồn tại — vì nó đang lập luận dựa trên các kết quả tool cũ vẫn còn trong lịch sử hội thoại của nó.

Vì sao nó xảy ra: Khi bạn tiếp tục một phiên làm việc, toàn bộ lịch sử hội thoại được khôi phục, bao gồm mọi kết quả tool từ phiên làm việc trước. Nếu một file đã được đọc trong phiên làm việc trước và kể từ đó đã được chỉnh sửa, nội dung file cũ vẫn còn trong hội thoại dưới dạng một kết quả tool. Mô hình lập luận dựa trên dữ liệu lỗi thời đó cùng với bất kỳ dữ liệu mới nào, dẫn đến mâu thuẫn.

Cách khắc phục ngây thơ (và vì sao nó không đủ): Đơn giản là tiếp tục phiên làm việc và yêu cầu agent đọc lại các file đã sửa đổi. Điều này tốt hơn là không làm gì, nhưng các kết quả tool lỗi thời vẫn còn trong lịch sử hội thoại. Mô hình vẫn có thể tham chiếu đến thông tin cũ từ trước đó trong ngữ cảnh, đặc biệt là đối với các quyết định phụ không liên quan trực tiếp đến các file đã sửa đổi.

Cách khắc phục đúng: Bắt đầu một phiên làm việc mới với một bản tóm tắt có cấu trúc về các phát hiện trước đó. Chỉ rõ những file nào đã thay đổi để agent có thể thực hiện phân tích lại có mục tiêu đối với các file đó. Phiên làm việc mới không có kết quả tool lỗi thời, và bản tóm tắt được tiêm vào bảo toàn kiến thức từ phiên làm việc trước mà không có dữ liệu lỗi thời.

Bẫy thi: Exam Trap

Kỳ thi kiểm tra xem bạn có nhận ra rằng việc tiếp tục sau khi các file đã thay đổi có thể dẫn đến ngữ cảnh lỗi thời hay không. Đơn giản là tiếp tục và yêu cầu agent đọc lại các file đã thay đổi không phải là đáp án tốt nhất — các kết quả lỗi thời vẫn còn trong lịch sử và vẫn có thể ảnh hưởng đến lập luận. Bắt đầu mới với việc tiêm tóm tắt đáng tin cậy hơn.

Phân Tích Lại Có Mục Tiêu So Với Khám Phá Lại Toàn Bộ

Khi các file đã thay đổi, agent không cần phải phân tích lại toàn bộ codebase. Điều này lãng phí, đặc biệt đối với các codebase lớn nơi chỉ có một vài file đã được sửa đổi.

Cách tiếp cận đúng là phân tích lại có mục tiêu: cho agent biết về các file cụ thể đã thay đổi và để nó phân tích lại chỉ những file đó. Bản tóm tắt từ phiên làm việc trước bao quát mọi thứ chưa thay đổi.

Phân tích lại có mục tiêu trông như thế nào trong thực tế:

  1. Bắt đầu một phiên làm việc mới.
  2. Tiêm một bản tóm tắt có cấu trúc: "Phân tích trước đó phát hiện X, Y, và Z trên toàn bộ codebase. 3 file sau đây đã được sửa đổi kể từ đó: auth.ts, database.ts, và api-routes.ts."
  3. Agent đọc lại và phân tích lại chỉ 3 file đã sửa đổi.
  4. Nó kết hợp phân tích mới của các file đã thay đổi với bản tóm tắt được bảo toàn của các file chưa thay đổi.

Điều này nhanh hơn so với việc khám phá lại toàn bộ và đáng tin cậy hơn so với việc tiếp tục với ngữ cảnh lỗi thời.

Khi Nào Sử Dụng Từng Tùy Chọn: Ma Trận Quyết Định

Tình huốngTùy chọn tốt nhấtLý do
Tiếp tục công việc từ hôm qua, không có file nào thay đổi--resumeNgữ cảnh trước đó vẫn hợp lệ, toàn bộ lịch sử hữu ích
So sánh hai cách tiếp cận tái cấu trúcfork_sessionKhám phá phân kỳ từ baseline dùng chung
Tiếp tục sau khi sửa đổi 3 trong số 50 fileBắt đầu mới + tóm tắtKết quả tool lỗi thời cho các file đã sửa đổi sẽ gây ra mâu thuẫn
Phiên làm việc dài với lịch sử lộn xộnBắt đầu mới + tóm tắtNgữ cảnh suy giảm hưởng lợi từ một baseline sạch
Khám phá một chiến lược kiểm thử so với một chiến lược tài liệu hóafork_sessionHai cách tiếp cận độc lập từ cùng một phân tích
Tiếp tục sau khi cập nhật dependencyBắt đầu mới + tóm tắtNhiều file có thể đã thay đổi một cách gián tiếp

Ví Dụ Thực Tế: Lỗi Đưa Ra Lời Khuyên Mâu Thuẫn

Một nhà phát triển sử dụng Claude Code để phân tích một codebase 50 file trong hai ngày. Vào Ngày 1, họ phân tích module xác thực và xác định ba vấn đề. Qua đêm, họ sửa cả ba vấn đề bằng cách chỉnh sửa auth.ts, session.ts, và middleware.ts.

Vào Ngày 2, họ tiếp tục phiên làm việc. Claude khuyến nghị sửa ba vấn đề đã được sửa rồi — vì các kết quả tool cũ cho thấy mã nguồn chưa sửa vẫn còn trong lịch sử hội thoại. Tệ hơn nữa, khi được hỏi về trạng thái hiện tại của auth.ts, Claude đưa ra các câu trả lời mâu thuẫn: đôi khi tham chiếu đến mã nguồn cũ (từ kết quả tool lỗi thời) và đôi khi tham chiếu đến mã nguồn mới (từ một lần đọc mới).

Cách khắc phục: bắt đầu một phiên làm việc mới với một bản tóm tắt. "Phân tích trước đó xác định ba vấn đề xác thực trong auth.ts, session.ts, và middleware.ts. Cả ba đã được sửa. Vui lòng phân tích lại ba file này để xác minh các bản sửa lỗi và kiểm tra bất kỳ vấn đề mới nào phát sinh từ các thay đổi."

Phiên làm việc mới không có kết quả tool lỗi thời. Agent đọc các file hiện tại, xác minh các bản sửa lỗi, và đưa ra lời khuyên nhất quán dựa trên trạng thái hiện tại thực tế.

Bẫy thi

Bẫy thi: Suggesting full re-exploration of a 50-file codebase when only 3 files changed

Khám phá lại toàn bộ là lãng phí. Hãy cho agent biết về 3 file cụ thể đã thay đổi để phân tích lại có mục tiêu. Bản tóm tắt trước đó bao quát mọi thứ khác.

Bẫy thi: Recommending --resume after files have been modified

Tiếp tục phiên làm việc bảo toàn các kết quả tool lỗi thời trong lịch sử hội thoại. Agent có thể lập luận dựa trên nội dung file lỗi thời, dẫn đến lời khuyên mâu thuẫn. Bắt đầu mới với việc tiêm tóm tắt tránh được điều này.

Bẫy thi: Confusing fork_session with --resume

fork_session tạo ra các nhánh độc lập để khám phá các cách tiếp cận khác nhau. --resume tiếp tục cùng một hội thoại. Chúng phục vụ các mục đích hoàn toàn khác nhau. Fork cho sự phân kỳ, resume cho sự tiếp tục.

Bẫy thi: Using fork_session to handle stale context after file changes

fork_session phân nhánh từ phiên làm việc hiện có, vốn vẫn chứa các kết quả tool lỗi thời. Fork thừa hưởng ngữ cảnh lỗi thời. Bắt đầu mới với việc tiêm tóm tắt là cách tiếp cận đúng cho dữ liệu lỗi thời.

Tình huống luyện tập

Không tìm thấy câu hỏi luyện tập "q-1-7-001".

Bài tập thực hành

Triển Khai Các Chiến Lược Quản Lý Phiên Làm Việc

Bạn sẽ học được gì

  • Ba tùy chọn quản lý phiên làm việc: resume, fork_session, và bắt đầu mới với việc tiêm tóm tắt
  • Vì sao tiếp tục phiên làm việc sau khi file thay đổi dẫn đến vấn đề ngữ cảnh lỗi thời
  • Cách việc tiêm tóm tắt có cấu trúc bảo toàn kiến thức mà không có kết quả tool lỗi thời
  • Khi nào phân tích lại có mục tiêu hiệu quả hơn so với khám phá lại toàn bộ
  • Sự khác biệt giữa fork_session (khám phá phân kỳ) và resume (tiếp tục)

Các bước

Vì sao: Các phiên làm việc được đặt tên với --resume cho phép tiếp tục công việc qua các lần nghỉ. Kỳ thi kiểm tra khi nào resume là phù hợp (không có file nào thay đổi) so với khi nào nó tạo ra vấn đề ngữ cảnh lỗi thời (các file đã được sửa đổi kể từ phiên làm việc trước).

Bạn sẽ thấy: Một phiên làm việc Claude Code được đặt tên đọc và phân tích 10 file nguồn. Tên phiên làm việc nên dễ nhớ để tiếp tục sau này. Agent nên đưa ra các phát hiện về từng file.

Vì sao: Bản tóm tắt có cấu trúc này là kiến thức bạn sẽ tiêm vào phiên làm việc mới sau này. Kỳ thi kiểm tra xem bạn có bảo toàn các phát hiện trước đó mà không mang theo kết quả tool lỗi thời hay không. Một bản tóm tắt tốt nắm bắt các kết luận mà không có đầu ra tool thô.

Bạn sẽ thấy: Một tài liệu có cấu trúc liệt kê từng tên file, các vấn đề được tìm thấy trong đó, xếp hạng mức độ nghiêm trọng, và các khuyến nghị cụ thể. Điều này nên đủ ngắn gọn để tiêm vào một prompt nhưng đủ đầy đủ để bảo toàn tất cả các phát hiện chính.

Vì sao: Sửa đổi các file sau một phiên làm việc tạo ra các điều kiện cho ngữ cảnh lỗi thời. Nội dung file cũ vẫn còn là kết quả tool trong lịch sử phiên làm việc trong khi các file thực tế hiện chứa mã nguồn khác. Đây chính xác là tình huống kích hoạt lỗi đưa ra lời khuyên mâu thuẫn.

Bạn sẽ thấy: Ba file được sửa đổi với các bản sửa lỗi cho các vấn đề được xác định trong phân tích ban đầu. Các thay đổi nên đủ đáng kể để phiên bản cũ và mới tạo ra các kết quả phân tích khác nhau.

Vì sao: Điều này minh họa vấn đề ngữ cảnh lỗi thời. Phiên làm việc được tiếp tục chứa các kết quả tool cũ cho thấy mã nguồn chưa sửa. Agent có thể khuyến nghị sửa các vấn đề đã được sửa rồi, hoặc đưa ra lời khuyên mâu thuẫn bằng cách tham chiếu đến cả nội dung file cũ và mới.

Bạn sẽ thấy: Agent đưa ra lời khuyên mâu thuẫn: khuyến nghị các bản sửa lỗi cho các vấn đề đã được giải quyết, tham chiếu đến mã nguồn không còn tồn tại, hoặc đưa ra hướng dẫn không nhất quán về các file đã sửa đổi. Đây là những dấu hiệu đặc trưng của ngữ cảnh lỗi thời.

Vì sao: Bắt đầu mới với việc tiêm tóm tắt là cách tiếp cận đúng khi các file đã thay đổi. Kỳ thi kiểm tra cụ thể điều này: không có kết quả tool lỗi thời, kiến thức được bảo toàn từ phiên làm việc trước, và phân tích lại có mục tiêu chỉ đối với các file đã thay đổi thay vì khám phá lại toàn bộ lãng phí.

Bạn sẽ thấy: Một phiên làm việc sạch biết về các phát hiện trước đó (từ bản tóm tắt được tiêm vào), nhắm mục tiêu chỉ 3 file đã thay đổi để phân tích lại, và đưa ra lời khuyên nhất quán mà không có mâu thuẫn.

Vì sao: So sánh này minh họa vì sao kỳ thi ưu tiên bắt đầu mới với việc tiêm tóm tắt hơn so với việc tiếp tục ngây thơ sau khi file thay đổi. Bắt đầu mới đưa ra lời khuyên nhất quán, chính xác trong khi tiếp tục đưa ra mâu thuẫn từ ngữ cảnh lỗi thời.

Bạn sẽ thấy: Một sự khác biệt chất lượng rõ ràng: phiên làm việc tiếp tục đưa ra lời khuyên mâu thuẫn hoặc lỗi thời về các file đã sửa đổi, trong khi phiên làm việc mới đưa ra phân tích chính xác, nhất quán dựa trên nội dung file hiện tại.

Nguồn tham khảo