<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>AIOps on 最后的DBA</title><link>https://lastdba.com/categories/aiops/</link><description>Recent content in AIOps on 最后的DBA</description><generator>Hugo -- gohugo.io</generator><language>zh-CN</language><copyright>© 2026 liuzhilong62</copyright><lastBuildDate>Wed, 27 May 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://lastdba.com/categories/aiops/index.xml" rel="self" type="application/rss+xml"/><item><title>当 PostgreSQL 成为 AI 的双手——Bruce Momjian 的 MCP Server 实战</title><link>https://lastdba.com/2026/05/27/%E5%BD%93-postgresql-%E6%88%90%E4%B8%BA-ai-%E7%9A%84%E5%8F%8C%E6%89%8Bbruce-momjian-%E7%9A%84-mcp-server-%E5%AE%9E%E6%88%98/</link><pubDate>Wed, 27 May 2026 00:00:00 +0000</pubDate><guid>https://lastdba.com/2026/05/27/%E5%BD%93-postgresql-%E6%88%90%E4%B8%BA-ai-%E7%9A%84%E5%8F%8C%E6%89%8Bbruce-momjian-%E7%9A%84-mcp-server-%E5%AE%9E%E6%88%98/</guid><description>&lt;blockquote&gt;&lt;p&gt;原文：&lt;a href="https://momjian.us/main/writings/pgsql/mcp.pdf" target="_blank" rel="noreferrer"&gt;Building an MCP Server Using Postgres&lt;/a&gt;，Bruce Momjian，PGDay Armenia 2026，CC BY 4.0。&lt;/p&gt;
&lt;/blockquote&gt;&lt;blockquote&gt;&lt;p&gt;本文AI率80%&lt;/p&gt;
&lt;/blockquote&gt;&lt;p&gt;Bruce Momjian（PG core team，写了 20 多年发行注记的那位）最近在 PGDay Armenia 2026 做了一个演讲：&lt;a href="https://momjian.us/main/writings/pgsql/mcp.pdf" target="_blank" rel="noreferrer"&gt;Building an MCP Server Using Postgres&lt;/a&gt;。70 页幻灯片，信息密度极高。有理论，有实践，是一个不错的借鉴。&lt;/p&gt;</description><content:encoded>&lt;blockquote&gt;&lt;p&gt;原文：&lt;a href="https://momjian.us/main/writings/pgsql/mcp.pdf" target="_blank" rel="noreferrer"&gt;Building an MCP Server Using Postgres&lt;/a&gt;，Bruce Momjian，PGDay Armenia 2026，CC BY 4.0。&lt;/p&gt;
&lt;/blockquote&gt;&lt;blockquote&gt;&lt;p&gt;本文AI率80%&lt;/p&gt;
&lt;/blockquote&gt;&lt;p&gt;Bruce Momjian（PG core team，写了 20 多年发行注记的那位）最近在 PGDay Armenia 2026 做了一个演讲：&lt;a href="https://momjian.us/main/writings/pgsql/mcp.pdf" target="_blank" rel="noreferrer"&gt;Building an MCP Server Using Postgres&lt;/a&gt;。70 页幻灯片，信息密度极高。有理论，有实践，是一个不错的借鉴。&lt;/p&gt;
&lt;p&gt;直接读是比较费劲的，哪怕是直接让AI解读一下估计也不知道说的是什么，我也是看了一会问了几个问题后才算看明白了。&lt;/p&gt;
&lt;p&gt;这 70 页可以清晰地切成两层——前半部分是理论教学，后半部分是实战 demo。两层之间，关系不大。&lt;/p&gt;
&lt;hr&gt;

&lt;h1 class="relative group"&gt;理论层：用 Transformer 解释 RAG → MCP 的演进（Slide 1-33）
 &lt;div id="理论层用-transformer-解释-rag--mcp-的演进slide-1-33" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e7%90%86%e8%ae%ba%e5%b1%82%e7%94%a8-transformer-%e8%a7%a3%e9%87%8a-rag--mcp-%e7%9a%84%e6%bc%94%e8%bf%9bslide-1-33" aria-label="锚点"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h1&gt;
&lt;p&gt;理论层占了近一半篇幅，从 LLM 基本原理讲到 MCP 的工作方式。Outline 很清楚：&lt;/p&gt;
&lt;p&gt;


&lt;img src="https://lastdba.com/img/mcp/outline.png" alt="演讲大纲：Generative AI → LLM 局限 → RAG → MCP → MCP Server 实战" /&gt;&lt;/p&gt;

&lt;h2 class="relative group"&gt;RAG vs MCP：一句话说清
 &lt;div id="rag-vs-mcp一句话说清" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#rag-vs-mcp%e4%b8%80%e5%8f%a5%e8%af%9d%e8%af%b4%e6%b8%85" aria-label="锚点"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;p&gt;RAG 的流程大家都熟了：程序员决定查什么数据 → 检索结果拼到 system prompt → LLM 读完后生成回答。&lt;strong&gt;预编排&lt;/strong&gt;——LLM 能看到什么，在用户提问之前就定好了。&lt;/p&gt;
&lt;p&gt;MCP 不一样。工具描述注册给 LLM，LLM 在生成过程中&lt;strong&gt;自己判断&lt;/strong&gt;要不要调工具、调哪个。&lt;strong&gt;动态决策&lt;/strong&gt;——程序员只负责暴露工具，LLM 负责编排。&lt;/p&gt;
&lt;p&gt;Bruce 用一句话总结：&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;RAG 只能做程序员预设的事。MCP 可以根据输出质量动态调整，可以迭代调用多个工具，还可以触发外部任务。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 class="relative group"&gt;&amp;ldquo;是词还是 MCP&amp;rdquo;——那套向量嵌入图解
 &lt;div id="是词还是-mcp那套向量嵌入图解" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e6%98%af%e8%af%8d%e8%bf%98%e6%98%af-mcp%e9%82%a3%e5%a5%97%e5%90%91%e9%87%8f%e5%b5%8c%e5%85%a5%e5%9b%be%e8%a7%a3" aria-label="锚点"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;p&gt;Slide 18-33 是理论层最核心的部分。Bruce 画了一套详细的 Transformer 内部流程图：&lt;/p&gt;
&lt;p&gt;


&lt;img src="https://lastdba.com/img/mcp/mcp-servers.png" alt="MCP Server 作为 Tool Embedding Vectors 注册到向量空间" /&gt;&lt;/p&gt;
&lt;p&gt;他的逻辑是：把每个 MCP tool 的描述文本（比如 &amp;ldquo;Return the radiation level (CPM) at 13 Roberts Road&amp;hellip;&amp;quot;）用文本嵌入模型向量化，塞进 attention 层的向量空间里。然后在每一步推理时，output vector 去匹配最近似的向量——&lt;/p&gt;
&lt;p&gt;


&lt;img src="https://lastdba.com/img/mcp/word-or-mcp.png" alt="最近似向量可能是文本 token，也可能是 MCP tool" /&gt;&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;&amp;ldquo;The closest vector might be a word or an MCP.&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 class="relative group"&gt;这个模型对吗？
 &lt;div id="这个模型对吗" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e8%bf%99%e4%b8%aa%e6%a8%a1%e5%9e%8b%e5%af%b9%e5%90%97" aria-label="锚点"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;p&gt;这是我最疑惑的地方，以下是我的浅见。&lt;/p&gt;
&lt;p&gt;Bruce 这 15 页 slides 画得很好看，但如果当工程实现去理解，是有问题的：&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;① MCP tool 不需要&amp;quot;嵌入&amp;rdquo;。&lt;/strong&gt; 实际工程中，tool 定义是作为文本直接写在 system prompt 里的。LLM 读到 &amp;ldquo;你有这些工具：geiger()、get_pretzel_inventory()&amp;hellip;&amp;quot;，靠语义理解决定什么时候调。不需要把 tool 描述算成向量，不需要和词向量做余弦距离比较。Bruce 这套教学模型的本质是把&amp;quot;LLM 决策&amp;quot;解释成&amp;quot;向量最近似匹配&amp;rdquo;，这更像 retrieval 的范式而不是 generation 的范式。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;② Attention 不产出&amp;quot;查最近似&amp;quot;的操作。&lt;/strong&gt; &lt;code&gt;output = Σ(softmax(Q·K) × V)&lt;/code&gt;，产出的是一个加权混合后的上下文向量。没有&amp;quot;在词向量表和 tool 向量表里二选一&amp;quot;这一步。LLM 选工具的实际机制是 attention 产出 hidden state → LM head → softmax over 词表 → 输出 tool call JSON。从来没有在&amp;quot;词和 tool 之间二选一&amp;quot;，只有在整个词表上做 softmax。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;③ system prompt 和 user prompt 在 attention 里没有边界。&lt;/strong&gt; Token 序列就是 token 序列，attention block 对所有 token 一视同仁做 Q·K 点积。不存在&amp;quot;system 区&amp;quot;和&amp;quot;user 区&amp;quot;。&lt;/p&gt;
&lt;p&gt;所以这 33 页理论层，可以看作 Bruce 给非 AI 背景的 DBA 做的一个教学简化模型——好看、好懂，但别当架构图用。MCP 真正革命性的地方在&lt;strong&gt;协议标准化&lt;/strong&gt;（统一的 tool 注册/发现/调用规范），不在向量化的 trick。&lt;/p&gt;
&lt;hr&gt;

&lt;h1 class="relative group"&gt;实践层：两个能跑的 demo（Slide 34-69）
 &lt;div id="实践层两个能跑的-demoslide-34-69" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e5%ae%9e%e8%b7%b5%e5%b1%82%e4%b8%a4%e4%b8%aa%e8%83%bd%e8%b7%91%e7%9a%84-demoslide-34-69" aria-label="锚点"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h1&gt;
&lt;p&gt;从 Slide 34 开始，风格突变——全是代码、终端输出、硬件照片。理论层那套 Transformer 向量模型完全消失了，取而代之的是 &lt;code&gt;curl&lt;/code&gt;、&lt;code&gt;psql&lt;/code&gt;、Perl 脚本。&lt;/p&gt;
&lt;p&gt;两层之间的唯一联系是&amp;quot;它们都在讲 MCP&amp;quot;，但理论层画的向量匹配机制和实战中的实现方式几乎是两套逻辑。 这可能正是 Bruce 演讲的张力所在——理论层让你理解 MCP 为什么比 RAG 强，实践层告诉你现在怎么落地。&lt;/p&gt;

&lt;h2 class="relative group"&gt;Demo 1：让 ChatGPT 读取真实世界的盖革计数器
 &lt;div id="demo-1让-chatgpt-读取真实世界的盖革计数器" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#demo-1%e8%ae%a9-chatgpt-%e8%af%bb%e5%8f%96%e7%9c%9f%e5%ae%9e%e4%b8%96%e7%95%8c%e7%9a%84%e7%9b%96%e9%9d%a9%e8%ae%a1%e6%95%b0%e5%99%a8" aria-label="锚点"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;p&gt;Bruce 在自家院子里架了一台 GQ GMC-800 盖革计数器（测辐射的），USB 接树莓派，每 15 分钟测一次环境辐射。先看 ChatGPT 用 MCP 调用真实数据的效果：&lt;/p&gt;
&lt;p&gt;


&lt;img src="https://lastdba.com/img/mcp/chatgpt-weather.png" alt="ChatGPT 通过 MCP 查询天气" /&gt;&lt;/p&gt;
&lt;p&gt;MCP 可以调用外部工具获取实时数据——这是 RAG 做不到的。&lt;/p&gt;
&lt;p&gt;接上硬件：&lt;/p&gt;
&lt;p&gt;


&lt;img src="https://lastdba.com/img/mcp/geiger-counter.png" alt="GQ GMC-800 盖革计数器" /&gt;&lt;/p&gt;
&lt;p&gt;用 &lt;strong&gt;fastmcp&lt;/strong&gt; 写了 Python wrapper：&lt;/p&gt;
&lt;div class="highlight-wrapper"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f92672"&gt;from&lt;/span&gt; fastmcp &lt;span style="color:#f92672"&gt;import&lt;/span&gt; FastMCP
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;mcp &lt;span style="color:#f92672"&gt;=&lt;/span&gt; FastMCP(&lt;span style="color:#e6db74"&gt;&amp;#34;Geiger counter MCP server&amp;#34;&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#a6e22e"&gt;@mcp.tool&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#66d9ef"&gt;def&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;geiger&lt;/span&gt;() &lt;span style="color:#f92672"&gt;-&amp;gt;&lt;/span&gt; int:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#e6db74"&gt;&amp;#34;&amp;#34;&amp;#34;Return the radiation level (CPM) at 13 Roberts Road, Newtown Square, PA, USA&amp;#34;&amp;#34;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;return&lt;/span&gt; subprocess&lt;span style="color:#f92672"&gt;.&lt;/span&gt;check_output(
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#e6db74"&gt;&amp;#34;/var/lib/postgresql/tmp/geiger&amp;#34;&lt;/span&gt;, shell&lt;span style="color:#f92672"&gt;=&lt;/span&gt;&lt;span style="color:#66d9ef"&gt;True&lt;/span&gt;, text&lt;span style="color:#f92672"&gt;=&lt;/span&gt;&lt;span style="color:#66d9ef"&gt;True&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; )&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;底层是一个 Perl 脚本，往串口发 &lt;code&gt;&amp;lt;GETCPM&amp;gt;&amp;gt;&lt;/code&gt; 指令，读回 4 字节 CPM 值。Apache 做 443 端口反代（OpenAI 只跟 443 通信），注册到 ChatGPT 后：&lt;/p&gt;
&lt;div class="highlight-wrapper"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;User: 13 Roberts Road 的辐射水平是多少？
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;GPT: 我没有这个位置的公开数据……
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;User: 用我的 custom app
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;GPT: [调用 geiger tool] → 14 CPM。正常环境背景辐射（5-25 CPM）。
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;User: 测五次，给我平均值
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;GPT: [调用 ×5] 15 16 13 15 15 → 平均 14.8 CPM&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;两个关键行为：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;LLM 可以迭代调工具做计算&lt;/strong&gt;——RAG 是一次性塞数据，MCP 是&amp;quot;调 → 拿结果 → 判断 → 再调 → 算&amp;quot;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;用户必须显式授权&lt;/strong&gt;——第一次问的时候 ChatGPT 没说&amp;quot;我有你的盖革计数器数据&amp;quot;，直到说 &amp;ldquo;use my custom app&amp;rdquo; 才触发 tool call。安全模型很保守&lt;/li&gt;
&lt;/ol&gt;

&lt;h2 class="relative group"&gt;Demo 2：用 PG 做椒盐卷饼店的库存系统
 &lt;div id="demo-2用-pg-做椒盐卷饼店的库存系统" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#demo-2%e7%94%a8-pg-%e5%81%9a%e6%a4%92%e7%9b%90%e5%8d%b7%e9%a5%bc%e5%ba%97%e7%9a%84%e5%ba%93%e5%ad%98%e7%b3%bb%e7%bb%9f" aria-label="锚点"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;p&gt;从硬件回到软件。建一个椒盐卷饼（pretzel）库存库：&lt;/p&gt;
&lt;div class="highlight-wrapper"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-sql" data-lang="sql"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#66d9ef"&gt;CREATE&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;TABLE&lt;/span&gt; pretzel (
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; quantity INTEGER &lt;span style="color:#66d9ef"&gt;CHECK&lt;/span&gt; (quantity &lt;span style="color:#f92672"&gt;&amp;gt;=&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;0&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#66d9ef"&gt;INSERT&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;INTO&lt;/span&gt; pretzel &lt;span style="color:#66d9ef"&gt;VALUES&lt;/span&gt; (&lt;span style="color:#ae81ff"&gt;0&lt;/span&gt;); &lt;span style="color:#75715e"&gt;-- 初始库存 0&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;MCP tool 直接用 &lt;code&gt;psql&lt;/code&gt; 操作 PG：&lt;/p&gt;
&lt;div class="highlight-wrapper"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#a6e22e"&gt;@mcp.tool&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#66d9ef"&gt;def&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;get_pretzel_inventory&lt;/span&gt;() &lt;span style="color:#f92672"&gt;-&amp;gt;&lt;/span&gt; int:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#e6db74"&gt;&amp;#34;&amp;#34;&amp;#34;Return the number of unsold pretzels&amp;#34;&amp;#34;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;return&lt;/span&gt; subprocess&lt;span style="color:#f92672"&gt;.&lt;/span&gt;check_output(
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#e6db74"&gt;&amp;#34;psql --tuples-only -c &amp;#39;SELECT quantity FROM pretzel;&amp;#39; -d mcp&amp;#34;&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; shell&lt;span style="color:#f92672"&gt;=&lt;/span&gt;&lt;span style="color:#66d9ef"&gt;True&lt;/span&gt;, text&lt;span style="color:#f92672"&gt;=&lt;/span&gt;&lt;span style="color:#66d9ef"&gt;True&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; )
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#a6e22e"&gt;@mcp.tool&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#66d9ef"&gt;def&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;sold_one_pretzel&lt;/span&gt;() &lt;span style="color:#f92672"&gt;-&amp;gt;&lt;/span&gt; str:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#e6db74"&gt;&amp;#34;&amp;#34;&amp;#34;Call this when a pretzel is sold; reduces inventory by one&amp;#34;&amp;#34;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;return&lt;/span&gt; subprocess&lt;span style="color:#f92672"&gt;.&lt;/span&gt;check_output(
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#e6db74"&gt;&amp;#34;psql --tuples-only -c &amp;#39;UPDATE pretzel SET quantity = quantity - 1;&amp;#39; -d mcp&amp;#34;&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; shell&lt;span style="color:#f92672"&gt;=&lt;/span&gt;&lt;span style="color:#66d9ef"&gt;True&lt;/span&gt;, text&lt;span style="color:#f92672"&gt;=&lt;/span&gt;&lt;span style="color:#66d9ef"&gt;True&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; )
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#a6e22e"&gt;@mcp.tool&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#66d9ef"&gt;def&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;baked_6_pretzels&lt;/span&gt;() &lt;span style="color:#f92672"&gt;-&amp;gt;&lt;/span&gt; str:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#e6db74"&gt;&amp;#34;&amp;#34;&amp;#34;Call this when a tray of 6 pretzels is baked; increases inventory&amp;#34;&amp;#34;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;return&lt;/span&gt; subprocess&lt;span style="color:#f92672"&gt;.&lt;/span&gt;check_output(
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#e6db74"&gt;&amp;#34;psql --tuples-only -c &amp;#39;UPDATE pretzel SET quantity = quantity + 6;&amp;#39; -d mcp&amp;#34;&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; shell&lt;span style="color:#f92672"&gt;=&lt;/span&gt;&lt;span style="color:#66d9ef"&gt;True&lt;/span&gt;, text&lt;span style="color:#f92672"&gt;=&lt;/span&gt;&lt;span style="color:#66d9ef"&gt;True&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; )&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;交互流程：&lt;/p&gt;
&lt;div class="highlight-wrapper"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;User: How many pretzels available?
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;GPT: 0 pretzels.
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;User: I just baked a tray → 6 pretzels
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;User: I sold two → 4 remaining
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;User: I sold four → 0 remaining
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;User: I sold one pretzel → ERROR! CHECK constraint 阻止了 quantity 变负数&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;LLM 不直接写 SQL，而是调你预先定义的受控接口。PG 的 CHECK 约束天然构成了一个安全兜底——即使 LLM 被诱导调了不该调的函数，数据库层的约束还能挡一道。&lt;/p&gt;
&lt;p&gt;但也暴露了问题：LLM 忠实执行了 &lt;code&gt;sold_one_pretzel&lt;/code&gt;，但不会预判&amp;quot;库存已经是 0 了调了会报错&amp;quot;。&lt;strong&gt;MCP 是执行层，不是推理层。&lt;/strong&gt;&lt;/p&gt;
&lt;hr&gt;

&lt;h1 class="relative group"&gt;生产还差多远
 &lt;div id="生产还差多远" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e7%94%9f%e4%ba%a7%e8%bf%98%e5%b7%ae%e5%a4%9a%e8%bf%9c" aria-label="锚点"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h1&gt;
&lt;p&gt;Bruce 在最后一页坦承了当前实现的局限：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;没有认证&lt;/strong&gt;——谁都可以调你的 MCP Server&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;没有参数化&lt;/strong&gt;——三个 tool 都是无参函数，现实中的 tool 需要传参数&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;动态 SQL 没做安全限制&lt;/strong&gt;——工具描述声明了语义，但 LLM 可能被注入恶意内容&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;连接池、事务管理、频率限制&lt;/strong&gt;——一概没考虑&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;两篇值得读的实践经验：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.pgedge.com/blog/lessons-learned-writing-an-mcp-server-for-postgresql" target="_blank" rel="noreferrer"&gt;pgedge.com: Lessons Learned Writing an MCP Server for PostgreSQL&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://cardinalops.com/blog/mcp-defaults-hidden-dangers-of-remote-deployment/" target="_blank" rel="noreferrer"&gt;CardinalOps: MCP Defaults — Hidden Dangers of Remote Deployment&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;

&lt;h1 class="relative group"&gt;两层之间
 &lt;div id="两层之间" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e4%b8%a4%e5%b1%82%e4%b9%8b%e9%97%b4" aria-label="锚点"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h1&gt;
&lt;p&gt;回头看这 70 页幻灯片，最有趣的不是任何一个 demo，而是MCP的理论思路和动手说明MCP能做什么：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;理论层用 Transformer 向量空间解释&amp;quot;LLM 如何在词和工具之间做选择&amp;quot;——这是教学模型&lt;/li&gt;
&lt;li&gt;实践层用 &lt;code&gt;psql&lt;/code&gt;、&lt;code&gt;curl&lt;/code&gt;、Perl 脚本去落地——这是工程实现&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;而真正的 MCP 机制——tool 定义当文本塞 system prompt、LLM 靠语义理解决定调哪个、输出 tool call JSON——应该是不需要理论层那套向量嵌入模型。两层之间，Bruce 没有画出来连接线。这可能不是 bug，是 feature。&lt;/p&gt;</content:encoded></item><item><title>AI时代下的DBA、写作、学习和未来</title><link>https://lastdba.com/2026/01/21/ai%E6%97%B6%E4%BB%A3%E4%B8%8B%E7%9A%84dba%E5%86%99%E4%BD%9C%E5%AD%A6%E4%B9%A0%E5%92%8C%E6%9C%AA%E6%9D%A5/</link><pubDate>Wed, 21 Jan 2026 00:00:00 +0000</pubDate><guid>https://lastdba.com/2026/01/21/ai%E6%97%B6%E4%BB%A3%E4%B8%8B%E7%9A%84dba%E5%86%99%E4%BD%9C%E5%AD%A6%E4%B9%A0%E5%92%8C%E6%9C%AA%E6%9D%A5/</guid><description>&lt;blockquote&gt;&lt;p&gt;AI率：本篇文章AI率约60%，与AI battle回合约20次&lt;/p&gt;
&lt;p&gt;推荐理由：有一些对AI ops的思考和洞察，所以推荐&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 class="relative group"&gt;AI时代的写作
 &lt;div id="ai时代的写作" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#ai%e6%97%b6%e4%bb%a3%e7%9a%84%e5%86%99%e4%bd%9c" aria-label="锚点"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;p&gt;AI对写博客、写公众号的作者来说，可能是一个致命的打击，因为AI写作实在是太简单。因为我自己就写文章，我自己对AI影响写作习惯也有很多纠结的地方，我也很难受。这里再把以前的对写作的思考拿出来：&lt;/p&gt;</description><content:encoded>&lt;blockquote&gt;&lt;p&gt;AI率：本篇文章AI率约60%，与AI battle回合约20次&lt;/p&gt;
&lt;p&gt;推荐理由：有一些对AI ops的思考和洞察，所以推荐&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 class="relative group"&gt;AI时代的写作
 &lt;div id="ai时代的写作" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#ai%e6%97%b6%e4%bb%a3%e7%9a%84%e5%86%99%e4%bd%9c" aria-label="锚点"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;p&gt;AI对写博客、写公众号的作者来说，可能是一个致命的打击，因为AI写作实在是太简单。因为我自己就写文章，我自己对AI影响写作习惯也有很多纠结的地方，我也很难受。这里再把以前的对写作的思考拿出来：&lt;/p&gt;
&lt;p&gt;为什么写作？&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;为自己，巩固知识。输出才可以加强输入，看一眼和写一遍是完全不一样的，写作的时间可能是看一遍时间的好几倍。就比如，看到一句有道理而且自己很懂的话，自己在写一遍时，你会发现这句话里面有非常多的细节。&lt;/li&gt;
&lt;li&gt;为自己，合理利用他人偏见。主要是为了利用他人偏见让自己坚持写作以及提升内容的可信度，自己看的知识可能差不多就得了，写给公众看就要字斟句酌对他人负责。（相对的，不是真·字斟句酌）&lt;/li&gt;
&lt;li&gt;为自己，提升知名度。这就很依赖写作水平了。&lt;/li&gt;
&lt;li&gt;为他人/社区，传播知识。好东西要拿出来大家一起看和使用，这是Postgres开源社区的内核所在。鼓励分享，不鼓励藏着掖着，这也是我一直秉持的理念。&lt;/li&gt;
&lt;li&gt;结交圈子。我不是为了这个来，但确实认识了一些小伙伴&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;人力写作已经很难了，在AI时代人力写作约等于地狱模式，就像没有目标地逆行，看不到光在哪，而人们都在往反方向走。我自己当然体验过AI解读、翻译、写成文章，但总感觉那不是我的，或者失去了训练我自己的初心，或者更深层次一点，我想感受到作品的生命力。&lt;/p&gt;
&lt;p&gt;整个DBA圈子的文章可以用鱼龙混杂来形容，写啥的都有。而我自己一直都喜欢内容性文章，偏PG原理和运维的，比如&lt;strong&gt;灿灿和向博&lt;/strong&gt;的文章，我都是翘首以盼每次必细品。一般内容性文章都不会有特别多的流量（灿灿和向博都各自在公众号吐槽过··），我自己也很随缘。&lt;/p&gt;
&lt;p&gt;但是，我上一篇文章《pg运维数据库运维经验2025》涨了很多粉，实属让我惊讶。所以我这几天一直在思考这个问题：&lt;strong&gt;为什么一个人（非AI）写的、非完备的、DBA的、知识性的文章，会有这么多人感兴趣？AI对DBA意味着什么？&lt;/strong&gt;&lt;/p&gt;

&lt;h2 class="relative group"&gt;对运维的思考
 &lt;div id="对运维的思考" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e5%af%b9%e8%bf%90%e7%bb%b4%e7%9a%84%e6%80%9d%e8%80%83" aria-label="锚点"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;

&lt;h3 class="relative group"&gt;运维的本质和AI Ops
 &lt;div id="运维的本质和ai-ops" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e8%bf%90%e7%bb%b4%e7%9a%84%e6%9c%ac%e8%b4%a8%e5%92%8cai-ops" aria-label="锚点"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h3&gt;
&lt;p&gt;运维要做很多事情，为了减少讨论的范围，我在运维工作中极少一部分&amp;ndash;&lt;strong&gt;故障响应&lt;/strong&gt;，来解读DB Ops的本质。首先我的观点：“&lt;strong&gt;运维不仅仅是技术问题&lt;/strong&gt;”&lt;/p&gt;
&lt;p&gt;很多人通过人会犯错AI也会犯错来解释可以给AI权限让它大胆的干，具体的说是AI的错误率&amp;lt;=人的错误率即可完成替换。我2年前也是这么想的，现在我不这么认为。因为真实环境没有那么简单，至少还有如下因素需要考虑：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;共识问题。DBA可能误删数据，这确实是共识，但还有一个共识容易忽略。在一般场景下，团队都认为DBA不会去删数据。如何理解呢 ？比如招聘一个DBA，一个负责的团队会考核这个人是不是精神状态正常，然后默认他不会删除数据，并在长期的工作中会这么想，我至少不会时刻都在考虑同事把库删了。但“招聘”一个AI DBA，他没有精神状态，不会有人认为他不会删数据，“他会删数据”是所有人的共识，这就形成了部署阻力。&lt;/li&gt;
&lt;li&gt;数据的重要程度。C端数据和B端数据的重要性不同，零售、互联网、政府、金融行业的数据重要性也不同，对数据越重视的行业，对数据可靠性和业务连续性越敏感。个人电脑没有业务连续性，数据可靠性只有一个人在乎，但金融行业业务连续性可以直接引起广泛的社会关注，金融行业的数据可靠性就不可能说有问题。AI Ops的部署需要考虑系统重要程度来部署，不存在所有领域一起上的情况。&lt;/li&gt;
&lt;li&gt;管理体系。例如在金融系统中DBA有高权限，并有一套管理办法，那么AI DBA是不是应该也有对应的管理办法，才能去部署？什么异常登入库，什么异常登入后台，它要怎么申请权限，申请多久？在什么场景申请多大的权限？这都是未解决的问题。&lt;/li&gt;
&lt;li&gt;AI本身安全性。例如《STRATUS》这篇论文提到&lt;em&gt;prompt注入攻击&lt;/em&gt;，目前还没有有效的解决方案，例如你给AI注入“drop database”这个prompt它可能就执行了。但人基本没有这个问题，你跟DBA说drop database，它只会反问你你要干嘛。&lt;/li&gt;
&lt;li&gt;责任问题。运维工程不是“知识问题”，而是“责任问题”。运维的核心工作之一，就是在故障发生时，在有限的时间内，做出对系统不可逆**的决策，并对该动作负责。AI 可以取代“可形式化的操作”，但无法取代“必须承担后果的判断”，至少现在还没有&lt;/li&gt;
&lt;li&gt;充满噪音。运维是“开放系统”，不是封闭推理系统。数据库运行在一个极其复杂的环境中，而 AI 的推理前提是世界是可被文本描述的。但真实运维世界是世界是充满噪声、偶然性和非文档化行为的。&lt;/li&gt;
&lt;li&gt;情境压力。真实业务环境下包含恢复时间压力、组织和客户的情绪管理等。《GOOGLE SRE》这本书中描述了一个常见的恢复场景：客户在问什么时间恢复、领导在问为什么不切换、工程师在压力下收集各种信息和各种人打电话确认恢复手段。AI感受不到这个压力，前两个问题本质上不是技术问题，但不能不做答。真实场景下，当时的回答大概率马马虎虎。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;我们可以想象一下全自动AI运维真的发生，需要什么条件？&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;AI不会干掉重要数据，至少绝大部分人对AI需要达成这种共识&lt;/li&gt;
&lt;li&gt;需要完善的管理办法，包括如何给AI权限，就如同如何给DBA权限一样&lt;/li&gt;
&lt;li&gt;解决AI本身被攻击的问题。不止是LLM，而是包含AI的整套IT体系&lt;/li&gt;
&lt;li&gt;不问责的运维文化（或者直接消灭运维也是一种思路）&lt;/li&gt;
&lt;li&gt;接受错误判断。对存在噪音和环境形成共识并容忍AI Ops的迭代周期&lt;/li&gt;
&lt;li&gt;如果长时间没有恢复或者影响面扩大，也不要人干预。因为如果一旦需要人干预，那么那个人还是运维（半自动AI Ops？）&lt;/li&gt;
&lt;li&gt;无压力恢复情境。指领导、客户、社会舆论不需要回复或者他们相信某AI的回复，这是人的转变不是IT系统的转变。&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 class="relative group"&gt;AIOps、Agent的研究成果
 &lt;div id="aiopsagent的研究成果" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#aiopsagent%e7%9a%84%e7%a0%94%e7%a9%b6%e6%88%90%e6%9e%9c" aria-label="锚点"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h3&gt;
&lt;p&gt;清华这个&lt;a href="https://github.com/TsinghuaDatabaseGroup/AIDB" target="_blank" rel="noreferrer"&gt;AIDB&lt;/a&gt;仓库的目录有许多AI4DB的论文，人是看不过来了，用notebooklm汇总了论文分类：&lt;/p&gt;
&lt;p&gt;


&lt;img src="https://lastdba.com/img/csdn/46fe43a8cb1f.png" alt="image-20260118161019199" /&gt;&lt;/p&gt;
&lt;p&gt;再次为了减少讨论范围（主要是减少我的投入人力），我们主要看数据库诊断相关的内容。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;AIOps在学术上有不错的进展&lt;/strong&gt;。AIOps研究通过将机器学习、强化学习及大语言模型集成于数据库管理，涵盖参数调优、索引建议、查询优化与故障诊断等关键任务，旨在构建具备自感知与自修复能力的“自动驾驶”数据库系统，在显著提升复杂工作负载性能与运维效率的同时，推动DBA从低效的手动干预转型为高层级的架构监管者。&lt;/p&gt;
&lt;p&gt;关于“DBA（数据库管理员）是否会被淘汰”的问题，目前的科研趋势和工业实践（尤其是自动驾驶数据库和大语言模型的应用）显示，DBA的角色正在经历一场从“手动操作者”向“高级管理者/监督者”的深刻转型，而非简单的被取代。&lt;strong&gt;DBA核心价值将转向管理AI运维策略、确保数据安全合规、以及处理AI无法解决的极端异常场景&lt;/strong&gt;。&lt;/p&gt;
&lt;p&gt;另一篇&lt;a href="https://mp.weixin.qq.com/s/urqh4NZDmkXvDllBCCdZDA" target="_blank" rel="noreferrer"&gt;AI Ops前言综述&lt;/a&gt;的文章对Agent这样描述：&lt;/p&gt;
&lt;p&gt;“这说明AI Agent并非银弹，要应用Agent不只需要模型和agent层面的进步，还需要需要整个被运维系统具备足够的支持能力比如类似Kubernetes的声明式接口、良好的可观测性、可逆的操作设计。Stratus的初步实验证明了Agent在自动运维上的潜力，&lt;strong&gt;但距离生产部署在性能、可靠性和安全性上仍有巨大的问题&lt;/strong&gt;。”&lt;/p&gt;
&lt;p&gt;开发领域因为如火如荼的vibe coding，要明显比AI在运维领域的应用快很多。我也很想有个confirm、redo的运维遥控器，问题是现在确实没有。即使我们现在幻想有一天有vibe maintaining，应该也没有几个运维会打开yolo模式。&lt;/p&gt;

&lt;h2 class="relative group"&gt;DBA的价值
 &lt;div id="dba的价值" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#dba%e7%9a%84%e4%bb%b7%e5%80%bc" aria-label="锚点"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;

&lt;h3 class="relative group"&gt;DBA的价值是拍板背锅侠吗
 &lt;div id="dba的价值是拍板背锅侠吗" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#dba%e7%9a%84%e4%bb%b7%e5%80%bc%e6%98%af%e6%8b%8d%e6%9d%bf%e8%83%8c%e9%94%85%e4%be%a0%e5%90%97" aria-label="锚点"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h3&gt;
&lt;p&gt;背书好像确实不能通过AI解决。那么DBA的价值就是拍板背锅侠吗？毕竟dba的知识远低于AI，只是AI不能拍板罢了。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;瞬时上下文&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;“DBA 的知识远低于 AI”，这在通用知识（比如如何优化一个 SQL，或者某个配置参数的含义）上确实是事实。但 AI 缺少&lt;strong&gt;瞬时上下文（Runtime Context）&lt;/strong&gt;。 AI 知道数据库原理，但它不知道你公司双十一流量激增的瞬间，那个负载均衡器后面藏着的陈年历史债。DBA 拥有的是关于“这台特定机器、这个特定业务、这些特定人”的非结构化经验。在极端故障面前，&lt;strong&gt;AI 给出的是“概率最高的建议”，而 DBA 给出的是“在这个特定压力下，最能保住命的那个操作”。&lt;/strong&gt;&lt;/p&gt;
&lt;ol start="2"&gt;
&lt;li&gt;“混沌系统”的最后闸门&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;数据库是所有 IT 架构中最脆弱、最不容错的部分（代码坏了可以回滚，数据丢了公司可能就倒闭了）。AI 的逻辑是基于历史数据的推演。当出现从未见过的底层硬件坏道、极其罕见的分布式死锁，或者黑客的新型攻击手段时，AI 的“建议”往往会失效甚至造成二次伤害。“拍板”的核心不是“选哪个方案”，而是**“承担风险的对冲”&lt;strong&gt;。这种对&lt;/strong&gt;极端情况的掌控力**，是目前的AI无法提供的。&lt;/p&gt;
&lt;ol start="3"&gt;
&lt;li&gt;信任链&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;DBA是信任链的维护者：例如让 AI 审计 AI，那么谁来审计 AI 的审计逻辑？在数据安全、合规和伦理层面，必须有一个&lt;strong&gt;拥有最高权限且可追责的人类&lt;/strong&gt;作为信任链的终点。&lt;/p&gt;
&lt;p&gt;我们反过来想，如果 DBA 真的只是“知识较少的拍板背锅侠”， 那么企业其实早就会把 DBA 的拍板权交给SRE或者架构委员会、甚至AI等等责任主体。但现实是在真正关键的时刻，企业仍然会把电话打给“那个人”。这说明问题从来不是“谁更聪明”，而是谁能在不确定性中，为组织承担后果。&lt;strong&gt;DBA 是数据库这个混沌系统中，最后一个拥有止损权、责任权和信任终结权的人类&lt;/strong&gt;。&lt;/p&gt;
&lt;p&gt;那么拍板都是DBA说了算吗？显然不是。DBA 并不拥有“目标决策权”，而是拥有“风险否决权”——他们不能决定业务要不要冒险，但可以决定系统不能承受哪些冒险。在简单、低风险、可回滚的场景下，拍板往往由流程或系统自动完成；&lt;strong&gt;只有当决策进入高风险、不可逆、责任必须收敛的区间时，DBA 才会被推到台前&lt;/strong&gt;。&lt;/p&gt;

&lt;h3 class="relative group"&gt;Postgres DBA的特殊性
 &lt;div id="postgres-dba的特殊性" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#postgres-dba%e7%9a%84%e7%89%b9%e6%ae%8a%e6%80%a7" aria-label="锚点"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h3&gt;
&lt;p&gt;针对 Postgres (PG) DBA 这个特定群体，其特殊性会更加显著。&lt;/p&gt;
&lt;p&gt;在现代技术组织中，DBA 并不天然拥有架构决策权，也不垄断索引或参数的制定。架构师可以设计方案，开发可以编写 SQL，AI 甚至可以给出看似完备的最佳实践建议。但这些决策大多发生在&lt;strong&gt;抽象层、设计层和概率层&lt;/strong&gt;，它们假设系统是可回滚、可重放、可修正的。&lt;/p&gt;
&lt;p&gt;Postgres 的特殊性在于，&lt;strong&gt;它将大量自由度交给使用者&lt;/strong&gt;，而这些自由度最终都会转化为真实系统中的&lt;strong&gt;长期副作用&lt;/strong&gt;：写放大、IO 模式变化、Vacuum 失衡、WAL 膨胀以及难以预测的性能退化。这些副作用无法在设计阶段完全预演，也无法被单一角色分包处理，更无法在事故发生后简单“撤回”。当系统进入不可暂停、不可重放的状态时，唯一仍需对整体结果负责的人，往往就是 DBA。&lt;/p&gt;
&lt;p&gt;因此，Postgres DBA 的价值不在于“替别人做决定”（当然也可以啦），而在于在所有决定已经发生之后，持续管理它们在现实世界中的后果。&lt;strong&gt;“架构师定义理想，开发实现功能，AI 预测未来；而 DBA 守护真实。”&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;这个守护真实的能力是基于PG DBA拥有足够了解Postgres、足够了解系统真实环境、足够了解系统的历史和足够的即时上下文。在AI的时代，还需要再增加一个，足够了解AI。&lt;/p&gt;

&lt;h2 class="relative group"&gt;为什么还要学习
 &lt;div id="为什么还要学习" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e4%b8%ba%e4%bb%80%e4%b9%88%e8%bf%98%e8%a6%81%e5%ad%a6%e4%b9%a0" aria-label="锚点"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;p&gt;这两年听到读书无用论比以往多了许多，说这种话我一般都嗤之以鼻。借此机会好好盘一盘。&lt;/p&gt;
&lt;p&gt;数据库基础知识还有没有价值？答案是：&lt;strong&gt;价值更高了&lt;/strong&gt;。我们从解释权、主动学习和为什么我还在反复看经典来解读。&lt;/p&gt;
&lt;p&gt;1.问题的解释权&lt;/p&gt;
&lt;p&gt;基础知识让你做到三件事：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;提前识别“系统性必炸点”&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;把判断逻辑讲清楚&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;把“我拍脑袋”变成“这是系统决定的结果”&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;学数据库基础知识的真正意义，不是为了“多干活”，而是为了：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;划清责任边界&lt;/li&gt;
&lt;li&gt;提升话语权&lt;/li&gt;
&lt;li&gt;让系统为你的判断背书&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;2.主动学习成为更稀缺的能力&lt;/p&gt;
&lt;p&gt;在 AI 时代，知识获取的“技术壁垒”趋近于 0。主动学习能力是稀缺的。为什么“主动学习”在 AI 时代反而更稀缺？这点很反直觉，但非常现实。AI 让“被动学习”极其舒服，随问随答、无需长期投入、不必承受认知不适。但是导致的结果是，越来越多的人停留在“即时满足层”，不愿意再去学习基础知识。当所有人都在倒退时，你发现你走的更快了。&lt;/p&gt;
&lt;p&gt;3.为什么还在反复看《The Internals of PostgreSQL》这种经典？&lt;/p&gt;
&lt;p&gt;技术人员需要看书，是因为书不是在给答案，而是在&lt;strong&gt;帮我建立一个可以反复运行、不断修正的认知模型&lt;/strong&gt;；而 AI 目前更擅长回答问题，而不是塑造这种模型。AI 很难成为这种“长期对话对象”，&lt;strong&gt;它的回答是不稳定的&lt;/strong&gt;。&lt;/p&gt;
&lt;p&gt;另一个方面，从认知经济学 + 信息论 + token 成本的视角来看书的价值。首先，你不用跟 AI battle 来 battle 去，battle 的真正成本不是钱，而是你的注意力和上下文维护能力。其次，书中的几十万字不仅不需要你输入大量的prompt，也不需要你付出过多的tokens。再次，这个书籍的知识经过了作者和读者的反复验证，是已压缩过的知识，是最容易学习的。所以，&lt;strong&gt;经典书籍 = 极低 token 成本下，获得高密度、被人类反复验证过的专注知识的压缩结果&lt;/strong&gt;。&lt;/p&gt;
&lt;p&gt;4.学习AI本身&lt;/p&gt;
&lt;p&gt;这不需要我说了。&lt;/p&gt;
&lt;p&gt;跟AI的battle，让我得出一个有趣的关于“为什么还要看书”的结论：&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;在 AI 时代，知识是廉价的，判断力才是昂贵的 =&amp;gt; 而判断力，来自于稳定、可校准的认知模型 =&amp;gt; 稳定的认知模型，本身是“长期高质量知识摄入”的副产品。&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;另一个可以佐证读书有用论的一个现实证据是，我现在这篇文章依赖于我读过的一些书、论文、其他文章和资讯，如果没有这些，这篇文章不会与各位见面。&lt;/p&gt;

&lt;h2 class="relative group"&gt;为什么大家还爱看&amp;quot;人&amp;quot;写的文章
 &lt;div id="为什么大家还爱看人写的文章" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e4%b8%ba%e4%bb%80%e4%b9%88%e5%a4%a7%e5%ae%b6%e8%bf%98%e7%88%b1%e7%9c%8b%e4%ba%ba%e5%86%99%e7%9a%84%e6%96%87%e7%ab%a0" aria-label="锚点"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;

&lt;h3 class="relative group"&gt;偏爱漏洞的心理
 &lt;div id="偏爱漏洞的心理" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e5%81%8f%e7%88%b1%e6%bc%8f%e6%b4%9e%e7%9a%84%e5%bf%83%e7%90%86" aria-label="锚点"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h3&gt;
&lt;p&gt;人类写的技术文章，难免漏洞百出，我自己看我去年写的运维经验2024，就可以找到很多漏洞。即便是前几天刚完成的运维经验2025，我也认为这篇文章是不完备的，跟AI写的东西差别很大。但是为什么读者还是喜欢这种漏洞百出的技术文章呢？&lt;/p&gt;
&lt;p&gt;原因可能是人类不是被“信息正确性”吸引，而是被“可共情的不完美心智痕迹”吸引。从《智力简史》这边书中可知，人类的智力模型本身就包含自我试错式的探险和观察别人的行为并映射自我这两种模型，这是一种学习过程，是人类与生俱来的。我们的大脑默认会扫描文本中的的犹豫、不确定、逻辑断裂、表达不顺、情绪泄漏等等，这些在 AI 文本中被系统性地忽略。在文字的漏洞和情绪中，读者可以感受到作者的思考和情绪，而AI只是给出了结果，读者几乎不会与AI有情绪共鸣。一般来说，只有真实经历过的人，才会留下这种“不好看”的痕迹。&lt;/p&gt;
&lt;p&gt;所以我相信很多人跟我一样，一眼纯AI的技术文章（不保证100%判断正确），一般不会有情绪读下去。但如果是人类认真写的，会认真读下去，去感受作者的感受，去抓他的不足或场景缺陷。&lt;/p&gt;
&lt;p&gt;当然，作者也可以喂一些提示词模仿之前文章的口吻或者故意留漏洞，不过我没有认真这么做过，简单试过生成了几篇，感觉情绪带入还是比较差。后面也不想再继续深入尝试了，再试下去意义也不大。&lt;/p&gt;

&lt;h3 class="relative group"&gt;白嫖大神的ATTENTION
 &lt;div id="白嫖大神的attention" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e7%99%bd%e5%ab%96%e5%a4%a7%e7%a5%9e%e7%9a%84attention" aria-label="锚点"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h3&gt;
&lt;p&gt;AI文章和大神文章的核心差异不是“写得好不好”，而是&lt;strong&gt;经济性问答、行业领先的Attention&lt;/strong&gt;的问题。大神写作是在替读者分配注意力，AI 写作是在避免遗漏任何可能相关的信息。这不是能力问题，而是目标函数不同。&lt;strong&gt;真正高价值的技术文章，不是告诉你所有正确答案， 而是替你挡住 80% 你现在不该关注的东西。&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;大神为什么敢“删”，AI 为什么不敢？因为他们为你的理解结果承担认知责任，AI不承担你学错、用错的后果。于是大神会刻意过滤那些目前不需要注意的细节。这种过滤，本身就是专家价值。对人类来说，学习的瓶颈不是信息不够，而是注意力有限、不知道先看哪里。&lt;strong&gt;大神的文章直接把结果给你对你说，你就看着这个。但你面对LLM的时候，你知道该找什么东西吗？&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;这并不是在否定 AI 文章的价值。AI 擅长的是“在你已经知道问题边界时，快速铺开信息空间”，而大神文章擅长的是“在你尚未建立判断框架时，替你先收缩问题空间”。前者适合查漏补缺、横向扩展，后者适合建立主干认知和关键直觉。真正高效的学习方式，并不是二选一，而是先借助大神完成 Attention 对齐，再利用 AI 在被限定的空间内做放大搜索。&lt;/p&gt;
&lt;p&gt;这不是在说AI的东西没有用，或者人类写的东西没用，而是&lt;strong&gt;各自有用&lt;/strong&gt;。&lt;/p&gt;

&lt;h2 class="relative group"&gt;AGI能解决所有问题吗？
 &lt;div id="agi能解决所有问题吗" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#agi%e8%83%bd%e8%a7%a3%e5%86%b3%e6%89%80%e6%9c%89%e9%97%ae%e9%a2%98%e5%90%97" aria-label="锚点"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;

&lt;h3 class="relative group"&gt;驳Musk
 &lt;div id="驳musk" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e9%a9%b3musk" aria-label="锚点"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h3&gt;
&lt;p&gt;最近Musk又在画大饼，看完以后我并不赞同。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;共同富裕还是无用阶级？&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;无用阶级是尤瓦尔在《未来简史》中的观点，他认为当AI的生产力超过普通人的时候，用AI干活会替代让普通人干活。这些人就成为了无用阶级。资源会愈发集中在少数精英和大公司手中，大部分人会失业，但是失业情况目前没有有效政策可以为之兜底。这个观点刚好与马斯克式的共同富裕有出入，马斯克认为当AGI实现时，所有人都不需要担心生存、教育、医疗，生产力高到政府会给大部分人兜底。我目前支持尤瓦尔的观点。其实从身边感知性统计也可以看出来，&lt;strong&gt;无用阶级的人数正在上升&lt;/strong&gt;。&lt;/p&gt;
&lt;ol start="2"&gt;
&lt;li&gt;高生产力可以制造乌托邦吗？&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;一个支持我不同意AGI乌托邦的理论来自于另一本书《进化心理学-择偶标准》。其中有一个观点令我印象深刻：&lt;em&gt;出于社会分工和生物培育良好后代的考虑，男性偏爱年轻、健康的女性，女性偏爱健康、有资源的男性&lt;/em&gt;。这个刻在我们基因里的默认筛选，导致了人是不会平等生活的，你不想成为被淘汰的那个。&lt;strong&gt;所以一个不攀比、没有竞争的、资源平等的乌托邦如果能够维持下去，生产力只是必要条件之一&lt;/strong&gt;，还有许多必须解决的社会问题容易被大众忽略。这里不是狭义的单指进化心理学，有些东西没有被仔细讨论，比如《黑猩猩政治》中的权力纷争，其实也应该被考虑。&lt;/p&gt;
&lt;ol start="3"&gt;
&lt;li&gt;卡尔霍恩的老鼠乌托邦实验&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;1972 年，动物行为学家约翰·B·卡尔霍恩John B. Calhoun）设计并详细描述了一个著名的实验环境——“宇宙 25 号”。这是一个专门为老鼠打造的实验室“乌托邦”，几乎在每一个方面都力求完美：食物、水源和筑巢材料充足；居住环境定期清洁；没有捕食者威胁；温度通过风扇与供暖保持在 20℃至 31℃之间，稳定舒适。&lt;/p&gt;
&lt;p&gt;老鼠数量走向灭亡看起来有些疯癫，我选择只看过程部分：1)暴力增加 2)不再追求异性 3)同性行为增加 4)独处行为增加 5)男性爱打扮自己 6) 冷漠 等等。当然这个实验会有一些缺陷，从《智力简史》中描述的智力模型来看，老鼠和人的智力模型还差着一个灵长类动物，它不能代表人类社会。但是至少可以看出，&lt;strong&gt;乌托邦会引起新的社会问题，人们不会老老实实的过日子。&lt;/strong&gt;&lt;/p&gt;
&lt;ol start="4"&gt;
&lt;li&gt;基于经济学的社会&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;从现代经济学的角度来看，AGI 是否能够实现“共同富裕式乌托邦”，可分为两种类型来看：保留现代经济和不保留现代经济。&lt;/p&gt;
&lt;p&gt;如果保留现代经济，AGI 可以被视为一种极端高效的“通用生产要素”。 它显著降低了知识生产、决策支持、组织协调和边际劳动成本，提高了全社会的生产率上限。在这一前提下，财富分配、公共服务供给和社会保障机制，仍然依托市场、价格信号、激励机制和制度约束运行。AGI 的作用更多体现在扩大“可分配蛋糕”的规模，而非自动解决分配问题。换言之**，**共同富裕依然是政治经济学问题，而不是技术问题，&lt;strong&gt;AGI 只能降低实现目标的成本，却无法替代制度设计&lt;/strong&gt;。&lt;/p&gt;
&lt;p&gt;那么，如果不保留现代经济，而是试图绕过市场、价格与激励体系，直接依靠 AGI 实现某种“技术乌托邦”，是否可行？&lt;/p&gt;
&lt;p&gt;答案几乎可以确定是否定的。&lt;/p&gt;
&lt;p&gt;没有现代经济的乌托邦，在 20 世纪 60–70 年代已经被反复验证为失败。其根本原因并不在于当时“技术不够先进”，而在于信息与激励问题的结构性不可解：
&lt;strong&gt;即便拥有强大的集中式计算能力，也无法替代分散个体通过价格机制传递的偏好信息，更无法在长期内维持创新动力、责任约束和资源配置效率&lt;/strong&gt;。AGI 可以提高集中决策的计算能力，但无法消除“谁为决策负责、谁承担后果、谁拥有选择权”这一经济学基本问题。&lt;/p&gt;
&lt;p&gt;因此，AGI 并不是现代经济的替代者，而是现代经济框架下的放大器。任何脱离市场机制、激励结构和制度约束的“技术乌托邦”，无论是否引入 AGI，本质上都会重演历史上的失败路径，只是失败形式更加隐蔽、成本更高。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;生产力（包括 AGI 带来的智力提升）只是乌托邦所需条件之一，而且远远不是最关键的那一个。乌托邦不是算力问题，也不是智力问题，而是人类行为在制度约束下的稳定性问题。&lt;/strong&gt;&lt;/p&gt;

&lt;h3 class="relative group"&gt;AI解决不了所有问题的数学基础
 &lt;div id="ai解决不了所有问题的数学基础" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#ai%e8%a7%a3%e5%86%b3%e4%b8%8d%e4%ba%86%e6%89%80%e6%9c%89%e9%97%ae%e9%a2%98%e7%9a%84%e6%95%b0%e5%ad%a6%e5%9f%ba%e7%a1%80" aria-label="锚点"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h3&gt;
&lt;p&gt;以下抄自吴军的《数学之美》：&lt;/p&gt;
&lt;p&gt;“1900年，希尔伯特提出了许多问题，其中一个是：‘任意一个（多项式）不定方程，能否通过有限步的运算，判定它是否存在整数解’。如果对希尔伯特这个问题普遍答案是否定的，那么就说明很多数学问题其实上帝也不知道答案是否存在，因为不定方程求解问题还只是数学问题中很小的一部分。对于连答案存在与否都无法判定的问题，答案自然找不到的。正是希尔伯特对数学问题边界的思考，让图灵明白了计算的极限所在····马蒂亚塞维奇严格地证明了，除了极少数特例，在一般情况下，无法通过有限步的运算，判定一个不定方程是否存在整数解。&lt;strong&gt;这个问题的解决，对人类认知上的冲击，远比它在数学上的影响还要大···如果连解都不知道，就更不可能通过计算来解决他们了&lt;/strong&gt;”&lt;/p&gt;
&lt;p&gt;


&lt;img src="https://lastdba.com/img/csdn/d18842a780aa.png" alt="image-20260120211018586" /&gt;&lt;/p&gt;
&lt;p&gt;“理性状态的图灵机可以解决的问题，只是有答案的问题中的一部分··很多工程上的问题并非人工智能问题···&lt;strong&gt;今天，我们所要担心的不是人工智能或计算机有多么强大，更不应该觉得他们无所不能，因为他们的边界已经清清楚楚地由数学的边界划定了&lt;/strong&gt;···世界上还有许多需要由人来解决的问题，如何利用好人工智能工具，更有效地解决属于人的问题，才是应该给予更多关注的。“&lt;/p&gt;
&lt;p&gt;（看吧，读书有用吧，直接给你讲明白，你大概率问不出来也拿不到这么通俗易懂的答案；看吧，关注硬核技术up有用吧，我帮你筛选了，快“点关注”&amp;#x2b50;）&lt;/p&gt;

&lt;h2 class="relative group"&gt;总结
 &lt;div id="总结" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e6%80%bb%e7%bb%93" aria-label="锚点"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;p&gt;作为一个写技术文章的博主，写此类社会问题是比较少的。本来就想简单写写上一篇文章为什么有流量，结果为了解释这个现象有点把问题扩大化了&amp;#x1f613;。&lt;/p&gt;
&lt;p&gt;本篇的局限性：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;只讨论了DBA工作的很小一部分&amp;ndash;故障恢复，没有讨论其他工作的智能化问题。&lt;/li&gt;
&lt;li&gt;GPT太了解我了，看上去在PUA我。它确实说的很有道理，但我无法给它说的东西背书。这就有点套娃了，AI帮我确认AI不能背书，这个输出本来就无法背书。从我自己的视角来看，它的思路确实不错，金句频出。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;有些Ops场景当然是容易AI化的，但通过这篇文章的讨论，在故障恢复这个领域搞AI化，难度还是有的。&lt;strong&gt;我从来没有放弃用AI，也从来没有放弃用人脑&lt;/strong&gt;，我只是喜欢识别AI在什么场景下好用，什么场景下不好用，什么场景下用不了。这让文章的基调看起来对AI的未来很悲观，其实我的想法不是悲观。&lt;/p&gt;
&lt;p&gt;这篇文章的开头你可以看到 AI率是50%，实际上我还跟几个小伙伴讨论过类似问题，也包含自己的思考，所以这篇文章真正的智力比例是：&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;AI率50%，其他人脑率10%，我的人脑率40%&lt;/p&gt;
&lt;/blockquote&gt;&lt;p&gt;所以这篇文章也算是”不放弃使用AI，也不放弃使用人脑“的一个典型案例了。&lt;/p&gt;
&lt;p&gt;最后用几个问题简单表面我的观点：&lt;/p&gt;
&lt;p&gt;为什么人们还是爱看人写的文章？心理偏好和注意力对齐&lt;/p&gt;
&lt;p&gt;读书有没有用（不只是书）？有用，而且比以往还有用（烂书比以往更没用，知识品味比以往更重要）&lt;/p&gt;
&lt;p&gt;AIOps会不会实现？会，但还要时间，而且并不容易。这需要学术突破和运维（含DBA）的思考和实践&lt;/p&gt;
&lt;p&gt;DBA会不会被替代？不会，跟软件开发者一样，会经历工作模式的改变，但不会消失&lt;/p&gt;
&lt;p&gt;留下来的DBA是哪些人？“懂DB又懂AI，不依赖AI，又不放弃判断的人”&lt;/p&gt;
&lt;p&gt;AGI会不会实现？会&lt;/p&gt;
&lt;p&gt;AGI会不会实现全面富裕？不会&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;如果想跟我讨论AI Ops或者文章中的问题，可以在各个PG群里找我，应该好找，或者给我留言也可以。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 class="relative group"&gt;ref
 &lt;div id="ref" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#ref" aria-label="锚点"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://github.com/TsinghuaDatabaseGroup/AIDB" target="_blank" rel="noreferrer"&gt;https://github.com/TsinghuaDatabaseGroup/AIDB&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://mp.weixin.qq.com/s/urqh4NZDmkXvDllBCCdZDA" target="_blank" rel="noreferrer"&gt;https://mp.weixin.qq.com/s/urqh4NZDmkXvDllBCCdZDA&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Zhao, Y., et al. (2025). &amp;ldquo;STRATUS: A Multi-agent System for Autonomous Reliability Engineering of Modern Clouds&amp;rdquo;.Advances in Neural Information Processing Systems (NeurIPS)&lt;/p&gt;
&lt;p&gt;&lt;a href="https://zhuanlan.zhihu.com/p/631632685" target="_blank" rel="noreferrer"&gt;https://zhuanlan.zhihu.com/p/631632685&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;《数学之美》&lt;/p&gt;</content:encoded></item></channel></rss>