📖 Nội dung bài học
Bảo trì theo lịch: Anthropic Academy sẽ không khả dụng vào Thứ Bảy, ngày 2 tháng 5, từ 5:30–8:30 PM PDT.× Bật/Tắt/ hoặc ?
Tóm tắt
Khi làm việc với Anthropic API và Claude, có một khái niệm quan trọng bạn cần hiểu: Claude không lưu trữ bất kỳ lịch sử hội thoại nào của bạn. Mỗi yêu cầu bạn gửi đi là hoàn toàn độc lập, không có bộ nhớ về các trao đổi trước đó.

Điều này có nghĩa là nếu bạn muốn có một cuộc hội thoại nhiều lượt mà Claude nhớ ngữ cảnh từ các tin nhắn trước đó, bạn cần tự quản lý trạng thái hội thoại.
Vấn đề với Hội thoại Phi trạng thái
Giả sử bạn hỏi Claude "Máy tính lượng tử là gì?" và nhận được câu trả lời tốt. Sau đó, bạn tiếp tục hỏi "Viết thêm một câu nữa" - Claude không biết bạn đang đề cập đến điều gì. Nó sẽ viết một câu về một thứ hoàn toàn ngẫu nhiên vì nó không có bộ nhớ về cuộc thảo luận về máy tính lượng tử.

Hội thoại Nhiều Lượt Hoạt Động Như Thế Nào
Để duy trì ngữ cảnh hội thoại, bạn cần thực hiện hai việc:
- Tự quản lý một danh sách tất cả các tin nhắn trong mã của bạn
- Gửi toàn bộ lịch sử tin nhắn với mỗi yêu cầu

Đây là luồng hoạt động thực tế:
- Gửi tin nhắn người dùng ban đầu của bạn tới Claude
- Lấy phản hồi của Claude và thêm nó vào danh sách tin nhắn của bạn với vai trò là tin nhắn của trợ lý
- Thêm câu hỏi tiếp theo của bạn với vai trò là tin nhắn người dùng khác
- Gửi toàn bộ lịch sử hội thoại tới Claude

Xây dựng các Hàm Hỗ trợ
Để quản lý hội thoại dễ dàng hơn, bạn có thể tạo ba hàm hỗ trợ:
def add_user_message(messages, text):
user_message = {"role": "user", "content": text}
messages.append(user_message)
def add_assistant_message(messages, text):
assistant_message = {"role": "assistant", "content": text}
messages.append(assistant_message)
def chat(messages):
message = client.messages.create(
model=model,
max_tokens=1000,
messages=messages,
)
return message.content[0].text
Kết hợp Mọi Thứ
Đây là cách bạn sử dụng các hàm này để duy trì một cuộc hội thoại:
messages = []
add_user_message(messages, "Định nghĩa máy tính lượng tử trong một câu")
answer = chat(messages)
add_assistant_message(messages, answer)
add_user_message(messages, "Viết thêm một câu nữa")
final_answer = chat(messages)
Bây giờ Claude sẽ hiểu rằng "Viết thêm một câu nữa" đề cập đến việc mở rộng định nghĩa máy tính lượng tử, vì bạn đã cung cấp ngữ cảnh hội thoại đầy đủ.
Điểm Chính Cần Nhớ
Hãy nhớ rằng mỗi lệnh gọi API tới Claude là độc lập. Nếu bạn muốn có ngữ cảnh hội thoại, bạn phải:
- Lưu trữ tất cả tin nhắn cục bộ trong ứng dụng của bạn
- Gửi toàn bộ lịch sử tin nhắn với mỗi yêu cầu
- Định dạng tin nhắn đúng cách với các vai trò "user" và "assistant"
Các hàm hỗ trợ này sẽ rất cần thiết trong suốt quá trình làm việc với Claude, giúp bạn dễ dàng hơn nhiều trong việc xây dựng các ứng dụng có cảm giác như các cuộc trò chuyện tự nhiên thay vì các trao đổi hỏi-đáp riêng lẻ.
🔁 Bài học liên quan
- Bài tiếp: Chat exercise
- Bài trước: Making a request
- Cùng section: Making a request · Chat exercise · System prompts
- Thuộc lộ trình: Path C
- Docs tham khảo: Glossary · Skills atlas · By use-case
📚 Nguồn & ghi nhận
- Bài học gốc Anthropic Academy: https://anthropic.skilljar.com/claude-with-google-vertex/289156
- © 2025 Anthropic. Chỉ dùng cho mục đích giáo dục, fair-use.
- Crawl: 2026-04-30 · Chuẩn hoá: 2026-05-01