如果 AI 只能在對話框裡給你「文字建議」,最後去哪個資料夾翻日誌、查檔案、執行命令還是得由你手動一步步操作,那它頂多只是一個「顧問」,還稱不上真正的 「自主行動 Agent(Autonomous Agent)」。
真正的質變在於:當你給出一個目標(如「找出 Downloads 中 30 天未動的大檔案」),AI 能夠自己決定呼叫哪些 Windows 工具、自己讀取檔案、自己判斷資料、最後交出成果報告!
今天我們深入探索 Model Context Protocol(MCP),利用agy mcp為本機 AI 掛載 Windows 工具,並結合 Day 14 的🤖 agy 推理核心大腦Subflow 積木,實現高擴展性的自主調研工作流!
本文同步發布於 GitHub: 2026-18th-it-ironman
在過去,要讓 AI 擁有呼叫外部工具(Tool Calling / Function Calling)或讀取本機檔案的能力,開發者面臨著巨大的工程痛點:每家模型與平台的通訊規格完全各自為政。這讓工具的複用率極低且維護成本高昂。
為了解決這個困境,Anthropic 提出了 MCP(Model Context Protocol,模型上下文協定),並迅速獲得開源社群與 Google agy 的原生全面支援。
理解 MCP 最直覺的生活化比喻就是 硬體世界的 USB-C:
在 USB 出現以前,鍵盤、滑鼠、印表機各有各的特規插孔;而 USB 規格統一了通訊格式,從此任何周邊只要實作 USB 介面,就能插上任意電腦即插即用。
MCP 正是 AI 應用程式的 USB-C!它基於標準的 JSON-RPC 2.0 雙向通訊協定,將「大腦模型」與「本機/外部工具」徹底解耦:
agy、Claude Desktop、Cursor 等),就能以「零代碼適配」的方式一鍵掛載、立即呼叫!在 MCP 的運作體系中,清楚劃分了三個協作角色:
agy CLI 共同扮演 Host 角色(Node-RED 負責事件調度與成果落地,agy 負責調度 Gemini 推理大腦)。agy 核心之中,負責與各個 MCP Server 建立標準連線(透過 stdio 標準輸入輸出或 HTTP SSE),自動探測並向模型宣告可用工具清單(Schema)。@modelcontextprotocol/server-filesystem)。傳統的 Tool Calling 通常只支援單向的「執行函數」,而 MCP 規範了完整的上下文擴展生態:
list_directory、get_file_info),由 AI 在推理迴圈中自主決定參數並發起呼叫。file:///logs/app.log)讓 AI 按需檢索背景資料,不浪費多餘的 Token 上下文空間。| 比較維度 | 傳統 Prompt 做法(Day 04~15) | 🚀 具備 MCP 的自主 Agent(Day 18+) |
|---|---|---|
| 資料獲取 | Node-RED 必須預先寫死 JS/PowerShell 抓好資料傳給 AI | AI 在思考過程中自主決定何時呼叫工具讀取資料 |
| 迭代輪數 | 單輪問答(一次性完成) | 多輪自省(Tool Use ➔ Tool Output ➔ 深入探勘 ➔ 最終結論) |
| 擴展性 | 每多一個功能,Node-RED 畫布就要多拉 3 顆節點 | 只需掛載一個 MCP Server,AI 自動學會 10+ 種新工具 |
| 安全邊界 | 依賴腳本邏輯限制 | 透過 MCP Server 啟動參數進行物理沙盒隔離(如限制唯讀目錄) |
💡 架構思維:為什麼不直接用 Exec 節點跑 PowerShell 抓好資料丟給 AI?
「在前面的文章中,直接拉 Exec 節點跑 PowerShell 抓日誌或檔案,再整包丟給 AI,不也能解決問題嗎?」
這兩者背後是「被動餵食」與「主動探勘」的根本代差:
- 多輪自適應探勘(Adaptive Multi-turn):傳統腳本是「單輪定生死」,工程師必須預先猜到 AI 需要什麼。如果 AI 看到目錄後發現某個日誌檔異常龐大、想深入讀取其中前 50 行日誌,傳統流程就斷了(除非 Node-RED 再拉出複雜的迴圈與分支);而 MCP 能讓 AI 在思考鏈中自主發起下一輪工具呼叫。
- Token 精準度與防範幻覺:傳統做法因為怕遺漏,往往把幾百個檔案或數千行日誌「整包倒進 Prompt」,不僅浪費 Token、增加延遲,還容易引發模型注意力分散;MCP 則是按需自取,先讀檔名,有疑慮才讀內容。
- 物理沙盒邊界:PowerShell Exec 具備整台電腦的最高權限;而 MCP Server 可在通訊底層硬性限制存取目錄(例如嚴格限制在
Downloads),即便 AI 嘗試讀取系統敏感路徑也會在底層被物理攔截。
agy mcp 工具伺服器Google agy 內建了完整的 MCP 工具管理指令。我們只需在 Windows 終端機中配置即可:
agy mcp list
我們使用官方開源的 @modelcontextprotocol/server-filesystem,並將存取權限嚴格限制在你的 Downloads 目錄(確保安全性):
# 在 PowerShell 中掛載 Downloads 資料夾工具 (需先確認本機已安裝 Node.js/npx)
agy mcp add filesystem -- npx -y @modelcontextprotocol/server-filesystem "$HOME\Downloads"
🛡️ 安全與路徑防呆提醒:
- 路徑引號必備:若你的 Windows 使用者名稱包含空格(例如
C:\Users\User X),務必確保路徑使用雙引號"$HOME\Downloads"包裹,避免指令參數解析錯誤。- 嚴格沙盒隔離:此命令將 MCP 工具的讀寫邊界強制限制在 Downloads 內,即便 AI 試圖探索父層資料夾或 Windows 核心目錄,也會被底層直接阻擋。
掛載完成後,agy 會自動註冊以下工具:
list_directory:列出指定目錄檔案與子資料夾。read_file:讀取文字或日誌內容。get_file_info:獲取檔案大小、建立日期與最後修改時間。在進入 Node-RED 實作前,我們先透過雙圖綜觀整套自主排查調研流水線的完整運作路徑:

🤖 agy 推理核心大腦 啟動 ReAct 自省迴圈。agy 內建 MCP Client,透過標準 JSON-RPC 雙向協定調用沙盒限定的 Filesystem MCP(list_directory ➔ get_file_info ➔ read_file)。$HOME\Downloads,在系統底層物理阻斷越權存取。
~/DailyReports/ 目錄。結合 Day 14 封裝的專屬積木,調度具備 MCP 能力的 Agent 變得無比精煉:
[發起排查任務 (Inject)]
↓
【步驟 1:建立目標導向 Prompt (Function)】 ➔ 定義目標與邊界,交由 AI 自主探索
↓
【步驟 2:調用專屬 AI 積木 (Subflow)】 ➔ 🤖 agy 推理核心大腦(自主執行多輪 MCP Tool Use)
↓
【步驟 3:解包存檔與原生 Toast 提醒 (Function ➔ Exec)】 ➔ 產出 Markdown 報告並彈窗
自主 Agent 的 Prompt 特點是:只給目標與驗收標準,不指導具體執行步驟:
// Function 節點:建立目標導向 Prompt
const task = `請使用已掛載的 filesystem 工具,自主檢查使用者的 Downloads 目錄。
目標任務:
1. 列出 Downloads 中的所有檔案與目錄。
2. 找出大小超過 100MB 或超過 30 天未修改的大型暫存檔、安裝包 (.iso, .exe, .zip)。
3. 產出一份專業的 Markdown 清理建議報告 (包含檔案名稱、大小、最後修改時間、建議動作與保留/清理理由)。`;
// 直接傳遞給 Day 14 Subflow 積木標準介面
msg.prompt = task;
return msg;
🔑 重點說明:從「指導步驟」轉變為「驗收目標」
過去我們必須先用 PowerShell 列出目錄,再將清單文字丟給 AI。現在我們只需給出高層次驗收目標,agy會在底層自動調用list_directory與get_file_info,並自主進行過濾分析。
🤖 agy 推理核心大腦 Subflow)從左側「AI 模組」將 Day 14 打造的 🤖 agy 推理核心大腦 拖拉至畫布:
💡 原理解析:
agy在接收到 Prompt 時,會自動探測已掛載的 MCP 工具定義,並向 Gemini 發起帶有 Function Declarations 的對話。模型自主完成「呼叫工具 ➔ 取得本機目錄 ➔ 計算大小 ➔ 彙整結論」的完整自省閉環。
當 Agent 完成多輪探索後,我們將其最終彙整的調研報告儲存至 DailyReports/,並彈出 Windows Toast 提示:
// Function 節點:解包報告與存檔 (Setup 注入 os, fs, path)
const report = typeof msg.payload === 'string' ? msg.payload : (msg.payload.response || JSON.stringify(msg.payload));
msg.agentReport = report;
const homedir = os.homedir();
const logDir = path.join(homedir, 'DailyReports');
fs.mkdirSync(logDir, { recursive: true });
const today = new Date().toISOString().slice(0, 10);
const filePath = path.join(logDir, `${today}_Agent_MCP_Audit.md`);
fs.writeFileSync(filePath, report, 'utf-8');
msg.savedPath = filePath;
msg.payload = `powershell -NoProfile -Command "[Windows.UI.Notifications.ToastNotificationManager, Windows.UI.Notifications, ContentType = WindowsRuntime] > $null; $template = [Windows.UI.Notifications.ToastNotificationManager]::GetTemplateContent([Windows.UI.Notifications.ToastTemplateType]::ToastText02); $textNodes = $template.GetElementsByTagName('text'); $textNodes.Item(0).AppendChild($template.CreateTextNode('🤖 MCP Agent 調研完成!')) > $null; $textNodes.Item(1).AppendChild($template.CreateTextNode('清理建議報告已儲存至 DailyReports/')) > $null; [Windows.UI.Notifications.ToastNotificationManager]::CreateToastNotifier('Node-RED MCP 大腦').Show([Windows.UI.Notifications.ToastNotification]::new($template));"`;
return msg;
🔑 重點說明:節點關鍵設定細節
- Function 節點模組注入:此腳本直接調用 Node.js 核心庫寫入報告。若是手動新增節點,請務必在 Function 節點的「設定 (Setup)」分頁中加入
os、fs、path三個模組名稱;若直接匯入文末 Flow 則已自動配妥。- Exec 節點「附加 msg.payload」:後方銜接的 Exec 節點「命令 (Command)」欄位留空,並務必勾選「附加 msg.payload」(JSON 中為
"addpay": "payload"),以正確觸發動態組裝的 PowerShell 原生 Toast 彈窗。
以下是 agy 透過 MCP 檔案工具自主探索 Downloads 目錄後,產出的高品質報告內容:
# 📊 Downloads 下載區空間占用與清理調研報告 (2026-08-23)
### 🎯 總覽摘要
透過 `filesystem` 工具深度掃描 `%USERPROFILE%\Downloads`,共發現 14 個檔案,總占用空間 **3.82 GB**。其中有 3 個超過 30 天未存取的大型安裝包,預估可釋放 **2.95 GB** 空間。
### 🗑️ 建議清理候選清單
| 檔案名稱 | 檔案大小 | 最後修改時間 | 建議動作 | 判定理由 |
| :--- | :---: | :---: | :---: | :--- |
| `Ubuntu-24.04-live-server.iso` | 1.85 GB | 2026-05-12 | **建議刪除** | 距今超過 90 天未修改,系統光碟鏡像安裝後已無需保留 |
| `Docker_Desktop_Installer.exe` | 620 MB | 2026-06-18 | **建議刪除** | 舊版安裝程式,Docker 官方已發布新版,本機已完成安裝 |
| `node-v22.2.0-x64.msi` | 480 MB | 2026-06-20 | **建議封存** | 建議移至 Installers/ 子目錄或刪除暫存安裝檔 |
### 📌 後續處置建議
可搭配明日之「Human-in-the-loop 審批門」,針對上述標記為【建議刪除】之項目發送確認彈窗進行一鍵安全清理。
在 Node-RED 點擊「右上角選單」➔「匯入」即可一鍵部署:
本案例 flow

今天我們突破了單向問答的框架,利用 agy mcp 為本機 AI 掛載了真實的本機檔案操作能力,並透過 Day 14 的 Subflow 樂高積木實現了高擴展性的目標導向自主探索。