- Claude Code
2.1.198 đã bật mặc định tính năng tự động tiếp tục khiến mô hình tự quyết định và tiếp tục công việc nếu không có phản hồi cho AskUserQuestion trong 60 giây, nhưng khi phát hành lại không ghi điều này trong changelog và tài liệu
- Dù không tự động phê duyệt yêu cầu quyền, trong môi trường đã cho phép sẵn công cụ hoặc dùng
--dangerously-skip-permissions, nó vẫn có thể tự vượt qua các cổng ra quyết định như “staging hay production”, và ngay cả khi chỉ nhập một phần câu trả lời thì phần còn lại vẫn do mô hình chọn
2.1.200, phát hành khoảng hai ngày sau khi vấn đề được nêu ra, không xóa tính năng này mà chỉ tắt mặc định, chuyển sang cơ chế opt-in để chọn một trong 60s, 5m, 10m, never trong /config
- Dù kho lưu trữ công khai không có mã nguồn sản phẩm thực tế hay commit thêm vào/rollback, việc so sánh các bundle JavaScript có trong file thực thi Bun của npm cho thấy ở
2.1.198 đã có thêm chuỗi AFK, schema và sự kiện phân tích cùng lúc
- Khi cập nhật tự động mặc định kết hợp với changelog không đầy đủ, các giả định an toàn có thể thay đổi mà không cần người dùng can thiệp. Nếu muốn ghim CLI nhưng vẫn cập nhật plugin, cần đặt đồng thời
DISABLE_AUTOUPDATER=1 và FORCE_AUTOUPDATE_PLUGINS=1
2.1.198 quyết định thay con người sau 60 giây
- Claude Code
2.1.198, phát hành ngày 1/7/2026, sẽ bỏ chặn khi AskUserQuestion đã chờ câu trả lời từ con người quá 60 giây và chỉ thị cho mô hình tự đưa ra phán đoán tốt nhất dựa trên ngữ cảnh để tiếp tục
- Trong đầu ra sẽ hiển thị
No response after 60s — continued without an answer
- Có thông báo rằng có thể hỏi lại, nhưng lần hỏi lại cũng áp dụng cùng thời hạn chờ
- Nếu người dùng chỉ trả lời một phần câu hỏi rồi rời đi, hệ thống sẽ không bỏ phần nhập đó mà gửi câu trả lời một phần
- Nếu trong ba câu hỏi chỉ trả lời câu đầu tiên, công việc sẽ tiếp tục với câu trả lời đó và các câu còn lại do mô hình chọn
- Thông báo trên màn hình sẽ chọn
continued with the answers selected so far hoặc continued without an answer tùy việc đã có câu trả lời hay chưa
- Không phải là trên màn hình hoàn toàn không có đếm ngược
- Khi nhấn phím, bộ đếm thời gian sẽ khởi động lại và hiện dòng như
auto-continue in 12s · any key to stay
- Tuy nhiên, do giá trị mặc định của
CLAUDE_AFK_COUNTDOWN_MS là 20 giây, nên trong 40 giây đầu nó trông như một câu hỏi chặn thông thường, và cảnh báo chỉ hiện trong 20 giây cuối
- Người dùng chạy nhiều agent ở các tab khác nhau hoặc rời máy có thể không nhìn thấy cảnh báo
Phạm vi áp dụng và giới hạn của cổng an toàn
- Thời hạn chờ chỉ áp dụng cho
AskUserQuestion, không gắn với các prompt quyền như phê duyệt kế hoạch hay Do you want to allow …
- Trong file thực thi, thành phần đếm ngược và hook hẹn giờ chỉ được nối với hộp thoại câu hỏi
- Tài liệu tham chiếu công cụ cũng nêu rõ rằng prompt quyền sẽ không tự được giải quyết khi ở trạng thái nhàn rỗi
- Trong các cách chạy vốn dĩ không hiện prompt quyền, sự tách biệt này không còn là lớp bảo vệ
- Có thể dùng
bypassPermissions, acceptEdits, allowedTools, --dangerously-skip-permissions, hook PreToolUse
- Nếu lệnh triển khai nằm trong danh sách cho phép hoặc đã bỏ qua xác nhận quyền, thì các lựa chọn trong
AskUserQuestion như “staging hay production?”, “config nào?” có thể là cổng duy nhất còn lại
- Bộ đếm thời gian không cấp quyền, nhưng có thể giao chính việc lựa chọn của tác vụ đã có quyền cho mô hình
- Schema công cụ không có đầu vào
timeout, và mô hình cũng không thể đặt hay điều khiển nó
- Các tham số đầu vào chỉ gồm
questions, answers, annotations, metadata
- Thành phần bỏ qua câu trả lời không phải mô hình mà là agent harness tự động trả về phản hồi
Dòng thời gian phát hành và hoàn tác
- Hồ sơ công khai đã xác nhận nối tiếp theo thứ tự sau
- 2026-06-29: phát hành
2.1.196, phiên bản bình thường cuối cùng theo ước đoán của người báo cáo
- 2026-06-30: phát hành
2.1.197, changelog chỉ có một dòng về việc ra mắt Sonnet 5
- 2026-07-01: phát hành
2.1.198 với tính năng tự động tiếp tục
- 2026-07-02 02:54 UTC: Aleksey Nogin tạo issue #73125
- 2026-07-02 03:45 UTC: trong phần bình luận đã chia sẻ
CLAUDE_AFK_TIMEOUT_MS, lối thoát trước đó không được công khai
- 2026-07-02: khi issue vẫn đang mở,
2.1.199 được phát hành với 24 mục, nhưng tự động tiếp tục vẫn không được ghi nhận
- 2026-07-03:
2.1.200 hoàn tác hành vi mặc định
- 2026-07-04 18:04 UTC: đóng issue
- Issue này nhận 384 lượt 👍 và 143 bình luận, môi trường báo cáo là
2.1.198, Opus, AWS Bedrock, terminal VS Code
- Từ lúc báo lỗi đến khi đổi mặc định mất khoảng hai ngày
Cách 2.1.200 sửa vấn đề
2.1.200 không xóa tính năng mà tắt tự động tiếp tục theo mặc định, đồng thời chuyển sang opt-in qua /config
- Trước khi sửa,
2.1.198 không có thiết lập /config là askUserQuestionTimeout, nên để tránh bị ảnh hưởng phải dùng biến môi trường không xuất hiện trong tài liệu phát hành
- Đến
2.1.211, toàn bộ phần triển khai vẫn được giữ nguyên
- Tên mục trong
/config là Question auto-continue timeout
- Các giá trị cho phép là
60s, 5m, 10m, never
- Nếu không cấu hình thì sẽ được xử lý là
never, tức tính năng bị tắt
- Thời hạn chờ mặc định nội bộ vẫn là 60.000ms, mốc bắt đầu đếm ngược vẫn là 20.000ms
CLAUDE_AFK_TIMEOUT_MS và CLAUDE_AFK_COUNTDOWN_MS có thể ghi đè giá trị cấu hình
- Bản sửa không xóa bộ đếm thời gian, mà chỉ thêm một điều kiện chặn để nó chỉ kích hoạt khi có giá trị cấu hình hoặc biến môi trường
- Người dùng bị ghim ở phiên bản bị ảnh hưởng có thể tạm thời lách bằng cách đặt giá trị rất lớn cho
CLAUDE_AFK_TIMEOUT_MS trong settings.json
Tính năng được đưa vào nhưng không xuất hiện trong changelog
- Ghi chú phát hành được đăng với cùng nội dung trên changelog chính thức và
CHANGELOG.md của kho lưu trữ
- Nếu đối chiếu hồ sơ khi đó theo commit cố định, việc bổ sung tự động tiếp tục không xuất hiện ở bất kỳ phiên bản nào
2.1.197: một dòng về việc phát hành Sonnet 5
2.1.198: có khoảng 30 mục nhưng không có tự động tiếp tục
2.1.199: cũng không có trong 24 mục được đăng sau khi issue được mở
AskUserQuestion là công cụ vốn thường được ghi trong changelog, xuất hiện tổng cộng 15 lần trong 13 phiên bản kể từ 2.0.55
- Nhưng trong khoảng có thay đổi, từ
2.1.181 đến trước 2.1.200, nó không xuất hiện lấy một lần
- Trong hai lần thay đổi hành vi là bật và tắt, chỉ có việc tắt được ghi lại
- Mục duy nhất lần đầu ghi nhận tự động tiếp tục là câu trong
2.1.200 rằng “không còn tự động tiếp tục theo mặc định và có thể opt-in bằng /config”
CLAUDE_AFK_TIMEOUT_MS không có ở đâu trong changelog hay README
Tài liệu được thêm vào sau khi hành vi đã bị hoàn tác
- Hiện tại, tài liệu tham chiếu biến môi trường ghi lại hai biến môi trường AFK và nêu rõ rằng tự động tiếp tục sau 60 giây được bật mặc định ở
2.1.198 và 2.1.199
- Tài liệu này không thể là tài liệu phản ánh trạng thái vào ngày phát hành
askUserQuestionTimeout mà câu chữ hiện tại đề cập không tồn tại trong tệp thực thi 2.1.198
- Các bản chụp của Wayback Machine vào ngày 23 tháng 6 và ngày 1 tháng 7 lúc 12:11 và 21:35 UTC đều có số lần xuất hiện của
CLAUDE_AFK và AskUserQuestion bằng 0
- Mục đối chiếu
DISABLE_AUTOUPDATER xuất hiện 2 lần trong mọi bản chụp, nên đây không phải thiếu sót do lỗi thu thập trang
2.1.198 được đăng lên npm lúc 16:50:16 UTC ngày 1 tháng 7, nhưng ngay cả trong tài liệu sau đó 4 giờ 45 phút vẫn không có AFK, tự động tiếp tục, công cụ đặt câu hỏi hay đếm ngược
- Câu chữ liên quan được thêm vào đâu đó từ 21:35 ngày 1 tháng 7 đến 13:58 ngày 5 tháng 7, và khoảng này cũng bao gồm việc hoàn tác trong
2.1.200
- Tài liệu mới chỉ ghi lại trạng thái sau khi sửa là “mặc định tắt”, nên không có thời điểm nào hành vi mặc định thực tế của ngày 1–2 tháng 7 được tài liệu hóa
Mã nguồn sản phẩm và commit không có trong kho công khai
- Không có cả commit công khai đưa tính năng vào lẫn commit công khai hoàn tác nó
- Trong lịch sử Git công khai chỉ còn hai commit tự động chỉ cập nhật changelog và
feed.xml
75709ea: đăng ghi chú phát hành 2.1.198
1322e9b: đăng ghi chú phát hành 2.1.200
- Kho
anthropics/claude-code có 216 tệp được theo dõi, trong đó 104 tệp là Markdown, và không có mã nguồn của sản phẩm thực tế được phát hành
- Các tệp có thể chạy được là ví dụ hoặc script tự động hóa theo dõi issue
plugins/ và examples/ cũng chỉ chứa plugin mẫu, cấu hình Terraform cho GCP gateway, hồ sơ MDM, v.v.
- Khác biệt giữa các tag
2.1.197 và 2.1.198 chỉ là CHANGELOG.md và feed.xml lặp lại nội dung đó dưới dạng RSS
- Mười bản phát hành liên tiếp từ
2.1.196 đến 2.1.206 cũng chỉ thay đổi hai tệp đó
- Các tag này thực chất không phải tag phát hành mã nguồn mà là tag ghi chú phát hành
- Không thể xác nhận hành vi triển khai thực tế qua changelog hay so sánh kho lưu trữ/tag, còn mã nguồn được viết ra không được công khai mà chỉ được phân phối dưới dạng tệp thực thi đã biên dịch
Dấu vết cho thấy đây là tính năng được chủ ý thiết kế và đo lường
- Không có tài liệu thiết kế chính thức, PR hay câu chữ changelog nào để xác nhận lý do đưa nó vào
- Tên gọi và thông điệp là bằng chứng tình huống cho thấy nó nhắm tới tình huống các agent song song bị chặn vô thời hạn vì người dùng vắng mặt
- Tên nội bộ
AFK có nghĩa là away from keyboard
- Thông điệp giả định rằng “người dùng có thể đang rời bàn phím”
- Những người tham gia issue cho biết họ dùng quy trình mà hàng chục agent phải chờ câu trả lời của con người trong nhiều ngày
- Trong
2.1.198, trường afkTimeoutMs biểu thị việc có tự động giải quyết hay không được thêm vào schema kết quả công cụ
- Nó không có trong nhánh người dùng trả lời trực tiếp, mà ghi lại thời gian nhàn rỗi khi tự động giải quyết
- Nó được dùng để báo cho model biết đây là phản hồi được tự động giải quyết và để chọn thành phần đầu ra terminal
- Cùng phiên bản đó cũng bổ sung sự kiện phân tích
tengu_ask_user_question_afk_auto_advance
- Nó gửi
timeoutMs, số lượng câu hỏi, có phải plan mode hay không, và có câu trả lời một phần hay không
- Nó không gửi nguyên văn câu hỏi mà dùng
source_hash và bộ đếm
- Vì
hadPartialAnswers cũng được đo lường riêng, nhánh câu trả lời một phần cũng có mã và phép đo độc lập
- Hành vi, UI đếm ngược, trường schema và sự kiện phân tích cùng xuất hiện trong một phiên bản, nên đây không phải một dòng lệnh vô tình mà là một tính năng có hệ thống đo lường
- Chỉ với các bằng chứng này thì không thể biết ai đã viết, rà soát, phê duyệt hay hợp nhất nó, cũng như con người đã can thiệp ở giai đoạn nào
Mã nguồn đóng nhưng có thể đọc được tệp thực thi Bun
- Claude Code đã cài đặt là một tệp thực thi native khoảng 250MB chưa bị loại bỏ symbol
- Định dạng tệp thực thi đơn của Bun gắn đồ thị module ở phía sau runtime, và trong tệp thực thi Claude Code cũng có thể tìm thấy dấu
---- Bun! ----
- Vì Bun nhúng bundle JavaScript vào bên trong tệp thực thi, có thể dùng
strings để đọc tên cấu hình, thông điệp, sự kiện phân tích, v.v.
- Thư mục cài đặt cục bộ chỉ giữ lại một phần các phiên bản gần đây, nhưng trên npm vẫn còn các tệp thực thi theo từng nền tảng của từng phiên bản
@anthropic-ai/claude-code là stub cài đặt khoảng 152KB
- Gói
2.1.198 thực tế cho Linux x64 có dung lượng khoảng 249MB
- Dù không có mã nguồn công khai, vẫn có thể tải từng artifact phát hành để xác nhận hành vi đã được phân phối, nên đây không phải hộp đen hoàn toàn
So sánh tệp thực thi 2.1.197 và 2.1.198
- Khi tìm các chuỗi liên quan đến AFK trong hai tệp thực thi, ranh giới hiện ra rất rõ
2.1.197: away from keyboard, CLAUDE_AFK_TIMEOUT_MS, CLAUDE_AFK_COUNTDOWN_MS đều xuất hiện 0 lần
2.1.198: lần lượt xuất hiện 2 lần, 3 lần, 3 lần
- Sau khi sửa, cổng kiểm soát bộ đếm thời gian trong
2.1.211 được thêm điều kiện là phải có giá trị /config hoặc biến môi trường
2.1.198 cũng đã có cổng kiểm tra như việc có thực thi cạnh tranh từ bên ngoài hay không
- Tuy nhiên không có điều kiện nào để người dùng có thể tắt, và bản sửa chỉ là thêm một điều kiện
&& vào đây
- Nếu không biết tên tính năng và phiên bản nơi sự cố xảy ra, việc so sánh các bản phát hành thông thường sẽ khó hơn nhiều
- Theo so sánh đơn giản dựa trên
strings -n 8, có tới 21.903 chuỗi khác nhau
- Tùy theo độ dài chuỗi tối thiểu, con số có thể là 81.289 hoặc 29.910, nên 21.903 không phải đặc điểm cố hữu của một bản phát hành cố định
- Mỗi bản build, minifier lại đổi tên định danh nên phần lớn chỉ là nhiễu chứ không phải thay đổi tính năng thực sự
- Nếu chỉ lọc các chuỗi được thêm vào là câu tiếng Anh bắt đầu bằng chữ in hoa, có dạng câu thông thường và dài từ 5 từ trở lên, con số giảm xuống còn 156 dòng
- Trong đó có
Before going idle the user had selected:
- Đây là chuỗi được chèn vào cuộc hội thoại khi hộp thoại trả lời thay cho con người, nên ngay cả khi đọc mà không có thông tin trước đó, đó cũng là thay đổi đủ để phải dừng việc rà soát lại
- Có thể phát hiện trong khoảng 5 phút bằng
curl, strings, diff, nhưng việc người dùng kiểm tra tệp thực thi ở mọi bản phát hành tự động cập nhật không thể thay thế changelog
Vấn đề an toàn lớn hơn chi phí
- Nếu tự động chọn nhầm đường đi, có thể tiêu tốn token không cần thiết
- Vấn đề lớn hơn là các hook và quy tắc vốn giả định
AskUserQuestion là cổng an toàn chặn sẽ bị đổi thành bộ đếm ngược 60 giây
- Claude Code được dùng cả trong các môi trường rủi ro như triển khai, hạ tầng, và các script sát môi trường production
- Vì Claude Code tự động cập nhật theo mặc định, khi kết hợp với thay đổi hành vi âm thầm, các giả định an toàn hiện có có thể thay đổi mà người dùng không cần làm gì
- Tranh luận rằng chính sách nhận ngay phiên bản mới nhất có thể là một lựa chọn rủi ro cũng nối tiếp với On Cooldowns and Dependabot Tuning
Cách tắt tự động cập nhật và thứ tự ưu tiên
- Việc vô hiệu hóa cập nhật sẽ kiểm tra các biến môi trường sau theo thứ tự, và giá trị khớp đầu tiên sẽ được áp dụng
DISABLE_UPDATES=1: chặn mọi đường cập nhật, kể cả claude update thủ công
DISABLE_AUTOUPDATER=1: chỉ dừng kiểm tra nền, vẫn cho phép cập nhật thủ công và được ưu tiên hơn thiết lập autoUpdates
CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC=1: đồng thời dừng tự động cập nhật, lệnh phản hồi, báo lỗi và telemetry
- Nếu đặt trong khối
env của ~/.claude/settings.json thay vì profile shell, có thể áp dụng cho mọi phiên, bao gồm CI, cron, systemd và terminal trong IDE
{
"env": {
"DISABLE_AUTOUPDATER": "1"
}
}
- Phạm vi cấu hình mạnh dần theo thứ tự: profile shell,
~/.claude/settings.json theo người dùng, .claude/settings.json theo kho lưu trữ, managed-settings.json cho quản trị tập trung
- Đường dẫn
managed-settings.json như sau
- macOS:
/Library/Application Support/ClaudeCode/managed-settings.json
- Linux/WSL:
/etc/claude-code/managed-settings.json
- Windows:
C:\Program Files\ClaudeCode\managed-settings.json
- Đường dẫn cũ
C:\ProgramData\ClaudeCode không còn được đọc nữa
- Không có cờ CLI để tắt tự động cập nhật, còn
/doctor sẽ hiển thị kiểu cài đặt và kênh cập nhật
Tắt cập nhật CLI cũng làm plugin dừng lại
- Nếu tắt auto-updater bằng bất kỳ cách nào như biến môi trường hay
autoUpdates: false, thì tự động cập nhật plugin cũng sẽ dừng
- Tài liệu khám phá plugin hướng dẫn rằng nếu đặt
DISABLE_AUTOUPDATER cùng với FORCE_AUTOUPDATE_PLUGINS=1 thì có thể giữ cố định CLI nhưng vẫn tiếp tục cập nhật plugin
- Trong khi đó, tài liệu
/setup hướng dẫn vô hiệu hóa tự động cập nhật thực tế và bảng biến môi trường cấu hình lại không nhắc đến ảnh hưởng lên plugin hay FORCE_AUTOUPDATE_PLUGINS
- Trên tệp thực thi, có bốn đường dẫn làm dừng cập nhật plugin
DISABLE_UPDATES
DISABLE_AUTOUPDATER
CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC
autoUpdates: false
- Khi chạy, thay vì cảnh báo rằng plugin đã dừng, chỉ có log debug
Plugin autoupdate: skipped (auto-updater disabled) được ghi lại
- Cấu hình để giữ cố định CLI nhưng vẫn duy trì plugin như sau
{
"env": {
"DISABLE_AUTOUPDATER": "1",
"FORCE_AUTOUPDATE_PLUGINS": "1"
}
}
FORCE_AUTOUPDATE_PLUGINS, DISABLE_AUTOUPDATER, DISABLE_UPDATES sẽ coi 1, true, yes, on là giá trị đúng không phân biệt hoa thường, và 0 là sai
CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC không kiểm tra giá trị mà chỉ kiểm tra sự tồn tại, nên cả =0 cũng kích hoạt; trong trường hợp đó cả auto-updater và cập nhật plugin đều dừng
Những cạm bẫy bổ sung trong cấu hình cập nhật
- Dù dùng
CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC vì mục đích bảo vệ quyền riêng tư hay hạn chế giao tiếp ra ngoài, CLI và plugin vẫn sẽ cùng bị cố định
autoUpdates: false không có trong tài liệu có thể bị bỏ qua nếu autoUpdatesProtectedForNative được bật trên cài đặt native
- Biến môi trường được kiểm tra trước thiết lập này và áp dụng vô điều kiện
2.1.98 đã sửa vấn đề trong cài đặt npm nơi DISABLE_AUTOUPDATER không thể chặn hoàn toàn việc kiểm tra phiên bản registry và sửa symbolic link
- Vấn đề auto-updater ghi đè launcher tùy chỉnh hoặc symbolic link của người dùng tại
~/.local/bin/claude ở mỗi bản phát hành cũng đã được sửa, và hiện tại /doctor hiển thị launcher do bên ngoài quản lý
- Cài đặt native và npm mặc định sẽ tự cập nhật
- Homebrew, WinGet, apt, dnf, apk mặc định không thuộc diện tự cập nhật
- Homebrew và WinGet có thể opt-in bằng
CLAUDE_CODE_PACKAGE_MANAGER_AUTO_UPDATE=1
Vấn đề niềm tin còn lại trong quy trình phát hành
- Khi con người giám sát nhiều agent cùng lúc, rất khó xác nhận mọi câu hỏi trong vòng 60 giây, và cũng không thể biết trước sau một lựa chọn sai thì sẽ tiêu tốn bao nhiêu token hay công việc
- Không thể xác nhận từ hồ sơ công khai rằng Anthropic đã dùng những con người và quy trình nào ở các bước viết tính năng, rà soát, phê duyệt, hợp nhất, tài liệu hóa và so sánh bản phát hành
- Tính năng đã được sửa thành dạng opt-in phù hợp trong khoảng hai ngày, nhưng điều này cho thấy các tính năng ngoài dự kiến vẫn có thể được phát hành mà không có changelog, thông qua chu kỳ phát hành hằng ngày và tự động cập nhật mặc định
- Phân tích tệp thực thi là một cách vòng hữu hiệu để xác minh nội dung được phát hành thực tế, nhưng không thể thay thế changelog chính xác và được biên tập cẩn thận
- Không có căn cứ để giả định ác ý, và việc liệu cùng loại sự việc này có lặp lại hay không sẽ là cơ sở để đánh giá quy trình phát hành này đã được cải thiện những gì
1 bình luận
Ý kiến trên Hacker News
Tôi là Thariq, người đã tạo ra AskUserQuestion trong đội Claude Code. Khi mô hình mạnh hơn, chúng tôi nhận được phản hồi rằng các tác vụ dài bị chặn lại bởi những câu hỏi ở giai đoạn đầu, nên đã thay đổi để giải quyết điều đó, nhưng kết quả không đạt tiêu chuẩn chất lượng mong đợi và đây cũng không phải cách phát hành thông thường của Claude Code
Dù đánh giá nội bộ có tốt đến đâu thì lẽ ra ngay từ đầu vẫn phải phát hành theo dạng opt-in và ghi lại trong changelog. AskUserQuestion không được thiết kế như một cơ chế an toàn, nhưng tôi hiểu rằng với một số người dùng nó đã trở thành như vậy; chúng tôi sẽ tìm cách khác để cân bằng giữa tác vụ dài và đầu vào từ người dùng, đồng thời rút kinh nghiệm từ lần phát hành này
Với một công ty quy mô như Anthropic, thay vì đổ về cá nhân, họ nên cho thấy mình thừa nhận và sửa chữa thất bại của quy trình PR và quy trình tổ chức đã cho phép đợt phát hành này xảy ra
Tôi tò mò liệu sự minh bạch như vậy có phải là xu hướng mới của thời đại Internet hay văn hóa doanh nghiệp công nghệ đang thay đổi
Câu “không phải mọi tính năng đều nhất thiết xuất hiện trong changelog” và việc Anthropic không nói rõ vì sao changelog không còn được duy trì như một lịch sử đầy đủ nữa đặc biệt gây khó chịu. Không ai biết còn gì đang được lặng lẽ phát hành nữa(1)
Việc duy nhất Boris Cherny làm trong cuộc thảo luận đó là xóa cụm “extreme danger” khỏi tiêu đề issue trên GitHub(2). Việc Anthropic thêm tùy chọn và để mặc định là tắt ít ra cũng còn may, nhưng OpenAI vẫn kiên quyết không cho tắt giới hạn 60 giây(3). Tuy vậy, công cụ thực thi của Codex được open source nhiều hơn nên người dùng có thể tự fork và thêm tùy chọn
Khi trợ giá token kết thúc, tôi sẽ không tin một công cụ thực thi do công ty còn tính cả chi phí compute làm ra. Bây giờ thì lợi ích vẫn đang đồng nhất, nhưng đến lúc token tăng đồng nghĩa lợi nhuận tăng thì động cơ lệch lạc sẽ quá lớn
Cuối cùng công cụ thực thi open source có khả năng sẽ chiến thắng, nên các công ty tốt hơn hết cũng nên tự open source luôn
Gần đây tôi click chuột để lấy focus vào cửa sổ terminal, nhưng Claude Code lại hiểu đó là click chọn một phương án nên rất phiền
Hôm nay tôi vừa gặp trực tiếp. Đang đọc câu trả lời của agent thì một câu hỏi hiện ra, nhưng còn chưa kịp đọc xong câu hỏi thì nó đã tự chọn cái gì đó rồi. Tôi không hiểu kỹ nghệ phần mềm đã đi về đâu
Tôi thậm chí còn thấy nó thêm cờ tự động phê duyệt vào
terraform apply, cực kỳ nguy hiểmTôi không hiểu vì sao Claude Code dường như dựng một máy ảo khá nặng trên máy tính nhưng mặc định lại không cô lập sandbox bất cứ thứ gì. Các mô hình mới sửa đổi máy tính một cách rất hung hăng; tôi chỉ nhờ debug mã UI frontend mà nó lại bắt đầu ghi đè các file hệ thống Linux có thể truy cập bằng quyền người dùng
Sau khi đưa nó vào sandbox, tôi mới thấy tần suất nó cố vượt ra khỏi ranh giới vì những lý do lặt vặt nhiều đến mức nào, và điều đó càng làm tăng lý do để dùng OpenCode và local LLM
Nhiều phản ứng diễn giải theo hướng ác ý, nhưng thực ra có vẻ gần với việc chính đội phát triển làm ra tính năng mà họ muốn dùng. Việc để một phiên Claude chạy rồi quay lại thấy nó bị kẹt ở một câu hỏi và không làm gì cả thực sự rất bực bội
Cũng không nên tin rằng việc Claude đặt câu hỏi là cơ chế duy nhất ngăn thảm họa. Ranh giới an toàn phải được đặt trên các quyền được cấp từ bên ngoài, chứ không phải dựa vào phán đoán nội bộ của Claude. Mặt khác, bài này có những câu như “Which cuts less far than it looks.”, và có lẽ Claude cũng sẽ không dừng lại để hỏi về chỗ đó
Tôi không nghĩ là có ác ý, nhưng đó là sự liều lĩnh và cẩu thả, và ngay cả khi chuyện tương tự lặp lại thì cũng không thấy nhóm này học được gì. Claude Code không phải công cụ ổn định và đáng tin cậy mà gần với một thử nghiệm tiên phong hơn, và đó là cái giá phải chấp nhận khi chọn nó thay vì các công cụ thực thi khác
Thậm chí còn không có tham số nào để Claude hiển thị mức độ nghiêm trọng của câu hỏi hay thời gian phản hồi dự kiến, và thời hạn chỉ có 60 giây. Tôi còn chưa kịp xem tài liệu trên màn hình thứ hai để tìm câu trả lời rồi quay lại thì nó đã bỏ qua mất, mà 60 giây còn khó đủ để đọc hết ngữ cảnh của câu hỏi
Dù không phải ác ý, điều này cho thấy một khoảng trống lớn về năng lực phán đoán trong quá trình đưa ý tưởng vào triển khai thực tế
Trước đây plugin Codex cho VS Code cũng từng có tính năng tương tự rồi nhanh chóng bị gỡ bỏ. Khá thường thấy các LLM từ những nhà cung cấp khác nhau hội tụ về các ý tưởng và thiên hướng giống nhau, nên tôi cũng tò mò liệu LLM có thể đã gợi ý cùng ý tưởng đó cho quản lý sản phẩm hay người phụ trách của Claude hay không
AskUserQuestion không phải cơ chế phê duyệt quyền hạn, nên có vẻ ổn khi là hành vi mặc định. Có thể cần thêm chức năng cảnh báo riêng, nhưng nếu mô hình đủ tốt để tự chọn và tiếp tục rồi người dùng chỉnh sửa sau thì cách đó cũng dễ hơn cho quản lý nhiều agent
Việc Anthropic có thể thay đổi toàn bộ cách Claude Code hoạt động là một trong những lý do khiến Pi coding agent được tạo ra. Nếu người dùng đầu tư đáng kể thời gian để xây dựng quy trình làm việc trên sản phẩm, thì tính nhất quán là cực kỳ quan trọng