Chuyển đến nội dung chính

レッスン 3: エージェント向けのプロンプト エンジニアリング — システム プロンプトとペルソナ

エージェント向けに効果的なシステム プロンプトを作成します。ペルソナ、境界、出力スキーマを定義します。思考連鎖、少数ショット、フォーマット準拠の LLM プレス技術。 ReAct プロンプト パターン。

🧠 AI と ML — レッスン 2 レッスン 3: エージェント向けの迅速なエンジニアリング — システムプロンプトとペルソナ

AI エージェントの構築: ゼロから本番環境まで

パート 1: エージェント プラットフォーム — 構築する前に理解する

xdev.asia

はじめに

エージェントのプロンプト エンジニアリングは、チャットボットのプロンプトとはまったく異なります。エージェントは 明確で構造化された信頼性の高い指示を必要とします。LLM の出力はテキストだけでなくアクション (ツールの呼び出し、決定) を直接決定するためです。


1. システム プロンプト アーキテクチャ

1.1 エージェントのシステム プロンプト構造

┌──────────────────────────────────┐
│  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]")
"""

概要

  • エージェント用のシステム プロンプトには 明確な構造が必要です: ID、機能、制約、形式、ルール
  • ReAct (推論 + 行動) はすべてのエージェントの基本パターンです
  • ペルソナはエージェントの行動と決定に直接影響します。
  • いくつかのショットの例は、エージェントがツールの適切な使用方法を理解するのに役立ちます
  • 常に境界と制約を設定してください - 制御されていないエージェントは問題を引き起こします

演習

  1. 3 つのツール (search_faq、create_ticket、escalate_to_human) を使用して「カスタマー サポート エージェント」のシステム プロンプトを作成します。
  2. Python で完全な ReAct ループを実装します (フレームワークなし)
  3. ペルソナ変更時の対応品質を比較する (慎重、迅速、創造的)
  4. 選択したエージェント用に 5 つの少数ショットの例を作成します