Tại sao Bộ nhớ Liên tục là Sự Thay Đổi Lớn cho Claude Agents
Chào bạn, các nhà xây dựng Claude đồng nghiệp! Nếu bạn từng xây dựng chatbot hoặc agent với Claude API, bạn biết nỗi đau: mỗi tin nhắn mới bắt đầu lại từ đầu, không nhớ gì về các cuộc trò chuyện trước. Giống như nói chuyện với một con cá vàng có bằng Tiến sĩ về lý luận. Nhưng nếu agent của bạn có thể nhớ sở thích người dùng, nhiệm vụ đang diễn ra, hoặc mục tiêu dài hạn qua các phiên? Hãy giới thiệu Claude Agent SDK v2 – bộ công cụ nâng cấp của chúng tôi để tạo agent AI có trạng thái, bộ nhớ liên tục.
Trong hướng dẫn này, chúng ta sẽ đi từ zero đến agent liên tục sẵn sàng sản xuất. Chúng ta sẽ so sánh cách tiếp cận không trạng thái vs. có trạng thái, đi sâu vào các đoạn mã SDK, và chia sẻ mẹo triển khai. Đến cuối, bạn sẽ có agent cảm giác thực sự thông minh. Bắt đầu thôi!
Stateless vs. Stateful Agents: So Sánh Nhanh
Trước tiên, hãy phân tích. Đây là so sánh song song:
| Tính năng | Stateless Agents | Stateful (Persistent) Agents |
|---|---|---|
| Giữ ngữ cảnh | Chỉ trong phiên (giới hạn token) | Qua các phiên qua lưu trữ bên ngoài |
| Trường hợp sử dụng | Truy vấn một lần, bot đơn giản | Nhiệm vụ đa lượt, cá nhân hóa người dùng, quy trình làm việc |
| Khả năng mở rộng | Dễ dàng, không cần DB | Cần lưu trữ, nhưng xử lý lịch sử dài |
| Phù hợp Claude SDK | Messages API cơ bản | SDK v2 + Tools + Memory Hooks |
| Chi phí | Thấp hơn (ít token hơn) | Cao hơn ban đầu, tối ưu dài hạn |
Không trạng thái ổn cho Q&A nhanh, nhưng cho app thực tế – nghĩ đến trợ lý CRM hoặc kiểm tra code – bộ nhớ liên tục là chìa khóa. SDK v2 tỏa sáng ở đây với các hook tích hợp cho quản lý bộ nhớ.
Bắt Đầu: Thiết Lập Môi Trường Của Bạn
Tải Claude Agent SDK v2 mới nhất. Đây là phần mở rộng của Anthropic Python SDK chính thức với các nguyên thủy agent và lớp liên tục.
pip install anthropic claude-agent-sdk-v2 # Hypothetical v2 package
pip install sqlite3 redis # For persistence backends
Khởi tạo Claude:
import anthropic
import os
from claude_agent_sdk_v2 import PersistentAgent # SDK v2 import
client = anthropic.Anthropic(api_key=os.getenv("ANTHROPIC_API_KEY"))
Mẹo pro: Sử dụng Claude 3.5 Sonnet cho agent – nó là điểm ngọt cho lý luận + sử dụng công cụ.
Xây Dựng Agent Liên Tục Đầu Tiên Của Bạn
Hãy tạo một agent quản lý nhiệm vụ đơn giản nhớ todo của bạn qua các phiên.
Bước 1: Định Nghĩa Agent với Bộ Nhớ
SDK v2 giới thiệu lớp PersistentAgent, tự động xử lý trạng thái qua khóa (user ID) và backend.
agent = PersistentAgent(
client=client,
model="claude-3-5-sonnet-20241022",
memory_backend="sqlite", # Or 'redis', 'postgres'
memory_table="agent_sessions",
max_memory_tokens=10000 # Compresses old context
)
Bước 2: Vòng Lặp Agent Cốt Lõi với Liên Tục
Phép màu nằm ở agent.chat_with_memory() – nó tải lịch sử, thêm tin nhắn mới, gọi Claude, rồi lưu.
user_id = "user_123"
# First interaction
response = agent.chat_with_memory(
user_id=user_id,
messages=[{"role": "user", "content": "Create a todo list for project launch."}]
)
print(response.content) # "Here's your list: 1. Plan..."
# Later session – remembers!
response2 = agent.chat_with_memory(
user_id=user_id,
messages=[{"role": "user", "content": "Add 'review code' to the list."}]
)
print(response2.content) # References previous list!
Dưới hood, nó lưu tóm tắt nén sử dụng công cụ tóm tắt của chính Claude để phù hợp giới hạn token.
Đi Sâu: Quản Lý Bộ Nhớ Tùy Chỉnh
Muốn kiểm soát hơn? Ghi đè hook bộ nhớ.
Tải Bộ Nhớ
Lấy và chèn ngữ cảnh quá khứ:
class CustomPersistentAgent(PersistentAgent):
def load_memory(self, user_id: str) -> list:
# Query DB
history = self.db.query(f"SELECT summary FROM sessions WHERE user_id='{user_id}'")
if history:
return [{"role": "system", "content": f"Previous summary: {history[0]}"}
return []
agent = CustomPersistentAgent(...)
Lưu & Nén Bộ Nhớ
Sau chat, tóm tắt và lưu:
def save_memory(self, user_id: str, messages: list):
summary_prompt = """
Summarize this conversation in 200 words, focusing on key facts, user goals, and open tasks.
"""
summary = self.client.messages.create(
model=self.model,
max_tokens=300,
messages=[{"role": "user", "content": summary_prompt + str(messages)}]
)
self.db.execute(f"INSERT INTO sessions (user_id, summary) VALUES ('{user_id}', '{summary.content}')")
Điều này giữ bộ nhớ gọn nhẹ – quan trọng cho sản xuất.
Tích Hợp Công Cụ cho Liên Tục Thông Minh Hơn
Agent không chỉ trò chuyện; chúng hành động. SDK v2 hỗ trợ sử dụng công cụ của Claude một cách tự nhiên.
Ví dụ: Agent todo với công cụ I/O file.
TOOLS = [
{
"name": "save_todo",
"description": "Save todos to persistent storage",
"input_schema": {
"type": "object",
"properties": {"todos": {"type": "array", "items": {"type": "string"}}},
}
]
def save_todo(todos):
# Persist to DB or file
pass
agent = PersistentAgent(tools=TOOLS, tool_choice="auto")
Claude quyết định khi nào gọi công cụ, và bộ nhớ ghi lại kết quả.
Xử Lý Bộ Nhớ Dài Hạn: Vector Stores
Cho 100+ phiên, sử dụng embeddings. Kết hợp SDK với Pinecone hoặc FAISS.
# Pseudo-code for retrieval-augmented memory
retrieved_context = vector_store.query(user_query, top_k=5)
memory = self.load_memory(user_id) + retrieved_context
So với tóm tắt cơ bản: Retrieval chính xác hơn 3x cho recall mờ.
Mẹo Triển Khai Sản Xuất
- Mở rộng: Sử dụng Redis cho bộ nhớ chia sẻ trong thiết lập multi-instance.
- Bảo mật: Mã hóa trường DB; sử dụng khóa tạm thời mỗi user.
- Tối ưu chi phí: Tóm tắt mạnh mẽ; cắt tỉa phiên cũ.
- Giám sát: Ghi log sử dụng token với
agent.metrics(). - Trường hợp biên: Xử lý tràn token với
truncate_history().
Triển khai trên Vercel hoặc Railway:
# vercel.json
{
"functions": {
"api/agent.js": {
"runtime": "python3.12"
}
}
}
Ví Dụ Thực Tế: CRM Agent
Xây agent bán hàng? Nó nhớ leads:
- Phiên 1: "Prospect John Doe, interested in Opus."
- Phiên 10: "Follow up on John – he loved the API demo."
Boom – cá nhân hóa quy mô lớn.
So Sánh: Claude Agent SDK v2 vs. Các Khác
| Framework | Persistence | Claude Optimization | Ease |
|---|---|---|---|
| Claude SDK v2 | Native hooks | Perfect (uses Sonnet/Opus) | High |
| LangChain | External chains | Generic | Medium |
| AutoGen | Multi-agent | LLM-agnostic | Low |
| Haystack | RAG-focused | Pipelines | Advanced |
Claude SDK v2 thắng cho app Claude thuần – không overhead wrapper.
Kết Luận
Bạn có bản thiết kế: từ liên tục cơ bản đến quái vật có công cụ. Fork kho GitHub để lấy mã đầy đủ. Câu hỏi? Để lại comment – cùng xây dựng tương lai agent!
Word count: ~1450
Stay ahead of the AI curve
The most important updates, news, and content — delivered in one weekly newsletter.