
Kỹ thuật prompt chuỗi suy luận (Chain of Thought) đang có một vấn đề của năm 2026 mà các hướng dẫn hàng đầu đều bỏ qua: chính mẹo từng giúp các mô hình thông minh hơn vào năm 2022 lại có thể âm thầm khiến một mô hình suy luận trở nên tệ hơn vào ngày nay. Wei và cộng sự đã giới thiệu kỹ thuật này vào năm 2022, và nó đã nâng cao độ chính xác trong các bài toán và logic khó bằng cách khiến mô hình thể hiện các bước suy luận của mình. Nhưng có một điểm đáng lưu ý. Nó chỉ phát huy tác dụng khi các mô hình vượt qua ngưỡng khoảng 100 tỷ tham số. Giờ đây, các mô hình suy luận o-series và GPT-5 đã thực hiện quá trình suy nghĩ đó bên trong, nên việc bảo chúng "hãy suy nghĩ từng bước" thường chỉ tốn thêm token. Khi nào bạn vẫn nên dùng kỹ thuật này, và khi nào nên bỏ qua?
Những điểm chính:
- Prompt chuỗi suy luận thể hiện các bước suy luận của mô hình và nâng cao độ chính xác trong các bài toán nhiều bước, logic và code.
- Đây là một khả năng nổi trội: nó hầu như không giúp ích cho các mô hình nhỏ, và các mô hình suy luận đã thực hiện điều đó từ bên trong.
- Với o-series, mô hình suy luận GPT-5 và tính năng extended thinking của Claude, lời nhắc "hãy suy nghĩ từng bước" thủ công thường là thừa thãi.
- Vẫn nên dùng CoT thủ công trên các mô hình không suy luận và mô hình mã nguồn mở chạy cục bộ, hoặc khi bạn cần một chuỗi suy luận có thể kiểm toán.
Chain of Thought Prompting là gì?
Chain of thought (CoT) prompting (gợi ý chuỗi suy luận) là một kỹ thuật yêu cầu mô hình ngôn ngữ giải quyết vấn đề qua từng bước trung gian rõ ràng trước khi đưa ra câu trả lời cuối cùng. Được Wei và cộng sự giới thiệu vào năm 2022, kỹ thuật này nâng cao độ chính xác trong các tác vụ toán học nhiều bước, logic và suy luận thông thường, đồng thời giúp quá trình suy luận của mô hình trở nên minh bạch.
Nếu hỏi thẳng một mô hình thông thường một bài toán có lời văn mà không có sự dẫn dắt, nó thường sẽ bật ra ngay một con số sai. Nhưng nếu yêu cầu nó suy luận trước, xác suất đúng sẽ tăng vọt. Lấy ví dụ: "Một kệ sách có 3 hộp, mỗi hộp 7 cuốn; tôi lấy đi 5 cuốn. Còn lại bao nhiêu?" Khi hỏi thẳng, một mô hình nhỏ có thể trả lời "21." Nhưng thêm câu "Hãy suy nghĩ từng bước một" và nó sẽ viết: 3 x 7 = 21, rồi 21 - 5 = 16. Cùng một mô hình, câu trả lời tốt hơn, và bạn có thể thấy nó sai ở đâu nếu có sai sót. CoT là một công cụ trong bộ công cụ rộng lớn hơn được đề cập trong hướng dẫn prompt engineering của chúng tôi; bài viết này sẽ đi sâu vào chi tiết kỹ thuật đó.
Cách nó hoạt động (và tại sao nó chỉ thực sự phát huy ở quy mô lớn)
CoT hoạt động bằng cách để mô hình tạo ra một chuỗi suy luận bằng ngôn ngữ tự nhiên theo từng token một, sao cho mỗi kết luận trung gian định hình cho bước tiếp theo. Wei và cộng sự (2022) phát hiện ra rằng đây là một khả năng nổi trội: nó hầu như không giúp ích gì cho các mô hình nhỏ và chỉ mang lại mức tăng độ chính xác đáng kể khi các mô hình vượt qua ngưỡng khoảng 100 tỷ tham số.
Hãy tưởng tượng nó giống như việc trình bày các bước giải trong giờ toán. Mô hình dự đoán từng token một, và mỗi từ nó viết ra sẽ trở thành một phần đầu vào cho từ tiếp theo. Khi nó viết ra "21" như một kết quả trung gian, "21" đó giờ đã nằm trong ngữ cảnh, dẫn dắt bước cuối cùng hướng tới "16". Bỏ qua các bước trung gian và mô hình sẽ phải nhảy vọt thẳng đến đáp án mà không có điểm tựa nào. Điều kỳ lạ là lợi ích này chỉ xuất hiện ở quy mô lớn. Trong bài báo nền tảng, nhóm của Wei phát hiện ra rằng các mô hình nhỏ hầu như không được cải thiện, và đôi khi còn tệ hơn. Đó là lý do tại sao cùng một prompt có thể thất bại trên mô hình cục bộ 7B nhưng lại tạo ra bước ngoặt trên một mô hình tiên tiến hàng đầu.
Ba biến thể: Zero-Shot, Few-Shot và Self-Consistency
Có ba biến thể CoT chính. Zero-shot CoT chỉ đơn giản thêm câu "Let's think step by step" (Kojima và cộng sự, 2022). Few-shot CoT đưa ra các ví dụ suy luận mẫu trước. Self-consistency (Wang và cộng sự, 2022) lấy mẫu nhiều đường suy luận rồi bỏ phiếu đa số cho đáp án — đáng tin cậy nhất nhưng cũng tốn kém nhất trong ba biến thể.
Zero-shot là mẹo ảo thuật lười biếng. Bạn chỉ cần thêm một câu và mô hình sẽ suy luận mà không cần bất kỳ ví dụ nào. Kojima và cộng sự đã chứng minh rằng chỉ riêng câu "Let's think step by step" cũng đủ biến một mô hình lớn thành một bộ suy luận zero-shot khá tốt.
# Zero-shot CoT: thêm cụm từ kích hoạt. Hiệu quả nhất trên các mô hình không suy luận.
# Model names change fast, so treat the string below as a placeholder.
from openai import OpenAI
client = OpenAI()
prompt = (
"Q: A shelf holds 3 boxes. Each box has 7 books. "
"I remove 5 books. How many are left?\n"
"A: Let's think step by step."
)
resp = client.chat.completions.create(
model="your-non-reasoning-model",
messages=[{"role": "user", "content": prompt}],
)
print(resp.choices[0].message.content)Few-shot CoT goes further: you hand the model two or three worked examples so it copies the reasoning pattern for your domain. Self-consistency is the accuracy dial. Instead of trusting one chain, you sample five at a higher temperature and let them vote. Wang et al. found the majority answer is usually right even when individual chains wander off.
# Tính tự nhất quán: lấy mẫu N đường suy luận, bỏ phiếu đa số cho câu trả lời.
# Chính xác hơn, tốn kém hơn. Wang và cộng sự, 2022.
from collections import Counter
def self_consistency(prompt, n=5, temperature=0.7):
answers = []
for _ in range(n):
resp = client.chat.completions.create(
model="your-non-reasoning-model",
messages=[{"role": "user", "content": prompt}],
temperature=temperature, # diversity across paths
)
answers.append(extract_final_answer(resp.choices[0].message.content))
return Counter(answers).most_common(1)[0][0] # majority voteBạn muốn phần suy luận đó ở dạng JSON sạch sẽ thay vì văn bản tự do? Hãy kết hợp CoT với các mẫu trong hướng dẫn về đầu ra có cấu trúc của chúng tôi để bước xử lý tiếp theo có thể phân tích cú pháp.
Bước chuyển mình năm 2026: Các mô hình suy luận đã thay đổi luật chơi
Các mô hình suy luận — dòng o của OpenAI và khả năng suy luận của GPT-5, extended thinking của Claude, cùng DeepSeek R1 — đều thực hiện chuỗi suy luận trong nội bộ trước khi trả lời. Chính hướng dẫn của OpenAI cũng nói rõ rằng việc bảo các mô hình này "hãy suy nghĩ từng bước" là không cần thiết, và việc yêu cầu một mô hình suy luận phải suy luận nhiều hơn thậm chí có thể làm giảm hiệu suất. Phần giàn giáo đã được tích hợp sẵn.
Đây chính là điều mà các bài hướng dẫn cũ giả vờ như không hề xảy ra. Một mô hình suy luận sẽ tạo ra một chuỗi suy luận riêng tư trước khi đưa ra câu trả lời cho bạn, vì vậy các bước suy nghĩ mà trước đây bạn phải tự tay viết giờ đã diễn ra ở bên trong. Các phương pháp tốt nhất về suy luận của OpenAI nói thẳng: "Hãy tránh các prompt chuỗi suy luận: Vì các mô hình này thực hiện suy luận trong nội bộ, việc nhắc chúng 'hãy suy nghĩ từng bước' hay 'hãy giải thích lập luận của bạn' là không cần thiết." Hướng dẫn prompt cho o3/o4-mini của họ còn đi xa hơn một bước: "Việc yêu cầu một mô hình suy luận phải suy luận nhiều hơn thậm chí có thể làm giảm hiệu suất."
Extended thinking của Anthropic cũng là ý tưởng tương tự được sản phẩm hóa. Bạn cấp cho Claude một ngân sách suy nghĩ thay vì một kịch bản từng bước, và các mô hình mới nhất sẽ tự quyết định cần suy nghĩ sâu đến mức nào. Trên nhóm mô hình này, bạn điều chỉnh reasoning_effort hoặc ngân sách suy nghĩ, chứ không phải câu chữ. Về phía các mô hình suy luận mã nguồn mở, bao gồm cả DeepSeek R1, hãy xem bài phân tích Qwen vs DeepSeek vs GLM của chúng tôi.
Khi nào CoT thủ công vẫn hữu ích và khi nào nó phản tác dụng
CoT thủ công vẫn hữu ích với các mô hình không suy luận và các mô hình mã nguồn mở nhỏ hoặc chạy cục bộ, hoặc khi bạn cần một cấu trúc suy luận cụ thể hay một dấu vết có thể kiểm toán. Nó phản tác dụng với các mô hình suy luận bản địa (thừa thãi và chậm hơn), với các tác vụ đơn giản chỉ một bước, và với các luồng nhạy cảm về độ trễ hoặc chi phí, nơi nó chỉ đốt token mà chẳng mang lại chút cải thiện nào về độ chính xác.
| CoT thủ công vẫn hữu ích khi | CoT thủ công phản tác dụng khi |
|---|---|
| Bạn dùng mô hình không suy luận (GPT đời cũ, Llama base) | Bạn dùng mô hình suy luận (dòng o-series, GPT-5 reasoning, Claude thinking) |
| Bạn chạy mô hình mã nguồn mở nhỏ hoặc cục bộ | Tác vụ là tra cứu, phân loại hoặc đổi định dạng chỉ một bước |
| Bạn cần một cấu trúc suy luận cố định, có thể kiểm toán | Bạn đang ở luồng thời gian thực, nhạy cảm về độ trễ |
| Tác vụ là toán học, logic hoặc lập kế hoạch nhiều bước | Bạn đang ở endpoint khối lượng lớn, nhạy cảm về chi phí |
| Bạn muốn một dấu vết hiển thị để kiểm tra hoặc grep | Mô hình vốn đã suy luận nội bộ, nên các bước chỉ lặp lại |
Đây là một ví dụ thực tế từ chính đội ngũ của chúng tôi. Pipeline 12 agent viết nên bài đăng này chạy trên các mô hình Claude, và chúng tôi cố tình không bao giờ bảo những agent đó "hãy suy nghĩ từng bước," bởi vì các mô hình vốn đã suy luận nội bộ và điều đó chỉ thêm nhiễu. Thứ chúng tôi thực sự viết tay là các khung suy luận cứng nhắc, có thể grep được. Agent kiểm duyệt của chúng tôi chạy một rubric cố định 100 điểm (50 điểm chất lượng, 50 điểm SEO) cộng với tám bước kiểm tra cổng tuần tự. Agent dịch thuật tuân theo một danh sách kiểm tra cố định: khớp số lượng H2 với bản gốc, chạy lệnh grep dấu thanh điệu và kết quả phải trả về nhiều hơn không, đồng thời giữ số dòng nằm trong khoảng 80 đến 120 phần trăm. Agent xuất bản chạy các cổng kiểm tra trước và sau khi đăng, dùng regex để kiểm tra datetime của publishedAt, rồi truy vấn CMS để xác nhận phần nội dung không bị trống.
Không có điều nào trong số đó là về việc suy nghĩ nhiều hơn. Đó là một lộ trình cố định, có thể kiểm toán mà chúng tôi có thể kiểm tra và grep, và đó chính xác là trường hợp "CoT thủ công vẫn hữu ích." Chúng tôi thêm những cổng kiểm tra đó là có lý do: một giá trị publishedAt chỉ có ngày từng âm thầm ẩn toàn bộ một bài đăng khỏi trang index blog của chúng tôi, nên chuỗi bước cứng nhắc giờ đây tồn tại để ngăn mô hình bỏ qua một bước xác minh. Một lưu ý thành thật: đây là quan sát vận hành, không phải một bài benchmark. Chúng tôi chưa chạy thử nghiệm A/B có kiểm soát về độ chính xác giữa "hãy suy nghĩ từng bước" và không có chỉ dẫn nào, nên hãy xem đây là bài học về cấu trúc và khả năng kiểm toán, chứ không phải một tuyên bố về con số.
Bạn đang chạy các mô hình cục bộ mà CoT thủ công vẫn còn hữu ích? Bài tổng hợp các LLM mã nguồn mở tốt nhất năm 2026 của chúng tôi bao quát toàn bộ lĩnh vực này. Và nếu bạn từng hiển thị chuỗi suy luận của mô hình cho người dùng, hãy coi đó là đầu ra không đáng tin cậy; hướng dẫn ngăn chặn chèn prompt của chúng tôi giải thích lý do tại sao.
Chi phí ẩn: Token, độ trễ và hóa đơn của bạn
CoT không hề miễn phí. Mỗi bước suy luận đều là token đầu ra mà bạn phải trả tiền, và câu trả lời càng dài thì độ trễ càng cao. Các mô hình suy luận còn tính thêm token suy luận ẩn trên cả phần câu trả lời hiển thị. Trên các endpoint có lưu lượng lớn hoặc yêu cầu thời gian thực, việc bắt mô hình xuất ra từng bước có thể âm thầm nhân chi phí lên nhiều lần, vì vậy hãy dự trù ngân sách hoặc giới hạn bằng reasoning_effort.
Mỗi "bước 1, bước 2, bước 3" mà mô hình viết ra đều là token đầu ra, và token đầu ra là loại đắt nhất. Một chuỗi suy luận dài gấp năm lần câu trả lời trần sẽ tốn chi phí xấp xỉ gấp năm lần cho lời gọi đó, đồng thời phản hồi về chậm hơn. Các mô hình suy luận còn thêm một lớp phức tạp: chúng tính token suy luận cho cả phần suy nghĩ nội bộ mà bạn không bao giờ nhìn thấy, nên một câu trả lời cuối cùng ngắn gọn có thể che giấu cả một chuỗi dài đã được tính tiền. Trên endpoint ít lưu lượng thì đó chỉ là con số nhỏ; nhưng trên endpoint lưu lượng cao thì chi phí leo thang rất nhanh. Hai thói quen giúp bạn kiểm soát điều này. Hãy cache các phần ổn định trong ngữ cảnh để không phải trả tiền đọc lại chúng (xem hướng dẫn về prompt caching của chúng tôi), và đo lường xem số token bổ sung có thực sự cải thiện độ chính xác hay không trước khi triển khai CoT ở mọi nơi. Hướng dẫn về LLM evals của chúng tôi sẽ chỉ ra cách đo lường đó, để bạn không phải trả tiền cho phần suy luận không hề cải thiện điểm số.
Cách sử dụng CoT vào năm 2026: Danh sách kiểm tra quyết định
Trước tiên, hãy xác định lớp mô hình của bạn. Với mô hình suy luận, hãy bỏ qua CoT thủ công và thay vào đó tinh chỉnh reasoning_effort hoặc ngân sách suy nghĩ. Với mô hình không có khả năng suy luận hoặc mô hình cục bộ, hãy thêm câu "Hãy suy nghĩ từng bước một" theo phương pháp zero-shot, nâng cấp lên few-shot đối với các tác vụ chuyên ngành, và chỉ thêm kỹ thuật tự nhất quán khi độ chính xác quan trọng hơn chi phí token.
Dưới đây là toàn bộ quyết định gói gọn trong năm bước:
- Xác định lớp mô hình của bạn. Đó là mô hình suy luận hay không? Chỉ một thực tế đó sẽ quyết định mọi điều bên dưới.
- Với mô hình suy luận, đừng viết CoT thủ công. Thay vào đó, hãy tinh chỉnh
reasoning_efforthoặc ngân sách suy nghĩ, và để mô hình tự suy luận bên trong. - Với mô hình không có khả năng suy luận hoặc mô hình cục bộ, hãy thêm câu "Hãy suy nghĩ từng bước một" theo phương pháp zero-shot. Chỉ cần một dòng và bạn có thể thử miễn phí.
- Đối với các tác vụ chuyên ngành, hãy nâng cấp lên CoT few-shot với hai hoặc ba ví dụ mẫu đã giải. Chỉ thêm kỹ thuật tự nhất quán khi độ chính xác thắng được chi phí token.
- Nếu bạn hiển thị quá trình suy luận, hãy đo lường nó bằng các bài eval và coi chuỗi suy luận hiển thị đó là đầu ra không đáng tin cậy.
Bản thân cụm từ kích hoạt thường nằm trong system prompt của bạn. Các ví dụ về system prompt của chúng tôi sẽ cho bạn thấy vị trí đặt và cách diễn đạt nó.
# Trên mô hình suy luận, đừng viết tay CoT. Thay vào đó, hãy điều chỉnh mức nỗ lực.
# Tên tham số và các mức có thể thay đổi tùy theo nhà cung cấp và phiên bản, vì vậy hãy kiểm tra tài liệu hiện tại.
resp = client.responses.create(
model="your-reasoning-model",
reasoning={"effort": "medium"}, # ví dụ: low | medium | high
input="Chứng minh rằng căn bậc hai của 2 là số vô tỉ.",
)
# Tương đương với Anthropic: ngân sách suy luận mở rộng.
# budget_tokens PHẢI nhỏ hơn max_tokens.
# thinking = {"type": "enabled", "budget_tokens": 4000}Việc tích hợp điều này vào một hệ thống production thực tế phức tạp hơn nhiều so với những gì một ví dụ trên blog thể hiện. Nếu bạn không muốn tự mình tinh chỉnh ngân sách suy luận và các bộ công cụ đánh giá, đội ngũ của chúng tôi sẽ xây dựng các pipeline này từ đầu đến cuối. Xem thêm Tích hợp AI hoặc liên hệ với chúng tôi.
Về tác giả
Mert Batur Gurbuz là Đồng sáng lập của Techsy.io, nơi đội ngũ của anh triển khai các AI agent, hệ thống tự động hóa và pipeline voice/SDR cho khách hàng B2B. Anh đang theo học tại Đại học Birmingham và viết về stack công cụ LLM mà đội ngũ Techsy thực sự sử dụng trong môi trường production.
Đồng sáng lập, Techsy.io, Đại học Birmingham. Kết nối trên LinkedIn.
Câu hỏi thường gặp
Prompt chuỗi suy luận (chain of thought) còn phù hợp trong năm 2026 không?
Có, nhưng vai trò của nó đã thu hẹp. Trên các mô hình không suy luận và các mô hình mã nguồn mở nhỏ hoặc chạy cục bộ, CoT thủ công vẫn giúp nâng cao độ chính xác ở các tác vụ nhiều bước. Trên các mô hình suy luận, nó hầu như dư thừa. Công dụng mạnh nhất còn lại là buộc mô hình đi theo một con đường suy luận cố định, có thể kiểm toán để bạn kiểm tra.
Kỹ thuật nhắc chuỗi suy luận (chain of thought) có hiệu quả trên các mô hình suy luận như GPT-5, o3 hay Claude không?
Các mô hình này vốn đã suy luận bên trong, nên CoT thủ công thường là thừa và đôi khi còn gây hại. Tài liệu của OpenAI cho biết việc nhắc chúng "suy nghĩ từng bước" là không cần thiết, và việc yêu cầu chúng suy luận nhiều hơn "thực ra có thể làm giảm hiệu suất." Thay vì viết ra các bước, hãy tinh chỉnh mức độ suy luận.
Zero-shot chain of thought prompting là gì?
Zero-shot CoT có nghĩa là thêm một cụm từ kích hoạt, thường là "Let's think step by step," mà không cần đưa ra bất kỳ ví dụ mẫu nào trước đó. Kojima và cộng sự (2022) đã chứng minh rằng chỉ riêng điều này đã biến một mô hình lớn thành một hệ thống suy luận khá tốt. Đây là biến thể CoT rẻ nhất: chỉ một dòng, không cần biên soạn ví dụ, kiểm tra nhanh chóng.
Self-consistency trong chain of thought prompting là gì?
Self-consistency, từ Wang và cộng sự (2022), lấy mẫu một số chuỗi suy luận độc lập ở nhiệt độ cao hơn, sau đó bỏ phiếu đa số cho câu trả lời cuối cùng. Đây là biến thể CoT chính xác nhất vì các chuỗi sai hiếm khi đồng thuận với nhau, nhưng bạn phải trả chi phí cho mọi đường dẫn được lấy mẫu, nên nó cũng là phương pháp tốn kém nhất.
Sự khác biệt giữa chain of thought và few-shot prompting là gì?
Few-shot prompting cho mô hình thấy các cặp đầu vào – đầu ra làm ví dụ. Chain of thought tập trung vào quá trình suy luận giữa đầu vào và đầu ra. Hai kỹ thuật này kết hợp rất tốt với nhau: few-shot CoT cung cấp các ví dụ mẫu có kèm theo các bước suy luận, nhờ đó mô hình học theo cách suy luận của bạn, chứ không chỉ học theo định dạng câu trả lời.
Chain of thought vs prompt chaining vs tree of thought: điểm khác biệt là gì?
Chain of thought suy luận bên trong một prompt duy nhất. Prompt chaining chia nhỏ một tác vụ thành nhiều lời gọi mô hình riêng biệt, truyền kết quả của bước trước sang bước sau. Tree of thought khám phá nhiều nhánh suy luận và loại bỏ những nhánh yếu. CoT là một đường đi tuyến tính duy nhất; hai phương pháp còn lại bổ sung cấu trúc bên ngoài bao quanh mô hình.
Ai đã phát minh ra kỹ thuật gợi ý chuỗi suy luận (chain of thought prompting)?
Kỹ thuật gợi ý chuỗi suy luận (chain of thought prompting) được Jason Wei và các cộng sự tại Google giới thiệu trong bài báo năm 2022 "Chain-of-Thought Prompting Elicits Reasoning in Large Language Models." Sau đó, Kojima và cộng sự đã bổ sung phương pháp CoT zero-shot, và Wang cùng cộng sự bổ sung phương pháp tự nhất quán (self-consistency), cả hai cũng đều vào năm 2022.
Kỹ thuật prompt chuỗi suy luận có hiệu quả cho việc tạo mã không?
Có, đối với các mô hình không suy luận. Việc yêu cầu mô hình lập kế hoạch cho logic trước khi viết mã sẽ giúp nắm bắt các trường hợp biên và giảm lỗi ở những tác vụ phức tạp. Trên các mô hình suy luận, quá trình lập kế hoạch diễn ra bên trong, nên một chỉ dẫn đơn thuần thường hoạt động tốt hơn so với tiền tố "hãy suy luận từng bước" viết tay.