4 điểm bởi GN⁺ 5 giờ trước | Chưa có bình luận nào. | Chia sẻ qua WhatsApp
  • Cốt lõi của việc làm việc với Claude Fable 5 là tìm và thu hẹp khoảng cách giữa bản đồ (map, prompt·skill·context) mà người dùng cung cấp và lãnh thổ (territory, codebase·thực tế·ràng buộc) nơi công việc thực sự diễn ra, tức là các ẩn số (unknowns)
  • Fable là mô hình đầu tiên mà chất lượng công việc phụ thuộc vào khả năng của người dùng trong việc làm rõ các ẩn số; khối lượng công việc càng lớn thì số ẩn số gặp phải cũng càng tăng
  • Ẩn số được chia thành 4 loại: Known Knowns / Known Unknowns / Unknown Knowns / Unknown Unknowns; giảm bớt và chuẩn bị cho các ẩn số là năng lực cốt lõi của agentic coding
  • Phát hiện ẩn số bằng các kỹ thuật lặp lại xuyên suốt trước·trong·sau khi triển khai, như blindspot pass, brainstorm, phỏng vấn, tham chiếu, kế hoạch triển khai, ghi chú triển khai, quiz, v.v.
  • Giải thích·brainstorm·phỏng vấn·prototype·tham chiếu là cách phát hiện ẩn số với chi phí thấp trước khi vấn đề trở nên đắt đỏ; điều quan trọng là bắt đầu dự án tiếp theo bằng cách yêu cầu Claude tìm các ẩn số

Bản đồ, lãnh thổ và các ẩn số (Unknowns)

  • Bản đồ là biểu diễn của công việc cần thực hiện, gồm prompt·skill·context, tức những gì bạn đưa cho Claude; lãnh thổ là nơi công việc thực sự diễn ra: codebase·thực tế·các ràng buộc thực tế
  • Chênh lệch giữa bản đồ và lãnh thổ chính là ẩn số (unknowns); khi Claude gặp ẩn số, nó phải ra quyết định dựa trên phỏng đoán tốt nhất về điều người dùng muốn
  • Fable là mô hình đầu tiên mà chất lượng công việc bị nghẽn cổ chai bởi khả năng làm rõ các ẩn số
  • Chỉ lập kế hoạch trước là không đủ; ẩn số có thể được phát hiện sâu trong quá trình triển khai, hoặc thậm chí cho thấy cần giải quyết vấn đề theo một cách khác hẳn
  • Làm việc với Fable là một quá trình lặp lại để phát hiện ẩn số trước, trong và sau khi triển khai
  • Một số tài liệu ví dụ giúp tìm ra những điều chưa biết để tham khảo sau

Hiểu các ẩn số của bạn (Knowing your unknowns)

  • Chia vấn đề thành 4 loại
    • Known Knowns: những gì nằm trong prompt, những gì bạn nói với agent rằng bạn muốn
    • Known Unknowns: những điều bạn chưa nắm được, nhưng biết là mình chưa nắm
    • Unknown Knowns: những điều hiển nhiên đến mức không ghi ra, nhưng khi thấy thì nhận ra
    • Unknown Unknowns: những điều hoàn toàn chưa cân nhắc, kiến thức mà bạn không nhận thức được, những điều bạn không biết có thể trở nên tốt hơn đến mức nào
  • Những agentic coder xuất sắc có tương đối ít ẩn số, đồng bộ sâu (in-sync) với codebase và hành vi của mô hình, và biết rất chi tiết điều mình muốn
  • Giảm bớt và chuẩn bị cho các ẩn số là một kỹ năng có thể cải thiện khi làm việc với Claude

Giúp Claude giúp bạn (Help Claude help you)

  • Chỉ dẫn cần có sự cân bằng: quá cụ thể thì Claude vẫn làm theo ngay cả khi nên đổi hướng; quá mơ hồ thì nó sẽ chọn dựa trên thông lệ ngành (best practices) không phù hợp với bài toán
  • Nếu không tính đến ẩn số, bạn sẽ thất bại ở cả hai phía, và sẽ mong Claude tự đổi hướng mà không biết khi nào đường đi bị chặn hay khi nào đã thông
  • Claude có thể nhanh chóng tìm kiếm trong codebase·internet, biết nhiều hơn về các chủ đề phổ biến và lặp lại nhanh từ thất bại, nhờ đó tăng tốc việc phát hiện ẩn số
  • Điều quan trọng nhất là cung cấp context về điểm xuất phát: nêu rõ bạn đang ở đâu trong quá trình suy nghĩ, kinh nghiệm của bạn với vấn đề và codebase, rồi cộng tác như với một người bạn đồng hành tư duy
  • Trước đây tôi từng viết về việc dùng HTML trong Claude; trong hầu hết trường hợp, HTML artifact là tối ưu cho trực quan hóa và trình bày

Trước khi triển khai (Pre-implementation)

  • Blind Spot Pass

    • Với các việc xa lạ như viết tính năng ở một khu vực mới hoặc lặp thiết kế, có rất nhiều unknown unknowns; bạn có thể không biết nên hỏi gì, thế nào là tốt, công việc trước đây ra sao, hoặc những cạm bẫy cần tránh
    • Hãy yêu cầu Claude tìm và giải thích unknown unknowns; điều quan trọng là dùng nguyên văn các cụm "blindspot pass", "unknown unknowns" và cung cấp context về bạn là ai, bạn biết gì
    • Prompt ví dụ
      • "Tôi đang thêm auth provider mới nhưng hoàn toàn không biết module auth trong codebase này. Hãy thực hiện blindspot pass để xác định các unknown unknowns liên quan và giúp tôi prompt tốt hơn"
      • "Tôi không biết color grading là gì nhưng cần grade video này. Hãy dạy tôi hiểu các unknown unknowns của color grading để tôi prompt tốt hơn"
  • Brainstorm và prototype (Brainstorms and prototypes)

    • Với những lĩnh vực có nhiều unknown knowns, tức nhiều tiêu chí mà khi nhìn thì biết nhưng khó định nghĩa trước, hãy brainstorm và tạo prototype cùng Claude
    • Việc xác định và diễn đạt unknown knowns ngay từ giai đoạn prototype ban đầu, thay vì trong lúc triển khai, rất có giá trị, vì một thay đổi nhỏ trong spec có thể làm thay đổi lớn phần triển khai code và có thể khó hoàn tác các thay đổi trước đó
      • Ví dụ: khi chỉ muốn xem việc thêm một nút vào frame trông như thế nào mà không cần route backend hay trạng thái frontend
    • Thiết kế trực quan là lĩnh vực khó diễn đạt rõ ràng nhưng khi nhìn thì biết mình muốn gì, nên hãy yêu cầu nhiều hướng thiết kế
    • Hầu như mọi phiên coding nên bắt đầu bằng giai đoạn khám phá·brainstorm, xác định phạm vi một cách có chủ đích; điều này tránh phạm vi bị quá hẹp hoặc quá rộng
    • Prompt ví dụ
      • "Tôi muốn một dashboard cho dữ liệu này nhưng không có cảm quan thị giác và không biết có thể làm được gì. Hãy tạo một trang HTML với 4 hướng thiết kế hoàn toàn khác nhau để tôi có thể phản hồi"
      • "Trước khi làm phần kết nối, hãy tạo một file HTML đơn lẻ mockup toolbar editor mới bằng dữ liệu giả. Tôi muốn phản hồi về layout trước khi đụng vào app thật"
      • "Vấn đề sơ bộ là người dùng rời bỏ sau onboarding. Hãy tìm trong codebase và brainstorm 10 điểm có thể can thiệp, từ rẻ nhất đến tham vọng nhất"
  • Phỏng vấn (Interviews)

    • Nếu sau khi brainstorm đủ vẫn còn ẩn số, hãy yêu cầu Claude phỏng vấn bạn về các ẩn số và điểm mơ hồ; cung cấp context vấn đề để nó gợi câu hỏi
    • Prompt ví dụ
      • "Hãy hỏi từng điểm mơ hồ một, và ưu tiên những câu hỏi mà câu trả lời của tôi sẽ làm thay đổi kiến trúc"
  • Tham chiếu (References)

    • Khi không thể mô tả chi tiết điều mình muốn, câu trả lời tốt nhất là tài liệu tham chiếu; có thể là sơ đồ·tài liệu·hình vẽ, nhưng source code chắc chắn là tài liệu tham chiếu tốt nhất
    • Nếu có một thư viện được triển khai theo cách cụ thể hoặc một component thiết kế mà bạn thích, hãy trỏ tới thư mục đó, dù là ngôn ngữ khác, và yêu cầu Claude tìm hiểu
    • Claude Design cũng tương tự: nếu bạn trỏ tới module trên website bạn thích, nó sẽ không chỉ nhìn screenshot mà đọc code nền tảng, cung cấp thông tin phong phú về markup·cấu trúc·cách triển khai thực tế
    • Prompt ví dụ
      • "Rust crate này trong vendor/rate-limiter triển khai chính xác hành vi backoff tôi muốn. Hãy đọc và tái triển khai cùng ngữ nghĩa đó trong TypeScript API client của chúng ta"
  • Kế hoạch triển khai (Implementation Plans)

    • Khi đã sẵn sàng triển khai, hãy yêu cầu một kế hoạch triển khai để review, tập trung vào những phần có khả năng thay đổi cao nhất (data model, type interface, luồng UX), nhằm làm lộ ra các điểm cần chỉnh sửa
    • Prompt ví dụ
      • "Hãy viết kế hoạch triển khai bằng HTML, đặt lên đầu những quyết định tôi có khả năng chỉnh nhiều nhất (thay đổi data model, type interface mới, yếu tố hướng tới người dùng), còn refactor cơ học thì đưa xuống cuối"

Trong khi triển khai (During implementation)

  • Ghi chú triển khai (Implementation notes)

    • Khi hài lòng với kế hoạch, hãy tạo phiên mới và đưa các artifact như file spec·prototype vào prompt để yêu cầu agent triển khai
    • Dù lập kế hoạch kỹ đến đâu, unknown unknowns luôn tiềm ẩn; các edge case mà agent phát hiện trong lúc làm có thể buộc phải chọn cách khác
    • Hãy yêu cầu Claude Code ghi lại các quyết định vào file tạm implementation-notes.md (hoặc .html) để học hỏi cho lần thử tiếp theo
    • Prompt ví dụ
      • "Hãy duy trì file implementation-notes.md. Nếu gặp edge case khiến phải lệch khỏi kế hoạch, hãy chọn phương án bảo thủ, ghi vào mục 'Deviations', rồi tiếp tục"

Sau khi triển khai (Post implementation)

  • Pitch và tài liệu giải thích (Pitches and explainers)

    • Một trong những phần quan trọng nhất khi ra mắt thứ gì đó là đạt được sự đồng thuận và phê duyệt; việc tạo artifact pitch·giải thích trong tài liệu cuối cùng sẽ hữu ích
      • Khi reviewer xuất phát từ cùng các ẩn số như bạn, nó tăng tốc quá trình hiểu
      • Khi chuyên gia muốn kiểm tra liệu bạn đã cân nhắc các ẩn số và điểm thất bại thường gặp chưa, nó tăng tốc quá trình phê duyệt
    • Prompt ví dụ
      • "Hãy gộp prototype·spec·ghi chú triển khai thành một tài liệu duy nhất để đăng lên Slack lấy sự đồng thuận. Đưa demo GIF lên đầu"
  • Quiz (Quizzes)

    • Sau một phiên làm việc dài, Claude có thể đã làm được nhiều hơn bạn dự đoán; chỉ nhìn code diff sẽ khiến bạn chỉ hiểu sơ về hành vi phụ thuộc vào các đường code hiện có
    • Sau khi cung cấp context, hãy yêu cầu Claude ra quiz về các thay đổi để kiểm tra hiểu biết, và chỉ merge sau khi vượt qua quiz hoàn hảo
    • Prompt ví dụ
      • "Tôi muốn hiểu mọi thứ đã diễn ra trong thay đổi này. Hãy tạo một báo cáo HTML gồm context·trực giác·những gì đã thực hiện, và đặt ở cuối một bài quiz mà tôi bắt buộc phải vượt qua"

Kết hợp lại qua ví dụ ra mắt Fable (How this comes together)

  • Video ra mắt Fable được biên tập hoàn toàn bằng Claude Code, và đây là một lĩnh vực mới, không phải chuyên môn
  • Bắt đầu từ những gì đã biết: tôi biết Claude có thể chỉnh sửa video và transcribe bằng code, nhưng không chắc về độ chính xác, nên đã yêu cầu giải thích nguyên lý transcription kiểu Whisper và liệu ffmpeg có thể cắt chính xác các tiếng ừm·khoảng im lặng dài hay không
  • Tôi muốn UI khớp với lời nói và timing nhưng không chắc có khả thi không, nên đã tạo video prototype bằng Remotion và transcription để kiểm chứng
  • Video trông hơi muted là do color grading, nhưng vì không biết đó là gì, thay vì chọn biến thể, tôi đã yêu cầu dạy về color grading để phát hiện các ẩn số

Khớp bản đồ với lãnh thổ (Matching the Map and Territory)

  • Mô hình càng tốt thì với cách tiếp cận đúng, bạn càng có thể đạt được nhiều hơn; khi một tác vụ dài hạn quay lại sai, thường là cần dành thêm thời gian cho định nghĩa ẩn số hoặc kế hoạch triển khai cho phép Claude ứng biến
  • Mọi phần giải thích·brainstorm·phỏng vấn·prototype·tham chiếu đều là cách phát hiện ẩn số với chi phí thấp trước khi vấn đề trở nên đắt đỏ
  • Điều cốt lõi là bắt đầu dự án tiếp theo bằng cách yêu cầu Claude tìm các ẩn số

Chưa có bình luận nào.

Chưa có bình luận nào.