Khi xây dựng AI Agent phức tạp, một trong những quyết định kiến trúc quan trọng nhất là: Tách biệt hay kết hợp Planning (lập kế hoạch) và Execution (thực thi)? Bài viết này sẽ phân tích sâu hai pattern phổ biến nhất — ReAct (Reasoning + Acting) và Plan Mode — kèm theo code thực tế và so sánh chi tiết các giải pháp API.
Bảng so sánh tổng quan
| Tiêu chí | HolySheep AI | API chính thức (OpenAI/Anthropic) | Các dịch vụ relay khác |
|---|---|---|---|
| Tỷ giá | ¥1 = $1 (tiết kiệm 85%+) | Tính theo USD | Tính theo USD + phí dịch vụ |
| Thanh toán | WeChat, Alipay, Visa/Mastercard | Chỉ thẻ quốc tế | Đa dạng nhưng phức tạp |
| Độ trễ trung bình | <50ms | 100-300ms | 80-200ms |
| Tín dụng miễn phí | ✅ Có khi đăng ký | ❌ Không | ⚠️ Tùy nhà cung cấp |
| GPT-4.1 | $8/MTok | $60/MTok | $45-55/MTok |
| Claude Sonnet 4.5 | $15/MTok | $18/MTok | $15-17/MTok |
| DeepSeek V3.2 | $0.42/MTok | Không hỗ trợ | $0.45-0.55/MTok |
ReAct vs Plan Mode: Khái niệm cốt lõi
ReAct (Reasoning + Acting)
ReAct là pattern mà Agent kết hợp liền mạch giữa suy luận và hành động trong một chuỗi loop. Mỗi bước agent đều suy nghĩ, rồi hành động ngay lập tức dựa trên suy luận đó.
Plan Mode (Separation of Concerns)
Plan Mode tách biệt hoàn toàn hai giai đoạn:
- Giai đoạn 1 - Planning: Agent phân tích yêu cầu, chia nhỏ thành các sub-tasks, tạo execution plan chi tiết.
- Giai đoạn 2 - Execution: Tuân thủ plan đã tạo, thực thi từng bước một cách có trật tự.
Code mẫu: ReAct Pattern với HolySheep
import requests
import json
from typing import List, Dict, Any
class ReActAgent:
"""ReAct Pattern - Kết hợp Reasoning và Acting trong một loop"""
def __init__(self, api_key: str):
self.base_url = "https://api.holysheep.ai/v1"
self.headers = {
"Authorization": f"Bearer {api_key}",
"Content-Type": "application/json"
}
self.max_iterations = 10
def think(self, system_prompt: str, context: str, tools: List[str]) -> Dict:
"""Suy luận và quyết định hành động tiếp theo"""
thinking_prompt = f"""{system_prompt}
Hiện tại context:
{context}
Công cụ khả dụng:
{json.dumps(tools, indent=2, ensure_ascii=False)}
Hãy:
1. Suy luận về bước tiếp theo cần thực hiện
2. Chọn công cụ phù hợp (hoặc kết thúc nếu đã hoàn thành)
3. Trả lời theo format:
- thought: suy luận của bạn
- action: tên công cụ (hoặc "FINISH")
- action_input: tham số cho công cụ (hoặc null)"""
response = requests.post(
f"{self.base_url}/chat/completions",
headers=self.headers,
json={
"model": "gpt-4.1",
"messages": [{"role": "user", "content": thinking_prompt}],
"temperature": 0.3,
"max_tokens": 500
}
)
return response.json()
def execute(self, tool_name: str, tool_input: Dict) -> Any:
"""Thực thi hành động được chỉ định"""
# Mô phỏng tool execution
if tool_name == "web_search":
return self._web_search(tool_input["query"])
elif tool_name == "calculator":
return self._calculate(tool_input["expression"])
elif tool_name == "file_reader":
return self._read_file(tool_input["path"])
return None
def run(self, task: str, system_prompt: str, tools: List[str]) -> str:
"""Chạy ReAct loop cho