簡介
Agent 的提示工程與聊天機器人的提示完全不同。代理需要清晰、結構化且可靠的指令 - 因為 LLM 輸出將直接決定操作(工具呼叫、決策),而不僅僅是文字。
1. 系統提示架構
1.1 Agent 的系統提示結構
┌──────────────────────────────────┐
│ 1. IDENTITY & ROLE │ "Bạn là Research Assistant..."
│ 2. CAPABILITIES │ "Bạn có thể: search, calculate..."
│ 3. CONSTRAINTS & BOUNDARIES │ "Không bao giờ: delete files..."
│ 4. OUTPUT FORMAT │ "Trả lời theo JSON schema..."
│ 5. BEHAVIORAL RULES │ "Luôn xác nhận trước khi act..."
│ 6. EXAMPLES (few-shot) │ "Ví dụ: user hỏi X → bạn làm Y"
└──────────────────────────────────┘
1.2 完整的系統提示範例
AGENT_SYSTEM_PROMPT = """
# Identity
Bạn là Research Agent — chuyên tìm kiếm và tổng hợp thông tin.
# Capabilities
Bạn có access vào các tools sau:
- `web_search(query)`: Tìm kiếm trên internet
- `read_url(url)`: Đọc nội dung một trang web
- `take_note(content)`: Lưu ghi chú vào memory
# Constraints
- KHÔNG BAO GIỜ bịa thông tin. Nếu không tìm thấy, nói rõ.
- Luôn cite nguồn (URL) khi trích dẫn.
- Giới hạn tối đa 5 lần search cho mỗi câu hỏi.
# Output Format
Trả lời cuối cùng theo format:
## Kết quả nghiên cứu
[Nội dung tổng hợp]
### Nguồn tham khảo
1. [Tên] - URL
2. [Tên] - URL
# Behavioral Rules
1. Trước khi search, phân tích câu hỏi và lên kế hoạch.
2. Search từ tổng quát → cụ thể.
3. Cross-check thông tin từ ít nhất 2 nguồn.
"""
2.ReAct 提示模式
ReAct = Reasoning + Acting - 代理程式最強的模式。
Thought: Tôi cần tìm dân số Việt Nam 2025
Action: web_search("dân số Việt Nam 2025")
Observation: Kết quả: 100.3 triệu người (theo World Bank)
Thought: Đã có câu trả lời, không cần search thêm
Action: respond("Dân số Việt Nam năm 2025 khoảng 100.3 triệu người")
實作 React
REACT_PROMPT = """
Bạn là AI Agent. Với mỗi bước, hãy:
Thought: [Suy nghĩ về bước tiếp theo]
Action: [Chọn tool và tham số]
Sau khi nhận observation, tiếp tục:
Thought: [Đánh giá kết quả]
Action: [Tool tiếp theo HOẶC respond() nếu đã đủ]
QUAN TRỌNG:
- Không bao giờ skip Thought
- Tối đa 5 actions
- Respond khi đã đủ thông tin
"""
3.角色工程
為什麼角色對特務來說很重要?
角色直接影響代理人如何做決策:
# Agent với persona "cẩn thận"
careful_agent = "Bạn là Senior Security Analyst. Luôn verify trước khi act. Khi nghi ngờ, hỏi lại user."
# Agent với persona "nhanh gọn"
fast_agent = "Bạn là Speed Researcher. Ưu tiên tốc độ. Trả lời ngắn gọn, đúng trọng tâm."
# Agent với persona "sáng tạo"
creative_agent = "Bạn là Creative Director. Nghĩ ngoài khuôn khổ. Đề xuất giải pháp bất ngờ."
4. 對代理人的少量提示
FEW_SHOT_EXAMPLES = """
# Ví dụ 1:
User: "Ai là CEO của OpenAI?"
Thought: Đây là câu hỏi factual đơn giản, tôi có thể trả lời ngay
Action: respond("CEO của OpenAI là Sam Altman")
# Ví dụ 2:
User: "So sánh giá vé máy bay Hà Nội - Sài Gòn tuần này"
Thought: Cần dữ liệu real-time, tôi phải search
Action: web_search("giá vé máy bay Hà Nội Sài Gòn tuần này 2025")
Observation: [kết quả]
Thought: Đã có dữ liệu, tổng hợp và trả lời
Action: respond("[kết quả tổng hợp]")
"""
總結
- 系統提示代理需求清晰的結構:身分、能力、限制、格式、規則
- ReAct(推理 + 行動)是每個智能體的基本模式
- 人物角色直接影響代理人的行為與決策
- 少量範例可協助代理人了解如何正確使用工具
- 始終設定邊界和約束 - 不受控制的代理會帶來麻煩
練習
- 使用 3 個工具編寫「客戶支援代理」的系統提示:search_faq、create_ticket、escalate_to_ human 2.在Python中實現完整的ReAct循環(無框架)
- 比較改變角色時的反應品質(仔細、快速、創造性)
- 為您選擇的代理程式建立 5 個小樣本範例