<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>CLI on KnightLi的博客</title>
        <link>https://www.knightli.com/zh-tw/tags/cli/</link>
        <description>Recent content in CLI on KnightLi的博客</description>
        <generator>Hugo -- gohugo.io</generator>
        <language>zh-tw</language>
        <lastBuildDate>Fri, 10 Apr 2026 21:55:12 +0800</lastBuildDate><atom:link href="https://www.knightli.com/zh-tw/tags/cli/index.xml" rel="self" type="application/rss+xml" /><item>
        <title>該放棄 MCP 嗎？為什麼 CLI 正在成為 Agent 的預設工具層</title>
        <link>https://www.knightli.com/zh-tw/2026/04/10/mcp-vs-cli-for-agents/</link>
        <pubDate>Fri, 10 Apr 2026 21:55:12 +0800</pubDate>
        
        <guid>https://www.knightli.com/zh-tw/2026/04/10/mcp-vs-cli-for-agents/</guid>
        <description>&lt;p&gt;過去一年，關於 Agent 工具鏈的爭論越來越集中在一個問題上：&lt;/p&gt;
&lt;p&gt;MCP（Model Context Protocol）是讓工具調用更簡單，還是把原本簡單的事情變複雜？&lt;/p&gt;
&lt;p&gt;在大多數日常開發任務中，CLI 正在成為更實用的預設方案。&lt;/p&gt;
&lt;h2 id=&#34;成本差異不是體驗問題而是數量級問題&#34;&gt;成本差異不是「體驗問題」，而是數量級問題
&lt;/h2&gt;&lt;p&gt;MCP 最大的現實壓力是 token 開銷。&lt;/p&gt;
&lt;p&gt;在常見場景裡，MCP 在真正執行任務前，往往需要先載入大量工具 schema。以 GitHub MCP Server 為例，初始化就可能消耗數萬 tokens。對長任務而言，這會直接擠壓上下文預算。&lt;/p&gt;
&lt;p&gt;社群基準測試也反覆指向同一個結論：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;MCP 單次調用成本常見是 CLI 的數倍到數十倍&lt;/li&gt;
&lt;li&gt;失敗重試成本也更高（要重建連線、重新載入上下文）&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;這不是「慢一點」的差距，而是會放大成 API 成本、延遲與穩定性問題。&lt;/p&gt;
&lt;h2 id=&#34;為什麼模型天然更會用-cli&#34;&gt;為什麼模型天然更「會用 CLI」
&lt;/h2&gt;&lt;p&gt;一個常被忽略的事實是訓練分布。&lt;/p&gt;
&lt;p&gt;LLM 在訓練中看過海量終端文本：命令、輸出、報錯、腳本、man page。也就是說，CLI 互動模式本來就接近模型的「母語輸入」。&lt;/p&gt;
&lt;p&gt;相對地，MCP 的 JSON-RPC 與 tool schema 是近兩年才大規模出現的新範式。模型當然能學會，但熟悉度與壓縮效率通常仍不如 CLI 這類歷史語料。&lt;/p&gt;
&lt;p&gt;這也解釋了為什麼很多時候：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;同樣目標，CLI 指令更短&lt;/li&gt;
&lt;li&gt;輸出更適合直接持續推理&lt;/li&gt;
&lt;li&gt;錯誤恢復路徑更穩定&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;安全與隔離mcp-還有補課空間&#34;&gt;安全與隔離：MCP 還有補課空間
&lt;/h2&gt;&lt;p&gt;MCP 不是不能做安全，而是生態還在早期。&lt;/p&gt;
&lt;p&gt;當前常見擔憂包括：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;工具描述投毒（Tool Poisoning）&lt;/li&gt;
&lt;li&gt;服務行為漂移（Rug Pull）&lt;/li&gt;
&lt;li&gt;同名工具覆蓋（Shadowing）&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;CLI 當然也有安全問題（注入、越權、路徑風險），但它的進程模型、權限邊界、審計鏈路已經過數十年工程實踐驗證。對生產環境而言，這種「可預期性」很重要。&lt;/p&gt;
&lt;h2 id=&#34;這不等於-mcp-沒價值&#34;&gt;這不等於 MCP 沒價值
&lt;/h2&gt;&lt;p&gt;我不認為 MCP 應該被拋棄。&lt;/p&gt;
&lt;p&gt;更合理的定位是：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;CLI 負責執行層（本地、低延遲、高頻調用）&lt;/li&gt;
&lt;li&gt;MCP 負責連接層（遠端服務發現、統一認證、審計與多租戶）&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;也就是常說的混合架構：&lt;code&gt;CLI + MCP Gateway&lt;/code&gt;。&lt;/p&gt;
&lt;p&gt;在需要對接大量遠端系統、做統一權限治理與合規審計時，MCP 仍然有明顯價值；但在「讓 Agent 快速完成開發任務」這件事上，CLI-first 往往更符合當前模型能力邊界。&lt;/p&gt;
&lt;p&gt;在今天的工程現實裡，CLI 更像 Agent 的工作母語；MCP 更適合作為連接協議，而不是唯一執行協議。&lt;/p&gt;
</description>
        </item>
        
    </channel>
</rss>
