Mục lục bài viết
- Tổng Quan
- Tại sao chọn Strands Agents SDK?
- Yêu cầu trước khi bắt đầu
- Bước 1: Thiết lập môi trường phát triển
- Bước 2: Tạo AI Agent đầu tiên
- Bước 3: Kích hoạt Debug Logging
- Bước 4: Tạo phiên Interactive Session
- Xử lý lỗi Cross-Region Inference
- Tổng kết những gì đã học
- Tài nguyên tham khảo
Tổng Quan
Hiện nay các AI Agent đang phát triển với tốc độ rất nhanh.Với Strands Agents SDK, bạn có thể tạo ra một AI Agent hoàn chỉnh chỉ với vài dòng code đơn giản.
Tại sao chọn Strands Agents SDK?
Strands Agents SDK nổi bật với những ưu điểm sau:
- Đơn giản: Chỉ cần vài dòng code để có một Agent hoạt động
- Linh hoạt: Hỗ trợ nhiều model provider khác nhau (Amazon Bedrock, Anthropic, LiteLLM, Ollama…)
- Mạnh mẽ: Tích hợp sẵn nhiều tools và khả năng mở rộng
- Dễ debug: Hệ thống logging chi tiết giúp theo dõi hoạt động
Yêu cầu trước khi bắt đầu
Phần mềm cần thiết:
- Python 3.10 trở lên
- AWS Account với quyền truy cập Amazon Bedrock
- Model access cho Claude 3.7 trong Amazon Bedrock
- AWS credentials được cấu hình đúng
Kiểm tra AWS Credentials:
Nếu bạn chưa quen với việc cấu hình AWS credentials, hãy tham khảo AWS CLI configuration guide.
Bước 1: Thiết lập môi trường phát triển
Tạo Virtual Environment
#Tạo virtual environment
python -m venv .venv
#Kích hoạt environment
#Trên Windows:
.venv\Scripts\activate
#Trên macOS/Linux:
source .venv/bin/activate
Cài đặt các package cần thiết
#Cài đặt Strands Agents SDK và tools
pip install strands-agents strands-agents-tools
Giải thích:
- strands-agents: Package chính cung cấp SDK core
- strands-agents-tools: Bộ công cụ built-in để mở rộng khả năng cho agent
Bước 2: Tạo AI Agent đầu tiên
Code cơ bản – Subject Expert Agent
Tạo file subject_expert.py với nội dung sau:
from strands import Agent
#Tạo agent với system prompt chuyên biệt
subject_expert = Agent(
system_prompt="""Bạn là một Chuyên gia Khoa học Máy tính chuyên
giải thích các khái niệm kỹ thuật một cách rõ ràng và súc tích.
Chuyên môn của bạn bao gồm ngôn ngữ lập trình, cấu trúc dữ liệu,
thuật toán, kiến trúc máy tính và các nguyên lý kỹ thuật phần mềm.
Khi giải thích các khái niệm:
1. Bắt đầu với định nghĩa rõ ràng, súc tích
2. Cung cấp ví dụ ngắn gọn nhưng phù hợp để minh họa khái niệm
3. Giải thích ứng dụng thực tế khi có thể
4. Tránh thuật ngữ không cần thiết, nhưng giới thiệu terminology quan trọng
5. Xem xét góc độ người học và làm cho các chủ đề phức tạp dễ tiếp cận
Mục tiêu của bạn là giúp người học xây dựng hiểu biết vững chắc về
các nguyên lý cơ bản của khoa học máy tính.
"""
)
#Response sẽ được tự động in ra bởi Agent class
response = subject_expert("Giải thích khái niệm đệ quy trong lập trình.")
Chạy chương trình
python subject_expert.py
🎉Chúc mừng! Vừa tạo ra AI Agent đầu tiên chỉ với vài dòng code!
Hiểu rõ cách hoạt động
Phân tích Agent Object
subject_expert = Agent(
system_prompt="""Bạn là một Chuyên gia Khoa học Máy tính…"""
)
System Prompt là linh hồn của Agent:
- Định nghĩa tính cách và chuyên môn của Agent
- Thiết lập các nguyên tắc hoạt động
- Tạo ra phong cách giao tiếp nhất quán
Agent Invocation (Gọi Agent)
response = subject_expert("Giải thích khái niệm đệ quy trong lập trình.")
Dòng code này thực hiện:
- Gửi câu hỏi đến agent
- Agent xử lý bằng AI model
- Response được tự động in ra console
- Response cũng được trả về dưới dạng string để sử dụng tiếp
Model mặc định
Strands Agents sử dụng Amazon Bedrock với Claude 3.7 làm mặc định, tự động xử lý:
- Tạo kết nối bảo mật đến Amazon Bedrock
- Format request và response cho Claude 3.7
- Quản lý token limits và các yêu cầu đặc thù của model
Ưu điểm lớn: Strands hỗ trợ nhiều model provider, bạn có thể dễ dàng chuyển đổi giữa:
- Amazon Bedrock
- Anthropic
- LiteLLM
- Ollama
- Llama API
- Hoặc tự build custom provider
Bước 3: Kích hoạt Debug Logging
Để hiểu rõ Agent hoạt động như thế nào thêm logging như sau:
import logging
from strands import Agent
# Kích hoạt debug logging cho Strands
logging.getLogger("strands").setLevel(logging.DEBUG)
logging.basicConfig(
format="%(levelname)s | %(name)s | %(message)s",
handlers=[logging.StreamHandler()]
)
# Tạo Subject Expert agent
subject_expert = Agent(
system_prompt="""Bạn là một Chuyên gia Khoa học Máy tính…"""
)
# Đặt câu hỏi
response = subject_expert("Giải thích khái niệm đệ quy trong lập trình.")
Output logging mẫu:
DEBUG | strands.models.bedrock | config=<{'model_id': 'us.anthropic.claude-3-7-sonnet-20250219-v1:0'}> | initializing
DEBUG | strands.tools.registry | tool_modules=<[]> | discovered
DEBUG | strands.event_loop.streaming | model= | streaming messages
DEBUG | strands.types.models | formatting request
DEBUG | strands.types.models | invoking model
DEBUG | strands.types.models | got response from model
Logging giúp bạn theo dõi:
- Khởi tạo model
- Khám phá và đăng ký tools
- Xử lý event loop
- Luồng request/response
- Quản lý conversation
- Lỗi và cảnh báo
Bước 4: Tạo phiên Interactive Session
Để có trải nghiệm tương tác tốt hơn, hãy nâng cấp script:
import logging
from strands import Agent
# Kích hoạt debug logging (tùy chọn)
# logging.getLogger("strands").setLevel(logging.DEBUG)
# logging.basicConfig(
# format="%(levelname)s | %(name)s | %(message)s",
# handlers=[logging.StreamHandler()]
# )
# Tạo Subject Expert agent
subject_expert = Agent(
system_prompt="""Bạn là một Chuyên gia Khoa học Máy tính chuyên
giải thích các khái niệm kỹ thuật một cách rõ ràng và súc tích.
Chuyên môn của bạn bao gồm ngôn ngữ lập trình, cấu trúc dữ liệu,
thuật toán, kiến trúc máy tính và các nguyên lý kỹ thuật phần mềm.
Khi giải thích các khái niệm:
1. Bắt đầu với định nghĩa rõ ràng, súc tích
2. Cung cấp ví dụ phù hợp để minh họa khái niệm
3. Giải thích ứng dụng thực tế khi có thể
4. Tránh thuật ngữ không cần thiết, nhưng giới thiệu terminology quan trọng
5. Xem xét góc độ người học và làm cho các chủ đề phức tạp dễ tiếp cận
Mục tiêu của bạn là giúp người học xây dựng hiểu biết vững chắc về
các nguyên lý cơ bản của khoa học máy tính.
"""
)
def interactive_session():
print("🤖 Chuyên gia Khoa học Máy tính AI Agent")
print("(gõ 'exit' để thoát)")
print("-" * 50)
while True:
# Nhận input từ user
user_input = input("\n🔹 Câu hỏi của bạn: ")
if user_input.lower() in ["exit", "quit", "bye", "thoát"]:
print("👋 Tạm biệt!")
break
# Gửi input đến agent, sẽ tự động in response
print("\n🤔 Đang suy nghĩ...\n")
subject_expert(user_input)
if __name__ == "__main__":
interactive_session()
Chạy interactive session:
python subject_expert.py
Giờ bạn có thể trò chuyện liên tục với AI Agent, đặt các câu hỏi khác nhau về khoa học máy tính!
Xử lý lỗi Cross-Region Inference
⚠️ Lưu ý quan trọng: Nếu gặp lỗi permission dù đã cấu hình credentials đúng, có thể bạn cần enable model access ở nhiều AWS regions.
Giải pháp:
- Với người dùng ở Mỹ: Enable Claude model access ở tất cả US regions (us-east-1, us-east-2, us-west-2)
- Với người dùng ở EU: Enable ở các EU regions tương ứng
- Strands sử dụng inference profiles để route request đến region có latency thấp nhất
Tổng kết những gì đã học
Qua việc tạo AI Agent đơn giản này, chúng ta đã học được:
✅ Điều đã hoàn thành:
- Dễ dàng bắt đầu: Chỉ vài dòng code là có Agent hoạt động
- System prompts mạnh mẽ: Định nghĩa hành vi và chuyên môn của agent
- SDK tự động hóa: Xử lý nhiều phức tạp (authentication, request formatting…)
- Debug logging hữu ích: Cung cấp cái nhìn sâu sắc về hoạt động của agent
- Tương tác linh hoạt: Có thể tạo session chat liên tục
🚀 Khả năng mở rộng:
- Tích hợp tools tùy chỉnh
- Kết nối với databases
- Xử lý files và documents
- Tích hợp APIs bên ngoài
- Multi-agent collaboration
Tài nguyên tham khảo
- Strands Agents Documentation
- Amazon Bedrock User Guide
- AWS CLI Configuration
- Model Providers Documentation
💡 Tip cuối: Hãy thử nghiệm với các system prompt khác nhau để tạo ra những AI Agent với tính cách và chuyên môn độc đáo. Đây chính là chìa khóa để tạo ra những ứng dụng AI thực sự hữu ích!
Để lại một bình luận