如何養成一個 AI Agent
「養成 Agent」並不是訓練模型,而是設計 Agent 的能力組合:給它正確的 Skills、合適的 Tools、必要的外部連線(MCP),讓它能在你的工作流中可靠地完成任務。
本文說明:
- Skills 是什麼?什麼時候用?
- Tools 是什麼?與 Skills 的差別?
- Local MCP vs Remote MCP 的差異與選擇
一、養成 Agent 的三個層次
┌─────────────────────────────────────────┐
│ Agent(行為主體) │
│ │
│ ┌────────────┐ ┌─────────────┐ │
│ │ Skills │ │ Tools │ │
│ │ (做事的方法) │ │ (做事的工具) │ │
│ └────────────┘ └─────────────┘ │
│ ↓ ↓ │
│ ┌─────────────────────────────┐ │
│ │ MCP(外部能力連線) │ │
│ │ Local MCP | Remote MCP │ │
│ └─────────────────────────────┘ │
└─────────────────────────────────────────┘
| 層次 | 比喻 | 載入時機 |
|---|---|---|
| Skills | 工作 SOP / 專業知識 | 按需載入(觸發時) |
| Tools | 手上的工具箱 | 啟動時載入 |
| MCP | 外接設備 / 雲端服務 | 啟動時連線 |
二、什麼是 Skills?
Skills 是 Agent 在特定場景下的「做事方法」與「領域知識」。
它本質上是一個 Markdown 檔案(含 YAML frontmatter),描述:
- 什麼時候該使用這個 Skill(trigger)
- 該怎麼一步步完成這項工作
- 涉及的注意事項、最佳實踐
Skill 結構範例
---
name: ui-ux-pro-max
description: UI/UX 設計指引,涵蓋色彩、字型、佈局與元件
trigger: 當使用者要求設計 UI、調整樣式、選擇配色時
---
# UI/UX 設計守則
## 色彩選擇原則
1. 主色與輔色比例維持在 60:30:10
2. 對比度需達 WCAG AA 標準
...
## 字型搭配
- 標題:Inter / Noto Sans TC
- 內文:System UI fallback
...
Skills 的特性
- 按需觸發:不在每次對話都載入,符合條件時才注入 context
- 可組合:一個 Agent 可掛多個 Skills,互不衝突
- 領域導向:適合包裝「特定情境下要怎麼做」的知識
- 使用者可自訂:透過
/skill-name觸發,或讓 Agent 自動判斷
適合做成 Skill 的內容
| 類型 | 範例 |
|---|---|
| 工作 SOP | Code review 流程、Release 檢查表 |
| 專業領域知識 | UI/UX 設計原則、安全審查項目 |
| 專案規範 | 該如何寫 commit message、PR 模板 |
| 多步驟任務 | 部署、初始化、Migration |
三、什麼是 Tools?
Tools 是 Agent 「執行動作」的能力:讀檔、寫檔、執行 shell 指令、發送 HTTP 請求等。
Tools 的特性
- 啟動時注入:Agent 啟動就知道有哪些 Tools 可用
- 強型別介面:每個 Tool 都有明確的輸入 schema 與輸出格式
- 單一職責:一個 Tool 通常只做一件事(如
Read、Write、Bash) - 權限可控:可在 settings 中設定哪些 Tools 需要使用者確認
Tools 與 Skills 的差別
| 面向 | Skills | Tools |
|---|---|---|
| 本質 | 知識 / SOP | 執行能力 |
| 形式 | Markdown 文件 | 程式介面 / API |
| 載入時機 | 按需觸發 | 啟動時注入 |
| 範例 | 「怎麼做 code review」 | 「執行 git diff」 |
| 比喻 | 食譜 | 鍋鏟 |
Skill 告訴 Agent 「該做什麼」;Tool 讓 Agent 「能做到」。 一個完整的能力 = 知道方法(Skill)+ 有工具(Tool)。
內建 Tools 範例
| Tool | 用途 |
|---|---|
Read | 讀取檔案 |
Write / Edit | 寫入 / 修改檔案 |
Bash | 執行 shell 指令 |
Grep / Glob | 搜尋程式碼 |
WebFetch | 抓取網頁內容 |
四、什麼是 MCP?
MCP(Model Context Protocol)是 Anthropic 推出的開放協定,讓 Agent 能連接外部系統取得資料、呼叫服務。
可以把 MCP 想像成 「Agent 的 USB 介面」:只要對方實作 MCP server,Agent 就能即插即用,不需重寫整合程式。
MCP 提供什麼?
- Tools:讓 Agent 呼叫外部函式(例如:查 Jira ticket、發 Slack 訊息)
- Resources:讓 Agent 讀取外部資源(例如:Google Drive 檔案、DB schema)
- Prompts:可重用的 prompt 模板
五、Local MCP vs Remote MCP
MCP server 依執行位置分兩類:
Local MCP
Server 與 Agent 在同一台機器上執行,透過 stdio 通訊。
┌────────────────────────┐
│ 你的電腦 │
│ ┌──────┐ ┌──────┐ │
│ │Agent │←──→│ MCP │ │ stdio
│ └──────┘ │Server│ │
│ └──────┘ │
└────────────────────────┘
特性
| 面向 | 說明 |
|---|---|
| 通訊方式 | stdio(標準輸入輸出) |
| 啟動方式 | Agent 啟動時 spawn 一個 process |
| 驗證方式 | 通常依賴本機環境(已登入的 CLI、檔案系統權限) |
| 延遲 | 極低(process 內通訊) |
| 可用性 | 僅本機可用,無法跨裝置共享 |
適合場景
- 操作本機檔案系統 / Git repository
- 使用本機已安裝的 CLI 工具(例如
gh,kubectl) - 個人開發環境的客製化整合
設定範例(Claude Code settings.json)
{
"mcpServers": {
"filesystem": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-filesystem", "/path/to/dir"]
}
}
}
Remote MCP
Server 部署在遠端,透過 HTTP / SSE 通訊。
┌──────────┐ ┌─────────────────┐
│ Agent │ HTTP │ Remote MCP │
│ │←───────→│ Server │
│ (本機) │ SSE │ (雲端 / 公司內網) │
└──────────┘ └─────────────────┘
↓
┌──────────┐
│ External │
│ Services │
│ (Jira, │
│ GitHub, │
│ DB...) │
└──────────┘
特性
| 面向 | 說明 |
|---|---|
| 通訊方式 | HTTP + SSE(Server-Sent Events) |
| 啟動方式 | Server 預先部署,Agent 啟動時建立連線 |
| 驗證方式 | API Key、OAuth、JWT 等標準 Web 認證 |
| 延遲 | 視網路而定(一般可接受) |
| 可用性 | 多人 / 多裝置共享同一個 server |
適合場景
- 團隊共用的整合(例如:公司內的 Jira / Confluence)
- 需要中央化管理的權限控制
- 跨裝置一致的能力(手機、IDE、CLI 共用同一套工具)
- 商業雲端 SaaS(Linear、Notion、Slack 等)
設定範例(Claude Code settings.json)
{
"mcpServers": {
"studio_mcp": {
"type": "http",
"url": "https://metamcp.example.com/metamcp/studio_mcp/mcp",
"headers": {
"X-API-Key": "your-api-key"
}
}
}
}
Local vs Remote MCP 對照表
| 比較項目 | Local MCP | Remote MCP |
|---|---|---|
| 執行位置 | 使用者本機 | 遠端 server |
| 通訊協定 | stdio | HTTP / SSE |
| 驗證 | 本機環境 / 檔案權限 | API Key / OAuth |
| 延遲 | 極低 | 網路延遲 |
| 多人共用 | 否 | 是 |
| 權限管理 | 分散,各人自管 | 集中,一處設定 |
| 適合 | 個人本機操作 | 團隊共用、SaaS 整合 |
六、養成 Agent 的實務建議
1. 從最小可行開始
先給 Agent 內建 Tools(Read / Write / Bash)就能解決多數任務。Skills 與 MCP 是遇到瓶頸再加。
2. Skills 寫給「未來的自己」看
把每次對話中你重複糾正 Agent 的內容,整理成 Skill。例如:
- 「Commit message 要用正體中文,禁止簡體用語」
- 「PR 描述要包含 Test plan」
3. Tools 講求穩定,MCP 講求生態
- 如果某個整合是「核心、穩定、長期使用」,做成 Tool 或 Local MCP
- 如果是「跨團隊、跨裝置、需中央管理」,部署 Remote MCP
- 如果只是試水溫,先用 Bash + 既有 CLI
4. 權限設計:最小授權原則
- Tools / MCP 都要評估「最壞情況下會發生什麼」
- 對寫入性、不可逆操作,預設要求使用者確認
- Remote MCP 的 API Key 要妥善管理,定期輪換
5. 觀察與迭代
- 觀察 Agent 在哪些任務上反覆失敗 → 補 Skill
- 觀察 Agent 在哪些操作上手段笨拙 → 補 Tool 或 MCP
- 觀察 Agent 在哪些情境下亂用工具 → 強化 Skill 中的觸發條件