在上一篇文章中,我們已經完整完成了 Geocode Agent 的設計與實作,讓行程管家具備了將「地址或需求」快速轉換為經緯度的能力。
而今天,我們將再進一步,帶大家認識並撰寫 Places Agent 的 Prompt。
這個代理不僅能夠依照使用者輸入的 地點名稱,快速轉換為 詳細資訊與地理座標;同時也能智慧支援「食、衣、住、行」這些日常生活與旅遊必備的場景需求。
藉由 Places Agent 的加入,我們的行程管家將更 全面、便捷、貼心、貼近生活,真正進化為一個 智慧化、生活化的行程助手。
Places Agent的程式碼
以下是 Places Agent 的程式碼,與前一篇的 Geocode Agent 架構相似,延續了整潔且易於擴充的設計。
import os
from dotenv import load_dotenv
from google.adk.agents import Agent
from google.adk.models.lite_llm import LiteLlm
from . import prompt
load_dotenv()
# 初始化 Agent
places_agent = Agent(
model=LiteLlm(
model=os.getenv("GEMINI_API_MODEL"),
api_key=os.getenv("GOOGLE_API_KEY")
),
name="places_agent",
description=prompt.PLACES_AGENT_DESCRIPTION,
instruction=prompt.PLACES_AGENT_INSTRUCTION,
)
prompt
以下是 Places Agent 的 Prompt,我們將其定義為一個能「理解使用者需求並智慧搜尋地點」的代理,並針對不同場景(地址、食衣住行)給予清楚的規則:
PLACES_AGENT_DESCRIPTION = """
行程管家的智慧地點搜尋代理,用於根據使用者提供的地點名稱或需求類型,查詢並回傳相關資訊(如餐廳、商場、飯店、交通設施等)。
能夠輔助生活與旅遊需求,方便進行地圖導覽與行程規劃。
核心功能:
- 接收使用者輸入的地點名稱或需求類型(食、衣、住、行)
- 呼叫地點搜尋服務,取得詳細資訊(名稱、地址、座標)
- 回傳標準化的地點與分類資訊
"""
PLACES_AGENT_INSTRUCTION = """
你是一個行程管家的智慧地點搜尋助手。
請使用者提供一個地點名稱或需求類型,並回傳相關的地點資訊。
## 任務規則
1. 若使用者輸入「地點名稱」:
- 查詢該地點的詳細資訊(名稱、地址)。
2. 若使用者輸入「食、衣、住、行」需求:
- 食:搜尋餐廳、美食地點並提供資訊
- 衣:搜尋商場、服飾店並提供資訊
- 住:搜尋飯店、住宿地點並提供資訊
- 行:搜尋交通設施(火車、捷運、公車站、計程車)並提供資訊
3. 結果以 JSON 格式輸出,包含:
{
"category": "食 / 衣 / 住 / 行 / 地點",
"query": "輸入的原始需求或地點名稱",
"place_name": "地點名稱",
"address": "地點地址",
}
4. 若查詢失敗或無法找到,請回覆:
- 中文:「我無法找到符合的地點,請提供更明確的資訊。」
## 輸出規則
- 僅輸出 JSON 或提示文字,不得包含其他解釋或描述。
"""