<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>LLM on XLabs</title><link>https://www.xlabs.club/tags/llm/</link><description>Recent content in LLM on XLabs</description><generator>Hugo</generator><language>zh-CN</language><copyright>Copyright (c) 2020-2025 XLabs Club</copyright><lastBuildDate>Sun, 02 Aug 2026 11:10:20 +0800</lastBuildDate><atom:link href="https://www.xlabs.club/tags/llm/index.xml" rel="self" type="application/rss+xml"/><item><title>MCP 协议深度解析——AI 工具互联的 USB-C 时刻</title><link>https://www.xlabs.club/blog/mcp-protocol-deep-dive/</link><pubDate>Thu, 09 Jul 2026 23:00:00 +0800</pubDate><guid>https://www.xlabs.club/blog/mcp-protocol-deep-dive/</guid><description>&lt;p&gt;2024 年底，Anthropic 发布了 &lt;strong&gt;MCP（Model Context Protocol）&lt;/strong&gt;——一个让 AI 模型安全、标准化地访问外部工具和数据源的开放协议。用 Anthropic 的话说：&lt;strong&gt;MCP 是 AI 应用的 USB-C 接口&lt;/strong&gt;。&lt;/p&gt;
&lt;p&gt;六个月过去，MCP 已经从 Anthropic 的实验变成了整个 AI 生态的基础设施：OpenAI 发布了自己的 MCP 支持，Google 的 Gemini 接入，微软在 Copilot 生态中推广，开源社区贡献了 500+ MCP Server。&lt;/p&gt;
&lt;p&gt;这篇文章不是翻译官方文档，而是我们从实现 MCP Server 和 Client 的过程中，对协议设计哲学的理解。&lt;/p&gt;
&lt;h2 id="问题function-calling-不够吗"&gt;问题：Function Calling 不够吗？&lt;/h2&gt;
&lt;p&gt;在 MCP 之前，LLM 调用外部工具的标准方式是 &lt;strong&gt;Function Calling&lt;/strong&gt;：&lt;/p&gt;



&lt;div class="expressive-code"&gt;
 &lt;figure class="frame not-content"&gt;
 &lt;figcaption class="header"&gt;
 &lt;span class="title"&gt;&lt;/span&gt;
 &lt;/figcaption&gt;
 &lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-json" data-lang="json"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;// OpenAI 风格 Function Calling
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;tools&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;type&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;function&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;function&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;name&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;search_database&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;description&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;查询用户数据库&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;parameters&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;type&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;object&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;properties&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;query&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nt"&gt;&amp;#34;type&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;string&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;limit&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nt"&gt;&amp;#34;type&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;integer&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;}]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
 &lt;/figure&gt;
&lt;/div&gt;
&lt;p&gt;这个模式的三个致命缺陷：&lt;/p&gt;</description></item><item><title>AI Coding 工具横评——Aider vs Continue vs Cline 谁更适合你</title><link>https://www.xlabs.club/blog/ai-coding-tools-comparison/</link><pubDate>Thu, 09 Jul 2026 22:00:00 +0800</pubDate><guid>https://www.xlabs.club/blog/ai-coding-tools-comparison/</guid><description>&lt;p&gt;2026 年的 AI Coding 工具已经不再是「玩具」或「自动补全」那么简单。Aider、Continue、Cline 代表了三种不同的设计哲学：&lt;strong&gt;终端原生的结对编程&lt;/strong&gt;、&lt;strong&gt;IDE 内嵌的上下文感知&lt;/strong&gt;、&lt;strong&gt;VS Code 插件的 Agent 自动化&lt;/strong&gt;。&lt;/p&gt;
&lt;p&gt;本文从 12 个维度对比这三款工具，帮你选型——不是看谁功能多，是看谁的设计哲学契合你的工作流。&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;更多 AI 基础设施工具参见 &lt;a href="https://github.com/xlabs-club/awesome-x-ops#ai--inference" target="_blank" rel="noopener"&gt;awesome-x-ops AI 分类&lt;/a&gt;
。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id="一句话定位"&gt;一句话定位&lt;/h2&gt;
&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;工具&lt;/th&gt;
					&lt;th&gt;定位&lt;/th&gt;
					&lt;th&gt;核心哲学&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;Aider&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;终端原生 AI 结对编程&lt;/td&gt;
					&lt;td&gt;&amp;ldquo;AI 是你的 Pair，Git 是真相来源&amp;rdquo;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;Continue&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;IDE 内嵌 AI 助手&lt;/td&gt;
					&lt;td&gt;&amp;ldquo;AI 应该像 Tab 补全一样自然，不打断心流&amp;rdquo;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;Cline&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;VS Code AI Agent&lt;/td&gt;
					&lt;td&gt;&amp;ldquo;AI 应该能自己读代码、写代码、执行命令&amp;rdquo;&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="维度-1工作流适配"&gt;维度 1：工作流适配&lt;/h2&gt;
&lt;h3 id="aider终端原生"&gt;Aider：终端原生&lt;/h3&gt;
&lt;p&gt;Aider 在终端运行，和 Git 深度集成。你不需要离开终端——&lt;code&gt;aider&lt;/code&gt; 启动，AI 自动理解 Git 仓库的上下文。&lt;/p&gt;



&lt;div class="expressive-code"&gt;
 &lt;figure class="frame not-content"&gt;
 &lt;figcaption class="header"&gt;
 &lt;span class="title"&gt;&lt;/span&gt;
 &lt;/figcaption&gt;
 &lt;pre tabindex="0"&gt;&lt;code&gt;$ aider
Aider v0.75.0
Models: claude-sonnet-4-5 with diff edit format
Git repo: .git with 1,234 files
Repo map: using 1024 tokens
──────────────────────────────────────────
&amp;gt; 把这个函数的错误处理改成 Result 类型

# AI 直接在终端中输出 diff，你可以 /add、/drop、/undo&lt;/code&gt;&lt;/pre&gt;
 &lt;/figure&gt;
&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;适合&lt;/strong&gt;：Vim/Neovim/终端重度用户、Git 工作流驱动的开发。&lt;/p&gt;</description></item></channel></rss>