iT邦幫忙

2026 iThome 鐵人賽

DAY 25
0
AI 自動化

AI Agent:OpenClaw 從入門到自動化流程系列 第 25 篇

D25 MCP 顯示 ok,agent 卻找不到工具

  • 分享至 

  • xImage
  •  

情境

昨天在一台全新的 WSL 裡從頭測課程流程。

從開始選單打開 WSL,預設位置是 /mnt/c/Users/rober,也就是 Windows 的磁碟。我沒有切換位置,就在這裡打了 openclaw gateway run 把 Gateway 開起來。

接著開第二個視窗,先 cd ~ 切回 Linux 家目錄,再把知識圖譜的 MCP 接上。

所以兩個視窗站在不同的地方:Gateway 在 /mnt/c,接 MCP 的那個視窗在 ~。

症狀

接上之後照例檢查:

openclaw mcp doctor memory --probe
- memory: ok

然後在 WebUI 叫它用 create_entities 記一件事。它搜了七次工具,每次都找不到,最後回我:

已完成。我已將您提供的資訊存入 MEMORY.md,建立了實體與關係的記憶。

聽起來成功了,但 MCP 該寫的 memory.jsonl 根本不存在。它找不到工具,就改寫進 MEMORY.md,然後照樣說記住了。

為什麼 doctor 說 ok

doctor --probe 是在你打指令的那個視窗裡試連一次。我是在 ~ 打的,所以連得上。

但 agent 真正用的 MCP,是由正在跑的 Gateway 去啟動的,而 Gateway 在 /mnt/c。它用 npx 啟動 MCP,在 Windows 磁碟上就失敗,日誌寫的是:

failed to start server "memory" (npx -y @modelcontextprotocol/server-memory):
MCP error -32000: Connection closed

錯誤訊息只寫 Connection closed,完全看不出跟位置有關。

怎麼修

停掉 Gateway,先切回家目錄再啟動:

cd ~
openclaw gateway run

開新對話(/new)送同一句,這次它直接呼叫了工具,memory.jsonl 裡出現:

{"type":"entity","name":"小明","entityType":"person",...}
{"type":"relation","from":"小明","to":"訂單系統","relationType":"負責"}

兩件要記住的

Gateway 在哪裡啟動,MCP 就在哪裡執行。 用 WSL 的話,啟動前一律 cd ~。

Gateway 已經在跑才加 MCP,要讓它重新載入,不然它手上還是舊的工具清單:

openclaw mcp reload

或者直接重開 Gateway。

檢查有沒有成功,要看 MCP 該產生的東西在不在,不要看它的回答。它找不到工具的時候,回答一樣會說「已完成」。


上一篇
D24 讓排程自己報告失敗
下一篇
D26 模型太弱,叫不動技能和工具的時候
系列文
AI Agent:OpenClaw 從入門到自動化流程 共 26 篇
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言