Build nhanh Agent đầu tay trong 5 phút
Sau 6 tháng “ăn nằm” với đủ loại framework từ LangChain đến CrewAI, mình rút ra một bài học xương máu. Đôi khi, quay về với SDK thuần của Anthropic lại là cách tốt nhất để kiểm soát hành vi AI. Claude Agent SDK không chỉ đơn thuần là thư viện gọi API. Nó cung cấp một khung xương vững chắc để bạn định nghĩa Tool và để Claude tự cầm lái workflow.
Để bắt đầu với Python, anh em cài bản chính thức qua pip:
pip install anthropic
Thay vì bắt AI “nhẩm toán” (vốn rất dễ sai số), hãy cấp cho nó một hàm Python thực thụ. Dưới đây là cách tạo một Agent tra cứu giá chứng khoán thời gian thực:
import anthropic
client = anthropic.Anthropic(api_key="YOUR_CLAUDE_API_KEY")
def get_stock_price(ticker):
# Giả lập gọi API thực tế, ví dụ Yahoo Finance
prices = {"AAPL": 175.5, "GOOG": 140.2, "MSFT": 402.1}
return str(prices.get(ticker, "Không tìm thấy mã này"))
message = client.messages.create(
model="claude-3-5-sonnet-20240620",
max_tokens=1024,
tools=[
{
"name": "get_stock_price",
"description": "Lấy giá cổ phiếu hiện tại theo mã ticker",
"input_schema": {
"type": "object",
"properties": {
"ticker": {"type": "string", "description": "Mã chứng khoán, ví dụ: AAPL"}
},
"required": ["ticker"]
}
}
],
messages=[{"role": "user", "content": "Giá cổ phiếu Apple hiện tại là bao nhiêu?"}]
)
print(message.content)
Chỉ với 20 dòng code, Claude đã thoát xác khỏi vai trò “chatbox biết tuốt”. Giờ đây, nó là một Agent có khả năng truy xuất dữ liệu thực tế. Bí kíp nằm ở tham số tools – nơi bạn trao “quyền năng” cho AI.
Tại sao mình chọn SDK thuần thay vì dùng Framework?
Nhiều anh em thường nhảy ngay vào LangChain vì sự tiện lợi “all-in-one”. Tuy nhiên, khi đẩy dự án lên production, mình nhận thấy các lớp trừu tượng (abstraction) quá dày đôi khi lại gây vướng víu. Chuyển sang dùng trực tiếp Claude SDK mang lại 3 lợi ích rõ rệt:
- Tối ưu Latency: Giảm bớt các layer trung gian giúp Agent phản hồi nhanh hơn khoảng 200-300ms – con số cực kỳ quan trọng cho trải nghiệm người dùng.
- Kiểm soát Token: Bạn quản lý chính xác từng byte dữ liệu. Không còn chuyện framework tự ý chèn thêm prompt ẩn làm tiêu tốn tiền API vô ích.
- Debug thần tốc: Khi Agent bị lặp vô tận (loop), việc truy vết trên SDK thuần đơn giản hơn nhiều so với việc bới tung mã nguồn của một thư viện khổng lồ.
Tư duy Agentic: Thiết kế vòng lặp suy nghĩ
Làm Agent không chỉ là viết prompt hay. Với Claude SDK, bạn đang thiết kế một Reasoning Loop (Vòng lặp suy luận). Hãy hình dung quy trình như một cuộc đối thoại giữa “não bộ” (Claude) và “bàn tay” (Code của bạn):
- Bạn gửi yêu cầu kèm danh sách Tools.
- Claude phân tích yêu cầu, nếu cần dùng tool, nó trả về JSON chứa tên hàm và tham số.
- Hệ thống của bạn thực thi hàm đó tại local.
- Bạn gửi kết quả thực thi ngược lại cho Claude.
- Claude tổng hợp dữ liệu và đưa ra câu trả lời cuối cùng.
Cơ chế này cực kỳ an toàn. AI chỉ có thể “đề xuất” gọi hàm, còn việc thực thi hoàn toàn nằm trong quyền kiểm soát của bạn (Sandbox).
Kỹ thuật tối ưu: Prompt Caching cứu cánh cho túi tiền
Prompt Caching là tính năng giúp mình tiết kiệm đến 90% chi phí khi chạy Agent dài hơi. Thông thường, mỗi lần gọi tool, bạn phải gửi lại toàn bộ lịch sử chat. Nếu hội thoại dài 10k token, chi phí sẽ tăng chóng mặt.
Bằng cách gắn thẻ cache_control vào System Prompt hoặc bộ hướng dẫn Tool, Claude sẽ ghi nhớ phần đó. Bạn chỉ trả phí xử lý một lần duy nhất, các lượt gọi sau chỉ tính phí rẻ như cho. Đây là yếu tố sống còn để scale dự án lên hàng ngàn user.
# Đánh dấu cache cho phần prompt cố định
system_prompt = [
{
"type": "text",
"text": "Bạn là chuyên gia phân tích dữ liệu chuyên nghiệp với 10 năm kinh nghiệm...",
"cache_control": {"type": "ephemeral"}
}
]
Bài học “xương máu” khi vận hành thực tế
Sau nửa năm vận hành hệ thống AI cho khách hàng, mình rút ra 3 quy tắc vàng:
1. Chặn đứng vòng lặp vô tận (Infinite Loops)
Agent thỉnh thoảng sẽ bị “kẹt” – nó cứ gọi đi gọi lại một tool dù kết quả không đổi. Hãy luôn đặt biến max_iterations = 5. Nếu sau 5 lần suy nghĩ mà AI chưa xong việc, hãy ngắt kết nối và báo lỗi để bảo vệ ví tiền của bạn.
2. Trả về lỗi chi tiết thay vì quăng Exception
Đừng để hệ thống sập khi Tool bị lỗi. Thay vào đó, hãy gửi thông báo lỗi bằng text cho Claude. Ví dụ: “Lỗi: Không tìm thấy ID khách hàng 123”. Claude cực kỳ thông minh trong việc đọc hiểu lỗi này để tự điều chỉnh hướng xử lý tiếp theo.
3. Phối hợp các dòng Model (Model Routing)
Đừng lãng phí Claude 3.5 Sonnet cho mọi việc. Với các task đơn giản như phân loại ý định người dùng, hãy dùng Claude 3 Haiku. Nó nhanh hơn gấp 3 lần và rẻ hơn rất nhiều. Chỉ khi gặp task cần tư duy logic phức tạp, chúng ta mới đẩy sang cho “đàn anh” Sonnet xử lý.
Lời kết
Claude Agent SDK là công cụ mạnh mẽ nhưng đòi hỏi tư duy hệ thống sắc bén. Thay vì viết một prompt dài lê thê, hãy chia nhỏ vấn đề thành các Tool chuyên dụng. Khi bạn kết hợp được sức mạnh của Claude với khả năng xử lý file, truy cập Database của Python, khả năng của Agent gần như là vô hạn. Thử bắt tay build một con Agent quản lý task ngay hôm nay, bạn sẽ thấy sự khác biệt!

