Skip to content

ommi0705/w6-Agent

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

AI agent 開發分組實作

課程:AI agent 開發 — Tool 與 Skill 主題: 旅遊前哨站 / 偵探事務所 / 生活顧問


Agent 功能總覽

說明這個 Agent 能做什麼,使用者可以輸入哪些指令

使用者輸入 Agent 行為 負責組員
城市名稱 接收城市名,啟動 trip_briefing_skill 姚谷伝
(自動觸發) 呼叫 weather_tool,查詢即時天氣 姚谷伝
(自動觸發) 呼叫 search_tool,搜尋熱門景點 姚谷伝
exit 結束程式並退出 姚谷伝

組員與分工

姓名 負責功能 檔案 使用的 API
姚谷伝 天氣 tools/weather_tool.py wttr.in (JSON format)
姚谷伝 景點 tools/search_tool.py DuckDuckGo Search (DDGS)
姚谷伝 Skill 整合 skills/travel_skill.py
姚谷伝 Agent 主程式 main.py

專案架構

範例:

├── tools/
│   ├── __init__.py      # 使資料夾成為可匯入的 package
│   ├── weather_tool.py  # 處理天氣 API 請求
│   └── search_tool.py   # 處理 DuckDuckGo 網頁搜尋
├── skills/
│   ├── __init__.py      # 使資料夾成為可匯入的 package
│   └── travel_skill.py  # 整合工具輸出格式化簡報
├── main.py              # 程式進入點,處理使用者互動
├── requirements.txt     # 專案依賴套件 (requests, ddgs)
└── README.md            # 專案說明文件

使用方式

範例:

# 建立虛擬環境
python -m venv .venv

# 啟動虛擬環境 (Windows)
.venv\Scripts\activate

# 安裝必要套件
pip install requests ddgs

# 執行 Agent
python main.py

執行結果

請輸入想去的城市: 台北
正在為您準備 台北 的資料...

=== 台北 行前簡報 ===
[天氣] 20°C,Partly cloudy
[景點] 2026【台北景點】推薦45個台北景點全攻略、台北一日遊這樣玩!、2026台北景點|精選40個人氣景點
[提醒] 記得帶上相機,捕捉美麗的瞬間!
========================

各功能說明

weather_tool(負責:姚谷伝)

  • Tool 名稱:weather_tool
  • 使用 API:wttr.in (JSON format)
  • 輸入:城市名稱
  • 輸出範例
TOOL = {
    "name": "get_weather",
    "description": "取得目標城市的即時氣溫與天氣狀態",
    "parameters": {
        "city": "string"
    }
}

search_tool(負責:姚谷伝)

  • Tool 名稱:search_tool
  • 使用 API:DuckDuckGo Search (DDGS)
  • 輸入:城市名稱
  • 輸出範例
TOOL = {
    "name": "search_tool",
    "description": "搜尋目標城市的熱門景點",
    "parameters": {
        "city": "string"
    }
}

Skill:travel_skill(負責:姚谷伝)

  • 組合了哪些 Tool:weather_tool、search_tool
  • 執行順序
Step 1: 呼叫 weather_tool → 取得天氣
Step 2: 呼叫 search_tool → 取得景點
Step 3: 組合輸出 → 產生簡報

心得

遇到最難的問題

最困難的部分是 Python 的模組路徑引用 (ModuleNotFoundError)。當我在 main.py 呼叫 skills 裡的函式,而 skills 又要去呼叫 tools 時,常會因為執行路徑不同而找不到檔案。最後透過在各資料夾建立 init.py 以及確認終端機執行路徑在專案根目錄下,才成功解決引用問題。

Tool 和 Skill 的差別

我認為 Tool (工具) 像是「單一的動作」,它只負責把一件事做好(例如:連上 API 把資料拿回來),不考慮後續用途;而 Skill (技能) 則是「解決問題的方案」,它懂得如何有邏輯地組合多個工具,並將原始數據處理成使用者真正需要的結果。

如果再加一個功能

我會想增加一個 「即時匯率轉換 Tool」。因為行前簡報除了天氣和景點,預算也是旅客最關心的部分。如果輸入目的地後,能自動根據目前匯率計算 1 TWD 等於多少當地貨幣,這份簡報的實用價值會更高。

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages