<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Metal on YennJ12 Engineering Blog</title><link>https://yennj12.js.org/yennj12_blog_V4/tags/metal/</link><description>Recent content in Metal on YennJ12 Engineering Blog</description><generator>Hugo -- gohugo.io</generator><language>en-us</language><lastBuildDate>Sun, 19 Jul 2026 09:00:00 +0800</lastBuildDate><atom:link href="https://yennj12.js.org/yennj12_blog_V4/tags/metal/feed.xml" rel="self" type="application/rss+xml"/><item><title>ollama on mac - part 5 - 工具呼叫、多模型服務與進階實踐</title><link>https://yennj12.js.org/yennj12_blog_V4/posts/ollama-on-mac-part5-advanced-zh/</link><pubDate>Sun, 19 Jul 2026 09:00:00 +0800</pubDate><guid>https://yennj12.js.org/yennj12_blog_V4/posts/ollama-on-mac-part5-advanced-zh/</guid><description>大多數人裝完 Ollama，跑幾句 ollama run llama3，覺得「喔，本地也能聊天」，就把它當成離線玩具。 少數人會把它接進 App、串 API，當成一個省錢的雲端替代品。 但真正把 Ollama 用透的人，會把它當成一個能跑 agent、能看圖、能推理、能上生產的本地 LLM 平台。 這篇是全系列的最後一塊拼圖：把前四篇的能力組合起來，蓋出真正能用的東西。
一、從「會跑模型」到「用模型蓋東西」 前面四篇，我們一路走過：
Part 1：把 Ollama 裝起來，跑出第一個本地模型。 Part 2：認識公開模型生態，學會依任務與硬體選型（量化、參數量）。 Part 3：用 REST API 與自訂 Modelfile 把模型變成可程式化的服務。 Part 4：把 Ollama 接進真實應用（chatbot、RAG、streaming）。 到這裡，你已經會「呼叫模型」了。但呼叫模型只是起點。真正有價值的系統，是讓模型能：
主動使用工具（查天氣、查資料庫、算數）——這是 agent 的核心。 看得懂圖片（截圖、發票、手寫）——多模態。 會多步推理（數學、規劃、除錯）——reasoning 模型。 跑得夠快、記憶體不爆——效能調校。 同時服務多個模型與請求——並行架構。 安全地被遠端存取——這一點做錯會出大事。 穩定地待在生產環境——監控、版本、磁碟、log。 本篇就把這七件事一次講清楚。這是全系列最長、最「工程」的一篇，建議搭配一台 Apple Silicon 的 Mac 邊讀邊試。
核心心態轉換：前四篇你是「模型的使用者」；這一篇開始，你是「本地 LLM 系統的架構師」。
二、工具呼叫 / Function Calling：讓模型會用工具 2.1 最重要的觀念：模型不執行工具 新手最大的誤解，是以為「function calling」代表模型會自己去查天氣、自己去跑資料庫。不是。
模型能做的只有一件事：根據對話，決定「現在應該呼叫哪個工具、帶什麼參數」，然後把這個決定用結構化 JSON 吐出來。 真正去執行工具的是你的程式。執行完，你再把結果餵回去，模型才根據結果產生最終回答。
┌──────────────────────────────────────────────────────────────┐ │ Tool Calling 迴圈 │ └──────────────────────────────────────────────────────────────┘ 使用者問題 │ ▼ ┌─────────┐ 「我需要 get_temperature(&amp;#39;台北&amp;#39;)」 │ Model │──────────────────────────────┐ └─────────┘ ▼ ▲ ┌──────────────────┐ │ │ 你的程式 │ │ role:&amp;#34;tool&amp;#34; 把結果餵回 │ 真正執行工具 │ │ content:&amp;#34;30°C&amp;#34; │ (查 API/DB/算數) │ └──────────────────────────└──────────────────┘ │ ▼ ┌─────────┐ │ Model │──▶ 「台北目前 30°C，比東京的 18°C 高。」 └─────────┘ (沒有再要求工具 → 迴圈結束) 關鍵：模型不執行、不上網、不碰你的資料庫。它只負責「決策」，執行權永遠在你手上——這也正是安全性的來源。</description></item></channel></rss>