- Claude Code tập trung phát triển các tính năng mới xoay quanh hai chủ đề chính: nâng cao trải nghiệm nhà phát triển và tăng cường khả năng tự chủ cho Claude.
- Trải nghiệm nhà phát triển được cải thiện thông qua các tính năng như Remote Control để tiếp tục công việc khi di chuyển, hiển thị không nhấp nháy cho terminal mượt mà hơn, và giao diện GUI được cải tiến để quản lý ngữ cảnh và phiên làm việc hiệu quả.
- Khả năng tự chủ giúp Claude Code thực hiện nhiều tác vụ hơn mà không cần sự can thiệp liên tục từ người dùng, với các tính năng như Automode cho quyết định quyền, Work Tree để cô lập các môi trường phát triển, và Auto Memory để ghi nhớ thông tin xuyên suốt các phiên.
What's new in Claude Code
- Remote Control cho phép người dùng bắt đầu một phiên làm việc trên máy tính và tiếp tục trên thiết bị di động, duy trì cùng một môi trường phát triển và ngữ cảnh, lý tưởng cho việc khởi động tác vụ dài hạn.
- Flicker-free rendering (chế độ toàn màn hình) trong terminal UI của Claude Code sử dụng ảo hóa lịch sử cuộn, đảm bảo đầu ra mượt mà, ổn định bộ nhớ và cho phép các yếu tố trong terminal có thể nhấp được.
- GUI được cải tiến cung cấp khả năng quản lý nhiều phiên làm việc, lọc và nhóm nâng cao, chế độ xem chia đôi, cùng với các chế độ xem bổ sung như kế hoạch, khác biệt và tệp, giúp nhà phát triển làm việc hiệu quả hơn.
- Tính năng "Pin as Chapter" (thử nghiệm) trong GUI cho phép người dùng đánh dấu và tạo mục lục cho các tin nhắn trợ lý dài trong bảng ghi, giúp điều hướng và tóm tắt ngữ cảnh dễ dàng hơn.
- Automode là một chế độ quyền mới cho phép Claude Code tự đưa ra quyết định về quyền bằng cách sử dụng một bộ phân loại để đánh giá mức độ phá hủy và nguy cơ "tiêm lời nhắc" của lệnh gọi công cụ.
- Work Tree tạo ra các môi trường phát triển bị cô lập cho từng tính năng hoặc yêu cầu kéo, giúp Claude Code làm việc trên nhiều nhiệm vụ đồng thời mà không ảnh hưởng lẫn nhau, với khả năng tự động tạo và dọn dẹp work tree.
- Auto Memory cho phép Claude Code (Claude) tích lũy kiến thức xuyên suốt các phiên làm việc và dự án, tự động quản lý một tệp
memory.mdchứa thông tin hữu ích như lệnh build, gỡ lỗi và tùy chọn dự án, giảm lãng phí token. - Đánh giá mã (Code Review) được tối ưu hóa với quy trình nhiều giai đoạn và nhiều tác nhân, giúp phát hiện các vấn đề phức tạp mà con người có thể bỏ sót, áp dụng cho tất cả các yêu cầu kéo.
Claude Code— Nền tảng phát triển đám mâyDeveloper Experience— Trải nghiệm nhà phát triểnAutonomy— Khả năng tự chủRemote Control— Điều khiển từ xaFlicker-free rendering— Hiển thị không nhấp nháyWork Tree— Cây làm việcAutomode— Chế độ tự độngAuto Memory— Bộ nhớ tự độngCode Review— Đánh giá mãGUI— Giao diện người dùng đồ họa
Giới thiệu về Claude Code: Trải nghiệm và Khả năng tự chủ
Xin mời lên sân khấu, Dixon Side, Thành viên Ban Kỹ thuật của Anthropic. Chào buổi sáng tất cả mọi người. Tôi là Dixon từ đội ngũ Claude Code. Tôi phụ trách các plugin và Claude Code trên web. Phiên này sẽ nói về những điểm mới trong Claude Code. Nếu gần đây bạn có xem nhật ký thay đổi công khai (change log) của chúng tôi, bạn sẽ biết rằng đội ngũ của chúng tôi liên tục triển khai rất nhiều. Việc theo kịp có thể khá khó khăn. Vì vậy, hôm nay, tôi muốn tạm gác lại nhật ký thay đổi và kể cho bạn nghe câu chuyện: Làm thế nào các tính năng mới của chúng tôi ăn khớp với nhau và tại sao chúng tôi yêu thích chúng.
Các tính năng mới của chúng tôi tập trung vào hai chủ đề chính. Vâng, đúng vậy. Các tính năng mới của chúng tôi tập trung vào hai chủ đề chính. Thứ nhất, trải nghiệm nhà phát triển (developer experience). Cách chúng tôi làm cho Claude Code trở nên dễ chịu hơn khi bạn dành nhiều thời gian hơn trong ngày với nó. Thứ hai, khả năng tự chủ (autonomy). Cách chúng tôi giúp Claude có thể làm được nhiều việc hơn khi bạn không ở cạnh bàn phím. Cuối cùng, tôi sẽ hướng dẫn cách tìm hiểu thêm về tất cả những điều tôi không kịp đề cập.
Trải nghiệm nhà phát triển: Điều khiển từ xa
Là người dùng Claude Code hàng ngày, chúng tôi vẫn rất chú trọng đến trải nghiệm của con người, ngay cả khi Claude có thể tự xử lý nhiều tác vụ dài hạn hơn. Đối với trải nghiệm nhà phát triển (developer experience), đầu tiên là tính năng điều khiển từ xa (Remote Control). Remote Control cho phép bạn bắt đầu một phiên làm việc (session) trên máy của mình và tiếp tục công việc khi đang di chuyển. Từ điện thoại, bạn có thể truy cập cùng một phiên làm việc, cùng một môi trường phát triển (dev setup). Tại sao không khởi động một tác vụ dài hạn và đi làm vài việc vặt? Đội ngũ của chúng tôi muốn có nhiều tiện lợi hơn khi xây dựng Claude Code, và Remote Control mang lại điều đó.
Hãy để tôi chỉ cho bạn cách thiết lập Remote Control qua một bản demo. Được rồi, chúng ta đang ở một phiên làm việc mới. Hãy xem nó với một số nội dung. Và bây giờ chúng ta có thể bật Remote Control bằng cách gõ "Remote Control". Bạn sẽ nhận được một đường dẫn trong Claude Code trên web. Vì vậy, hãy mở đường dẫn đó và đặt chúng cạnh nhau. Và bạn có thể thấy nội dung của terminal của mình trực tuyến. Đây có thể là trình duyệt di động hoặc ứng dụng di động của bạn. Bạn có thể gõ 3 + 3 hoặc một cái gì đó tương tự và nó sẽ xuất hiện trong terminal. Cùng một môi trường phát triển đang chạy trong terminal của bạn, bạn cũng có thể gõ vào terminal và xem nó trong Claude Code trên web. Vì vậy, mô hình yêu thích của tôi ở đây là bật Remote Control trên một phiên làm việc dài hạn đã tích lũy ngữ cảnh (context) qua nhiều yêu cầu kéo (PR). Bằng cách đó, khi tôi đang di chuyển, tôi có thể yêu cầu phiên làm việc dài hạn đó khởi tạo một tác nhân phụ và thực hiện ý tưởng của mình. Quay lại các slide.
Trải nghiệm nhà phát triển: Hiển thị không nhấp nháy
Tiếp theo là tính năng hiển thị không nhấp nháy (flicker-free rendering). Xin giơ tay. Bao nhiêu bạn đã từng gặp hiện tượng nhấp nháy khi sử dụng Claude Code? Đó là cách bạn biết mình là người dùng OG. Chúng tôi đã lắng nghe rõ ràng từ các bạn rằng hiện tượng nhấp nháy làm hỏng trải nghiệm terminal. Cách tiếp cận trước đây của chúng tôi là nối thêm vào lịch sử cuộn (scrollback) của terminal hiện có, việc này rất khó để thực hiện đúng. Một sự sai lệch nhỏ có thể kích hoạt việc vẽ lại (repainting), gây ra hiện tượng nhấp nháy mà bạn thấy. Giờ đây, giao diện terminal UI của Claude Code có chế độ toàn màn hình (full screen mode), nơi chúng tôi ảo hóa lịch sử cuộn (virtualize scrollback). Bằng cách đó, chúng tôi có thể đảm bảo đầu ra không nhấp nháy (flicker-free output). Hơn nữa, chúng tôi có thể làm cho các yếu tố của Claude Code trong terminal có thể nhấp được (clickable). Và chúng tôi có thể giữ mức sử dụng bộ nhớ (memory usage) ổn định ngay cả với các phiên làm việc rất dài. Đội ngũ của chúng tôi đã chuyển sang chế độ này phần lớn, và bạn sẽ cảm nhận được sự khác biệt ngay lập tức nếu bạn cũng làm như vậy.
Hãy để tôi chỉ cho bạn cách sử dụng nó trong một bản demo. Vậy, trong một phiên làm việc mới, tôi sẽ mở rộng cái này. Bạn có thể bật full screen mode bằng cách nói 2E full screen. 2E là viết tắt của terminal UI. À mà, bạn có biết Claude Code có chế độ giọng nói (voice mode) không? Bao nhiêu bạn đã sử dụng chế độ giọng nói rồi? Được rồi, cũng kha khá. Bạn có thể bật hoặc tắt nó bằng cách sử dụng /voice. Và bây giờ bạn có thể giữ phím cách để nói một lời nhắc (prompt). Tôi sẽ nói: "Viết cho tôi một tệp chứa 10 câu chuyện cười và một tệp khác chứa 10 sự thật thú vị." "Chứa 10..." Ồ, được rồi. Vậy khi Claude đang làm việc, bạn sẽ thấy việc render mượt mà như thế nào đối với full screen mode. Ngay cả với nội dung rất dài, bạn cũng không thấy bất kỳ lỗi hiển thị (rendering artifacts) nào. Và một điều bạn có thể làm là đối với những lệnh gọi công cụ (tool calls) được cuộn lại, bạn có thể mở rộng chúng chỉ với một cú nhấp.
Bây giờ hãy để tôi chỉ cho bạn cách cuộn ảo hóa (virtualized scrolling) hoạt động với một lời nhắc khác: "Tạo một tệp chứa 10 mẹo nghề nghiệp (career tips)." Được rồi, xong. Và khi nó đang hoạt động, giả sử bạn đang cuộn lại và xem xét đầu ra hiện có. Chúng ta thấy nút "jump to bottom" ở đây mà bạn có thể nhấp, và lời nhắc hiện có của chúng ta thực hiện quá trình xử lý của nó và đã thông báo cho chúng ta rằng có một tin nhắn mới. Vì vậy, nó không ảnh hưởng đến chế độ xem của bạn phía trên bảng ghi (transcript). Vì vậy, chúng ta có thể nhảy xuống và xem tin nhắn mới đó là gì. Đây là full screen mode. Vậy nếu bạn giống tôi và dành nhiều thời gian trong terminal, full screen mode mang lại cho bạn một trải nghiệm thực sự mượt mà và trực quan. Quay lại các slide.
Trải nghiệm nhà phát triển: Giao diện người dùng đồ họa (GUI) được cải tiến
Một số kỹ sư (engineer) trong đội ngũ của chúng tôi thích dùng terminal, nhưng những người khác ngày càng sử dụng GUI (giao diện người dùng đồ họa) của Claude Code trên cả desktop và web. Chúng tôi đã cải tiến (revamped) GUI thành một trải nghiệm tốt hơn nhiều để quản lý: một, nhiều phiên làm việc (session) cùng lúc; và hai, trình bày tất cả ngữ cảnh (context) liên quan mà bạn cần cho phiên làm việc đó để bạn có thể làm việc hiệu quả hơn.
Hãy cùng xem xét một số tính năng mới này trong một bản demo. Bản demo này dựa trên Excalidraw. Excalidraw là một ứng dụng bảng trắng mã nguồn mở (open source whiteboarding app) và trải nghiệm gốc có ba hình cơ bản: hình chữ nhật (rectangles), hình thoi (diamonds) và hình elip (ellipses). Nhưng giả sử tôi muốn vẽ hình thang (trapezoids). Chà, tôi có một phiên làm việc Claude Code desktop đang chạy với tính năng này. Xin lỗi, với tính năng này. Nếu bạn đã lâu không dùng Claude Code desktop, thì rất nhiều thứ đã thay đổi. Trong thanh bên (sidebar), chúng tôi có một mục ghim (pin section), cùng với các khả năng lọc (filtering) và nhóm (grouping) nâng cao hơn. Thực tế, bạn có thể nhóm theo dự án (project) của mình, chẳng hạn. Từ thanh bên, bạn cũng có thể mở một chế độ xem chia đôi (split view), chỉ cần kéo và thả.
Ở góc trên bên phải, bạn có thể thấy nhiều chế độ xem (views) cho phiên làm việc của mình, bởi vì bảng ghi đôi khi khá nhàm chán, đúng không? Bạn có thể mở kế hoạch (plan) tương ứng với phiên làm việc này. Bạn thậm chí có thể đánh dấu những phần nhất định để để lại nhận xét (comments), và tất cả nhận xét có thể được tổng hợp (aggregated) và giải quyết (resolved) bởi Claude sau này. Vì vậy, ngoài kế hoạch, bạn có thể mở một chế độ xem khác biệt (diff view) và cũng để lại nhận xét trên bất kỳ dòng nào. Cuối cùng, bạn có thể mở chế độ xem tệp (file view), nơi bạn có toàn bộ thư mục làm việc (working directory), và bạn cũng có thể chỉnh sửa (edit) rất nhanh chóng. Nhưng điều chúng tôi đặt cược (betting) ở đây là bạn sẽ dành ngày càng nhiều thời gian với Claude khi Claude trở nên có khả năng hơn, và tất cả các chức năng này đều là tùy chọn (optional), đúng không? Chúng không phải là trải nghiệm mặc định của bạn; chúng chỉ là thứ bạn cần dùng khi có nhu cầu.
Bây giờ hãy để tôi chỉ cho bạn một tính năng thử nghiệm (experimental feature) rất thú vị này. Bạn biết đấy, bảng ghi này rất dài. Bây giờ, một điều chúng ta có thể làm là di chuột qua một tin nhắn trợ lý (assistant message), và có một nút ghim dưới dạng chương (pin as chapter button). Bạn hãy thử đoán xem nút này làm gì. Vậy hãy để tôi nhấp vào đây, và sau đó bạn có thể thấy rằng phía trên tin nhắn trợ lý này, chúng ta giờ đây có một tiêu đề (title) cho tin nhắn này trong ngữ cảnh của bảng ghi này. Bạn có thể đổi tên tiêu đề này: "Debug Pointer Down Event". Hãy thêm một cái nữa. Cái này thì sao? Vậy chúng ta sẽ ghim cái này làm chương thứ hai và xem tiêu đề của nó là gì. Tiêu đề là "Add Missing Distance to Trapezoid Element Function". Tuyệt. Vậy là chúng ta giờ đã có hai tiêu đề. Chúng ta có thể xây dựng gì với điều này? Chúng ta có thể xây dựng một mục lục (table of contents). Vậy bây giờ ở góc trên bên trái, bạn có thể nhảy giữa các phần khác nhau của bảng ghi của mình. Bạn có thể đổi tên các tiêu đề chương này, hoặc thậm chí bạn có thể xóa chúng nếu muốn. Vậy đó là một tính năng thử nghiệm, và chúng tôi nghĩ rằng chúng tôi có thể làm được nhiều hơn nữa trong Claude Code Desktop. Chỉ cần cho Anthony Morris, trưởng nhóm Claude Code Desktop của chúng tôi, biết trên X, và anh ấy có thể sẽ triển khai (ship) nó cho bạn vào ngày mai.
Vậy một điều cuối cùng ở đây là chúng ta chưa xem xét hình thang, vì vậy hãy thực sự chạy một máy chủ (server). Chúng ta có thể mở terminal ngay tại đây, khởi động máy chủ. Nó sẽ chạy trên localhost:3002. Và bây giờ bạn có thể vẽ hình thang, và bạn thậm chí có thể làm cho chúng có màu cam. Được rồi, hãy quay lại các slide.
Khả năng tự chủ: Automode
Đó là về trải nghiệm nhà phát triển (developer experience). Bây giờ đến chủ đề thứ hai của chúng ta: Khả năng tự chủ (Autonomy). Mỗi tính năng tiếp theo này đều xuất phát từ cùng một ý tưởng. Tôi đã giao cho Claude một tác vụ dài hạn, và chỉ một chi tiết nhỏ – một lời nhắc quyền (permission prompt), một xung đột nhánh (branch conflict), một lệnh xây dựng (build command) bị quên – sẽ khiến tôi tự hỏi, "Tại sao bạn lại làm thế?" khi tôi quay lại laptop của mình. Các tính năng tôi sẽ trình bày tiếp theo sẽ giúp bạn tin tưởng hơn rằng Claude sẽ làm những gì bạn muốn khi bạn rời đi.
Tính năng đầu tiên tôi sẽ trình bày: Xin giơ tay, bao nhiêu bạn đã cảm thấy mệt mỏi với các lời nhắc quyền? Vâng, có nhiều người. Bạn có thể bắt đầu một làn sóng giơ tay, đúng không? Automode là một chế độ quyền (permissions mode) mới trong Claude Code, nơi Claude đưa ra các quyết định về quyền (permission decisions) thay mặt bạn bằng cách sử dụng một bộ phân loại (classifier). Vì vậy, khi bạn có một lệnh gọi công cụ (tool call) mà lẽ ra sẽ gặp lời nhắc quyền, bộ phân loại sẽ xem xét hai điều: một, hành động đó có mang tính phá hủy (destructive) không, và hai, nó có giống như tiêm lời nhắc (prompt injection) không? Nếu bộ phân loại xác định lệnh gọi công cụ là an toàn, nó sẽ cho phép chạy. Nếu không, Claude sẽ chặn lệnh gọi công cụ đó, và tác nhân (agent) sẽ phải tìm ra việc cần làm tiếp theo. Điều này đã giúp chúng tôi tiết kiệm rất nhiều thời gian tại Anthropic, và giúp chúng tôi loại bỏ số lần mà chúng tôi nghĩ mình đã bắt đầu một tác vụ dài hạn nhưng khi quay lại lại thấy, "Ôi, một lời nhắc quyền!"
Khả năng tự chủ: Work Tree
Xin lỗi, tiếp theo là work tree (cây làm việc). Vấn đề nhức nhối tiếp theo là làm thế nào để chúng ta làm việc với nhiều tính năng mà không để các Claude làm ảnh hưởng lẫn nhau? Work tree là tính năng yêu thích của tôi vì nó đã giúp tôi vượt qua vấn đề này. Git work tree đã tồn tại từ rất lâu trước Claude Code, nơi nó sẽ tạo một nhánh (branch) mới và sao chép tất cả các tệp (file) của kho chứa (repo) của bạn. Nhưng có rất nhiều điểm khó khăn (sharp edges), vì vậy chúng tôi đã dành thời gian để suy nghĩ về những điểm đó và làm mượt chúng (smooth them out) thành một giao diện (interface) thân thiện hơn cho chúng tôi và cho Claude. Chẳng hạn, chúng tôi đã tích hợp vào cài đặt Claude Code một trường (field) nơi bạn có thể khai báo các tệp nên được chia sẻ giữa các work tree của bạn, như node modules. Vậy thì, nếu bạn muốn bắt đầu một phiên làm việc (session) mới, bạn chỉ cần sử dụng --worktree, và phiên làm việc mới đó sẽ đi kèm với một work tree mới. Hoặc bạn có thể yêu cầu Claude tạo một work tree cho bạn.
Hãy cùng xem điều này trong một bản demo. Vậy, một lần nữa, bản demo của chúng ta dựa trên Excalidraw trong trải nghiệm gốc. Bạn thấy đấy, chúng ta sẽ thêm hai thứ cho bản demo của mình: một là chúng ta sẽ thêm một màu mới, và hai, chúng ta sẽ thêm một thanh trượt (slider) để giúp chúng ta làm cho các góc này trở nên bo tròn hơn. Vì vậy, chúng ta sẽ bắt đầu một work tree bằng cách sử dụng Claude -W, viết tắt của --worktree. Vậy chúng ta có một work tree cho màu sắc, một work tree cho border-radius (độ bo góc), và tôi sẽ viết vào lời nhắc (prompt) ngay bây giờ: "Thêm màu thứ sáu vào stroke/background." Và sau đó cho work tree này, tôi sẽ nói: "Thêm một thanh trượt để điều chỉnh border radius."
Được rồi, khi hai phiên làm việc này đang "nấu chín" các tính năng tương ứng của chúng, hãy để tôi chỉ cho bạn cách Claude có thể tự tạo work tree. Vậy tôi có thể nói, chẳng hạn: "Tạo một work tree để thêm hình ngôi sao." Và vì vậy, không chỉ là --worktree; chúng tôi thực sự đã cung cấp cho Claude một công cụ (tool) enter work tree và exit work tree. Vì vậy, Claude có thể tự xác định xem nó có nên bắt đầu triển khai (implementing) một tính năng mới trong một môi trường cô lập (isolated environment) hay không. Vậy bạn có thể thấy rằng Claude đã tạo một work tree. Tôi đang diễn giải rõ ràng (explicit) trong bản demo này, nhưng bạn có thể đặt lời nhắc này vào CLAUDE.md của bạn. Bạn không cần phải rõ ràng như vậy. Nhưng Claude sẽ biết ý định (intent) của bạn là gì. Và Claude đủ lịch sự để hỏi tôi khi nào nên bắt đầu triển khai. Tôi thực sự sẽ nói: "Chỉ cần thoát khỏi work tree." Và bạn có thể thấy rằng hệ thống (harness) của chúng tôi sẽ dọn dẹp (cleans up) work tree cho bạn. Vì vậy, nó rất thuận tiện (convenient). Và bằng cách đó, bạn có thể có một phiên làm việc dài hạn hoạt động trên nhiều yêu cầu kéo (PR) khác nhau đồng thời.
Vậy hãy cùng xem các tính năng của chúng ta bây giờ. Có vẻ như các màu đã sẵn sàng. Vậy hãy bắt đầu. "Chạy yarn start ở chế độ nền (background) và cho tôi biết cổng (port)." Tính năng kia vẫn đang hoạt động. Vậy. Điều này sẽ mất một chút thời gian. Được rồi. Vậy cái này đã sẵn sàng ở localhost:3003. Và bạn có thể thấy tôi vẫn có trải nghiệm gốc đang chạy trên bản sao chính (main checkout) của Excalidraw. Trải nghiệm mới này có màu thứ sáu. Vậy tính năng này, tác nhân (agent), đã làm việc độc lập trên tính năng này.
Cây làm việc (Work Trees)
Và sau đó chúng ta có thể thấy cách hoạt động của một work tree khác. Nó vẫn đang làm việc, nhưng tôi nghĩ các bạn đã hiểu ý tưởng rồi. Work trees cực kỳ tiện lợi để khởi chạy nhiều tác nhân cùng lúc để làm việc trên nhiều tính năng khác nhau. Quay lại với các slide.
Bộ nhớ tự động (Auto Memory)
Tiếp theo là bộ nhớ tự động (auto memory). Có bao nhiêu bạn cảm thấy mình đã tốn rất nhiều token cho cùng một việc lặp đi lặp lại? Bởi vì bạn nghĩ Claude Code đang làm việc trên một trang trắng. Nhưng với auto memory, giờ đây chúng tôi cho phép Claude tích lũy kiến thức qua các phiên làm việc của bạn, vì vậy bạn không cần phải tự thiết lập. Bạn có thể yêu cầu nó ghi nhớ những thứ như các lệnh build chính, thông tin gỡ lỗi và bất kỳ tùy chọn dự án nào khác. Và Claude sẽ quyết định điều gì đáng để ghi nhớ dựa trên việc liệu thông tin đó có hữu ích cho các cuộc hội thoại trong tương lai hay không. Cụ thể, Claude sẽ quản lý một thư mục cho mỗi dự án. Và trong thư mục đó là một tệp memory.md. Đây là một đoạn mã được đưa vào cuộc hội thoại của bạn, giống như Claude MD, nhưng nó được quản lý độc quyền bởi Claude. Và từ tệp chỉ mục này, nó có thể cung cấp thêm tệp, xin lỗi, nó có thể liên kết đến các tệp khác trong cùng thư mục có nhiều chi tiết hơn. Vì vậy, chúng tôi tận dụng cơ chế tiết lộ dần (progressive disclosure) giống như các kỹ năng (skills). Tính năng này rất tiện dụng. Nó cũng hoạt động cho các tác nhân phụ (sub agents). Vì vậy, nếu bạn có một tác nhân phụ tùy chỉnh, bạn có thể nói "memory user" hoặc "memory project" để thiết lập một thư mục bộ nhớ. Và tính năng này sẽ không thể thực hiện được nếu không có những đột phá gần đây trong phát triển mô hình. So với Opus 4, Opus 4.7 và các mô hình gần đây khác có khả năng quản lý bộ nhớ của mình tốt hơn dưới dạng một tập hợp các tệp trong một thư mục. Vì vậy, nếu bạn đã theo dõi, Claude đã làm tốt hơn nhiều ở Pokémon nhờ khả năng này.
Đánh giá mã (Code Review)
Tiếp theo là đánh giá mã. Tại Anthropic, chúng tôi đã khám phá ra một mẫu đánh giá mã hiệu quả hơn, gồm nhiều giai đoạn và nhiều tác nhân. Khởi động một nhóm người đánh giá để xem xét các khía cạnh độc lập của mã của bạn, sau đó xác minh rằng các phát hiện thực sự đáng để báo cáo. Quá trình này giúp phát hiện các vấn đề mà lẽ ra bạn sẽ mất hàng giờ để tìm thấy hoặc thậm chí bỏ qua hoàn toàn. Vì vậy, bạn có thể thiết lập đánh giá mã này cho tất cả các yêu cầu kéo (PRs) của mình thông qua một ứng dụng GitHub. Hoặc bạn có thể thử thủ công trong Claude Code bằng cách sử dụng /ultra review.
Tối ưu hóa Quy trình làm việc của Nhà phát triển
Giữa chế độ tự động (auto mode), work trees, auto memory và đánh giá mã, giờ đây bạn có ít hành động hơn để phê duyệt, nhiều tác nhân làm việc song song một cách an toàn, các phiên làm việc tích lũy kiến thức theo thời gian. Và các nhóm Claude đánh giá các thay đổi, tất cả trước khi chính bạn phải xem xét từng yêu cầu kéo (PR). Thời gian của bạn rất quý giá, và chúng ta nên tận dụng khả năng của Claude để tối ưu hóa thời gian đó.
Các quy trình tự động (Routines)
Được rồi, điều đó đưa chúng ta đến tính năng cuối cùng chúng ta sẽ đề cập hôm nay: Các quy trình tự động (Routines). Routines gần đây đã được ra mắt trong bản xem trước nghiên cứu (research preview), và chúng giúp bạn tạo các phiên làm việc trong Claude Code có thể được kích hoạt mà không cần sự can thiệp của bạn. Vì vậy, chúng tôi đã nói về việc chúng tôi có các tính năng giúp các tác nhân làm việc tự chủ hơn từ ý tưởng đến yêu cầu kéo (PR), và bây giờ chúng tôi đang tự động hóa việc tạo ra ý tưởng đó. Đúng vậy. Cấu trúc của một routine rất đơn giản. Bạn cấu hình chúng một lần với lời nhắc (prompt), kho chứa (repo) của mình và các trình kết nối liên quan, sau đó bạn có thể chọn một yếu tố kích hoạt (trigger), có thể là một lịch trình cron (chạy hàng giờ hoặc hàng ngày), một sự kiện webhook của GitHub, hoặc bạn thậm chí có thể thiết lập một API endpoint mà bạn gọi để routine chạy. Từ đó, Claude sẽ chạy mà không cần bạn. Vì vậy, bạn có thể có một routine phân loại các vấn đề GitHub mỗi ngày, và sau đó nếu bạn kích hoạt trình kết nối Slack, bạn có thể yêu cầu nó gửi một bản tóm tắt các vấn đề hàng đầu đó đến Slack. Hoặc bạn có thể có một routine được chạy mỗi khi trang web thương mại điện tử của bạn có một giao dịch. Đúng vậy. Bạn cũng có thể để Claude vui mừng cùng bạn.
Demo về các quy trình tự động (Routines) và /loop
Vậy hãy xem routines hoạt động như thế nào với một bản demo. Giờ đây, routines là một tính năng rất nổi bật trong thanh bên (sidebar), nhưng chúng tôi cũng giới thiệu /loop. Vậy hãy bắt đầu một phiên làm việc mới. Chúng ta có thể nói /loop one minute. Tell me a joke, chẳng hạn. Và sau đó tôi có thể sử dụng màn hình phụ của mình bên cạnh. Vì vậy, tính năng chia màn hình (split view) khá tiện lợi. Lệnh /loop có thể giúp bạn thiết lập tự động hóa trong một phiên Claude Code duy nhất. Claude có một công cụ tạo cron (cron create tool), tương tự như công cụ nhập work tree (enter work tree tool), nơi nó có thể tùy ý bắt đầu một công việc theo lịch trình cho bạn, và tất nhiên bạn luôn có thể tắt công cụ này trong cài đặt của mình nếu bạn không thích nó. Vì vậy, bây giờ tôi đã lên lịch để nó kể cho tôi nghe một câu chuyện cười mỗi phút. Và có một câu chuyện cười về lý do tại sao các lập trình viên thích chế độ tối (dark mode) vì ánh sáng thu hút lỗi (bugs), v.v.
Vậy hãy so sánh điều này với routines nơi bạn có thể khởi động một routine mới, cả cục bộ trên máy tính để bàn của bạn hoặc từ xa. Tôi thích từ xa hơn vì nếu bạn thiết lập một routine cục bộ, bạn phải luôn mở máy tính xách tay của mình. Nhưng nếu bạn chạy nó từ xa, các máy chủ của chúng tôi sẽ lên lịch và chạy các công việc này cho bạn. Thực tế, tôi có một routine của riêng mình mà tôi đã chạy rất nhiều gần đây. Hãy cùng xem qua. Các hướng dẫn của tôi ở đây là: quét các vấn đề GitHub công khai mở gần đây nhất với nhiều phản ứng (reacts) nhất được tạo ra kể từ ngày hôm trước. Chỉ xem xét các vấn đề có nhãn 'area-plugins' và 'area-hooks', mà tôi chịu trách nhiệm, và phản hồi bằng một danh sách riêng biệt gồm 10 vấn đề hàng đầu được sắp xếp theo số phản ứng (reacts) nhiều nhất. Và nó đã chạy được một tuần nay, và bạn có thể thấy rằng mỗi ngày tôi nhận được một báo cáo rất hay về các vấn đề hàng đầu. Và tôi không phải nghĩ về việc lời nhắc (prompting) Claude để khởi chạy các báo cáo này. Và bạn có thể tưởng tượng chúng ta có thể thiết lập các tự động hóa khác để sau đó tiếp nhận các báo cáo này, khởi chạy các tác nhân phụ (sub agents) để gỡ lỗi chúng, v.v.
Được rồi, hãy quay lại với các câu chuyện cười của chúng ta. Vậy khi chúng ta kết thúc việc viết truyện cười, chúng ta có thể nói "stop the loop". Và Claude có thể diễn giải lời nhắc của bạn, ánh xạ nó tới gọi công cụ (tool call) thích hợp và xóa nó.
Công cụ tìm kiếm công cụ (Tool Search Tool)
Bạn cũng sẽ nhận thấy rằng chúng tôi có một công cụ tìm kiếm công cụ (tool search tool) bây giờ. Công cụ tìm kiếm công cụ (tool search) làm gì? Nó thêm một lớp gián tiếp giữa bạn và các định nghĩa công cụ (tool definitions) thực tế. Vì vậy, bây giờ chúng tôi có thể cung cấp nhiều công cụ hơn cùng một lúc mà không ảnh hưởng trực tiếp đến ngữ cảnh của bạn.
Các tính năng và tài nguyên khác
Được rồi. Quay lại với các slide. Vậy chúng ta đã đề cập đến trải nghiệm nhà phát triển (developer experience). Chúng ta đã đề cập đến tính tự chủ (autonomy). Bây giờ hãy cùng xem xét tất cả các mục khác mà tôi không thể đề cập trong cuộc trò chuyện này. Vì vậy, bạn có thể chụp ảnh hoặc bạn có thể chỉ cần cảm nhận được số lượng tính năng áp đảo mà nhóm chúng tôi phát hành mỗi ngày. Đặc biệt, đối với những bạn đang quản lý Claude Code cho nhóm hoặc doanh nghiệp của mình, chúng tôi đã xây dựng một số tính năng dành cho bạn. Ví dụ, chúng tôi có hỗ trợ cửa sổ tốt hơn nhiều so với vài tháng trước. Chúng tôi có cloud provider setup, native installation, admin settings management và các tính năng plugin features để cải thiện khung sườn (harness improvements) toàn công ty.
Như mọi khi, bạn có thể theo dõi trên public change log của chúng tôi. Trên change log, chúng tôi có một vài cách để cập nhật những gì mới. Bạn có thể theo dõi Claude Devs trên X. Bạn có thể đọc các bản tóm tắt "Có gì mới" hàng tuần của chúng tôi trong tài liệu. Hoặc bạn có thể đăng ký nhận bản tin dành cho nhà phát triển của chúng tôi. Chúng tôi hy vọng bạn có cơ hội thử ít nhất một trong các tính năng mà chúng tôi đã đề cập hôm nay và cho chúng tôi biết suy nghĩ của bạn.
Lời cảm ơn
Và sau đó, đối với những bạn có mặt trong phòng, chúng ta sẽ có một cuộc trò chuyện với Dario và Daniela do Ami điều hành ngay tại sân khấu chính này. Cảm ơn tất cả mọi người rất nhiều.
TL;DR
- Claude Code tập trung phát triển các tính năng mới xoay quanh hai chủ đề chính: nâng cao trải nghiệm nhà phát triển và tăng cường khả năng tự chủ cho Claude.
- Trải nghiệm nhà phát triển được cải thiện thông qua các tính năng như Remote Control để tiếp tục công việc khi di chuyển, hiển thị không nhấp nháy cho terminal mượt mà hơn, và giao diện GUI được cải tiến để quản lý ngữ cảnh và phiên làm việc hiệu quả.
- Khả năng tự chủ giúp Claude Code thực hiện nhiều tác vụ hơn mà không cần sự can thiệp liên tục từ người dùng, với các tính năng như Automode cho quyết định quyền, Work Tree để cô lập các môi trường phát triển, và Auto Memory để ghi nhớ thông tin xuyên suốt các phiên.
Điểm chính
- Remote Control cho phép người dùng bắt đầu một phiên làm việc trên máy tính và tiếp tục trên thiết bị di động, duy trì cùng một môi trường phát triển và ngữ cảnh, lý tưởng cho việc khởi động tác vụ dài hạn.
- Flicker-free rendering (chế độ toàn màn hình) trong terminal UI của Claude Code sử dụng ảo hóa lịch sử cuộn, đảm bảo đầu ra mượt mà, ổn định bộ nhớ và cho phép các yếu tố trong terminal có thể nhấp được.
- GUI được cải tiến cung cấp khả năng quản lý nhiều phiên làm việc, lọc và nhóm nâng cao, chế độ xem chia đôi, cùng với các chế độ xem bổ sung như kế hoạch, khác biệt và tệp, giúp nhà phát triển làm việc hiệu quả hơn.
- Tính năng "Pin as Chapter" (thử nghiệm) trong GUI cho phép người dùng đánh dấu và tạo mục lục cho các tin nhắn trợ lý dài trong bảng ghi, giúp điều hướng và tóm tắt ngữ cảnh dễ dàng hơn.
- Automode là một chế độ quyền mới cho phép Claude Code tự đưa ra quyết định về quyền bằng cách sử dụng một bộ phân loại để đánh giá mức độ phá hủy và nguy cơ "tiêm lời nhắc" của lệnh gọi công cụ.
- Work Tree tạo ra các môi trường phát triển bị cô lập cho từng tính năng hoặc yêu cầu kéo, giúp Claude Code làm việc trên nhiều nhiệm vụ đồng thời mà không ảnh hưởng lẫn nhau, với khả năng tự động tạo và dọn dẹp work tree.
- Auto Memory cho phép Claude Code (Claude) tích lũy kiến thức xuyên suốt các phiên làm việc và dự án, tự động quản lý một tệp
memory.mdchứa thông tin hữu ích như lệnh build, gỡ lỗi và tùy chọn dự án, giảm lãng phí token. - Đánh giá mã (Code Review) được tối ưu hóa với quy trình nhiều giai đoạn và nhiều tác nhân, giúp phát hiện các vấn đề phức tạp mà con người có thể bỏ sót, áp dụng cho tất cả các yêu cầu kéo.
Từ vựng
Claude Code— Nền tảng phát triển đám mâyDeveloper Experience— Trải nghiệm nhà phát triểnAutonomy— Khả năng tự chủRemote Control— Điều khiển từ xaFlicker-free rendering— Hiển thị không nhấp nháyWork Tree— Cây làm việcAutomode— Chế độ tự độngAuto Memory— Bộ nhớ tự độngCode Review— Đánh giá mãGUI— Giao diện người dùng đồ họa
Nội dung chi tiết
Giới thiệu về Claude Code: Trải nghiệm và Khả năng tự chủ
Xin mời lên sân khấu, Dixon Side, Thành viên Ban Kỹ thuật của Anthropic. Chào buổi sáng tất cả mọi người. Tôi là Dixon từ đội ngũ Claude Code. Tôi phụ trách các plugin và Claude Code trên web. Phiên này sẽ nói về những điểm mới trong Claude Code. Nếu gần đây bạn có xem nhật ký thay đổi công khai (change log) của chúng tôi, bạn sẽ biết rằng đội ngũ của chúng tôi liên tục triển khai rất nhiều. Việc theo kịp có thể khá khó khăn. Vì vậy, hôm nay, tôi muốn tạm gác lại nhật ký thay đổi và kể cho bạn nghe câu chuyện: Làm thế nào các tính năng mới của chúng tôi ăn khớp với nhau và tại sao chúng tôi yêu thích chúng.
Các tính năng mới của chúng tôi tập trung vào hai chủ đề chính. Vâng, đúng vậy. Các tính năng mới của chúng tôi tập trung vào hai chủ đề chính. Thứ nhất, trải nghiệm nhà phát triển (developer experience). Cách chúng tôi làm cho Claude Code trở nên dễ chịu hơn khi bạn dành nhiều thời gian hơn trong ngày với nó. Thứ hai, khả năng tự chủ (autonomy). Cách chúng tôi giúp Claude có thể làm được nhiều việc hơn khi bạn không ở cạnh bàn phím. Cuối cùng, tôi sẽ hướng dẫn cách tìm hiểu thêm về tất cả những điều tôi không kịp đề cập.
Trải nghiệm nhà phát triển: Điều khiển từ xa
Là người dùng Claude Code hàng ngày, chúng tôi vẫn rất chú trọng đến trải nghiệm của con người, ngay cả khi Claude có thể tự xử lý nhiều tác vụ dài hạn hơn. Đối với trải nghiệm nhà phát triển (developer experience), đầu tiên là tính năng điều khiển từ xa (Remote Control). Remote Control cho phép bạn bắt đầu một phiên làm việc (session) trên máy của mình và tiếp tục công việc khi đang di chuyển. Từ điện thoại, bạn có thể truy cập cùng một phiên làm việc, cùng một môi trường phát triển (dev setup). Tại sao không khởi động một tác vụ dài hạn và đi làm vài việc vặt? Đội ngũ của chúng tôi muốn có nhiều tiện lợi hơn khi xây dựng Claude Code, và Remote Control mang lại điều đó.
Hãy để tôi chỉ cho bạn cách thiết lập Remote Control qua một bản demo. Được rồi, chúng ta đang ở một phiên làm việc mới. Hãy xem nó với một số nội dung. Và bây giờ chúng ta có thể bật Remote Control bằng cách gõ "Remote Control". Bạn sẽ nhận được một đường dẫn trong Claude Code trên web. Vì vậy, hãy mở đường dẫn đó và đặt chúng cạnh nhau. Và bạn có thể thấy nội dung của terminal của mình trực tuyến. Đây có thể là trình duyệt di động hoặc ứng dụng di động của bạn. Bạn có thể gõ 3 + 3 hoặc một cái gì đó tương tự và nó sẽ xuất hiện trong terminal. Cùng một môi trường phát triển đang chạy trong terminal của bạn, bạn cũng có thể gõ vào terminal và xem nó trong Claude Code trên web. Vì vậy, mô hình yêu thích của tôi ở đây là bật Remote Control trên một phiên làm việc dài hạn đã tích lũy ngữ cảnh (context) qua nhiều yêu cầu kéo (PR). Bằng cách đó, khi tôi đang di chuyển, tôi có thể yêu cầu phiên làm việc dài hạn đó khởi tạo một tác nhân phụ và thực hiện ý tưởng của mình. Quay lại các slide.
Trải nghiệm nhà phát triển: Hiển thị không nhấp nháy
Tiếp theo là tính năng hiển thị không nhấp nháy (flicker-free rendering). Xin giơ tay. Bao nhiêu bạn đã từng gặp hiện tượng nhấp nháy khi sử dụng Claude Code? Đó là cách bạn biết mình là người dùng OG. Chúng tôi đã lắng nghe rõ ràng từ các bạn rằng hiện tượng nhấp nháy làm hỏng trải nghiệm terminal. Cách tiếp cận trước đây của chúng tôi là nối thêm vào lịch sử cuộn (scrollback) của terminal hiện có, việc này rất khó để thực hiện đúng. Một sự sai lệch nhỏ có thể kích hoạt việc vẽ lại (repainting), gây ra hiện tượng nhấp nháy mà bạn thấy. Giờ đây, giao diện terminal UI của Claude Code có chế độ toàn màn hình (full screen mode), nơi chúng tôi ảo hóa lịch sử cuộn (virtualize scrollback). Bằng cách đó, chúng tôi có thể đảm bảo đầu ra không nhấp nháy (flicker-free output). Hơn nữa, chúng tôi có thể làm cho các yếu tố của Claude Code trong terminal có thể nhấp được (clickable). Và chúng tôi có thể giữ mức sử dụng bộ nhớ (memory usage) ổn định ngay cả với các phiên làm việc rất dài. Đội ngũ của chúng tôi đã chuyển sang chế độ này phần lớn, và bạn sẽ cảm nhận được sự khác biệt ngay lập tức nếu bạn cũng làm như vậy.
Hãy để tôi chỉ cho bạn cách sử dụng nó trong một bản demo. Vậy, trong một phiên làm việc mới, tôi sẽ mở rộng cái này. Bạn có thể bật full screen mode bằng cách nói 2E full screen. 2E là viết tắt của terminal UI. À mà, bạn có biết Claude Code có chế độ giọng nói (voice mode) không? Bao nhiêu bạn đã sử dụng chế độ giọng nói rồi? Được rồi, cũng kha khá. Bạn có thể bật hoặc tắt nó bằng cách sử dụng /voice. Và bây giờ bạn có thể giữ phím cách để nói một lời nhắc (prompt). Tôi sẽ nói: "Viết cho tôi một tệp chứa 10 câu chuyện cười và một tệp khác chứa 10 sự thật thú vị." "Chứa 10..." Ồ, được rồi. Vậy khi Claude đang làm việc, bạn sẽ thấy việc render mượt mà như thế nào đối với full screen mode. Ngay cả với nội dung rất dài, bạn cũng không thấy bất kỳ lỗi hiển thị (rendering artifacts) nào. Và một điều bạn có thể làm là đối với những lệnh gọi công cụ (tool calls) được cuộn lại, bạn có thể mở rộng chúng chỉ với một cú nhấp.
Bây giờ hãy để tôi chỉ cho bạn cách cuộn ảo hóa (virtualized scrolling) hoạt động với một lời nhắc khác: "Tạo một tệp chứa 10 mẹo nghề nghiệp (career tips)." Được rồi, xong. Và khi nó đang hoạt động, giả sử bạn đang cuộn lại và xem xét đầu ra hiện có. Chúng ta thấy nút "jump to bottom" ở đây mà bạn có thể nhấp, và lời nhắc hiện có của chúng ta thực hiện quá trình xử lý của nó và đã thông báo cho chúng ta rằng có một tin nhắn mới. Vì vậy, nó không ảnh hưởng đến chế độ xem của bạn phía trên bảng ghi (transcript). Vì vậy, chúng ta có thể nhảy xuống và xem tin nhắn mới đó là gì. Đây là full screen mode. Vậy nếu bạn giống tôi và dành nhiều thời gian trong terminal, full screen mode mang lại cho bạn một trải nghiệm thực sự mượt mà và trực quan. Quay lại các slide.
Trải nghiệm nhà phát triển: Giao diện người dùng đồ họa (GUI) được cải tiến
Một số kỹ sư (engineer) trong đội ngũ của chúng tôi thích dùng terminal, nhưng những người khác ngày càng sử dụng GUI (giao diện người dùng đồ họa) của Claude Code trên cả desktop và web. Chúng tôi đã cải tiến (revamped) GUI thành một trải nghiệm tốt hơn nhiều để quản lý: một, nhiều phiên làm việc (session) cùng lúc; và hai, trình bày tất cả ngữ cảnh (context) liên quan mà bạn cần cho phiên làm việc đó để bạn có thể làm việc hiệu quả hơn.
Hãy cùng xem xét một số tính năng mới này trong một bản demo. Bản demo này dựa trên Excalidraw. Excalidraw là một ứng dụng bảng trắng mã nguồn mở (open source whiteboarding app) và trải nghiệm gốc có ba hình cơ bản: hình chữ nhật (rectangles), hình thoi (diamonds) và hình elip (ellipses). Nhưng giả sử tôi muốn vẽ hình thang (trapezoids). Chà, tôi có một phiên làm việc Claude Code desktop đang chạy với tính năng này. Xin lỗi, với tính năng này. Nếu bạn đã lâu không dùng Claude Code desktop, thì rất nhiều thứ đã thay đổi. Trong thanh bên (sidebar), chúng tôi có một mục ghim (pin section), cùng với các khả năng lọc (filtering) và nhóm (grouping) nâng cao hơn. Thực tế, bạn có thể nhóm theo dự án (project) của mình, chẳng hạn. Từ thanh bên, bạn cũng có thể mở một chế độ xem chia đôi (split view), chỉ cần kéo và thả.
Ở góc trên bên phải, bạn có thể thấy nhiều chế độ xem (views) cho phiên làm việc của mình, bởi vì bảng ghi đôi khi khá nhàm chán, đúng không? Bạn có thể mở kế hoạch (plan) tương ứng với phiên làm việc này. Bạn thậm chí có thể đánh dấu những phần nhất định để để lại nhận xét (comments), và tất cả nhận xét có thể được tổng hợp (aggregated) và giải quyết (resolved) bởi Claude sau này. Vì vậy, ngoài kế hoạch, bạn có thể mở một chế độ xem khác biệt (diff view) và cũng để lại nhận xét trên bất kỳ dòng nào. Cuối cùng, bạn có thể mở chế độ xem tệp (file view), nơi bạn có toàn bộ thư mục làm việc (working directory), và bạn cũng có thể chỉnh sửa (edit) rất nhanh chóng. Nhưng điều chúng tôi đặt cược (betting) ở đây là bạn sẽ dành ngày càng nhiều thời gian với Claude khi Claude trở nên có khả năng hơn, và tất cả các chức năng này đều là tùy chọn (optional), đúng không? Chúng không phải là trải nghiệm mặc định của bạn; chúng chỉ là thứ bạn cần dùng khi có nhu cầu.
Bây giờ hãy để tôi chỉ cho bạn một tính năng thử nghiệm (experimental feature) rất thú vị này. Bạn biết đấy, bảng ghi này rất dài. Bây giờ, một điều chúng ta có thể làm là di chuột qua một tin nhắn trợ lý (assistant message), và có một nút ghim dưới dạng chương (pin as chapter button). Bạn hãy thử đoán xem nút này làm gì. Vậy hãy để tôi nhấp vào đây, và sau đó bạn có thể thấy rằng phía trên tin nhắn trợ lý này, chúng ta giờ đây có một tiêu đề (title) cho tin nhắn này trong ngữ cảnh của bảng ghi này. Bạn có thể đổi tên tiêu đề này: "Debug Pointer Down Event". Hãy thêm một cái nữa. Cái này thì sao? Vậy chúng ta sẽ ghim cái này làm chương thứ hai và xem tiêu đề của nó là gì. Tiêu đề là "Add Missing Distance to Trapezoid Element Function". Tuyệt. Vậy là chúng ta giờ đã có hai tiêu đề. Chúng ta có thể xây dựng gì với điều này? Chúng ta có thể xây dựng một mục lục (table of contents). Vậy bây giờ ở góc trên bên trái, bạn có thể nhảy giữa các phần khác nhau của bảng ghi của mình. Bạn có thể đổi tên các tiêu đề chương này, hoặc thậm chí bạn có thể xóa chúng nếu muốn. Vậy đó là một tính năng thử nghiệm, và chúng tôi nghĩ rằng chúng tôi có thể làm được nhiều hơn nữa trong Claude Code Desktop. Chỉ cần cho Anthony Morris, trưởng nhóm Claude Code Desktop của chúng tôi, biết trên X, và anh ấy có thể sẽ triển khai (ship) nó cho bạn vào ngày mai.
Vậy một điều cuối cùng ở đây là chúng ta chưa xem xét hình thang, vì vậy hãy thực sự chạy một máy chủ (server). Chúng ta có thể mở terminal ngay tại đây, khởi động máy chủ. Nó sẽ chạy trên localhost:3002. Và bây giờ bạn có thể vẽ hình thang, và bạn thậm chí có thể làm cho chúng có màu cam. Được rồi, hãy quay lại các slide.
Khả năng tự chủ: Automode
Đó là về trải nghiệm nhà phát triển (developer experience). Bây giờ đến chủ đề thứ hai của chúng ta: Khả năng tự chủ (Autonomy). Mỗi tính năng tiếp theo này đều xuất phát từ cùng một ý tưởng. Tôi đã giao cho Claude một tác vụ dài hạn, và chỉ một chi tiết nhỏ – một lời nhắc quyền (permission prompt), một xung đột nhánh (branch conflict), một lệnh xây dựng (build command) bị quên – sẽ khiến tôi tự hỏi, "Tại sao bạn lại làm thế?" khi tôi quay lại laptop của mình. Các tính năng tôi sẽ trình bày tiếp theo sẽ giúp bạn tin tưởng hơn rằng Claude sẽ làm những gì bạn muốn khi bạn rời đi.
Tính năng đầu tiên tôi sẽ trình bày: Xin giơ tay, bao nhiêu bạn đã cảm thấy mệt mỏi với các lời nhắc quyền? Vâng, có nhiều người. Bạn có thể bắt đầu một làn sóng giơ tay, đúng không? Automode là một chế độ quyền (permissions mode) mới trong Claude Code, nơi Claude đưa ra các quyết định về quyền (permission decisions) thay mặt bạn bằng cách sử dụng một bộ phân loại (classifier). Vì vậy, khi bạn có một lệnh gọi công cụ (tool call) mà lẽ ra sẽ gặp lời nhắc quyền, bộ phân loại sẽ xem xét hai điều: một, hành động đó có mang tính phá hủy (destructive) không, và hai, nó có giống như tiêm lời nhắc (prompt injection) không? Nếu bộ phân loại xác định lệnh gọi công cụ là an toàn, nó sẽ cho phép chạy. Nếu không, Claude sẽ chặn lệnh gọi công cụ đó, và tác nhân (agent) sẽ phải tìm ra việc cần làm tiếp theo. Điều này đã giúp chúng tôi tiết kiệm rất nhiều thời gian tại Anthropic, và giúp chúng tôi loại bỏ số lần mà chúng tôi nghĩ mình đã bắt đầu một tác vụ dài hạn nhưng khi quay lại lại thấy, "Ôi, một lời nhắc quyền!"
Khả năng tự chủ: Work Tree
Xin lỗi, tiếp theo là work tree (cây làm việc). Vấn đề nhức nhối tiếp theo là làm thế nào để chúng ta làm việc với nhiều tính năng mà không để các Claude làm ảnh hưởng lẫn nhau? Work tree là tính năng yêu thích của tôi vì nó đã giúp tôi vượt qua vấn đề này. Git work tree đã tồn tại từ rất lâu trước Claude Code, nơi nó sẽ tạo một nhánh (branch) mới và sao chép tất cả các tệp (file) của kho chứa (repo) của bạn. Nhưng có rất nhiều điểm khó khăn (sharp edges), vì vậy chúng tôi đã dành thời gian để suy nghĩ về những điểm đó và làm mượt chúng (smooth them out) thành một giao diện (interface) thân thiện hơn cho chúng tôi và cho Claude. Chẳng hạn, chúng tôi đã tích hợp vào cài đặt Claude Code một trường (field) nơi bạn có thể khai báo các tệp nên được chia sẻ giữa các work tree của bạn, như node modules. Vậy thì, nếu bạn muốn bắt đầu một phiên làm việc (session) mới, bạn chỉ cần sử dụng --worktree, và phiên làm việc mới đó sẽ đi kèm với một work tree mới. Hoặc bạn có thể yêu cầu Claude tạo một work tree cho bạn.
Hãy cùng xem điều này trong một bản demo. Vậy, một lần nữa, bản demo của chúng ta dựa trên Excalidraw trong trải nghiệm gốc. Bạn thấy đấy, chúng ta sẽ thêm hai thứ cho bản demo của mình: một là chúng ta sẽ thêm một màu mới, và hai, chúng ta sẽ thêm một thanh trượt (slider) để giúp chúng ta làm cho các góc này trở nên bo tròn hơn. Vì vậy, chúng ta sẽ bắt đầu một work tree bằng cách sử dụng Claude -W, viết tắt của --worktree. Vậy chúng ta có một work tree cho màu sắc, một work tree cho border-radius (độ bo góc), và tôi sẽ viết vào lời nhắc (prompt) ngay bây giờ: "Thêm màu thứ sáu vào stroke/background." Và sau đó cho work tree này, tôi sẽ nói: "Thêm một thanh trượt để điều chỉnh border radius."
Được rồi, khi hai phiên làm việc này đang "nấu chín" các tính năng tương ứng của chúng, hãy để tôi chỉ cho bạn cách Claude có thể tự tạo work tree. Vậy tôi có thể nói, chẳng hạn: "Tạo một work tree để thêm hình ngôi sao." Và vì vậy, không chỉ là --worktree; chúng tôi thực sự đã cung cấp cho Claude một công cụ (tool) enter work tree và exit work tree. Vì vậy, Claude có thể tự xác định xem nó có nên bắt đầu triển khai (implementing) một tính năng mới trong một môi trường cô lập (isolated environment) hay không. Vậy bạn có thể thấy rằng Claude đã tạo một work tree. Tôi đang diễn giải rõ ràng (explicit) trong bản demo này, nhưng bạn có thể đặt lời nhắc này vào CLAUDE.md của bạn. Bạn không cần phải rõ ràng như vậy. Nhưng Claude sẽ biết ý định (intent) của bạn là gì. Và Claude đủ lịch sự để hỏi tôi khi nào nên bắt đầu triển khai. Tôi thực sự sẽ nói: "Chỉ cần thoát khỏi work tree." Và bạn có thể thấy rằng hệ thống (harness) của chúng tôi sẽ dọn dẹp (cleans up) work tree cho bạn. Vì vậy, nó rất thuận tiện (convenient). Và bằng cách đó, bạn có thể có một phiên làm việc dài hạn hoạt động trên nhiều yêu cầu kéo (PR) khác nhau đồng thời.
Vậy hãy cùng xem các tính năng của chúng ta bây giờ. Có vẻ như các màu đã sẵn sàng. Vậy hãy bắt đầu. "Chạy yarn start ở chế độ nền (background) và cho tôi biết cổng (port)." Tính năng kia vẫn đang hoạt động. Vậy. Điều này sẽ mất một chút thời gian. Được rồi. Vậy cái này đã sẵn sàng ở localhost:3003. Và bạn có thể thấy tôi vẫn có trải nghiệm gốc đang chạy trên bản sao chính (main checkout) của Excalidraw. Trải nghiệm mới này có màu thứ sáu. Vậy tính năng này, tác nhân (agent), đã làm việc độc lập trên tính năng này.
Cây làm việc (Work Trees)
Và sau đó chúng ta có thể thấy cách hoạt động của một work tree khác. Nó vẫn đang làm việc, nhưng tôi nghĩ các bạn đã hiểu ý tưởng rồi. Work trees cực kỳ tiện lợi để khởi chạy nhiều tác nhân cùng lúc để làm việc trên nhiều tính năng khác nhau. Quay lại với các slide.
Bộ nhớ tự động (Auto Memory)
Tiếp theo là bộ nhớ tự động (auto memory). Có bao nhiêu bạn cảm thấy mình đã tốn rất nhiều token cho cùng một việc lặp đi lặp lại? Bởi vì bạn nghĩ Claude Code đang làm việc trên một trang trắng. Nhưng với auto memory, giờ đây chúng tôi cho phép Claude tích lũy kiến thức qua các phiên làm việc của bạn, vì vậy bạn không cần phải tự thiết lập. Bạn có thể yêu cầu nó ghi nhớ những thứ như các lệnh build chính, thông tin gỡ lỗi và bất kỳ tùy chọn dự án nào khác. Và Claude sẽ quyết định điều gì đáng để ghi nhớ dựa trên việc liệu thông tin đó có hữu ích cho các cuộc hội thoại trong tương lai hay không. Cụ thể, Claude sẽ quản lý một thư mục cho mỗi dự án. Và trong thư mục đó là một tệp memory.md. Đây là một đoạn mã được đưa vào cuộc hội thoại của bạn, giống như Claude MD, nhưng nó được quản lý độc quyền bởi Claude. Và từ tệp chỉ mục này, nó có thể cung cấp thêm tệp, xin lỗi, nó có thể liên kết đến các tệp khác trong cùng thư mục có nhiều chi tiết hơn. Vì vậy, chúng tôi tận dụng cơ chế tiết lộ dần (progressive disclosure) giống như các kỹ năng (skills). Tính năng này rất tiện dụng. Nó cũng hoạt động cho các tác nhân phụ (sub agents). Vì vậy, nếu bạn có một tác nhân phụ tùy chỉnh, bạn có thể nói "memory user" hoặc "memory project" để thiết lập một thư mục bộ nhớ. Và tính năng này sẽ không thể thực hiện được nếu không có những đột phá gần đây trong phát triển mô hình. So với Opus 4, Opus 4.7 và các mô hình gần đây khác có khả năng quản lý bộ nhớ của mình tốt hơn dưới dạng một tập hợp các tệp trong một thư mục. Vì vậy, nếu bạn đã theo dõi, Claude đã làm tốt hơn nhiều ở Pokémon nhờ khả năng này.
Đánh giá mã (Code Review)
Tiếp theo là đánh giá mã. Tại Anthropic, chúng tôi đã khám phá ra một mẫu đánh giá mã hiệu quả hơn, gồm nhiều giai đoạn và nhiều tác nhân. Khởi động một nhóm người đánh giá để xem xét các khía cạnh độc lập của mã của bạn, sau đó xác minh rằng các phát hiện thực sự đáng để báo cáo. Quá trình này giúp phát hiện các vấn đề mà lẽ ra bạn sẽ mất hàng giờ để tìm thấy hoặc thậm chí bỏ qua hoàn toàn. Vì vậy, bạn có thể thiết lập đánh giá mã này cho tất cả các yêu cầu kéo (PRs) của mình thông qua một ứng dụng GitHub. Hoặc bạn có thể thử thủ công trong Claude Code bằng cách sử dụng /ultra review.
Tối ưu hóa Quy trình làm việc của Nhà phát triển
Giữa chế độ tự động (auto mode), work trees, auto memory và đánh giá mã, giờ đây bạn có ít hành động hơn để phê duyệt, nhiều tác nhân làm việc song song một cách an toàn, các phiên làm việc tích lũy kiến thức theo thời gian. Và các nhóm Claude đánh giá các thay đổi, tất cả trước khi chính bạn phải xem xét từng yêu cầu kéo (PR). Thời gian của bạn rất quý giá, và chúng ta nên tận dụng khả năng của Claude để tối ưu hóa thời gian đó.
Các quy trình tự động (Routines)
Được rồi, điều đó đưa chúng ta đến tính năng cuối cùng chúng ta sẽ đề cập hôm nay: Các quy trình tự động (Routines). Routines gần đây đã được ra mắt trong bản xem trước nghiên cứu (research preview), và chúng giúp bạn tạo các phiên làm việc trong Claude Code có thể được kích hoạt mà không cần sự can thiệp của bạn. Vì vậy, chúng tôi đã nói về việc chúng tôi có các tính năng giúp các tác nhân làm việc tự chủ hơn từ ý tưởng đến yêu cầu kéo (PR), và bây giờ chúng tôi đang tự động hóa việc tạo ra ý tưởng đó. Đúng vậy. Cấu trúc của một routine rất đơn giản. Bạn cấu hình chúng một lần với lời nhắc (prompt), kho chứa (repo) của mình và các trình kết nối liên quan, sau đó bạn có thể chọn một yếu tố kích hoạt (trigger), có thể là một lịch trình cron (chạy hàng giờ hoặc hàng ngày), một sự kiện webhook của GitHub, hoặc bạn thậm chí có thể thiết lập một API endpoint mà bạn gọi để routine chạy. Từ đó, Claude sẽ chạy mà không cần bạn. Vì vậy, bạn có thể có một routine phân loại các vấn đề GitHub mỗi ngày, và sau đó nếu bạn kích hoạt trình kết nối Slack, bạn có thể yêu cầu nó gửi một bản tóm tắt các vấn đề hàng đầu đó đến Slack. Hoặc bạn có thể có một routine được chạy mỗi khi trang web thương mại điện tử của bạn có một giao dịch. Đúng vậy. Bạn cũng có thể để Claude vui mừng cùng bạn.
Demo về các quy trình tự động (Routines) và /loop
Vậy hãy xem routines hoạt động như thế nào với một bản demo. Giờ đây, routines là một tính năng rất nổi bật trong thanh bên (sidebar), nhưng chúng tôi cũng giới thiệu /loop. Vậy hãy bắt đầu một phiên làm việc mới. Chúng ta có thể nói /loop one minute. Tell me a joke, chẳng hạn. Và sau đó tôi có thể sử dụng màn hình phụ của mình bên cạnh. Vì vậy, tính năng chia màn hình (split view) khá tiện lợi. Lệnh /loop có thể giúp bạn thiết lập tự động hóa trong một phiên Claude Code duy nhất. Claude có một công cụ tạo cron (cron create tool), tương tự như công cụ nhập work tree (enter work tree tool), nơi nó có thể tùy ý bắt đầu một công việc theo lịch trình cho bạn, và tất nhiên bạn luôn có thể tắt công cụ này trong cài đặt của mình nếu bạn không thích nó. Vì vậy, bây giờ tôi đã lên lịch để nó kể cho tôi nghe một câu chuyện cười mỗi phút. Và có một câu chuyện cười về lý do tại sao các lập trình viên thích chế độ tối (dark mode) vì ánh sáng thu hút lỗi (bugs), v.v.
Vậy hãy so sánh điều này với routines nơi bạn có thể khởi động một routine mới, cả cục bộ trên máy tính để bàn của bạn hoặc từ xa. Tôi thích từ xa hơn vì nếu bạn thiết lập một routine cục bộ, bạn phải luôn mở máy tính xách tay của mình. Nhưng nếu bạn chạy nó từ xa, các máy chủ của chúng tôi sẽ lên lịch và chạy các công việc này cho bạn. Thực tế, tôi có một routine của riêng mình mà tôi đã chạy rất nhiều gần đây. Hãy cùng xem qua. Các hướng dẫn của tôi ở đây là: quét các vấn đề GitHub công khai mở gần đây nhất với nhiều phản ứng (reacts) nhất được tạo ra kể từ ngày hôm trước. Chỉ xem xét các vấn đề có nhãn 'area-plugins' và 'area-hooks', mà tôi chịu trách nhiệm, và phản hồi bằng một danh sách riêng biệt gồm 10 vấn đề hàng đầu được sắp xếp theo số phản ứng (reacts) nhiều nhất. Và nó đã chạy được một tuần nay, và bạn có thể thấy rằng mỗi ngày tôi nhận được một báo cáo rất hay về các vấn đề hàng đầu. Và tôi không phải nghĩ về việc lời nhắc (prompting) Claude để khởi chạy các báo cáo này. Và bạn có thể tưởng tượng chúng ta có thể thiết lập các tự động hóa khác để sau đó tiếp nhận các báo cáo này, khởi chạy các tác nhân phụ (sub agents) để gỡ lỗi chúng, v.v.
Được rồi, hãy quay lại với các câu chuyện cười của chúng ta. Vậy khi chúng ta kết thúc việc viết truyện cười, chúng ta có thể nói "stop the loop". Và Claude có thể diễn giải lời nhắc của bạn, ánh xạ nó tới gọi công cụ (tool call) thích hợp và xóa nó.
Công cụ tìm kiếm công cụ (Tool Search Tool)
Bạn cũng sẽ nhận thấy rằng chúng tôi có một công cụ tìm kiếm công cụ (tool search tool) bây giờ. Công cụ tìm kiếm công cụ (tool search) làm gì? Nó thêm một lớp gián tiếp giữa bạn và các định nghĩa công cụ (tool definitions) thực tế. Vì vậy, bây giờ chúng tôi có thể cung cấp nhiều công cụ hơn cùng một lúc mà không ảnh hưởng trực tiếp đến ngữ cảnh của bạn.
Các tính năng và tài nguyên khác
Được rồi. Quay lại với các slide. Vậy chúng ta đã đề cập đến trải nghiệm nhà phát triển (developer experience). Chúng ta đã đề cập đến tính tự chủ (autonomy). Bây giờ hãy cùng xem xét tất cả các mục khác mà tôi không thể đề cập trong cuộc trò chuyện này. Vì vậy, bạn có thể chụp ảnh hoặc bạn có thể chỉ cần cảm nhận được số lượng tính năng áp đảo mà nhóm chúng tôi phát hành mỗi ngày. Đặc biệt, đối với những bạn đang quản lý Claude Code cho nhóm hoặc doanh nghiệp của mình, chúng tôi đã xây dựng một số tính năng dành cho bạn. Ví dụ, chúng tôi có hỗ trợ cửa sổ tốt hơn nhiều so với vài tháng trước. Chúng tôi có cloud provider setup, native installation, admin settings management và các tính năng plugin features để cải thiện khung sườn (harness improvements) toàn công ty.
Như mọi khi, bạn có thể theo dõi trên public change log của chúng tôi. Trên change log, chúng tôi có một vài cách để cập nhật những gì mới. Bạn có thể theo dõi Claude Devs trên X. Bạn có thể đọc các bản tóm tắt "Có gì mới" hàng tuần của chúng tôi trong tài liệu. Hoặc bạn có thể đăng ký nhận bản tin dành cho nhà phát triển của chúng tôi. Chúng tôi hy vọng bạn có cơ hội thử ít nhất một trong các tính năng mà chúng tôi đã đề cập hôm nay và cho chúng tôi biết suy nghĩ của bạn.
Lời cảm ơn
Và sau đó, đối với những bạn có mặt trong phòng, chúng ta sẽ có một cuộc trò chuyện với Dario và Daniela do Ami điều hành ngay tại sân khấu chính này. Cảm ơn tất cả mọi người rất nhiều.