Nhảy đến nội dung chính

Giới thiệu

Trong LangChain, Message là thành phần cốt lõi dùng để mô tả các tương tác giữa người dùng, hệ thống và mô hình ngôn ngữ (LLM). Việc hiểu rõ các loại Message giúp bạn xây dựng các tác vụ hội thoại, agent, và ứng dụng AI một cách chính xác, dễ kiểm soát và có thể mở rộng.

LangChain định nghĩa nhiều loại message khác nhau, mỗi loại phản ánh một vai trò cụ thể trong quá trình giao tiếp. Dưới đây là tổng quan các loại message chính:

1. HumanMessage – Tin nhắn từ người dùng

Đây là loại message đại diện cho đầu vào từ người dùng cuối. Khi bạn nhập văn bản để hỏi AI, LangChain sẽ đóng gói nội dung đó thành một HumanMessage.

from langchain.schema import HumanMessage

message = HumanMessage(content="Bạn có thể giúp tôi tính 5 nhân 3 không?")

Dùng khi mô phỏng hoặc truyền input từ con người.

2. AIMessage – Phản hồi từ AI

Đại diện cho phản hồi từ LLM, thường là kết quả sau khi xử lý HumanMessage. Ngoài văn bản, AIMessage còn có thể bao gồm tool calls, nếu AI quyết định gọi một công cụ thay vì trả lời trực tiếp.

from langchain.schema import AIMessage

message = AIMessage(content="Kết quả là 15.")

Dùng để mô tả output từ AI.

3. SystemMessage – Định hướng AI

Được dùng để thiết lập bối cảnh hoặc hướng dẫn hành vi của AI từ đầu. Những chỉ dẫn như “bạn là một trợ lý thân thiện” hay “chỉ trả lời bằng tiếng Việt” thường được đặt trong SystemMessage.

from langchain.schema import SystemMessage

message = SystemMessage(content="Bạn là một trợ lý AI chuyên nghiệp.")

Dùng để hướng dẫn mô hình trước khi bắt đầu cuộc trò chuyện.

4. ToolMessage – Phản hồi từ công cụ (tool)

Khi một AI gọi tool (hàm toán học, API, công cụ bên ngoài…), kết quả trả về sẽ được biểu diễn qua ToolMessage. Nó mô tả output của tool, và giúp AI tiếp tục hội thoại dựa trên dữ liệu đó.

from langchain.schema import ToolMessage

message = ToolMessage(
    tool_call_id="abc123",
    content="Kết quả của phép chia là 2.5"
)

Dùng khi bạn có workflow với tool calling.

5. ToolCall – Yêu cầu từ AI gọi một tool

Không phải là message, nhưng thường được gói trong AIMessage. Khi AI muốn gọi một hàm cụ thể, nó tạo ra một ToolCall để mô tả tên tool và các tham số truyền vào.

from langchain.schema.messages import ToolCall

call = ToolCall(
    name="multiply",
    args={"a": 5, "b": 3},
    id="tool_call_1"
)

Gắn liền với quá trình sử dụng bind_tools() hoặc khi xây dựng các agent có tool.

Tóm lại

Message Type Vai trò chính Dùng khi nào?
HumanMessage Người dùng gửi yêu cầu Mọi input của người dùng
AIMessage AI phản hồi hoặc gọi tool Output từ AI
SystemMessage Thiết lập bối cảnh và hành vi AI Trước khi bắt đầu cuộc trò chuyện
ToolMessage Phản hồi từ công cụ (tool) Khi một tool được AI gọi và trả về kết quả
ToolCall (Không phải message) – Gọi hàm/tool Khi AI quyết định gọi tool thay vì trả lời

Tác giả: Đỗ Ngọc Tú
Công Ty Phần Mềm VHTSoft