Fable 5 ngay từ ngày ra mắt, số phận đã huyền ảo như chính cái tên của mô hình.
Từ "Thời khắc phong thần AI" được đông đảo mong đợi, đến lệnh cấm của chính phủ Mỹ buộc phải ngừng hoạt động, rồi cấm người không phải Mỹ truy cập, có thể nói đã thu hút sự chú ý của toàn cầu.
Đến nay, sóng gió dần lắng xuống. Cuối cùng thì mô hình cũng phải quay về với năng suất lao động.
Vì lý do này, kỹ sư Claude Code Thariq Shihipar đã đăng một blog dài trên mạng xã hội, giải thích chi tiết kỹ thuật sử dụng Fable 5.
Bài viết này đã giải đáp một thắc mắc tồn tại lâu nay của mọi người. Rõ ràng khả năng của các mô hình hiện nay đã tiến hóa đến mức mạnh mẽ như vậy, tại sao khi tôi sử dụng mô hình vẫn cảm thấy nó không làm đúng nhiệm vụ?
Blog của Thariq khiến người ta bừng tỉnh. Tóm lại: Giữa người và mô hình tồn tại khoảng cách thông tin, tức là sự khác biệt giữa prompt, kỹ năng, ngữ cảnh do người dùng cung cấp và việc thực thi nhiệm vụ thực tế.
Toàn bộ bài blog này chính là dạy bạn cách phá vỡ khoảng cách thông tin này. Dưới đây, Machine Heart sẽ đính kèm toàn văn blog để phục vụ độc giả.

Tiêu đề blog: A Field Guide to Fable: Finding Your Unknowns
Liên kết blog: https://x.com/trq212/status/2073100352921215386
Làm việc với Claude Fable 5 liên tục khiến tôi nhận ra lại một chân lý cũ: Bản đồ không bằng lãnh thổ.
Cái gọi là "bản đồ" là sự thể hiện của công việc cần hoàn thành, tức là prompt, kỹ năng và ngữ cảnh của tôi, là thứ tôi giao cho Claude. Còn "lãnh thổ" chính là nơi công việc thực sự cần diễn ra: kho mã nguồn, thế giới thực, và những ràng buộc thực sự tồn tại trong đó.

Tôi gọi khoảng cách giữa bản đồ và lãnh thổ là "các ẩn số". Khi Claude gặp một ẩn số, nó buộc phải đưa ra quyết định dựa trên phán đoán tốt nhất về ý định của tôi. Công việc càng phức tạp, Claude có thể gặp càng nhiều ẩn số.
Fable là mô hình đầu tiên khiến tôi cảm nhận rõ ràng rằng chất lượng công việc bị giới hạn bởi khả năng làm rõ các ẩn số của tôi.
Điều quan trọng là, chỉ lập kế hoạch trước không phải lúc nào cũng đủ. Bạn có thể phát hiện ra các ẩn số sâu trong quá trình triển khai; cũng có thể phát hiện những ẩn số này chỉ ra một sự thật: bạn thực ra nên giải quyết vấn đề này theo một cách hoàn toàn khác.
Tôi thấy rằng, cộng tác với Fable, về bản chất là một quá trình lặp đi lặp lại không ngừng phát hiện ra các ẩn số trước, trong và sau khi triển khai.
Tác giả cung cấp một số ví dụ về việc phát hiện "ẩn số", độc giả có thể xem cùng với toàn văn.

Liên kết ví dụ: https://thariqs.github.io/html-effectiveness/unknowns/
Hiểu các ẩn số của bạn
Ẩn số là gì? Khi tôi mang một vấn đề đến với Claude, tôi thường phân tích nó từ bốn góc độ:
Đã biết những gì đã biết: Về cơ bản đây là nội dung tôi viết trong prompt. Tôi nói với agent tôi muốn gì?
Đã biết những gì chưa biết: Có những việc gì tôi chưa rõ, nhưng tôi biết mình chưa rõ?
Chưa biết những gì đã biết: Có những điều gì quá hiển nhiên với tôi đến mức tôi thậm chí không viết ra, nhưng một khi nhìn thấy tôi sẽ nhận ra ngay?
Chưa biết những gì chưa biết: Có những việc gì tôi hoàn toàn chưa nghĩ tới? Có kiến thức gì tôi chưa biết mình chưa biết? Tôi có biết một việc có thể được thực hiện tốt đến mức nào không?

Những lập trình viên dạng agent giỏi nhất thường có tương đối ít ẩn số hơn. Họ rất rõ mình muốn gì, và chi tiết rất đầy đủ. Họ đồng bộ hóa cao độ cả với kho mã nguồn lẫn hành vi của mô hình.
Nhưng họ cũng sẽ giả định sự tồn tại của các ẩn số. Theo nhiều nghĩa, giảm và lên kế hoạch trước cho các ẩn số của bạn, chính là năng lực cốt lõi của lập trình dạng agent. May mắn thay, đây là một kỹ năng có thể không ngừng nâng cao thông qua cộng tác với Claude.
Giúp Claude để giúp chính bạn

Ra lệnh cho Claude là một sự cân bằng tinh tế. Nếu bạn quá cụ thể, ngay cả khi chuyển sang một phương án khác có thể phù hợp hơn, Claude vẫn sẽ thực hiện nghiêm ngặt theo chỉ dẫn của bạn. Nếu bạn quá mơ hồ, Claude thường sẽ đưa ra lựa chọn và giả định dựa trên thực tiễn tốt nhất của ngành, và những lựa chọn này chưa chắc đã phù hợp với nhiệm vụ của bạn.
Cả hai trường hợp đều thất bại khi bạn chưa suy nghĩ đầy đủ về các ẩn số của mình. Bạn không biết con đường phía trước khi nào sẽ đầy chướng ngại, cũng không biết lúc nào con đường thực ra rất thuận lợi, nhưng bạn vẫn muốn Claude có thể điều chỉnh khi cần thiết.
Claude có thể giúp bạn phát hiện ra các ẩn số nhanh hơn. Nó có khả năng tìm kiếm kho mã nguồn và internet của bạn cực nhanh, và nắm bắt kiến thức chung về hầu hết chủ đề nhiều hơn bạn. Nó cũng có thể lặp lại từ thất bại nhanh hơn.
Điều quan trọng nhất trong quá trình này, là cung cấp cho Claude đủ ngữ cảnh khởi đầu. Ví dụ, nói với nó bạn đang suy nghĩ đến đâu; giải thích mức độ quen thuộc của bạn với vấn đề và kho mã nguồn; để nó cộng tác với bạn như một người bạn đồng hành trong suy nghĩ.
Tôi đã từng viết về cách tạo HTML với Claude. Trong hầu hết các tình huống đó, sản phẩm HTML là cách phù hợp nhất để trực quan hóa và thể hiện ý tưởng.
Trong bài viết này, tôi sẽ đi vào chi tiết một số mẫu hình mà tôi sử dụng để phát hiện ra những ẩn số này. Tôi không phải lúc nào cũng sử dụng tất cả các mẹo, nhưng việc tích lũy chúng như một bộ phương pháp có thể gọi ra sẽ rất hữu ích.

Trước khi triển khai
Quét điểm mù
Một trong những việc hữu ích nhất khi bắt đầu công việc, là hiểu những điểm mù của bản thân. Ví dụ, nếu bạn đang viết tính năng trong một mô-đun mới của kho mã nguồn, hoặc để Claude giúp bạn xử lý một loại công việc nào đó mà bạn không quen, như lặp lại một thiết kế, thì rất có thể bạn sẽ có nhiều "ẩn số của những điều chưa biết".
Bạn có thể không biết nên hỏi những câu hỏi gì, không biết thế nào là tốt, không biết trước đây đã làm những công việc lịch sử nào, cũng không biết có những hố nào nên tránh.
Để làm được điều này, bạn có thể để Claude giúp bạn tìm ra "ẩn số của những điều chưa biết", và giải thích cho bạn. Tôi thích trực tiếp sử dụng các từ như "blindspot pass" và "unknown unknowns". Thông thường, việc nói với nó bạn là ai, bạn biết gì, cũng rất quan trọng.
Ví dụ prompt:
"Tôi đang thêm một nhà cung cấp xác thực mới, nhưng tôi không biết gì về mô-đun xác thực trong kho mã này. Bạn có thể làm một lần 'blindspot pass', giúp tôi tìm ra những 'unknown unknowns' liên quan, và giúp tôi viết prompt tốt hơn cho bạn không?"
"Tôi không hiểu về chỉnh màu, nhưng tôi cần chỉnh màu cho video này. Bạn có thể dạy tôi hiểu những 'unknown unknowns' của mình trong lĩnh vực chỉnh màu không, để tôi có thể viết prompt tốt hơn?"
Động não và tạo mẫu
Khi làm việc trong một lĩnh vực có nhiều "ẩn số của những điều đã biết", tức là những việc mà chỉ khi nhìn thấy tôi mới biết cách định nghĩa tiêu chuẩn, tôi sẽ để Claude cùng động não và tạo mẫu với tôi.
Việc xác định và thể hiện những "ẩn số của những điều đã biết" này sớm ở giai đoạn tạo mẫu là rất có giá trị, bởi vì nếu phát hiện ra chúng ở giai đoạn triển khai, chi phí thường tương đối cao hơn. Một vài thay đổi nhỏ trong tính năng hoặc đặc điểm kỹ thuật, có thể khiến việc triển khai mã thay đổi lớn, và việc để agent hoàn tác các sửa đổi trước đó cũng sẽ khó khăn hơn.
Ví dụ, bạn có thể chỉ muốn xem hiệu ứng của việc thêm một nút trong một framework nào đó, chứ không thực sự muốn kết nối với định tuyến backend, cũng không muốn duy trì trạng thái bổ sung ở frontend.
Thiết kế trực quan đối với tôi là một thứ khó diễn đạt rõ ràng, nhưng một khi nhìn thấy tôi sẽ biết mình muốn gì. Trong trường hợp này, tôi sẽ yêu cầu Claude đưa ra một vài hướng thiết kế khác nhau cho một sản phẩm.
Tôi cũng gần như luôn bắt đầu mỗi phiên lập trình bằng việc khám phá hoặc động não. Điều này giúp tôi xác định phạm vi dự án với ý định rõ ràng. Claude thường phát hiện ra một số phương án giá trị cao mà ban đầu tôi đã bỏ lỡ, nhưng đôi khi nó cũng chỉ thấy cây mà không thấy rừng. Động não có thể ngăn tôi không đặt phạm vi quá hẹp hoặc quá rộng ngay từ đầu.
Ví dụ prompt:
"Tôi muốn làm một bảng điều khiển cho bộ dữ liệu này, nhưng tôi không có gu thẩm mỹ, cũng không biết có thể làm đến mức nào. Hãy giúp tôi tạo một trang HTML, đưa ra 4 hướng thiết kế có phong cách rất khác nhau, để tôi có thể đưa ra phản hồi dựa trên kết quả."
"Trước khi thực sự kết nối, hãy dùng dữ liệu giả tạo một file HTML riêng biệt, mô phỏng thanh công cụ editor mới. Tôi muốn phản hồi về bố cục trước, sau đó bạn mới động đến ứng dụng thực."
"Đây là vấn đề thô của tôi: người dùng rời bỏ sau khi hoàn thành onboarding. Hãy tìm kiếm kho mã, động não 10 nơi chúng ta có thể can thiệp, liệt kê từ phương án chi phí thấp nhất đến tham vọng nhất. Tôi sẽ cho bạn biết hướng nào tôi cảm thấy tốt hơn."
Chất vấn ngược
Sau khi hoàn thành đủ việc động não, tôi thường vẫn còn các ẩn số.
Trong trường hợp này, tôi sẽ để Claude phỏng vấn tôi xung quanh bất kỳ điểm nào không rõ ràng hoặc có sự mơ hồ. Khi để Claude phỏng vấn bạn, hãy cố gắng cung cấp ngữ cảnh về vấn đề, để nó có thể đặt câu hỏi có mục tiêu hơn. Dưới đây là một số ví dụ.
Ví dụ prompt:
"Hãy chỉ hỏi tôi một câu hỏi mỗi lần, phỏng vấn tôi xung quanh bất kỳ điểm nào còn mơ hồ. Ưu tiên đặt ra những câu hỏi mà câu trả lời của tôi sẽ thay đổi thiết kế kiến trúc."
Tài liệu tham khảo
Đôi khi, bạn không thể mô tả chi tiết những gì mình muốn. Ví dụ, bạn có thể không có ngôn ngữ diễn đạt tương ứng, hoặc việc này quá phức tạp, mô tả đầy đủ sẽ mất rất nhiều thời gian.
Trong trường hợp này, câu trả lời tốt nhất là tài liệu tham khảo. Bạn có thể cung cấp biểu đồ, tài liệu hoặc hình ảnh, nhưng tài liệu tham khảo tốt nhất thực ra là mã nguồn.
Nếu bạn có một thư viện triển khai một chức năng nào đó theo một cách cụ thể, hoặc có một thành phần thiết kế bạn rất thích, hãy trực tiếp hướng Fable đến thư mục tương ứng, và nói với nó nên xem gì. Ngay cả khi mã tham chiếu được viết bằng ngôn ngữ khác, cũng không sao.
Đây cũng là cách Claude Design hoạt động. Bạn không nhất thiết phải đưa cho nó một tệp, dĩ nhiên bạn cũng có thể làm vậy. Bạn có thể hướng nó đến một mô-đun website nào đó mà bạn thích, nó sẽ đọc mã nền tảng, không chỉ là ảnh chụp màn hình. Như vậy có thể cung cấp chi tiết phong phú hơn, bao gồm cấu trúc đánh dấu, cách tổ chức thành phần, và thực tế thành phần này được xây dựng như thế nào.
Ví dụ prompt:
"Crate Rust trong vendor/rate-limiter này triển khai chính xác hành vi thử lại với backoff mà tôi muốn. Hãy đọc nó, và tái triển khai cùng ngữ nghĩa trong client API TypeScript của chúng ta."
Kế hoạch triển khai
Khi tôi cảm thấy đã sẵn sàng bắt đầu triển khai, tôi thường để Claude tổng hợp một kế hoạch triển khai để tôi xem xét, và tập trung vào những phần có khả năng thay đổi nhiều nhất, chẳng hạn như mô hình dữ liệu, giao diện kiểu hoặc quy trình UX. Như vậy có thể để Claude bộc lộ trước một số điểm mà tôi thực sự có thể cần điều chỉnh.
Ví dụ prompt:
"Hãy viết một kế hoạch triển khai bằng HTML, nhưng bắt đầu bằng cách trình bày những điểm quyết định tôi có khả năng sửa đổi nhất: thay đổi mô hình dữ liệu, giao diện kiểu mới, và bất kỳ nội dung nào hướng đến người dùng. Đặt phần tái cấu trúc máy móc ở dưới cùng, phần đó tôi tin bạn có thể xử lý."
Trong khi triển khai
Ghi chú triển khai
Sau khi hài lòng với kế hoạch, tôi sẽ mở một phiên mới, và đưa các sản phẩm liên quan vào prompt. Ví dụ, tôi có thể đưa vào một tệp đặc điểm kỹ thuật và một nguyên mẫu, sau đó để agent triển khai nó.
Nhưng sự thật là, dù bạn lên kế hoạch nhiều đến đâu, tổng có những ẩn số của những điều chưa biết tiềm ẩn. Trong quá trình làm việc, agent có thể phát hiện ra rằng, do một trường hợp biên nào đó trong mã, nó phải suy nghĩ theo hướng khác.
Tôi sẽ yêu cầu Claude Code duy trì một tệp implementation-notes.md tạm thời, hoặc tệp .html, để ghi lại các quyết định mà nó đưa ra, như vậy chúng ta có thể học hỏi từ lần thử tiếp theo.
Ví dụ prompt:
"Hãy duy trì một tệp implementation-notes.md. Nếu bạn gặp một trường hợp biên, khiến bạn phải đi chệch khỏi kế hoạch ban đầu, hãy chọn phương án bảo thủ, ghi lại lý do dưới mục 'Deviations', sau đó tiếp tục tiến hành."
Sau khi triển khai
Tài liệu đề xuất và giải thích

Một trong những điều quan trọng nhất khi phát hành một thứ gì đó, là nhận được sự hiểu biết, ủng hộ và phê duyệt của người khác. Việc xây dựng các sản phẩm dạng đề xuất và giải thích trong tài liệu cuối cùng, giúp:
Tăng tốc độ hiểu của người đánh giá khi họ cũng mang theo những ẩn số giống như bạn lúc đầu.
Tăng tốc phê duyệt khi chuyên gia muốn xác nhận bạn đã cân nhắc đến những ẩn số và điểm thất bại phổ biến mà họ đã dự đoán trước.
Ví dụ prompt:
"Hãy đóng gói nguyên mẫu, đặc điểm kỹ thuật và ghi chú triển khai thành một tài liệu duy nhất, tôi có thể đăng trực tiếp lên Slack để tranh thủ sự ủng hộ. Bắt đầu bằng GIF demo."
Kiểm tra
Sau một phiên làm việc dài, Claude có thể đã hoàn thành nhiều công việc hơn những gì tôi nhận ra. Chỉ xem diff mã thường chỉ cho tôi một hiểu biết nông cạn về những gì đã xảy ra, bởi vì nhiều hành vi phụ thuộc vào đường dẫn mã đã có.
Để Claude kiểm tra tôi xung quanh thay đổi này sau khi đã cung cấp nhiều ngữ cảnh, có thể giúp tôi thực sự hiểu chuyện gì đã xảy ra. Tôi chỉ hợp nhất mã sau khi hoàn thành hoàn hảo bài kiểm tra.
Ví dụ prompt:
"Tôi muốn đảm bảo mình hiểu mọi thứ đã xảy ra trong thay đổi này. Hãy cung cấp cho tôi một báo cáo HTML, giúp tôi đọc và hiểu những thay đổi này, bao gồm ngữ cảnh, giải thích trực quan, cụ thể đã làm gì, v.v., và đính kèm một bài kiểm tra tôi phải vượt qua ở cuối."
Kết nối phương pháp: Lấy ví dụ phát hành Fable
Video phát hành Fable hoàn toàn do Claude Code biên tập hoàn thành. Đây là một lĩnh vực hoàn toàn mới đối với tôi, và tôi tuyệt đối không phải chuyên gia trong lĩnh vực này.
Vì vậy tôi bắt đầu từ phần tôi đã biết. Tôi biết Claude có thể dùng mã để chỉnh sửa video và phiên âm, nhưng tôi không chắc độ chính xác của nó có đủ không. Vì vậy tôi để Claude giải thích cho tôi cách công nghệ phiên âm như Whisper hoạt động, và liệu tôi có thể dùng ffmpeg để cắt chính xác các từ đệm như "ừm" hoặc khoảng dừng dài hay không.
Tôi muốn Claude tạo một giao diện người dùng, và để nó đồng bộ thời gian với những từ tôi nói ra, nhưng tôi không chắc nó có làm được không. Vì vậy tôi để Claude dùng Remotion và văn bản phiên âm tạo một nguyên mẫu video, xem ý tưởng này có khả thi không.
Cuối cùng, bản thân video trông hơi tối. Tôi biết đây là vấn đề chỉnh màu, nhưng tôi không thực sự hiểu chỉnh màu là gì. Lần thử đầu tiên, tôi muốn Claude làm vài phiên bản để tôi chọn, nhưng tôi nhận ra, khi liên quan đến chỉnh màu, tôi không biết thế nào là "tốt". Vì vậy, thay vì tiếp tục để nó tạo phiên bản một cách mù quáng, tôi để Claude dạy tôi chỉnh màu, để từ đó phát hiện ra những ẩn số của mình.
Làm cho bản đồ khớp với lãnh thổ
Mô hình càng mạnh, bạn càng có thể hoàn thành nhiều việc hơn bằng phương pháp đúng đắn. Khi một nhiệm vụ dài hạn trả về kết quả sai, rất có thể bạn cần dành nhiều thời gian hơn để xác định các ẩn số của mình, hoặc tạo một kế hoạch triển khai, để Claude có thể linh hoạt ứng phó trong những ẩn số đó.
Mỗi tài liệu giải thích, mỗi lần động não, phỏng vấn, tạo mẫu và tài liệu tham khảo, đều là một phương pháp chi phí thấp, để phát hiện ra những điều bạn vốn không biết trước khi chi phí sửa chữa trở nên cao hơn.
Vì vậy, trước khi bắt đầu dự án tiếp theo, hãy để Claude giúp bạn tìm ra những ẩn số của mình.
Bài viết này đến từ tài khoản công chúng WeChat "Machine Heart", biên tập: Ban biên tập Machine Heart








