<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0">
  <channel>
    <title>王福强的个人博客：一个架构士的思考与沉淀</title>
    <link>http://afoo.me</link>
    <description>王福强的个人博客：一个架构士的思考与沉淀</description>
    <item>
      <title>GEO 是 SEO 的替代吗？</title>
      <link>http://afoo.me/posts/2026-09-22-seo-and-geo-questions.html</link>
      <description>&lt;!doctype html&gt;
&lt;html lang="zh" class="motion-safe:scroll-smooth 2xl:text-[20px]"&gt; 
 &lt;head&gt; 
  &lt;meta charset="utf-8"&gt; 
  &lt;meta name="keywords" content="GEO 是 SEO 的替代吗？ - 架构师， 架构士，架构教练, 教练, 个人成长, 组织成长, 独立顾问, architecture, book author, thinker, fighter, 架构, 思考, 技术, 武术, 哲学"&gt; 
  &lt;meta name="description" content="GEO 是 SEO 的替代吗？ - 福强说，扶墙老师说，王福强的个人博客， 一个架构士的思考与沉淀"&gt; 
  &lt;meta name="author" content="王福强"&gt; 
  &lt;meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"&gt; 
  &lt;meta http-equiv="Content-Type" content="text/html; charset=UTF-8"&gt; 
  &lt;meta name="robots" content="index,follow"&gt; 
  &lt;title&gt;GEO 是 SEO 的替代吗？ -王福强的个人博客：一个架构士的思考与沉淀&lt;/title&gt; 
  &lt;meta name="date" content="2026-09-22"&gt; 
  &lt;meta property="og:title" content="GEO 是 SEO 的替代吗？"&gt; 
  &lt;meta property="og:type" content="landing page"&gt; 
  &lt;meta property="og:url" content="https://afoo.me/posts/2026-09-22-seo-and-geo-questions.html"&gt; 
  &lt;meta property="og:image" content="https://og.afoo.me?url=https://afoo.me/posts/2026-09-22-seo-and-geo-questions.html"&gt; 
  &lt;meta name="twitter:card" content="summary_large_image"&gt; 
  &lt;meta name="twitter:title" content="GEO 是 SEO 的替代吗？"&gt; 
  &lt;meta name="twitter:site" content="@afoo_me"&gt; 
  &lt;meta name="twitter:creator" content="@afoo_me"&gt; 
  &lt;meta name="twitter:image" content="https://og.afoo.me?url=https://afoo.me/posts/2026-09-22-seo-and-geo-questions.html"&gt; 
  &lt;meta name="twitter:description" content="GEO 是 SEO 的替代吗？ - 王福强的个人博客， 一个架构士的思考与沉淀"&gt; 
  &lt;link rel="shortcut icon" href="/favicon.ico"&gt; 
  &lt;link rel="canonical" href="https://afoo.me/posts/2026-09-22-seo-and-geo-questions.html"&gt; 
  &lt;link rel="icon" type="image/svg+xml" href="https://afoo.me/favicon.svg"&gt; 
  &lt;link rel="mask-icon" href="https://afoo.me/favicon.svg" color="#3383F8"&gt; 
  &lt;script src="https://afoo.me/js/htmx.min.js"&gt;&lt;/script&gt; 
  &lt;link rel="stylesheet" href="https://unpkg.com/gitalk/dist/gitalk.css"&gt; 
  &lt;script src="https://unpkg.com/gitalk/dist/gitalk.min.js"&gt;&lt;/script&gt; 
  &lt;script src="https://afoo.me/js/popper.min.js"&gt;&lt;/script&gt; 
  &lt;script src="https://afoo.me/js/tippy.min.js"&gt;&lt;/script&gt; 
  &lt;link rel="stylesheet" href="/css/af.css"&gt; 
  &lt;link rel="stylesheet" href="/css/components.css"&gt; 
  &lt;link ref="stylesheet" href="/css/pygments.css"&gt; 
  &lt;style type="text/css"&gt;
        pre &gt; code{
          white-space: pre-wrap;
          font-family: monospace;
          font-size: 14px;
          /* border-left: blueviolet;
          border-left-width: thick;
          border-left-style: double;
          padding-left: 1rem !important; */
        }
        
        .x-indicator{
            display:none;
        }
        .htmx-request .x-indicator{
            display:inline;
        }
        .htmx-request.x-indicator{
            display:inline;
        }
    &lt;/style&gt; 
  &lt;script type="application/ld+json"&gt;
    {
      "@context": "https://schema.org",
      "@type": "NewsArticle",
      "headline": "GEO 是 SEO 的替代吗？",
      "image": [
        "https://afoo.me/images/fb_subscribe.jpg"
       ],
      "datePublished": "2026-09-22",
      "author": [{
          "@type": "Person",
          "name": "王福强",
          "url": "https://afoo.me"
        }]
    }
  &lt;/script&gt; 
  &lt;script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-3687639021943715" crossorigin="anonymous"&gt;&lt;/script&gt; 
 &lt;/head&gt; 
 &lt;body class="antialiased text-slate-800 dark:text-slate-300 tracking-tight bg-slate-50 dark:bg-gray-900 vsc-initialized"&gt; 
  &lt;header class="sticky top-0 z-40 flex-none mx-auto w-full bg-slate-50 md:bg-slate-50/90 dark:bg-gray-900 dark:md:bg-gray-900/90 md:backdrop-blur-sm border-b border-slate-200 dark:border-b-0" id="header"&gt; 
   &lt;div class="py-3 px-3 mx-auto w-full md:flex md:justify-between max-w-6xl md:px-4"&gt; 
    &lt;div class="flex justify-between"&gt; &lt;a class="flex items-center" href="https://afoo.me"&gt; &lt;span class="self-center ml-2 text-2xl font-extrabold text-slate-800 whitespace-nowrap dark:text-white"&gt; &lt;img src="/images/afoo.PNG" alt="logo" style="height:60px;"&gt; &lt;/span&gt; &lt;/a&gt; 
     &lt;div class="flex items-center md:hidden"&gt; &lt;button type="button" class="text-gray-500 dark:text-gray-400 hover:bg-gray-100 dark:hover:bg-gray-700 focus:outline-none focus:ring-4 focus:ring-gray-200 dark:focus:ring-gray-700 rounded-lg text-sm p-2.5 inline-flex items-center" aria-label="Toggle between Dark and Light mode" data-toggle-color-scheme=""&gt; 
       &lt;svg viewbox="0 0 24 24" class="w-6 h-6" astro-icon="tabler:sun"&gt; &lt;g fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" class="icon-tabler"&gt; 
         &lt;circle cx="12" cy="12" r="4"&gt;&lt;/circle&gt; 
         &lt;path d="M3 12h1m8-9v1m8 8h1m-9 8v1M5.6 5.6l.7.7m12.1-.7-.7.7m0 11.4.7.7m-12.1-.7-.7.7"&gt; 
         &lt;/path&gt; 
        &lt;/g&gt; 
       &lt;/svg&gt; &lt;/button&gt; &lt;button type="button" class="ml-1.5 text-gray-500 dark:text-gray-400 hover:bg-gray-100 dark:hover:bg-gray-800 focus:outline-none focus:ring-4 focus:ring-gray-200 dark:focus:ring-gray-700 rounded-lg text-sm p-2.5 inline-flex items-center transition" aria-label="Toggle Menu" data-toggle-menu=""&gt; 
       &lt;svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" preserveaspectratio="xMidYMid meet" viewbox="0 0 24 24" class="w-6 h-6" astro-icon="tabler:menu"&gt; &lt;g class="icon-tabler" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"&gt; 
         &lt;path d="M4 8h16"&gt;&lt;/path&gt; 
         &lt;path d="M4 16h16"&gt;&lt;/path&gt; 
        &lt;/g&gt; 
       &lt;/svg&gt; &lt;/button&gt; 
     &lt;/div&gt; 
    &lt;/div&gt; 
    &lt;nav class="items-center w-full md:w-auto hidden md:flex text-gray-600 dark:text-slate-200 h-screen md:h-auto" aria-label="Main navigation"&gt; 
     &lt;ul class="flex flex-col pt-8 md:pt-0 md:flex-row md:self-center w-full md:w-auto text-xl md:text-base"&gt; 
      &lt;li&gt;&lt;a class="font-medium hover:text-gray-900 dark:hover:text-white px-4 py-3 flex items-center transition duration-150 ease-in-out" href="https://kb.afoo.me/"&gt;福强私学&lt;/a&gt;&lt;/li&gt; 
      &lt;li&gt; &lt;a id="aiedu" class="font-medium hover:text-gray-900 dark:hover:text-white px-4 py-3 flex items-center transition duration-150 ease-in-out" href="http://ai.afoo.me"&gt; 福强AI学堂&lt;/a&gt; &lt;/li&gt; 
      &lt;li&gt; &lt;a class="font-medium hover:text-gray-900 dark:hover:text-white px-4 py-3 flex items-center transition duration-150 ease-in-out" href="http://jiagoubaike.com"&gt;架构百科&lt;/a&gt; &lt;/li&gt; 
      &lt;li&gt; &lt;a class="font-medium hover:text-gray-900 dark:hover:text-white px-4 py-3 flex items-center transition duration-150 ease-in-out" href="https://afoo.me/posts.html"&gt;博客文章 &lt;/a&gt; &lt;/li&gt; 
      &lt;li&gt; &lt;a class="font-medium hover:text-gray-900 dark:hover:text-white px-4 py-3 flex items-center transition duration-150 ease-in-out" href="https://afoo.me/books.html"&gt;创作出版&lt;/a&gt; &lt;/li&gt; 
      &lt;li&gt; &lt;a class="font-medium hover:text-gray-900 dark:hover:text-white px-4 py-3 flex items-center transition duration-150 ease-in-out" href="https://store.afoo.me"&gt;产品与服务&lt;/a&gt; &lt;/li&gt; 
      &lt;li&gt;&lt;a class="font-medium hover:text-gray-900 dark:hover:text-white px-4 py-3 flex items-center transition duration-150 ease-in-out" href="https://auth.afoo.me/user.html"&gt;登录信息&lt;/a&gt;&lt;/li&gt; 
      &lt;li&gt; &lt;a class="font-medium hover:text-gray-900 dark:hover:text-white px-4 py-3 flex items-center transition duration-150 ease-in-out" href="https://afoo.me/crosslinks.html"&gt;更多链接&lt;/a&gt; &lt;/li&gt; 
     &lt;/ul&gt; 
     &lt;div class="md:self-center flex items-center mb-4 md:mb-0 ml-2"&gt; 
      &lt;div class="hidden items-center md:flex"&gt; &lt;button type="button" class="text-gray-500 dark:text-gray-400 hover:bg-gray-100 dark:hover:bg-gray-700 focus:outline-none focus:ring-4 focus:ring-gray-200 dark:focus:ring-gray-700 rounded-lg text-sm p-2.5 inline-flex items-center" aria-label="Toggle between Dark and Light mode" data-toggle-color-scheme=""&gt; 
        &lt;svg viewbox="0 0 24 24" class="w-5 h-5" astro-icon="tabler:sun"&gt; &lt;g fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" class="icon-tabler"&gt; 
          &lt;circle cx="12" cy="12" r="4"&gt;&lt;/circle&gt; 
          &lt;path d="M3 12h1m8-9v1m8 8h1m-9 8v1M5.6 5.6l.7.7m12.1-.7-.7.7m0 11.4.7.7m-12.1-.7-.7.7"&gt; 
          &lt;/path&gt; 
         &lt;/g&gt; 
        &lt;/svg&gt; &lt;/button&gt; &lt;a class="text-gray-500 dark:text-gray-400 hover:bg-gray-100 dark:hover:bg-gray-700 focus:outline-none focus:ring-4 focus:ring-gray-200 dark:focus:ring-gray-700 rounded-lg text-sm p-2.5 inline-flex items-center" aria-label="RSS Feed" href="http://afoo.me/feeds.xml"&gt; 
        &lt;svg viewbox="0 0 24 24" class="w-5 h-5" astro-icon="tabler:rss"&gt; &lt;g fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" class="icon-tabler"&gt; 
          &lt;circle cx="5" cy="19" r="1"&gt;&lt;/circle&gt; 
          &lt;path d="M4 4a16 16 0 0 1 16 16M4 11a9 9 0 0 1 9 9"&gt;&lt;/path&gt; 
         &lt;/g&gt; 
        &lt;/svg&gt; &lt;/a&gt; 
      &lt;/div&gt; 
     &lt;/div&gt; 
    &lt;/nav&gt; 
   &lt;/div&gt; 
  &lt;/header&gt; 
  &lt;main&gt; 
   &lt;div id="leftSlot" class="visible md:invisible fixed top-0 left-0" style="width: 16rem;height: 80%;margin-top: 4rem;"&gt; &lt;!-- left --&gt; 
    &lt;ins class="adsbygoogle" style="display:block" data-ad-client="ca-pub-3687639021943715" data-ad-slot="3581141418" data-ad-format="auto" data-full-width-responsive="true"&gt;&lt;/ins&gt; 
    &lt;script&gt;
          (adsbygoogle = window.adsbygoogle || []).push({});
      &lt;/script&gt; 
   &lt;/div&gt; 
   &lt;div id="rightSlot" class="visible md:invisible fixed top-0 right-0" style="width: 16rem;height: 80%;margin-top: 4rem;"&gt; &lt;!-- right --&gt; 
    &lt;ins class="adsbygoogle" style="display:block" data-ad-client="ca-pub-3687639021943715" data-ad-slot="7030836806" data-ad-format="auto" data-full-width-responsive="true"&gt;&lt;/ins&gt; 
    &lt;script&gt;
           (adsbygoogle = window.adsbygoogle || []).push({});
      &lt;/script&gt; 
   &lt;/div&gt; 
   &lt;section class="text-gray-600 body-font relative"&gt; 
    &lt;div class="max-w-4xl mx-auto px-5 py-24 mb-12 prose prose-lg dark:prose-invert"&gt; 
     &lt;p class="lead"&gt; &lt;/p&gt;
     &lt;h1 class="title"&gt;GEO 是 SEO 的替代吗？&lt;/h1&gt; &lt;small&gt; &lt;h3 class="author"&gt;王福强&lt;/h3&gt; 
      &lt;div style="text-align: left;"&gt;
       2026-09-22
      &lt;/div&gt; &lt;/small&gt; 
     &lt;p&gt;&lt;/p&gt; &lt;!-- random --&gt; 
     &lt;ins class="adsbygoogle" style="display:block" data-ad-client="ca-pub-3687639021943715" data-ad-slot="2722720851" data-ad-format="auto" data-full-width-responsive="true"&gt;&lt;/ins&gt; 
     &lt;script&gt;
                 (adsbygoogle = window.adsbygoogle || []).push({});
            &lt;/script&gt; 
     &lt;hr&gt; 
     &lt;p&gt;我问了三家AI（deepseek, X 和 ChatGPT）如下三个问题，&lt;/p&gt; 
     &lt;pre&gt;&lt;code&gt;下面几个问题帮我解答下呀？

1. 相对于SEO，现在的GEO有什么变化？
2. 各个通用agent的信息源头，是不是还是依托SEO，要持续做关键词监测和内容铺设？
3. 需要主动与各个要面向的公开agent聊天来引入要优化的内容吗？
注： 这里提到的agent是指豆包、grok、gemini、千问等直接面向C端的产品。&lt;/code&gt;&lt;/pre&gt; 
     &lt;p&gt;然后给我的内容基本上对齐了&lt;/p&gt; 
     &lt;p&gt;里面最喜欢的答复是这句： 不要把talk当feeding，而要当testing🤣&lt;/p&gt; 
     &lt;p&gt;2013年还是2014年忘了，在天猫干了大半年的SEO，最后落得个3.25🤣&lt;/p&gt; 
     &lt;p&gt;国际站的经验是牛逼&lt;/p&gt; 
     &lt;p&gt;放国内就不好使了&lt;/p&gt; 
     &lt;p&gt;尤其是你还是巨头平台的情况下&lt;/p&gt; 
     &lt;p&gt;不花钱是不可能的🤣&lt;/p&gt; &lt;!-- tail --&gt; 
     &lt;ins class="adsbygoogle" style="display:block" data-ad-client="ca-pub-3687639021943715" data-ad-slot="7874087130" data-ad-format="auto" data-full-width-responsive="true"&gt;&lt;/ins&gt; 
     &lt;script&gt;
                 (adsbygoogle = window.adsbygoogle || []).push({});
            &lt;/script&gt; 
     &lt;hr&gt; 
     &lt;div&gt; &lt;a href="/posts.html"&gt; &lt;b&gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; 更多阅读 &amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt; &lt;/b&gt;&lt;/a&gt; 
     &lt;/div&gt; 
     &lt;div id="random_posts"&gt; 
      &lt;div class="alert alert-light" role="alert"&gt; &lt;a href="/posts/2023-09-21-game-and-bizapp.html"&gt;游戏与业务系统的底层逻辑对比 &lt;/a&gt; 
      &lt;/div&gt; 
      &lt;div class="alert alert-light" role="alert"&gt; &lt;a href="/posts/2024-11-12-first-kick-someone.html"&gt;第一次踢人 &lt;/a&gt; 
      &lt;/div&gt; 
      &lt;div class="alert alert-light" role="alert"&gt; &lt;a href="/posts/2017-09-08-ridiculous-dream-on-stock-price.html"&gt;荒诞之梦 &lt;/a&gt; 
      &lt;/div&gt; 
     &lt;/div&gt; 
     &lt;hr&gt; 
     &lt;div id="comments"&gt;&lt;/div&gt; 
     &lt;hr&gt; &lt;!-- Section CTA --&gt; 
     &lt;section class="overflow-x-clip bg-zinc-50 py-16 md:py-24"&gt; 
      &lt;div class="relative mx-auto w-full max-w-screen-xl px-4"&gt; 
       &lt;div class="relative z-10 w-full"&gt; &lt;!-- 福强私学推荐 --&gt; 
        &lt;div class="mx-auto max-w-screen-md"&gt; 
         &lt;h2 class="mb-4 text-center text-4xl font-bold md:text-5xl"&gt;&lt;a href="https://afoo.me/kb.html" class="border-b"&gt;「福强私学」&lt;/a&gt;来一个？&lt;/h2&gt; 
         &lt;p class="mx-auto mb-8 w-full text-center text-lg leading-8 text-zinc-700 md:w-5/6 md:text-xl"&gt;「福强私学」, 一部沉淀了个人成长、技术与架构、组织与管理以及商业上的方法与心法的百科全书。&lt;/p&gt; 
        &lt;/div&gt; 
        &lt;div class="mx-auto mt-6 w-full md:mt-12 md:w-4/5"&gt; &lt;a href="https://afoo.me/kb.html"&gt; &lt;img alt="footer img for kb.afoo.me" loading="lazy" width="2911" height="1961" decoding="async" data-nimg="1" class="mx-auto rounded-lg object-contain shadow-lg sm:rounded-2xl lg:rounded-3xl" style="color:transparent" src="https://og.afoo.me/?url=footer"&gt; &lt;/a&gt; 
        &lt;/div&gt; &lt;!-- 小报童推荐 --&gt; 
        &lt;div class="mx-auto max-w-screen-md"&gt; 
         &lt;h2 class="mt-8 mb-4 text-center text-4xl font-bold md:text-5xl"&gt;&lt;a href="https://xiaobot.net/p/aifd" class="border-b"&gt;福强老师的 AI 通识课&lt;/a&gt;&lt;/h2&gt;&lt;a href="https://xiaobot.net/p/aifd" class="border-b"&gt; &lt;/a&gt;
        &lt;/div&gt;&lt;a href="https://xiaobot.net/p/aifd" class="border-b"&gt; &lt;/a&gt;
        &lt;div class="mx-auto mt-6 w-full md:mt-12 md:w-4/5"&gt;
         &lt;a href="https://xiaobot.net/p/aifd" class="border-b"&gt; &lt;/a&gt;&lt;a href="https://xiaobot.net/p/aifd"&gt; &lt;img alt="footer img for kb.afoo.me" loading="lazy" width="2911" height="1961" decoding="async" data-nimg="1" class="mx-auto rounded-lg object-contain shadow-lg sm:rounded-2xl lg:rounded-3xl" style="color:transparent" src="/images/xbt-footer.webp"&gt; &lt;/a&gt; 
        &lt;/div&gt; 
        &lt;div class="mx-auto mt-6 w-full md:mt-12 md:w-4/5"&gt; 
         &lt;img alt="footer img for kb.afoo.me" loading="lazy" decoding="async" data-nimg="1" class="mx-auto p-3" style="color:transparent" src="/images/footer-links-2025.webp"&gt; 
        &lt;/div&gt; 
       &lt;/div&gt; 
      &lt;/div&gt; 
     &lt;/section&gt; 
     &lt;hr&gt; 
     &lt;p&gt; &lt;span style="font-size: xx-large;"&gt; 开天窗，拉认知，订阅「福报」，即刻拥有自己的全模态人工智能。 &lt;/span&gt; &lt;/p&gt; &lt;a href="https://wfq.gumroad.com/l/fb"&gt; &lt;img src="/images/fb_subscribe_v2.jpg" alt="订阅「福报」"&gt; &lt;/a&gt; 
     &lt;hr&gt; 
     &lt;div hx-get="https://toolfooter.afoo.me/" hx-trigger="revealed" htmx-indicator="#tfloader"&gt; 
      &lt;div id="tfloader" class="x-indicator"&gt; 
       &lt;svg width="57" height="57" viewbox="0 0 57 57" xmlns="http://www.w3.org/2000/svg" stroke="#3F83F8"&gt; &lt;g fill="none" fill-rule="evenodd"&gt; 
         &lt;g transform="translate(1 1)" stroke-width="2"&gt; 
          &lt;circle cx="5" cy="50" r="5"&gt; 
           &lt;animate attributename="cy" begin="0s" dur="2.2s" values="50;5;50;50" calcmode="linear" repeatcount="indefinite" /&gt; 
           &lt;animate attributename="cx" begin="0s" dur="2.2s" values="5;27;49;5" calcmode="linear" repeatcount="indefinite" /&gt; 
          &lt;/circle&gt; 
          &lt;circle cx="27" cy="5" r="5"&gt; 
           &lt;animate attributename="cy" begin="0s" dur="2.2s" from="5" to="5" values="5;50;50;5" calcmode="linear" repeatcount="indefinite" /&gt; 
           &lt;animate attributename="cx" begin="0s" dur="2.2s" from="27" to="27" values="27;49;5;27" calcmode="linear" repeatcount="indefinite" /&gt; 
          &lt;/circle&gt; 
          &lt;circle cx="49" cy="50" r="5"&gt; 
           &lt;animate attributename="cy" begin="0s" dur="2.2s" values="50;50;5;50" calcmode="linear" repeatcount="indefinite" /&gt; 
           &lt;animate attributename="cx" from="49" to="49" begin="0s" dur="2.2s" values="49;5;27;49" calcmode="linear" repeatcount="indefinite" /&gt; 
          &lt;/circle&gt; 
         &lt;/g&gt; 
        &lt;/g&gt; 
       &lt;/svg&gt; 
      &lt;/div&gt; 
     &lt;/div&gt; 
    &lt;/div&gt; 
   &lt;/section&gt; 
  &lt;/main&gt; 
  &lt;div style="position: fixed; left: 0; bottom: 0; padding: 10px; z-index: 1000;"&gt; 
   &lt;img src="/icons/Written-By-Human-Not-By-AI-Badge-black@2x.png" alt loading="lazy"&gt; 
  &lt;/div&gt; 
  &lt;footer class="border-t border-gray-200 dark:border-slate-800"&gt; 
   &lt;div class="max-w-6xl mx-auto px-4 sm:px-6"&gt; 
    &lt;div class="md:flex md:items-center md:justify-between py-6 md:py-8"&gt; 
     &lt;ul class="flex mb-4 md:order-1 -ml-2 md:ml-4 md:mb-0"&gt; 
      &lt;li&gt; &lt;a class="text-gray-500 dark:text-gray-400 hover:bg-gray-100 dark:hover:bg-gray-700 focus:outline-none focus:ring-4 focus:ring-gray-200 dark:focus:ring-gray-700 rounded-lg text-sm p-2.5 inline-flex items-center" aria-label="Twitter" href="https://twitter.com/afoo_me"&gt; 
        &lt;svg viewbox="0 0 24 24" class="w-5 h-5" astro-icon="tabler:brand-twitter"&gt; &lt;path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M22 4.01c-1 .49-1.98.689-3 .99-1.121-1.265-2.783-1.335-4.38-.737S11.977 6.323 12 8v1c-3.245.083-6.135-1.395-8-4 0 0-4.182 7.433 4 11-1.872 1.247-3.739 2.088-6 2 3.308 1.803 6.913 2.423 10.034 1.517 3.58-1.04 6.522-3.723 7.651-7.742a13.84 13.84 0 0 0 .497-3.753C20.18 7.773 21.692 5.25 22 4.009z"&gt; 
         &lt;/path&gt; 
        &lt;/svg&gt; &lt;/a&gt; &lt;/li&gt; 
      &lt;li&gt; &lt;a class="text-gray-500 dark:text-gray-400 hover:bg-gray-100 dark:hover:bg-gray-700 focus:outline-none focus:ring-4 focus:ring-gray-200 dark:focus:ring-gray-700 rounded-lg text-sm p-2.5 inline-flex items-center" aria-label="Facebook" href="https://www.facebook.com/fujohnwang/"&gt; 
        &lt;svg viewbox="0 0 24 24" class="w-5 h-5" astro-icon="tabler:brand-facebook"&gt; &lt;path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M7 10v4h3v7h4v-7h3l1-4h-4V8a1 1 0 0 1 1-1h3V3h-3a5 5 0 0 0-5 5v2H7"&gt;&lt;/path&gt; 
        &lt;/svg&gt; &lt;/a&gt; &lt;/li&gt; 
      &lt;li&gt; &lt;a class="text-gray-500 dark:text-gray-400 hover:bg-gray-100 dark:hover:bg-gray-700 focus:outline-none focus:ring-4 focus:ring-gray-200 dark:focus:ring-gray-700 rounded-lg text-sm p-2.5 inline-flex items-center" aria-label="Github" href="https://github.com/fujohnwang"&gt; 
        &lt;svg viewbox="0 0 24 24" class="w-5 h-5" astro-icon="tabler:brand-github"&gt; &lt;path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 19c-4.3 1.4-4.3-2.5-6-3m12 5v-3.5c0-1 .1-1.4-.5-2 2.8-.3 5.5-1.4 5.5-6a4.6 4.6 0 0 0-1.3-3.2 4.2 4.2 0 0 0-.1-3.2s-1.1-.3-3.5 1.3a12.3 12.3 0 0 0-6.2 0C6.5 2.8 5.4 3.1 5.4 3.1a4.2 4.2 0 0 0-.1 3.2A4.6 4.6 0 0 0 4 9.5c0 4.6 2.7 5.7 5.5 6-.6.6-.6 1.2-.5 2V21"&gt; 
         &lt;/path&gt; 
        &lt;/svg&gt; &lt;/a&gt; &lt;/li&gt; 
     &lt;/ul&gt; 
     &lt;div class="text-sm text-gray-700 mr-4 dark:text-slate-400"&gt; &lt;span class="w-5 h-5 md:w-6 md:h-6 md:-mt-0.5 bg-cover mr-1.5 float-left rounded-sm"&gt; &lt;img src="https://afoo.me/favicon.svg" class="rounded-md" alt&gt; &lt;/span&gt; Copyright © 王福强个人版权所有 - Since 2004 (Everything is homebrewed with &lt;a href="https://pandoc.org/"&gt;Pandoc&lt;/a&gt; and Markdown, little &lt;a href="https://www.scala-lang.org/"&gt;Scala&lt;/a&gt; also included.) 
     &lt;/div&gt; 
    &lt;/div&gt; 
   &lt;/div&gt; 
  &lt;/footer&gt; 
  &lt;script&gt;
        // Set "light" theme as default
        if (!localStorage.theme) {
            localStorage.theme = "light";
        }

        if (
            localStorage.theme === 'dark' ||
            (!('theme' in localStorage) &amp;&amp; window.matchMedia('(prefers-color-scheme: dark)').matches)
        ) {
            document.documentElement.classList.add('dark');
        } else {
            document.documentElement.classList.remove('dark');
        }

        function attachEvent(selector, event, fn) {
            const matches = document.querySelectorAll(selector);
            if (matches &amp;&amp; matches.length) {
                matches.forEach((elem) =&gt; {
                    elem.addEventListener(event, () =&gt; fn(elem), false);
                });
            }
        }

        window.onload = function () {
            attachEvent('[data-toggle-menu]', 'click', function (elem) {
                elem.classList.toggle('expanded');
                document.body.classList.toggle('overflow-hidden');
                document.getElementById('header')?.classList.toggle('h-screen');
                document.querySelector('#header nav')?.classList.toggle('hidden');
            });
            attachEvent("[data-toggle-color-scheme]", "click", function () {
                    document.documentElement.classList.toggle("light");
                    localStorage.theme = "light";
                });
        };
        window.onpageshow = function () {
            const elem = document.querySelector('[data-toggle-menu]');
            if (elem) {
                elem.classList.remove('expanded');
            }
            document.body.classList.remove('overflow-hidden');
            document.getElementById('header')?.classList.remove('h-screen');
            document.querySelector('#header nav')?.classList.add('hidden');
        };
    &lt;/script&gt; 
  &lt;script type="text/javascript"&gt;
        var gitalk = new Gitalk({
          clientID: '518a605d711883414ac0',
          clientSecret: '69fb8ccc0616c5bcbc64d24ece0d06d279da91ff',
          repo: 'afoo.me.comments',
          owner: 'fujohnwang',
          admin: ['fujohnwang'],
          id: location.pathname.substring(0, 49),      // Ensure uniqueness and length less than 50
          distractionFreeMode: false  // Facebook-like distraction free mode
        })
        gitalk.render('comments')
    &lt;/script&gt; 
  &lt;script src="https://formspree.io/js/formbutton-v1.min.js" defer&gt;&lt;/script&gt; 
  &lt;script&gt;
  /* paste this line in verbatim */
  window.formbutton=window.formbutton||function(){(formbutton.q=formbutton.q||[]).push(arguments)};
  /* customize formbutton below*/     
  formbutton("create", {
    action: "https://formspree.io/f/xknlpkkd",
    title: "有什么可以帮到您？💕💕💕 How can I help you?",
    buttonImg: "&lt;img src='https://afoo.me/hero3/70.webp' alt/&gt;",
    fields: [
      { 
        type: "email", 
        label: "您的电子邮箱（方便与您联系）:", 
        name: "email",
        required: true,
        placeholder: "your@email.com"
      },
      {
        type: "textarea",
        label: "您想提交的反馈和询问信息:",
        name: "message",
        placeholder: "What's on your mind?",
      },
      { type: "submit" }      
    ],
    styles: {
      title: {
        backgroundColor: "blue"
      },
      button: {
        backgroundColor: "blue"
      }
    }
  });
&lt;/script&gt; 
  &lt;script&gt;
	// tooltips
	tippy('#aiedu', {
        content: "As to AI nowadays, LLM and Stable Diffusion are hot even hottest among them, If your want to both know-why and know-how with them, instead of only know-how which can't repeat itself, you should get you to https://ai.afoo.me right now ❗"
    });  
&lt;/script&gt;  
 &lt;/body&gt;
&lt;/html&gt;</description>
      <pubDate>Mon, 21 Sep 2026 16:00:00 GMT</pubDate>
      <guid>http://afoo.me/posts/2026-09-22-seo-and-geo-questions.html</guid>
      <dc:date>2026-09-21T16:00:00Z</dc:date>
    </item>
    <item>
      <title>真教育引导，假教育约束。</title>
      <link>http://afoo.me/posts/2026-09-17-pros-and-cons-of-education.html</link>
      <description>&lt;!doctype html&gt;
&lt;html lang="zh" class="motion-safe:scroll-smooth 2xl:text-[20px]"&gt; 
 &lt;head&gt; 
  &lt;meta charset="utf-8"&gt; 
  &lt;meta name="keywords" content="真教育引导，假教育约束。 - 架构师， 架构士，架构教练, 教练, 个人成长, 组织成长, 独立顾问, architecture, book author, thinker, fighter, 架构, 思考, 技术, 武术, 哲学"&gt; 
  &lt;meta name="description" content="真教育引导，假教育约束。 - 福强说，扶墙老师说，王福强的个人博客， 一个架构士的思考与沉淀"&gt; 
  &lt;meta name="author" content="王福强"&gt; 
  &lt;meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"&gt; 
  &lt;meta http-equiv="Content-Type" content="text/html; charset=UTF-8"&gt; 
  &lt;meta name="robots" content="index,follow"&gt; 
  &lt;title&gt;真教育引导，假教育约束。 -王福强的个人博客：一个架构士的思考与沉淀&lt;/title&gt; 
  &lt;meta name="date" content="2026-09-17"&gt; 
  &lt;meta property="og:title" content="真教育引导，假教育约束。"&gt; 
  &lt;meta property="og:type" content="landing page"&gt; 
  &lt;meta property="og:url" content="https://afoo.me/posts/2026-09-17-pros-and-cons-of-education.html"&gt; 
  &lt;meta property="og:image" content="https://og.afoo.me?url=https://afoo.me/posts/2026-09-17-pros-and-cons-of-education.html"&gt; 
  &lt;meta name="twitter:card" content="summary_large_image"&gt; 
  &lt;meta name="twitter:title" content="真教育引导，假教育约束。"&gt; 
  &lt;meta name="twitter:site" content="@afoo_me"&gt; 
  &lt;meta name="twitter:creator" content="@afoo_me"&gt; 
  &lt;meta name="twitter:image" content="https://og.afoo.me?url=https://afoo.me/posts/2026-09-17-pros-and-cons-of-education.html"&gt; 
  &lt;meta name="twitter:description" content="真教育引导，假教育约束。 - 王福强的个人博客， 一个架构士的思考与沉淀"&gt; 
  &lt;link rel="shortcut icon" href="/favicon.ico"&gt; 
  &lt;link rel="canonical" href="https://afoo.me/posts/2026-09-17-pros-and-cons-of-education.html"&gt; 
  &lt;link rel="icon" type="image/svg+xml" href="https://afoo.me/favicon.svg"&gt; 
  &lt;link rel="mask-icon" href="https://afoo.me/favicon.svg" color="#3383F8"&gt; 
  &lt;script src="https://afoo.me/js/htmx.min.js"&gt;&lt;/script&gt; 
  &lt;link rel="stylesheet" href="https://unpkg.com/gitalk/dist/gitalk.css"&gt; 
  &lt;script src="https://unpkg.com/gitalk/dist/gitalk.min.js"&gt;&lt;/script&gt; 
  &lt;script src="https://afoo.me/js/popper.min.js"&gt;&lt;/script&gt; 
  &lt;script src="https://afoo.me/js/tippy.min.js"&gt;&lt;/script&gt; 
  &lt;link rel="stylesheet" href="/css/af.css"&gt; 
  &lt;link rel="stylesheet" href="/css/components.css"&gt; 
  &lt;link ref="stylesheet" href="/css/pygments.css"&gt; 
  &lt;style type="text/css"&gt;
        pre &gt; code{
          white-space: pre-wrap;
          font-family: monospace;
          font-size: 14px;
          /* border-left: blueviolet;
          border-left-width: thick;
          border-left-style: double;
          padding-left: 1rem !important; */
        }
        
        .x-indicator{
            display:none;
        }
        .htmx-request .x-indicator{
            display:inline;
        }
        .htmx-request.x-indicator{
            display:inline;
        }
    &lt;/style&gt; 
  &lt;script type="application/ld+json"&gt;
    {
      "@context": "https://schema.org",
      "@type": "NewsArticle",
      "headline": "真教育引导，假教育约束。",
      "image": [
        "https://afoo.me/images/fb_subscribe.jpg"
       ],
      "datePublished": "2026-09-17",
      "author": [{
          "@type": "Person",
          "name": "王福强",
          "url": "https://afoo.me"
        }]
    }
  &lt;/script&gt; 
  &lt;script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-3687639021943715" crossorigin="anonymous"&gt;&lt;/script&gt; 
 &lt;/head&gt; 
 &lt;body class="antialiased text-slate-800 dark:text-slate-300 tracking-tight bg-slate-50 dark:bg-gray-900 vsc-initialized"&gt; 
  &lt;header class="sticky top-0 z-40 flex-none mx-auto w-full bg-slate-50 md:bg-slate-50/90 dark:bg-gray-900 dark:md:bg-gray-900/90 md:backdrop-blur-sm border-b border-slate-200 dark:border-b-0" id="header"&gt; 
   &lt;div class="py-3 px-3 mx-auto w-full md:flex md:justify-between max-w-6xl md:px-4"&gt; 
    &lt;div class="flex justify-between"&gt; &lt;a class="flex items-center" href="https://afoo.me"&gt; &lt;span class="self-center ml-2 text-2xl font-extrabold text-slate-800 whitespace-nowrap dark:text-white"&gt; &lt;img src="/images/afoo.PNG" alt="logo" style="height:60px;"&gt; &lt;/span&gt; &lt;/a&gt; 
     &lt;div class="flex items-center md:hidden"&gt; &lt;button type="button" class="text-gray-500 dark:text-gray-400 hover:bg-gray-100 dark:hover:bg-gray-700 focus:outline-none focus:ring-4 focus:ring-gray-200 dark:focus:ring-gray-700 rounded-lg text-sm p-2.5 inline-flex items-center" aria-label="Toggle between Dark and Light mode" data-toggle-color-scheme=""&gt; 
       &lt;svg viewbox="0 0 24 24" class="w-6 h-6" astro-icon="tabler:sun"&gt; &lt;g fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" class="icon-tabler"&gt; 
         &lt;circle cx="12" cy="12" r="4"&gt;&lt;/circle&gt; 
         &lt;path d="M3 12h1m8-9v1m8 8h1m-9 8v1M5.6 5.6l.7.7m12.1-.7-.7.7m0 11.4.7.7m-12.1-.7-.7.7"&gt; 
         &lt;/path&gt; 
        &lt;/g&gt; 
       &lt;/svg&gt; &lt;/button&gt; &lt;button type="button" class="ml-1.5 text-gray-500 dark:text-gray-400 hover:bg-gray-100 dark:hover:bg-gray-800 focus:outline-none focus:ring-4 focus:ring-gray-200 dark:focus:ring-gray-700 rounded-lg text-sm p-2.5 inline-flex items-center transition" aria-label="Toggle Menu" data-toggle-menu=""&gt; 
       &lt;svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" preserveaspectratio="xMidYMid meet" viewbox="0 0 24 24" class="w-6 h-6" astro-icon="tabler:menu"&gt; &lt;g class="icon-tabler" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"&gt; 
         &lt;path d="M4 8h16"&gt;&lt;/path&gt; 
         &lt;path d="M4 16h16"&gt;&lt;/path&gt; 
        &lt;/g&gt; 
       &lt;/svg&gt; &lt;/button&gt; 
     &lt;/div&gt; 
    &lt;/div&gt; 
    &lt;nav class="items-center w-full md:w-auto hidden md:flex text-gray-600 dark:text-slate-200 h-screen md:h-auto" aria-label="Main navigation"&gt; 
     &lt;ul class="flex flex-col pt-8 md:pt-0 md:flex-row md:self-center w-full md:w-auto text-xl md:text-base"&gt; 
      &lt;li&gt;&lt;a class="font-medium hover:text-gray-900 dark:hover:text-white px-4 py-3 flex items-center transition duration-150 ease-in-out" href="https://kb.afoo.me/"&gt;福强私学&lt;/a&gt;&lt;/li&gt; 
      &lt;li&gt; &lt;a id="aiedu" class="font-medium hover:text-gray-900 dark:hover:text-white px-4 py-3 flex items-center transition duration-150 ease-in-out" href="http://ai.afoo.me"&gt; 福强AI学堂&lt;/a&gt; &lt;/li&gt; 
      &lt;li&gt; &lt;a class="font-medium hover:text-gray-900 dark:hover:text-white px-4 py-3 flex items-center transition duration-150 ease-in-out" href="http://jiagoubaike.com"&gt;架构百科&lt;/a&gt; &lt;/li&gt; 
      &lt;li&gt; &lt;a class="font-medium hover:text-gray-900 dark:hover:text-white px-4 py-3 flex items-center transition duration-150 ease-in-out" href="https://afoo.me/posts.html"&gt;博客文章 &lt;/a&gt; &lt;/li&gt; 
      &lt;li&gt; &lt;a class="font-medium hover:text-gray-900 dark:hover:text-white px-4 py-3 flex items-center transition duration-150 ease-in-out" href="https://afoo.me/books.html"&gt;创作出版&lt;/a&gt; &lt;/li&gt; 
      &lt;li&gt; &lt;a class="font-medium hover:text-gray-900 dark:hover:text-white px-4 py-3 flex items-center transition duration-150 ease-in-out" href="https://store.afoo.me"&gt;产品与服务&lt;/a&gt; &lt;/li&gt; 
      &lt;li&gt;&lt;a class="font-medium hover:text-gray-900 dark:hover:text-white px-4 py-3 flex items-center transition duration-150 ease-in-out" href="https://auth.afoo.me/user.html"&gt;登录信息&lt;/a&gt;&lt;/li&gt; 
      &lt;li&gt; &lt;a class="font-medium hover:text-gray-900 dark:hover:text-white px-4 py-3 flex items-center transition duration-150 ease-in-out" href="https://afoo.me/crosslinks.html"&gt;更多链接&lt;/a&gt; &lt;/li&gt; 
     &lt;/ul&gt; 
     &lt;div class="md:self-center flex items-center mb-4 md:mb-0 ml-2"&gt; 
      &lt;div class="hidden items-center md:flex"&gt; &lt;button type="button" class="text-gray-500 dark:text-gray-400 hover:bg-gray-100 dark:hover:bg-gray-700 focus:outline-none focus:ring-4 focus:ring-gray-200 dark:focus:ring-gray-700 rounded-lg text-sm p-2.5 inline-flex items-center" aria-label="Toggle between Dark and Light mode" data-toggle-color-scheme=""&gt; 
        &lt;svg viewbox="0 0 24 24" class="w-5 h-5" astro-icon="tabler:sun"&gt; &lt;g fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" class="icon-tabler"&gt; 
          &lt;circle cx="12" cy="12" r="4"&gt;&lt;/circle&gt; 
          &lt;path d="M3 12h1m8-9v1m8 8h1m-9 8v1M5.6 5.6l.7.7m12.1-.7-.7.7m0 11.4.7.7m-12.1-.7-.7.7"&gt; 
          &lt;/path&gt; 
         &lt;/g&gt; 
        &lt;/svg&gt; &lt;/button&gt; &lt;a class="text-gray-500 dark:text-gray-400 hover:bg-gray-100 dark:hover:bg-gray-700 focus:outline-none focus:ring-4 focus:ring-gray-200 dark:focus:ring-gray-700 rounded-lg text-sm p-2.5 inline-flex items-center" aria-label="RSS Feed" href="http://afoo.me/feeds.xml"&gt; 
        &lt;svg viewbox="0 0 24 24" class="w-5 h-5" astro-icon="tabler:rss"&gt; &lt;g fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" class="icon-tabler"&gt; 
          &lt;circle cx="5" cy="19" r="1"&gt;&lt;/circle&gt; 
          &lt;path d="M4 4a16 16 0 0 1 16 16M4 11a9 9 0 0 1 9 9"&gt;&lt;/path&gt; 
         &lt;/g&gt; 
        &lt;/svg&gt; &lt;/a&gt; 
      &lt;/div&gt; 
     &lt;/div&gt; 
    &lt;/nav&gt; 
   &lt;/div&gt; 
  &lt;/header&gt; 
  &lt;main&gt; 
   &lt;div id="leftSlot" class="visible md:invisible fixed top-0 left-0" style="width: 16rem;height: 80%;margin-top: 4rem;"&gt; &lt;!-- left --&gt; 
    &lt;ins class="adsbygoogle" style="display:block" data-ad-client="ca-pub-3687639021943715" data-ad-slot="3581141418" data-ad-format="auto" data-full-width-responsive="true"&gt;&lt;/ins&gt; 
    &lt;script&gt;
          (adsbygoogle = window.adsbygoogle || []).push({});
      &lt;/script&gt; 
   &lt;/div&gt; 
   &lt;div id="rightSlot" class="visible md:invisible fixed top-0 right-0" style="width: 16rem;height: 80%;margin-top: 4rem;"&gt; &lt;!-- right --&gt; 
    &lt;ins class="adsbygoogle" style="display:block" data-ad-client="ca-pub-3687639021943715" data-ad-slot="7030836806" data-ad-format="auto" data-full-width-responsive="true"&gt;&lt;/ins&gt; 
    &lt;script&gt;
           (adsbygoogle = window.adsbygoogle || []).push({});
      &lt;/script&gt; 
   &lt;/div&gt; 
   &lt;section class="text-gray-600 body-font relative"&gt; 
    &lt;div class="max-w-4xl mx-auto px-5 py-24 mb-12 prose prose-lg dark:prose-invert"&gt; 
     &lt;p class="lead"&gt; &lt;/p&gt;
     &lt;h1 class="title"&gt;真教育引导，假教育约束。&lt;/h1&gt; &lt;small&gt; &lt;h3 class="author"&gt;王福强&lt;/h3&gt; 
      &lt;div style="text-align: left;"&gt;
       2026-09-17
      &lt;/div&gt; &lt;/small&gt; 
     &lt;p&gt;&lt;/p&gt; &lt;!-- random --&gt; 
     &lt;ins class="adsbygoogle" style="display:block" data-ad-client="ca-pub-3687639021943715" data-ad-slot="2722720851" data-ad-format="auto" data-full-width-responsive="true"&gt;&lt;/ins&gt; 
     &lt;script&gt;
                 (adsbygoogle = window.adsbygoogle || []).push({});
            &lt;/script&gt; 
     &lt;hr&gt; 
     &lt;p&gt;所谓的“教育”，有一个可悲的地方，就是会抹杀个人的天性和直觉。&lt;/p&gt; 
     &lt;p&gt;为什么策划组织者都不是学习很好的学霸？&lt;/p&gt; 
     &lt;p&gt;因为他们做事，更多在用自身直觉和天赋，而不是教化后的机械重复。&lt;/p&gt; 
     &lt;p&gt;学霸或许很骄傲自己的学历和体面的工作&lt;/p&gt; 
     &lt;p&gt;但很难觉察到过往的教育对自身的束缚，&lt;/p&gt; 
     &lt;p&gt;而这种束缚&lt;/p&gt; 
     &lt;p&gt;是从你小时候&lt;/p&gt; 
     &lt;p&gt;体系化地、一点一滴地施加给你的&lt;/p&gt; 
     &lt;p&gt;所以&lt;/p&gt; 
     &lt;p&gt;潜移默化中&lt;/p&gt; 
     &lt;p&gt;你根本就意识不到&lt;/p&gt; 
     &lt;p&gt;为什么校学、家学、自学三位一体缺一不可？&lt;/p&gt; 
     &lt;p&gt;因为起码你还有交叉对比的机会&lt;/p&gt; 
     &lt;p&gt;假如你只接受一种&lt;/p&gt; 
     &lt;p&gt;那大概率你自己的思想其实不是你的&lt;/p&gt; 
     &lt;p&gt;只是你自己觉得是你的而已。&lt;/p&gt; 
     &lt;p&gt;比较悲观的一点是&lt;/p&gt; 
     &lt;p&gt;一旦某些草种下了&lt;/p&gt; 
     &lt;p&gt;再拔就极难了&lt;/p&gt; 
     &lt;p&gt;你看看“思”字&lt;/p&gt; 
     &lt;p&gt;心上一块田&lt;/p&gt; 
     &lt;p&gt;种啥自己要是说了不算&lt;/p&gt; 
     &lt;p&gt;那就别人替你种了&lt;/p&gt; 
     &lt;p&gt;至于收成是什么呢？&lt;/p&gt; 
     &lt;p&gt;只能你自己想了…&lt;/p&gt; 
     &lt;hr&gt; 
     &lt;p&gt;刷到这个视频有感，随便唠叨一句…&lt;/p&gt; 
     &lt;p&gt;&lt;a href="https://x.com/afoo_me/status/2100538970308526225"&gt;https://x.com/afoo_me/status/2100538970308526225&lt;/a&gt;&lt;/p&gt; &lt;!-- tail --&gt; 
     &lt;ins class="adsbygoogle" style="display:block" data-ad-client="ca-pub-3687639021943715" data-ad-slot="7874087130" data-ad-format="auto" data-full-width-responsive="true"&gt;&lt;/ins&gt; 
     &lt;script&gt;
                 (adsbygoogle = window.adsbygoogle || []).push({});
            &lt;/script&gt; 
     &lt;hr&gt; 
     &lt;div&gt; &lt;a href="/posts.html"&gt; &lt;b&gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; 更多阅读 &amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt; &lt;/b&gt;&lt;/a&gt; 
     &lt;/div&gt; 
     &lt;div id="random_posts"&gt; 
      &lt;div class="alert alert-light" role="alert"&gt; &lt;a href="/posts/2013-03-25-about_startup.html"&gt;about startup &lt;/a&gt; 
      &lt;/div&gt; 
      &lt;div class="alert alert-light" role="alert"&gt; &lt;a href="/posts/2019-03-18-body-uphold-spirit.html"&gt;精神再高贵顽强也经不起身体神殿的崩塌 &lt;/a&gt; 
      &lt;/div&gt; 
      &lt;div class="alert alert-light" role="alert"&gt; &lt;a href="/posts/2023-03-06-proxy-openai.html"&gt;如何构建OpenAI API代理？ &lt;/a&gt; 
      &lt;/div&gt; 
     &lt;/div&gt; 
     &lt;hr&gt; 
     &lt;div id="comments"&gt;&lt;/div&gt; 
     &lt;hr&gt; &lt;!-- Section CTA --&gt; 
     &lt;section class="overflow-x-clip bg-zinc-50 py-16 md:py-24"&gt; 
      &lt;div class="relative mx-auto w-full max-w-screen-xl px-4"&gt; 
       &lt;div class="relative z-10 w-full"&gt; &lt;!-- 福强私学推荐 --&gt; 
        &lt;div class="mx-auto max-w-screen-md"&gt; 
         &lt;h2 class="mb-4 text-center text-4xl font-bold md:text-5xl"&gt;&lt;a href="https://afoo.me/kb.html" class="border-b"&gt;「福强私学」&lt;/a&gt;来一个？&lt;/h2&gt; 
         &lt;p class="mx-auto mb-8 w-full text-center text-lg leading-8 text-zinc-700 md:w-5/6 md:text-xl"&gt;「福强私学」, 一部沉淀了个人成长、技术与架构、组织与管理以及商业上的方法与心法的百科全书。&lt;/p&gt; 
        &lt;/div&gt; 
        &lt;div class="mx-auto mt-6 w-full md:mt-12 md:w-4/5"&gt; &lt;a href="https://afoo.me/kb.html"&gt; &lt;img alt="footer img for kb.afoo.me" loading="lazy" width="2911" height="1961" decoding="async" data-nimg="1" class="mx-auto rounded-lg object-contain shadow-lg sm:rounded-2xl lg:rounded-3xl" style="color:transparent" src="https://og.afoo.me/?url=footer"&gt; &lt;/a&gt; 
        &lt;/div&gt; &lt;!-- 小报童推荐 --&gt; 
        &lt;div class="mx-auto max-w-screen-md"&gt; 
         &lt;h2 class="mt-8 mb-4 text-center text-4xl font-bold md:text-5xl"&gt;&lt;a href="https://xiaobot.net/p/aifd" class="border-b"&gt;福强老师的 AI 通识课&lt;/a&gt;&lt;/h2&gt;&lt;a href="https://xiaobot.net/p/aifd" class="border-b"&gt; &lt;/a&gt;
        &lt;/div&gt;&lt;a href="https://xiaobot.net/p/aifd" class="border-b"&gt; &lt;/a&gt;
        &lt;div class="mx-auto mt-6 w-full md:mt-12 md:w-4/5"&gt;
         &lt;a href="https://xiaobot.net/p/aifd" class="border-b"&gt; &lt;/a&gt;&lt;a href="https://xiaobot.net/p/aifd"&gt; &lt;img alt="footer img for kb.afoo.me" loading="lazy" width="2911" height="1961" decoding="async" data-nimg="1" class="mx-auto rounded-lg object-contain shadow-lg sm:rounded-2xl lg:rounded-3xl" style="color:transparent" src="/images/xbt-footer.webp"&gt; &lt;/a&gt; 
        &lt;/div&gt; 
        &lt;div class="mx-auto mt-6 w-full md:mt-12 md:w-4/5"&gt; 
         &lt;img alt="footer img for kb.afoo.me" loading="lazy" decoding="async" data-nimg="1" class="mx-auto p-3" style="color:transparent" src="/images/footer-links-2025.webp"&gt; 
        &lt;/div&gt; 
       &lt;/div&gt; 
      &lt;/div&gt; 
     &lt;/section&gt; 
     &lt;hr&gt; 
     &lt;p&gt; &lt;span style="font-size: xx-large;"&gt; 开天窗，拉认知，订阅「福报」，即刻拥有自己的全模态人工智能。 &lt;/span&gt; &lt;/p&gt; &lt;a href="https://wfq.gumroad.com/l/fb"&gt; &lt;img src="/images/fb_subscribe_v2.jpg" alt="订阅「福报」"&gt; &lt;/a&gt; 
     &lt;hr&gt; 
     &lt;div hx-get="https://toolfooter.afoo.me/" hx-trigger="revealed" htmx-indicator="#tfloader"&gt; 
      &lt;div id="tfloader" class="x-indicator"&gt; 
       &lt;svg width="57" height="57" viewbox="0 0 57 57" xmlns="http://www.w3.org/2000/svg" stroke="#3F83F8"&gt; &lt;g fill="none" fill-rule="evenodd"&gt; 
         &lt;g transform="translate(1 1)" stroke-width="2"&gt; 
          &lt;circle cx="5" cy="50" r="5"&gt; 
           &lt;animate attributename="cy" begin="0s" dur="2.2s" values="50;5;50;50" calcmode="linear" repeatcount="indefinite" /&gt; 
           &lt;animate attributename="cx" begin="0s" dur="2.2s" values="5;27;49;5" calcmode="linear" repeatcount="indefinite" /&gt; 
          &lt;/circle&gt; 
          &lt;circle cx="27" cy="5" r="5"&gt; 
           &lt;animate attributename="cy" begin="0s" dur="2.2s" from="5" to="5" values="5;50;50;5" calcmode="linear" repeatcount="indefinite" /&gt; 
           &lt;animate attributename="cx" begin="0s" dur="2.2s" from="27" to="27" values="27;49;5;27" calcmode="linear" repeatcount="indefinite" /&gt; 
          &lt;/circle&gt; 
          &lt;circle cx="49" cy="50" r="5"&gt; 
           &lt;animate attributename="cy" begin="0s" dur="2.2s" values="50;50;5;50" calcmode="linear" repeatcount="indefinite" /&gt; 
           &lt;animate attributename="cx" from="49" to="49" begin="0s" dur="2.2s" values="49;5;27;49" calcmode="linear" repeatcount="indefinite" /&gt; 
          &lt;/circle&gt; 
         &lt;/g&gt; 
        &lt;/g&gt; 
       &lt;/svg&gt; 
      &lt;/div&gt; 
     &lt;/div&gt; 
    &lt;/div&gt; 
   &lt;/section&gt; 
  &lt;/main&gt; 
  &lt;div style="position: fixed; left: 0; bottom: 0; padding: 10px; z-index: 1000;"&gt; 
   &lt;img src="/icons/Written-By-Human-Not-By-AI-Badge-black@2x.png" alt loading="lazy"&gt; 
  &lt;/div&gt; 
  &lt;footer class="border-t border-gray-200 dark:border-slate-800"&gt; 
   &lt;div class="max-w-6xl mx-auto px-4 sm:px-6"&gt; 
    &lt;div class="md:flex md:items-center md:justify-between py-6 md:py-8"&gt; 
     &lt;ul class="flex mb-4 md:order-1 -ml-2 md:ml-4 md:mb-0"&gt; 
      &lt;li&gt; &lt;a class="text-gray-500 dark:text-gray-400 hover:bg-gray-100 dark:hover:bg-gray-700 focus:outline-none focus:ring-4 focus:ring-gray-200 dark:focus:ring-gray-700 rounded-lg text-sm p-2.5 inline-flex items-center" aria-label="Twitter" href="https://twitter.com/afoo_me"&gt; 
        &lt;svg viewbox="0 0 24 24" class="w-5 h-5" astro-icon="tabler:brand-twitter"&gt; &lt;path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M22 4.01c-1 .49-1.98.689-3 .99-1.121-1.265-2.783-1.335-4.38-.737S11.977 6.323 12 8v1c-3.245.083-6.135-1.395-8-4 0 0-4.182 7.433 4 11-1.872 1.247-3.739 2.088-6 2 3.308 1.803 6.913 2.423 10.034 1.517 3.58-1.04 6.522-3.723 7.651-7.742a13.84 13.84 0 0 0 .497-3.753C20.18 7.773 21.692 5.25 22 4.009z"&gt; 
         &lt;/path&gt; 
        &lt;/svg&gt; &lt;/a&gt; &lt;/li&gt; 
      &lt;li&gt; &lt;a class="text-gray-500 dark:text-gray-400 hover:bg-gray-100 dark:hover:bg-gray-700 focus:outline-none focus:ring-4 focus:ring-gray-200 dark:focus:ring-gray-700 rounded-lg text-sm p-2.5 inline-flex items-center" aria-label="Facebook" href="https://www.facebook.com/fujohnwang/"&gt; 
        &lt;svg viewbox="0 0 24 24" class="w-5 h-5" astro-icon="tabler:brand-facebook"&gt; &lt;path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M7 10v4h3v7h4v-7h3l1-4h-4V8a1 1 0 0 1 1-1h3V3h-3a5 5 0 0 0-5 5v2H7"&gt;&lt;/path&gt; 
        &lt;/svg&gt; &lt;/a&gt; &lt;/li&gt; 
      &lt;li&gt; &lt;a class="text-gray-500 dark:text-gray-400 hover:bg-gray-100 dark:hover:bg-gray-700 focus:outline-none focus:ring-4 focus:ring-gray-200 dark:focus:ring-gray-700 rounded-lg text-sm p-2.5 inline-flex items-center" aria-label="Github" href="https://github.com/fujohnwang"&gt; 
        &lt;svg viewbox="0 0 24 24" class="w-5 h-5" astro-icon="tabler:brand-github"&gt; &lt;path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 19c-4.3 1.4-4.3-2.5-6-3m12 5v-3.5c0-1 .1-1.4-.5-2 2.8-.3 5.5-1.4 5.5-6a4.6 4.6 0 0 0-1.3-3.2 4.2 4.2 0 0 0-.1-3.2s-1.1-.3-3.5 1.3a12.3 12.3 0 0 0-6.2 0C6.5 2.8 5.4 3.1 5.4 3.1a4.2 4.2 0 0 0-.1 3.2A4.6 4.6 0 0 0 4 9.5c0 4.6 2.7 5.7 5.5 6-.6.6-.6 1.2-.5 2V21"&gt; 
         &lt;/path&gt; 
        &lt;/svg&gt; &lt;/a&gt; &lt;/li&gt; 
     &lt;/ul&gt; 
     &lt;div class="text-sm text-gray-700 mr-4 dark:text-slate-400"&gt; &lt;span class="w-5 h-5 md:w-6 md:h-6 md:-mt-0.5 bg-cover mr-1.5 float-left rounded-sm"&gt; &lt;img src="https://afoo.me/favicon.svg" class="rounded-md" alt&gt; &lt;/span&gt; Copyright © 王福强个人版权所有 - Since 2004 (Everything is homebrewed with &lt;a href="https://pandoc.org/"&gt;Pandoc&lt;/a&gt; and Markdown, little &lt;a href="https://www.scala-lang.org/"&gt;Scala&lt;/a&gt; also included.) 
     &lt;/div&gt; 
    &lt;/div&gt; 
   &lt;/div&gt; 
  &lt;/footer&gt; 
  &lt;script&gt;
        // Set "light" theme as default
        if (!localStorage.theme) {
            localStorage.theme = "light";
        }

        if (
            localStorage.theme === 'dark' ||
            (!('theme' in localStorage) &amp;&amp; window.matchMedia('(prefers-color-scheme: dark)').matches)
        ) {
            document.documentElement.classList.add('dark');
        } else {
            document.documentElement.classList.remove('dark');
        }

        function attachEvent(selector, event, fn) {
            const matches = document.querySelectorAll(selector);
            if (matches &amp;&amp; matches.length) {
                matches.forEach((elem) =&gt; {
                    elem.addEventListener(event, () =&gt; fn(elem), false);
                });
            }
        }

        window.onload = function () {
            attachEvent('[data-toggle-menu]', 'click', function (elem) {
                elem.classList.toggle('expanded');
                document.body.classList.toggle('overflow-hidden');
                document.getElementById('header')?.classList.toggle('h-screen');
                document.querySelector('#header nav')?.classList.toggle('hidden');
            });
            attachEvent("[data-toggle-color-scheme]", "click", function () {
                    document.documentElement.classList.toggle("light");
                    localStorage.theme = "light";
                });
        };
        window.onpageshow = function () {
            const elem = document.querySelector('[data-toggle-menu]');
            if (elem) {
                elem.classList.remove('expanded');
            }
            document.body.classList.remove('overflow-hidden');
            document.getElementById('header')?.classList.remove('h-screen');
            document.querySelector('#header nav')?.classList.add('hidden');
        };
    &lt;/script&gt; 
  &lt;script type="text/javascript"&gt;
        var gitalk = new Gitalk({
          clientID: '518a605d711883414ac0',
          clientSecret: '69fb8ccc0616c5bcbc64d24ece0d06d279da91ff',
          repo: 'afoo.me.comments',
          owner: 'fujohnwang',
          admin: ['fujohnwang'],
          id: location.pathname.substring(0, 49),      // Ensure uniqueness and length less than 50
          distractionFreeMode: false  // Facebook-like distraction free mode
        })
        gitalk.render('comments')
    &lt;/script&gt; 
  &lt;script src="https://formspree.io/js/formbutton-v1.min.js" defer&gt;&lt;/script&gt; 
  &lt;script&gt;
  /* paste this line in verbatim */
  window.formbutton=window.formbutton||function(){(formbutton.q=formbutton.q||[]).push(arguments)};
  /* customize formbutton below*/     
  formbutton("create", {
    action: "https://formspree.io/f/xknlpkkd",
    title: "有什么可以帮到您？💕💕💕 How can I help you?",
    buttonImg: "&lt;img src='https://afoo.me/hero3/70.webp' alt/&gt;",
    fields: [
      { 
        type: "email", 
        label: "您的电子邮箱（方便与您联系）:", 
        name: "email",
        required: true,
        placeholder: "your@email.com"
      },
      {
        type: "textarea",
        label: "您想提交的反馈和询问信息:",
        name: "message",
        placeholder: "What's on your mind?",
      },
      { type: "submit" }      
    ],
    styles: {
      title: {
        backgroundColor: "blue"
      },
      button: {
        backgroundColor: "blue"
      }
    }
  });
&lt;/script&gt; 
  &lt;script&gt;
	// tooltips
	tippy('#aiedu', {
        content: "As to AI nowadays, LLM and Stable Diffusion are hot even hottest among them, If your want to both know-why and know-how with them, instead of only know-how which can't repeat itself, you should get you to https://ai.afoo.me right now ❗"
    });  
&lt;/script&gt;  
 &lt;/body&gt;
&lt;/html&gt;</description>
      <pubDate>Wed, 16 Sep 2026 16:00:00 GMT</pubDate>
      <guid>http://afoo.me/posts/2026-09-17-pros-and-cons-of-education.html</guid>
      <dc:date>2026-09-16T16:00:00Z</dc:date>
    </item>
    <item>
      <title>AI 第一性原理</title>
      <link>http://afoo.me/posts/2026-09-16-first-principle-of-AI.html</link>
      <description>&lt;!doctype html&gt;
&lt;html lang="zh" class="motion-safe:scroll-smooth 2xl:text-[20px]"&gt; 
 &lt;head&gt; 
  &lt;meta charset="utf-8"&gt; 
  &lt;meta name="keywords" content="AI 第一性原理 - 架构师， 架构士，架构教练, 教练, 个人成长, 组织成长, 独立顾问, architecture, book author, thinker, fighter, 架构, 思考, 技术, 武术, 哲学"&gt; 
  &lt;meta name="description" content="AI 第一性原理 - 福强说，扶墙老师说，王福强的个人博客， 一个架构士的思考与沉淀"&gt; 
  &lt;meta name="author" content="王福强"&gt; 
  &lt;meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"&gt; 
  &lt;meta http-equiv="Content-Type" content="text/html; charset=UTF-8"&gt; 
  &lt;meta name="robots" content="index,follow"&gt; 
  &lt;title&gt;AI 第一性原理 -王福强的个人博客：一个架构士的思考与沉淀&lt;/title&gt; 
  &lt;meta name="date" content="2026-09-16"&gt; 
  &lt;meta property="og:title" content="AI 第一性原理"&gt; 
  &lt;meta property="og:type" content="landing page"&gt; 
  &lt;meta property="og:url" content="https://afoo.me/posts/2026-09-16-first-principle-of-AI.html"&gt; 
  &lt;meta property="og:image" content="https://og.afoo.me?url=https://afoo.me/posts/2026-09-16-first-principle-of-AI.html"&gt; 
  &lt;meta name="twitter:card" content="summary_large_image"&gt; 
  &lt;meta name="twitter:title" content="AI 第一性原理"&gt; 
  &lt;meta name="twitter:site" content="@afoo_me"&gt; 
  &lt;meta name="twitter:creator" content="@afoo_me"&gt; 
  &lt;meta name="twitter:image" content="https://og.afoo.me?url=https://afoo.me/posts/2026-09-16-first-principle-of-AI.html"&gt; 
  &lt;meta name="twitter:description" content="AI 第一性原理 - 王福强的个人博客， 一个架构士的思考与沉淀"&gt; 
  &lt;link rel="shortcut icon" href="/favicon.ico"&gt; 
  &lt;link rel="canonical" href="https://afoo.me/posts/2026-09-16-first-principle-of-AI.html"&gt; 
  &lt;link rel="icon" type="image/svg+xml" href="https://afoo.me/favicon.svg"&gt; 
  &lt;link rel="mask-icon" href="https://afoo.me/favicon.svg" color="#3383F8"&gt; 
  &lt;script src="https://afoo.me/js/htmx.min.js"&gt;&lt;/script&gt; 
  &lt;link rel="stylesheet" href="https://unpkg.com/gitalk/dist/gitalk.css"&gt; 
  &lt;script src="https://unpkg.com/gitalk/dist/gitalk.min.js"&gt;&lt;/script&gt; 
  &lt;script src="https://afoo.me/js/popper.min.js"&gt;&lt;/script&gt; 
  &lt;script src="https://afoo.me/js/tippy.min.js"&gt;&lt;/script&gt; 
  &lt;link rel="stylesheet" href="/css/af.css"&gt; 
  &lt;link rel="stylesheet" href="/css/components.css"&gt; 
  &lt;link ref="stylesheet" href="/css/pygments.css"&gt; 
  &lt;style type="text/css"&gt;
        pre &gt; code{
          white-space: pre-wrap;
          font-family: monospace;
          font-size: 14px;
          /* border-left: blueviolet;
          border-left-width: thick;
          border-left-style: double;
          padding-left: 1rem !important; */
        }
        
        .x-indicator{
            display:none;
        }
        .htmx-request .x-indicator{
            display:inline;
        }
        .htmx-request.x-indicator{
            display:inline;
        }
    &lt;/style&gt; 
  &lt;script type="application/ld+json"&gt;
    {
      "@context": "https://schema.org",
      "@type": "NewsArticle",
      "headline": "AI 第一性原理",
      "image": [
        "https://afoo.me/images/fb_subscribe.jpg"
       ],
      "datePublished": "2026-09-16",
      "author": [{
          "@type": "Person",
          "name": "王福强",
          "url": "https://afoo.me"
        }]
    }
  &lt;/script&gt; 
  &lt;script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-3687639021943715" crossorigin="anonymous"&gt;&lt;/script&gt; 
 &lt;/head&gt; 
 &lt;body class="antialiased text-slate-800 dark:text-slate-300 tracking-tight bg-slate-50 dark:bg-gray-900 vsc-initialized"&gt; 
  &lt;header class="sticky top-0 z-40 flex-none mx-auto w-full bg-slate-50 md:bg-slate-50/90 dark:bg-gray-900 dark:md:bg-gray-900/90 md:backdrop-blur-sm border-b border-slate-200 dark:border-b-0" id="header"&gt; 
   &lt;div class="py-3 px-3 mx-auto w-full md:flex md:justify-between max-w-6xl md:px-4"&gt; 
    &lt;div class="flex justify-between"&gt; &lt;a class="flex items-center" href="https://afoo.me"&gt; &lt;span class="self-center ml-2 text-2xl font-extrabold text-slate-800 whitespace-nowrap dark:text-white"&gt; &lt;img src="/images/afoo.PNG" alt="logo" style="height:60px;"&gt; &lt;/span&gt; &lt;/a&gt; 
     &lt;div class="flex items-center md:hidden"&gt; &lt;button type="button" class="text-gray-500 dark:text-gray-400 hover:bg-gray-100 dark:hover:bg-gray-700 focus:outline-none focus:ring-4 focus:ring-gray-200 dark:focus:ring-gray-700 rounded-lg text-sm p-2.5 inline-flex items-center" aria-label="Toggle between Dark and Light mode" data-toggle-color-scheme=""&gt; 
       &lt;svg viewbox="0 0 24 24" class="w-6 h-6" astro-icon="tabler:sun"&gt; &lt;g fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" class="icon-tabler"&gt; 
         &lt;circle cx="12" cy="12" r="4"&gt;&lt;/circle&gt; 
         &lt;path d="M3 12h1m8-9v1m8 8h1m-9 8v1M5.6 5.6l.7.7m12.1-.7-.7.7m0 11.4.7.7m-12.1-.7-.7.7"&gt; 
         &lt;/path&gt; 
        &lt;/g&gt; 
       &lt;/svg&gt; &lt;/button&gt; &lt;button type="button" class="ml-1.5 text-gray-500 dark:text-gray-400 hover:bg-gray-100 dark:hover:bg-gray-800 focus:outline-none focus:ring-4 focus:ring-gray-200 dark:focus:ring-gray-700 rounded-lg text-sm p-2.5 inline-flex items-center transition" aria-label="Toggle Menu" data-toggle-menu=""&gt; 
       &lt;svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" preserveaspectratio="xMidYMid meet" viewbox="0 0 24 24" class="w-6 h-6" astro-icon="tabler:menu"&gt; &lt;g class="icon-tabler" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"&gt; 
         &lt;path d="M4 8h16"&gt;&lt;/path&gt; 
         &lt;path d="M4 16h16"&gt;&lt;/path&gt; 
        &lt;/g&gt; 
       &lt;/svg&gt; &lt;/button&gt; 
     &lt;/div&gt; 
    &lt;/div&gt; 
    &lt;nav class="items-center w-full md:w-auto hidden md:flex text-gray-600 dark:text-slate-200 h-screen md:h-auto" aria-label="Main navigation"&gt; 
     &lt;ul class="flex flex-col pt-8 md:pt-0 md:flex-row md:self-center w-full md:w-auto text-xl md:text-base"&gt; 
      &lt;li&gt;&lt;a class="font-medium hover:text-gray-900 dark:hover:text-white px-4 py-3 flex items-center transition duration-150 ease-in-out" href="https://kb.afoo.me/"&gt;福强私学&lt;/a&gt;&lt;/li&gt; 
      &lt;li&gt; &lt;a id="aiedu" class="font-medium hover:text-gray-900 dark:hover:text-white px-4 py-3 flex items-center transition duration-150 ease-in-out" href="http://ai.afoo.me"&gt; 福强AI学堂&lt;/a&gt; &lt;/li&gt; 
      &lt;li&gt; &lt;a class="font-medium hover:text-gray-900 dark:hover:text-white px-4 py-3 flex items-center transition duration-150 ease-in-out" href="http://jiagoubaike.com"&gt;架构百科&lt;/a&gt; &lt;/li&gt; 
      &lt;li&gt; &lt;a class="font-medium hover:text-gray-900 dark:hover:text-white px-4 py-3 flex items-center transition duration-150 ease-in-out" href="https://afoo.me/posts.html"&gt;博客文章 &lt;/a&gt; &lt;/li&gt; 
      &lt;li&gt; &lt;a class="font-medium hover:text-gray-900 dark:hover:text-white px-4 py-3 flex items-center transition duration-150 ease-in-out" href="https://afoo.me/books.html"&gt;创作出版&lt;/a&gt; &lt;/li&gt; 
      &lt;li&gt; &lt;a class="font-medium hover:text-gray-900 dark:hover:text-white px-4 py-3 flex items-center transition duration-150 ease-in-out" href="https://store.afoo.me"&gt;产品与服务&lt;/a&gt; &lt;/li&gt; 
      &lt;li&gt;&lt;a class="font-medium hover:text-gray-900 dark:hover:text-white px-4 py-3 flex items-center transition duration-150 ease-in-out" href="https://auth.afoo.me/user.html"&gt;登录信息&lt;/a&gt;&lt;/li&gt; 
      &lt;li&gt; &lt;a class="font-medium hover:text-gray-900 dark:hover:text-white px-4 py-3 flex items-center transition duration-150 ease-in-out" href="https://afoo.me/crosslinks.html"&gt;更多链接&lt;/a&gt; &lt;/li&gt; 
     &lt;/ul&gt; 
     &lt;div class="md:self-center flex items-center mb-4 md:mb-0 ml-2"&gt; 
      &lt;div class="hidden items-center md:flex"&gt; &lt;button type="button" class="text-gray-500 dark:text-gray-400 hover:bg-gray-100 dark:hover:bg-gray-700 focus:outline-none focus:ring-4 focus:ring-gray-200 dark:focus:ring-gray-700 rounded-lg text-sm p-2.5 inline-flex items-center" aria-label="Toggle between Dark and Light mode" data-toggle-color-scheme=""&gt; 
        &lt;svg viewbox="0 0 24 24" class="w-5 h-5" astro-icon="tabler:sun"&gt; &lt;g fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" class="icon-tabler"&gt; 
          &lt;circle cx="12" cy="12" r="4"&gt;&lt;/circle&gt; 
          &lt;path d="M3 12h1m8-9v1m8 8h1m-9 8v1M5.6 5.6l.7.7m12.1-.7-.7.7m0 11.4.7.7m-12.1-.7-.7.7"&gt; 
          &lt;/path&gt; 
         &lt;/g&gt; 
        &lt;/svg&gt; &lt;/button&gt; &lt;a class="text-gray-500 dark:text-gray-400 hover:bg-gray-100 dark:hover:bg-gray-700 focus:outline-none focus:ring-4 focus:ring-gray-200 dark:focus:ring-gray-700 rounded-lg text-sm p-2.5 inline-flex items-center" aria-label="RSS Feed" href="http://afoo.me/feeds.xml"&gt; 
        &lt;svg viewbox="0 0 24 24" class="w-5 h-5" astro-icon="tabler:rss"&gt; &lt;g fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" class="icon-tabler"&gt; 
          &lt;circle cx="5" cy="19" r="1"&gt;&lt;/circle&gt; 
          &lt;path d="M4 4a16 16 0 0 1 16 16M4 11a9 9 0 0 1 9 9"&gt;&lt;/path&gt; 
         &lt;/g&gt; 
        &lt;/svg&gt; &lt;/a&gt; 
      &lt;/div&gt; 
     &lt;/div&gt; 
    &lt;/nav&gt; 
   &lt;/div&gt; 
  &lt;/header&gt; 
  &lt;main&gt; 
   &lt;div id="leftSlot" class="visible md:invisible fixed top-0 left-0" style="width: 16rem;height: 80%;margin-top: 4rem;"&gt; &lt;!-- left --&gt; 
    &lt;ins class="adsbygoogle" style="display:block" data-ad-client="ca-pub-3687639021943715" data-ad-slot="3581141418" data-ad-format="auto" data-full-width-responsive="true"&gt;&lt;/ins&gt; 
    &lt;script&gt;
          (adsbygoogle = window.adsbygoogle || []).push({});
      &lt;/script&gt; 
   &lt;/div&gt; 
   &lt;div id="rightSlot" class="visible md:invisible fixed top-0 right-0" style="width: 16rem;height: 80%;margin-top: 4rem;"&gt; &lt;!-- right --&gt; 
    &lt;ins class="adsbygoogle" style="display:block" data-ad-client="ca-pub-3687639021943715" data-ad-slot="7030836806" data-ad-format="auto" data-full-width-responsive="true"&gt;&lt;/ins&gt; 
    &lt;script&gt;
           (adsbygoogle = window.adsbygoogle || []).push({});
      &lt;/script&gt; 
   &lt;/div&gt; 
   &lt;section class="text-gray-600 body-font relative"&gt; 
    &lt;div class="max-w-4xl mx-auto px-5 py-24 mb-12 prose prose-lg dark:prose-invert"&gt; 
     &lt;p class="lead"&gt; &lt;/p&gt;
     &lt;h1 class="title"&gt;AI 第一性原理&lt;/h1&gt; &lt;small&gt; &lt;h3 class="author"&gt;王福强&lt;/h3&gt; 
      &lt;div style="text-align: left;"&gt;
       2026-09-16
      &lt;/div&gt; &lt;/small&gt; 
     &lt;p&gt;&lt;/p&gt; &lt;!-- random --&gt; 
     &lt;ins class="adsbygoogle" style="display:block" data-ad-client="ca-pub-3687639021943715" data-ad-slot="2722720851" data-ad-format="auto" data-full-width-responsive="true"&gt;&lt;/ins&gt; 
     &lt;script&gt;
                 (adsbygoogle = window.adsbygoogle || []).push({});
            &lt;/script&gt; 
     &lt;hr&gt; 
     &lt;p&gt;IMO&lt;/p&gt; 
     &lt;h2 id="ai是什么"&gt;1、AI是什么？&lt;/h2&gt; 
     &lt;p&gt;数据的统计。&lt;/p&gt; 
     &lt;h2 id="ai如何认知世界"&gt;2、AI如何认知世界？&lt;/h2&gt; 
     &lt;p&gt;模式匹配（或者说模仿）。&lt;/p&gt; 
     &lt;h2 id="ai的价值是什么"&gt;3、AI的价值是什么？&lt;/h2&gt; 
     &lt;p&gt;提高人的信息采集效率和输出效率。&lt;/p&gt; 
     &lt;h2 id="怎么使用ai"&gt;4、怎么使用AI？&lt;/h2&gt; 
     &lt;p&gt;干中学啊！&lt;/p&gt; 
     &lt;p&gt;大模型这灵丹妙药再牛逼，你也得先找准自己的病症才能用🤣&lt;/p&gt; &lt;!-- tail --&gt; 
     &lt;ins class="adsbygoogle" style="display:block" data-ad-client="ca-pub-3687639021943715" data-ad-slot="7874087130" data-ad-format="auto" data-full-width-responsive="true"&gt;&lt;/ins&gt; 
     &lt;script&gt;
                 (adsbygoogle = window.adsbygoogle || []).push({});
            &lt;/script&gt; 
     &lt;hr&gt; 
     &lt;div&gt; &lt;a href="/posts.html"&gt; &lt;b&gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; 更多阅读 &amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt; &lt;/b&gt;&lt;/a&gt; 
     &lt;/div&gt; 
     &lt;div id="random_posts"&gt; 
      &lt;div class="alert alert-light" role="alert"&gt; &lt;a href="/posts/2024-10-11-arch-story-HHH.html"&gt;听故事学架构之Henry Howard Holmes &lt;/a&gt; 
      &lt;/div&gt; 
      &lt;div class="alert alert-light" role="alert"&gt; &lt;a href="/posts/2023-08-03-west-and-east-2.html"&gt;别天天羡慕西方了 &lt;/a&gt; 
      &lt;/div&gt; 
      &lt;div class="alert alert-light" role="alert"&gt; &lt;a href="/posts/2022-11-11-LoD-explained.html"&gt;LOD Explained &lt;/a&gt; 
      &lt;/div&gt; 
     &lt;/div&gt; 
     &lt;hr&gt; 
     &lt;div id="comments"&gt;&lt;/div&gt; 
     &lt;hr&gt; &lt;!-- Section CTA --&gt; 
     &lt;section class="overflow-x-clip bg-zinc-50 py-16 md:py-24"&gt; 
      &lt;div class="relative mx-auto w-full max-w-screen-xl px-4"&gt; 
       &lt;div class="relative z-10 w-full"&gt; &lt;!-- 福强私学推荐 --&gt; 
        &lt;div class="mx-auto max-w-screen-md"&gt; 
         &lt;h2 class="mb-4 text-center text-4xl font-bold md:text-5xl"&gt;&lt;a href="https://afoo.me/kb.html" class="border-b"&gt;「福强私学」&lt;/a&gt;来一个？&lt;/h2&gt; 
         &lt;p class="mx-auto mb-8 w-full text-center text-lg leading-8 text-zinc-700 md:w-5/6 md:text-xl"&gt;「福强私学」, 一部沉淀了个人成长、技术与架构、组织与管理以及商业上的方法与心法的百科全书。&lt;/p&gt; 
        &lt;/div&gt; 
        &lt;div class="mx-auto mt-6 w-full md:mt-12 md:w-4/5"&gt; &lt;a href="https://afoo.me/kb.html"&gt; &lt;img alt="footer img for kb.afoo.me" loading="lazy" width="2911" height="1961" decoding="async" data-nimg="1" class="mx-auto rounded-lg object-contain shadow-lg sm:rounded-2xl lg:rounded-3xl" style="color:transparent" src="https://og.afoo.me/?url=footer"&gt; &lt;/a&gt; 
        &lt;/div&gt; &lt;!-- 小报童推荐 --&gt; 
        &lt;div class="mx-auto max-w-screen-md"&gt; 
         &lt;h2 class="mt-8 mb-4 text-center text-4xl font-bold md:text-5xl"&gt;&lt;a href="https://xiaobot.net/p/aifd" class="border-b"&gt;福强老师的 AI 通识课&lt;/a&gt;&lt;/h2&gt;&lt;a href="https://xiaobot.net/p/aifd" class="border-b"&gt; &lt;/a&gt;
        &lt;/div&gt;&lt;a href="https://xiaobot.net/p/aifd" class="border-b"&gt; &lt;/a&gt;
        &lt;div class="mx-auto mt-6 w-full md:mt-12 md:w-4/5"&gt;
         &lt;a href="https://xiaobot.net/p/aifd" class="border-b"&gt; &lt;/a&gt;&lt;a href="https://xiaobot.net/p/aifd"&gt; &lt;img alt="footer img for kb.afoo.me" loading="lazy" width="2911" height="1961" decoding="async" data-nimg="1" class="mx-auto rounded-lg object-contain shadow-lg sm:rounded-2xl lg:rounded-3xl" style="color:transparent" src="/images/xbt-footer.webp"&gt; &lt;/a&gt; 
        &lt;/div&gt; 
        &lt;div class="mx-auto mt-6 w-full md:mt-12 md:w-4/5"&gt; 
         &lt;img alt="footer img for kb.afoo.me" loading="lazy" decoding="async" data-nimg="1" class="mx-auto p-3" style="color:transparent" src="/images/footer-links-2025.webp"&gt; 
        &lt;/div&gt; 
       &lt;/div&gt; 
      &lt;/div&gt; 
     &lt;/section&gt; 
     &lt;hr&gt; 
     &lt;p&gt; &lt;span style="font-size: xx-large;"&gt; 开天窗，拉认知，订阅「福报」，即刻拥有自己的全模态人工智能。 &lt;/span&gt; &lt;/p&gt; &lt;a href="https://wfq.gumroad.com/l/fb"&gt; &lt;img src="/images/fb_subscribe_v2.jpg" alt="订阅「福报」"&gt; &lt;/a&gt; 
     &lt;hr&gt; 
     &lt;div hx-get="https://toolfooter.afoo.me/" hx-trigger="revealed" htmx-indicator="#tfloader"&gt; 
      &lt;div id="tfloader" class="x-indicator"&gt; 
       &lt;svg width="57" height="57" viewbox="0 0 57 57" xmlns="http://www.w3.org/2000/svg" stroke="#3F83F8"&gt; &lt;g fill="none" fill-rule="evenodd"&gt; 
         &lt;g transform="translate(1 1)" stroke-width="2"&gt; 
          &lt;circle cx="5" cy="50" r="5"&gt; 
           &lt;animate attributename="cy" begin="0s" dur="2.2s" values="50;5;50;50" calcmode="linear" repeatcount="indefinite" /&gt; 
           &lt;animate attributename="cx" begin="0s" dur="2.2s" values="5;27;49;5" calcmode="linear" repeatcount="indefinite" /&gt; 
          &lt;/circle&gt; 
          &lt;circle cx="27" cy="5" r="5"&gt; 
           &lt;animate attributename="cy" begin="0s" dur="2.2s" from="5" to="5" values="5;50;50;5" calcmode="linear" repeatcount="indefinite" /&gt; 
           &lt;animate attributename="cx" begin="0s" dur="2.2s" from="27" to="27" values="27;49;5;27" calcmode="linear" repeatcount="indefinite" /&gt; 
          &lt;/circle&gt; 
          &lt;circle cx="49" cy="50" r="5"&gt; 
           &lt;animate attributename="cy" begin="0s" dur="2.2s" values="50;50;5;50" calcmode="linear" repeatcount="indefinite" /&gt; 
           &lt;animate attributename="cx" from="49" to="49" begin="0s" dur="2.2s" values="49;5;27;49" calcmode="linear" repeatcount="indefinite" /&gt; 
          &lt;/circle&gt; 
         &lt;/g&gt; 
        &lt;/g&gt; 
       &lt;/svg&gt; 
      &lt;/div&gt; 
     &lt;/div&gt; 
    &lt;/div&gt; 
   &lt;/section&gt; 
  &lt;/main&gt; 
  &lt;div style="position: fixed; left: 0; bottom: 0; padding: 10px; z-index: 1000;"&gt; 
   &lt;img src="/icons/Written-By-Human-Not-By-AI-Badge-black@2x.png" alt loading="lazy"&gt; 
  &lt;/div&gt; 
  &lt;footer class="border-t border-gray-200 dark:border-slate-800"&gt; 
   &lt;div class="max-w-6xl mx-auto px-4 sm:px-6"&gt; 
    &lt;div class="md:flex md:items-center md:justify-between py-6 md:py-8"&gt; 
     &lt;ul class="flex mb-4 md:order-1 -ml-2 md:ml-4 md:mb-0"&gt; 
      &lt;li&gt; &lt;a class="text-gray-500 dark:text-gray-400 hover:bg-gray-100 dark:hover:bg-gray-700 focus:outline-none focus:ring-4 focus:ring-gray-200 dark:focus:ring-gray-700 rounded-lg text-sm p-2.5 inline-flex items-center" aria-label="Twitter" href="https://twitter.com/afoo_me"&gt; 
        &lt;svg viewbox="0 0 24 24" class="w-5 h-5" astro-icon="tabler:brand-twitter"&gt; &lt;path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M22 4.01c-1 .49-1.98.689-3 .99-1.121-1.265-2.783-1.335-4.38-.737S11.977 6.323 12 8v1c-3.245.083-6.135-1.395-8-4 0 0-4.182 7.433 4 11-1.872 1.247-3.739 2.088-6 2 3.308 1.803 6.913 2.423 10.034 1.517 3.58-1.04 6.522-3.723 7.651-7.742a13.84 13.84 0 0 0 .497-3.753C20.18 7.773 21.692 5.25 22 4.009z"&gt; 
         &lt;/path&gt; 
        &lt;/svg&gt; &lt;/a&gt; &lt;/li&gt; 
      &lt;li&gt; &lt;a class="text-gray-500 dark:text-gray-400 hover:bg-gray-100 dark:hover:bg-gray-700 focus:outline-none focus:ring-4 focus:ring-gray-200 dark:focus:ring-gray-700 rounded-lg text-sm p-2.5 inline-flex items-center" aria-label="Facebook" href="https://www.facebook.com/fujohnwang/"&gt; 
        &lt;svg viewbox="0 0 24 24" class="w-5 h-5" astro-icon="tabler:brand-facebook"&gt; &lt;path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M7 10v4h3v7h4v-7h3l1-4h-4V8a1 1 0 0 1 1-1h3V3h-3a5 5 0 0 0-5 5v2H7"&gt;&lt;/path&gt; 
        &lt;/svg&gt; &lt;/a&gt; &lt;/li&gt; 
      &lt;li&gt; &lt;a class="text-gray-500 dark:text-gray-400 hover:bg-gray-100 dark:hover:bg-gray-700 focus:outline-none focus:ring-4 focus:ring-gray-200 dark:focus:ring-gray-700 rounded-lg text-sm p-2.5 inline-flex items-center" aria-label="Github" href="https://github.com/fujohnwang"&gt; 
        &lt;svg viewbox="0 0 24 24" class="w-5 h-5" astro-icon="tabler:brand-github"&gt; &lt;path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 19c-4.3 1.4-4.3-2.5-6-3m12 5v-3.5c0-1 .1-1.4-.5-2 2.8-.3 5.5-1.4 5.5-6a4.6 4.6 0 0 0-1.3-3.2 4.2 4.2 0 0 0-.1-3.2s-1.1-.3-3.5 1.3a12.3 12.3 0 0 0-6.2 0C6.5 2.8 5.4 3.1 5.4 3.1a4.2 4.2 0 0 0-.1 3.2A4.6 4.6 0 0 0 4 9.5c0 4.6 2.7 5.7 5.5 6-.6.6-.6 1.2-.5 2V21"&gt; 
         &lt;/path&gt; 
        &lt;/svg&gt; &lt;/a&gt; &lt;/li&gt; 
     &lt;/ul&gt; 
     &lt;div class="text-sm text-gray-700 mr-4 dark:text-slate-400"&gt; &lt;span class="w-5 h-5 md:w-6 md:h-6 md:-mt-0.5 bg-cover mr-1.5 float-left rounded-sm"&gt; &lt;img src="https://afoo.me/favicon.svg" class="rounded-md" alt&gt; &lt;/span&gt; Copyright © 王福强个人版权所有 - Since 2004 (Everything is homebrewed with &lt;a href="https://pandoc.org/"&gt;Pandoc&lt;/a&gt; and Markdown, little &lt;a href="https://www.scala-lang.org/"&gt;Scala&lt;/a&gt; also included.) 
     &lt;/div&gt; 
    &lt;/div&gt; 
   &lt;/div&gt; 
  &lt;/footer&gt; 
  &lt;script&gt;
        // Set "light" theme as default
        if (!localStorage.theme) {
            localStorage.theme = "light";
        }

        if (
            localStorage.theme === 'dark' ||
            (!('theme' in localStorage) &amp;&amp; window.matchMedia('(prefers-color-scheme: dark)').matches)
        ) {
            document.documentElement.classList.add('dark');
        } else {
            document.documentElement.classList.remove('dark');
        }

        function attachEvent(selector, event, fn) {
            const matches = document.querySelectorAll(selector);
            if (matches &amp;&amp; matches.length) {
                matches.forEach((elem) =&gt; {
                    elem.addEventListener(event, () =&gt; fn(elem), false);
                });
            }
        }

        window.onload = function () {
            attachEvent('[data-toggle-menu]', 'click', function (elem) {
                elem.classList.toggle('expanded');
                document.body.classList.toggle('overflow-hidden');
                document.getElementById('header')?.classList.toggle('h-screen');
                document.querySelector('#header nav')?.classList.toggle('hidden');
            });
            attachEvent("[data-toggle-color-scheme]", "click", function () {
                    document.documentElement.classList.toggle("light");
                    localStorage.theme = "light";
                });
        };
        window.onpageshow = function () {
            const elem = document.querySelector('[data-toggle-menu]');
            if (elem) {
                elem.classList.remove('expanded');
            }
            document.body.classList.remove('overflow-hidden');
            document.getElementById('header')?.classList.remove('h-screen');
            document.querySelector('#header nav')?.classList.add('hidden');
        };
    &lt;/script&gt; 
  &lt;script type="text/javascript"&gt;
        var gitalk = new Gitalk({
          clientID: '518a605d711883414ac0',
          clientSecret: '69fb8ccc0616c5bcbc64d24ece0d06d279da91ff',
          repo: 'afoo.me.comments',
          owner: 'fujohnwang',
          admin: ['fujohnwang'],
          id: location.pathname.substring(0, 49),      // Ensure uniqueness and length less than 50
          distractionFreeMode: false  // Facebook-like distraction free mode
        })
        gitalk.render('comments')
    &lt;/script&gt; 
  &lt;script src="https://formspree.io/js/formbutton-v1.min.js" defer&gt;&lt;/script&gt; 
  &lt;script&gt;
  /* paste this line in verbatim */
  window.formbutton=window.formbutton||function(){(formbutton.q=formbutton.q||[]).push(arguments)};
  /* customize formbutton below*/     
  formbutton("create", {
    action: "https://formspree.io/f/xknlpkkd",
    title: "有什么可以帮到您？💕💕💕 How can I help you?",
    buttonImg: "&lt;img src='https://afoo.me/hero3/70.webp' alt/&gt;",
    fields: [
      { 
        type: "email", 
        label: "您的电子邮箱（方便与您联系）:", 
        name: "email",
        required: true,
        placeholder: "your@email.com"
      },
      {
        type: "textarea",
        label: "您想提交的反馈和询问信息:",
        name: "message",
        placeholder: "What's on your mind?",
      },
      { type: "submit" }      
    ],
    styles: {
      title: {
        backgroundColor: "blue"
      },
      button: {
        backgroundColor: "blue"
      }
    }
  });
&lt;/script&gt; 
  &lt;script&gt;
	// tooltips
	tippy('#aiedu', {
        content: "As to AI nowadays, LLM and Stable Diffusion are hot even hottest among them, If your want to both know-why and know-how with them, instead of only know-how which can't repeat itself, you should get you to https://ai.afoo.me right now ❗"
    });  
&lt;/script&gt;  
 &lt;/body&gt;
&lt;/html&gt;</description>
      <pubDate>Tue, 15 Sep 2026 16:00:00 GMT</pubDate>
      <guid>http://afoo.me/posts/2026-09-16-first-principle-of-AI.html</guid>
      <dc:date>2026-09-15T16:00:00Z</dc:date>
    </item>
    <item>
      <title>一人军队（OMA），如何玩转 Vibe Coding？</title>
      <link>http://afoo.me/posts/2026-09-07-vibecoding-practices-of-an-OMA.html</link>
      <description>&lt;!doctype html&gt;
&lt;html lang="zh" class="motion-safe:scroll-smooth 2xl:text-[20px]"&gt; 
 &lt;head&gt; 
  &lt;meta charset="utf-8"&gt; 
  &lt;meta name="keywords" content="一人军队（OMA），如何玩转 Vibe Coding？ - 架构师， 架构士，架构教练, 教练, 个人成长, 组织成长, 独立顾问, architecture, book author, thinker, fighter, 架构, 思考, 技术, 武术, 哲学"&gt; 
  &lt;meta name="description" content="一人军队（OMA），如何玩转 Vibe Coding？ - 福强说，扶墙老师说，王福强的个人博客， 一个架构士的思考与沉淀"&gt; 
  &lt;meta name="author" content="王福强"&gt; 
  &lt;meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"&gt; 
  &lt;meta http-equiv="Content-Type" content="text/html; charset=UTF-8"&gt; 
  &lt;meta name="robots" content="index,follow"&gt; 
  &lt;title&gt;一人军队（OMA），如何玩转 Vibe Coding？ -王福强的个人博客：一个架构士的思考与沉淀&lt;/title&gt; 
  &lt;meta name="date" content="2026-09-07"&gt; 
  &lt;meta property="og:title" content="一人军队（OMA），如何玩转 Vibe Coding？"&gt; 
  &lt;meta property="og:type" content="landing page"&gt; 
  &lt;meta property="og:url" content="https://afoo.me/posts/2026-09-07-vibecoding-practices-of-an-OMA.html"&gt; 
  &lt;meta property="og:image" content="https://og.afoo.me?url=https://afoo.me/posts/2026-09-07-vibecoding-practices-of-an-OMA.html"&gt; 
  &lt;meta name="twitter:card" content="summary_large_image"&gt; 
  &lt;meta name="twitter:title" content="一人军队（OMA），如何玩转 Vibe Coding？"&gt; 
  &lt;meta name="twitter:site" content="@afoo_me"&gt; 
  &lt;meta name="twitter:creator" content="@afoo_me"&gt; 
  &lt;meta name="twitter:image" content="https://og.afoo.me?url=https://afoo.me/posts/2026-09-07-vibecoding-practices-of-an-OMA.html"&gt; 
  &lt;meta name="twitter:description" content="一人军队（OMA），如何玩转 Vibe Coding？ - 王福强的个人博客， 一个架构士的思考与沉淀"&gt; 
  &lt;link rel="shortcut icon" href="/favicon.ico"&gt; 
  &lt;link rel="canonical" href="https://afoo.me/posts/2026-09-07-vibecoding-practices-of-an-OMA.html"&gt; 
  &lt;link rel="icon" type="image/svg+xml" href="https://afoo.me/favicon.svg"&gt; 
  &lt;link rel="mask-icon" href="https://afoo.me/favicon.svg" color="#3383F8"&gt; 
  &lt;script src="https://afoo.me/js/htmx.min.js"&gt;&lt;/script&gt; 
  &lt;link rel="stylesheet" href="https://unpkg.com/gitalk/dist/gitalk.css"&gt; 
  &lt;script src="https://unpkg.com/gitalk/dist/gitalk.min.js"&gt;&lt;/script&gt; 
  &lt;script src="https://afoo.me/js/popper.min.js"&gt;&lt;/script&gt; 
  &lt;script src="https://afoo.me/js/tippy.min.js"&gt;&lt;/script&gt; 
  &lt;link rel="stylesheet" href="/css/af.css"&gt; 
  &lt;link rel="stylesheet" href="/css/components.css"&gt; 
  &lt;link ref="stylesheet" href="/css/pygments.css"&gt; 
  &lt;style type="text/css"&gt;
        pre &gt; code{
          white-space: pre-wrap;
          font-family: monospace;
          font-size: 14px;
          /* border-left: blueviolet;
          border-left-width: thick;
          border-left-style: double;
          padding-left: 1rem !important; */
        }
        
        .x-indicator{
            display:none;
        }
        .htmx-request .x-indicator{
            display:inline;
        }
        .htmx-request.x-indicator{
            display:inline;
        }
    &lt;/style&gt; 
  &lt;script type="application/ld+json"&gt;
    {
      "@context": "https://schema.org",
      "@type": "NewsArticle",
      "headline": "一人军队（OMA），如何玩转 Vibe Coding？",
      "image": [
        "https://afoo.me/images/fb_subscribe.jpg"
       ],
      "datePublished": "2026-09-07",
      "author": [{
          "@type": "Person",
          "name": "王福强",
          "url": "https://afoo.me"
        }]
    }
  &lt;/script&gt; 
  &lt;script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-3687639021943715" crossorigin="anonymous"&gt;&lt;/script&gt; 
 &lt;/head&gt; 
 &lt;body class="antialiased text-slate-800 dark:text-slate-300 tracking-tight bg-slate-50 dark:bg-gray-900 vsc-initialized"&gt; 
  &lt;header class="sticky top-0 z-40 flex-none mx-auto w-full bg-slate-50 md:bg-slate-50/90 dark:bg-gray-900 dark:md:bg-gray-900/90 md:backdrop-blur-sm border-b border-slate-200 dark:border-b-0" id="header"&gt; 
   &lt;div class="py-3 px-3 mx-auto w-full md:flex md:justify-between max-w-6xl md:px-4"&gt; 
    &lt;div class="flex justify-between"&gt; &lt;a class="flex items-center" href="https://afoo.me"&gt; &lt;span class="self-center ml-2 text-2xl font-extrabold text-slate-800 whitespace-nowrap dark:text-white"&gt; &lt;img src="/images/afoo.PNG" alt="logo" style="height:60px;"&gt; &lt;/span&gt; &lt;/a&gt; 
     &lt;div class="flex items-center md:hidden"&gt; &lt;button type="button" class="text-gray-500 dark:text-gray-400 hover:bg-gray-100 dark:hover:bg-gray-700 focus:outline-none focus:ring-4 focus:ring-gray-200 dark:focus:ring-gray-700 rounded-lg text-sm p-2.5 inline-flex items-center" aria-label="Toggle between Dark and Light mode" data-toggle-color-scheme=""&gt; 
       &lt;svg viewbox="0 0 24 24" class="w-6 h-6" astro-icon="tabler:sun"&gt; &lt;g fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" class="icon-tabler"&gt; 
         &lt;circle cx="12" cy="12" r="4"&gt;&lt;/circle&gt; 
         &lt;path d="M3 12h1m8-9v1m8 8h1m-9 8v1M5.6 5.6l.7.7m12.1-.7-.7.7m0 11.4.7.7m-12.1-.7-.7.7"&gt; 
         &lt;/path&gt; 
        &lt;/g&gt; 
       &lt;/svg&gt; &lt;/button&gt; &lt;button type="button" class="ml-1.5 text-gray-500 dark:text-gray-400 hover:bg-gray-100 dark:hover:bg-gray-800 focus:outline-none focus:ring-4 focus:ring-gray-200 dark:focus:ring-gray-700 rounded-lg text-sm p-2.5 inline-flex items-center transition" aria-label="Toggle Menu" data-toggle-menu=""&gt; 
       &lt;svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" preserveaspectratio="xMidYMid meet" viewbox="0 0 24 24" class="w-6 h-6" astro-icon="tabler:menu"&gt; &lt;g class="icon-tabler" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"&gt; 
         &lt;path d="M4 8h16"&gt;&lt;/path&gt; 
         &lt;path d="M4 16h16"&gt;&lt;/path&gt; 
        &lt;/g&gt; 
       &lt;/svg&gt; &lt;/button&gt; 
     &lt;/div&gt; 
    &lt;/div&gt; 
    &lt;nav class="items-center w-full md:w-auto hidden md:flex text-gray-600 dark:text-slate-200 h-screen md:h-auto" aria-label="Main navigation"&gt; 
     &lt;ul class="flex flex-col pt-8 md:pt-0 md:flex-row md:self-center w-full md:w-auto text-xl md:text-base"&gt; 
      &lt;li&gt;&lt;a class="font-medium hover:text-gray-900 dark:hover:text-white px-4 py-3 flex items-center transition duration-150 ease-in-out" href="https://kb.afoo.me/"&gt;福强私学&lt;/a&gt;&lt;/li&gt; 
      &lt;li&gt; &lt;a id="aiedu" class="font-medium hover:text-gray-900 dark:hover:text-white px-4 py-3 flex items-center transition duration-150 ease-in-out" href="http://ai.afoo.me"&gt; 福强AI学堂&lt;/a&gt; &lt;/li&gt; 
      &lt;li&gt; &lt;a class="font-medium hover:text-gray-900 dark:hover:text-white px-4 py-3 flex items-center transition duration-150 ease-in-out" href="http://jiagoubaike.com"&gt;架构百科&lt;/a&gt; &lt;/li&gt; 
      &lt;li&gt; &lt;a class="font-medium hover:text-gray-900 dark:hover:text-white px-4 py-3 flex items-center transition duration-150 ease-in-out" href="https://afoo.me/posts.html"&gt;博客文章 &lt;/a&gt; &lt;/li&gt; 
      &lt;li&gt; &lt;a class="font-medium hover:text-gray-900 dark:hover:text-white px-4 py-3 flex items-center transition duration-150 ease-in-out" href="https://afoo.me/books.html"&gt;创作出版&lt;/a&gt; &lt;/li&gt; 
      &lt;li&gt; &lt;a class="font-medium hover:text-gray-900 dark:hover:text-white px-4 py-3 flex items-center transition duration-150 ease-in-out" href="https://store.afoo.me"&gt;产品与服务&lt;/a&gt; &lt;/li&gt; 
      &lt;li&gt;&lt;a class="font-medium hover:text-gray-900 dark:hover:text-white px-4 py-3 flex items-center transition duration-150 ease-in-out" href="https://auth.afoo.me/user.html"&gt;登录信息&lt;/a&gt;&lt;/li&gt; 
      &lt;li&gt; &lt;a class="font-medium hover:text-gray-900 dark:hover:text-white px-4 py-3 flex items-center transition duration-150 ease-in-out" href="https://afoo.me/crosslinks.html"&gt;更多链接&lt;/a&gt; &lt;/li&gt; 
     &lt;/ul&gt; 
     &lt;div class="md:self-center flex items-center mb-4 md:mb-0 ml-2"&gt; 
      &lt;div class="hidden items-center md:flex"&gt; &lt;button type="button" class="text-gray-500 dark:text-gray-400 hover:bg-gray-100 dark:hover:bg-gray-700 focus:outline-none focus:ring-4 focus:ring-gray-200 dark:focus:ring-gray-700 rounded-lg text-sm p-2.5 inline-flex items-center" aria-label="Toggle between Dark and Light mode" data-toggle-color-scheme=""&gt; 
        &lt;svg viewbox="0 0 24 24" class="w-5 h-5" astro-icon="tabler:sun"&gt; &lt;g fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" class="icon-tabler"&gt; 
          &lt;circle cx="12" cy="12" r="4"&gt;&lt;/circle&gt; 
          &lt;path d="M3 12h1m8-9v1m8 8h1m-9 8v1M5.6 5.6l.7.7m12.1-.7-.7.7m0 11.4.7.7m-12.1-.7-.7.7"&gt; 
          &lt;/path&gt; 
         &lt;/g&gt; 
        &lt;/svg&gt; &lt;/button&gt; &lt;a class="text-gray-500 dark:text-gray-400 hover:bg-gray-100 dark:hover:bg-gray-700 focus:outline-none focus:ring-4 focus:ring-gray-200 dark:focus:ring-gray-700 rounded-lg text-sm p-2.5 inline-flex items-center" aria-label="RSS Feed" href="http://afoo.me/feeds.xml"&gt; 
        &lt;svg viewbox="0 0 24 24" class="w-5 h-5" astro-icon="tabler:rss"&gt; &lt;g fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" class="icon-tabler"&gt; 
          &lt;circle cx="5" cy="19" r="1"&gt;&lt;/circle&gt; 
          &lt;path d="M4 4a16 16 0 0 1 16 16M4 11a9 9 0 0 1 9 9"&gt;&lt;/path&gt; 
         &lt;/g&gt; 
        &lt;/svg&gt; &lt;/a&gt; 
      &lt;/div&gt; 
     &lt;/div&gt; 
    &lt;/nav&gt; 
   &lt;/div&gt; 
  &lt;/header&gt; 
  &lt;main&gt; 
   &lt;div id="leftSlot" class="visible md:invisible fixed top-0 left-0" style="width: 16rem;height: 80%;margin-top: 4rem;"&gt; &lt;!-- left --&gt; 
    &lt;ins class="adsbygoogle" style="display:block" data-ad-client="ca-pub-3687639021943715" data-ad-slot="3581141418" data-ad-format="auto" data-full-width-responsive="true"&gt;&lt;/ins&gt; 
    &lt;script&gt;
          (adsbygoogle = window.adsbygoogle || []).push({});
      &lt;/script&gt; 
   &lt;/div&gt; 
   &lt;div id="rightSlot" class="visible md:invisible fixed top-0 right-0" style="width: 16rem;height: 80%;margin-top: 4rem;"&gt; &lt;!-- right --&gt; 
    &lt;ins class="adsbygoogle" style="display:block" data-ad-client="ca-pub-3687639021943715" data-ad-slot="7030836806" data-ad-format="auto" data-full-width-responsive="true"&gt;&lt;/ins&gt; 
    &lt;script&gt;
           (adsbygoogle = window.adsbygoogle || []).push({});
      &lt;/script&gt; 
   &lt;/div&gt; 
   &lt;section class="text-gray-600 body-font relative"&gt; 
    &lt;div class="max-w-4xl mx-auto px-5 py-24 mb-12 prose prose-lg dark:prose-invert"&gt; 
     &lt;p class="lead"&gt; &lt;/p&gt;
     &lt;h1 class="title"&gt;一人军队（OMA），如何玩转 Vibe Coding？&lt;/h1&gt; &lt;small&gt; &lt;h3 class="author"&gt;王福强&lt;/h3&gt; 
      &lt;div style="text-align: left;"&gt;
       2026-09-07
      &lt;/div&gt; &lt;/small&gt; 
     &lt;p&gt;&lt;/p&gt; &lt;!-- random --&gt; 
     &lt;ins class="adsbygoogle" style="display:block" data-ad-client="ca-pub-3687639021943715" data-ad-slot="2722720851" data-ad-format="auto" data-full-width-responsive="true"&gt;&lt;/ins&gt; 
     &lt;script&gt;
                 (adsbygoogle = window.adsbygoogle || []).push({});
            &lt;/script&gt; 
     &lt;hr&gt; 
     &lt;h2 id="从让-ai-写代码到一套可控的软件生产方式"&gt;从“让 AI 写代码”到一套可控的软件生产方式&lt;/h2&gt; 
     &lt;p&gt;这几年，“一人公司”越来越流行，也就是 OPC（One Person Company）。&lt;/p&gt; 
     &lt;p&gt;但我其实还挺喜欢另一个更早的说法：&lt;/p&gt; 
     &lt;p&gt;&lt;strong&gt;OMA，One Man Army。&lt;/strong&gt;&lt;/p&gt; 
     &lt;p&gt;一个人的军队或者就是一人军队。&lt;/p&gt; 
     &lt;p&gt;&lt;img src="./images/OMA-of-afoo.jpg"&gt;&lt;/p&gt; 
     &lt;p&gt;它强调的不是“公司只有一个人”，而是一种更强烈的状态：&lt;strong&gt;一个人，却拥有完成一整套任务的能力。&lt;/strong&gt; 或者更大粒度的，&lt;strong&gt;完成整个目标交付的能力&lt;/strong&gt;， 从产研到销售和服务。&lt;/p&gt; 
     &lt;p&gt;过去想做一个稍微完整的软件产品，往往需要产品、设计、前端、后端、客户端、测试、运维等不同角色。现在，随着 Coding Agent 的能力越来越强，一个人能够覆盖的范围正在迅速扩大。&lt;/p&gt; 
     &lt;p&gt;我自己已经做了不少工具软件，包括 &lt;a href="https://keenotes.afoo.me/"&gt;KeeNotes&lt;/a&gt;、&lt;a href="https://foosnippets.afoo.me/"&gt;FooSnippets&lt;/a&gt;、&lt;a href="https://keevol.cn/#fscloud"&gt;FooCloud&lt;/a&gt;、&lt;a href="https://afoo.me/rmbg/"&gt;RMBG&lt;/a&gt; 等，更有多款产品已经进入 Apple App Store 的发布流程。&lt;/p&gt; 
     &lt;p&gt;最主要的是，Tooling 本身也是整个 &lt;a href="https://keevol.cn/"&gt;KEEVOL&lt;/a&gt; TEC 体系的一部分：工具软件、技术教育和战略咨询，构成了一套相互支撑的事情。（我叫这个战略愿景为&lt;strong&gt;KEEVOL Troika&lt;/strong&gt;）&lt;/p&gt; 
     &lt;p&gt;当 KVectors 向量数据库成为个人古早手工编码时代的最后一个高质量交付的产品之后，&lt;/p&gt; 
     &lt;p&gt;从 2026 年开始，我的软件开发方式发生了一个非常明显的变化，即开始了 &lt;strong&gt;Vibe Coding&lt;/strong&gt;（Everything）。&lt;/p&gt; 
     &lt;hr&gt; 
     &lt;h2 id="从-panic-到-hug"&gt;从 Panic 到 Hug&lt;/h2&gt; 
     &lt;p&gt;很多有多年开发经验的人第一次真正面对 Vibe Coding，多少都会经历一点心理冲击，而我就经历了一个如下的过程：&lt;/p&gt; 
     &lt;p&gt;&lt;strong&gt;Panic → Hug。&lt;/strong&gt;&lt;/p&gt; 
     &lt;p&gt;从恐慌，到拥抱。&lt;/p&gt; 
     &lt;p&gt;恐慌其实很好理解。&lt;/p&gt; 
     &lt;p&gt;我们几十年来形成的软件工程习惯和个人能力，本质上建立在一个前提之上：&lt;/p&gt; 
     &lt;blockquote&gt; 
      &lt;p&gt;&lt;strong&gt;代码很贵&lt;/strong&gt;&lt;/p&gt; 
     &lt;/blockquote&gt; 
     &lt;p&gt;代码需要人一行一行写，框架需要人学，API 要查，跨平台意味着重新学习另一套技术栈，一门新语言可能要花几个月才能熟悉。&lt;/p&gt; 
     &lt;p&gt;因此，我们过去的软件工程里，有大量决策，其实是在优化“人写代码的成本”。&lt;/p&gt; 
     &lt;p&gt;为什么强调跨平台？&lt;/p&gt; 
     &lt;p&gt;因为 Android 写一套、iOS 再写一套太贵。&lt;/p&gt; 
     &lt;p&gt;为什么希望前后端都用一种语言？&lt;/p&gt; 
     &lt;p&gt;因为维护两三套语言体系太贵。&lt;/p&gt; 
     &lt;p&gt;为什么如此强调代码复用？&lt;/p&gt; 
     &lt;p&gt;因为重新写一遍太贵。&lt;/p&gt; 
     &lt;p&gt;可是 Coding Agent 出现以后，一个极重要的变量发生了变化：&lt;/p&gt; 
     &lt;p&gt;&lt;strong&gt;代码的生产成本突然量级般地下降了。&lt;/strong&gt;&lt;/p&gt; 
     &lt;p&gt;这时候，如果依然机械地沿用过去所有“为了减少写代码而产生的最佳实践”，未必还是最优解。&lt;/p&gt; 
     &lt;p&gt;这也是我这一段时间 Vibe Coding 最大的体会，下面是个人Vibe Coding过程中总结的一部分个人认为的最佳实践，与大家分享。&lt;/p&gt; 
     &lt;hr&gt; 
     &lt;h1 id="第一条个人最佳实践monorepo"&gt;第一条个人最佳实践：MonoRepo&lt;/h1&gt; 
     &lt;p&gt;我的第一条实践非常简单：&lt;/p&gt; 
     &lt;p&gt;&lt;strong&gt;MonoRepo。&lt;/strong&gt;&lt;/p&gt; 
     &lt;p&gt;传统团队为什么经常把项目拆成很多 Repository？&lt;/p&gt; 
     &lt;p&gt;因为不同团队负责不同部分。&lt;/p&gt; 
     &lt;p&gt;前端一个 Repo，后端一个 Repo，iOS 一个 Repo，Android 一个 Repo，基础设施可能还有一个 Repo。&lt;/p&gt; 
     &lt;p&gt;这是一种很典型的&lt;strong&gt;组织结构映射到代码组织结构&lt;/strong&gt;的方式。&lt;/p&gt; 
     &lt;p&gt;但 OMA 的情况不同。&lt;/p&gt; 
     &lt;p&gt;如果一个产品本来就是一个人加若干 Agent 在维护，那么人为把它切成七八个仓库，反而会产生额外的上下文成本。（还记得&lt;strong&gt;微服务&lt;/strong&gt;吗？🤪）&lt;/p&gt; 
     &lt;p&gt;对于 Coding Agent 来说，这一点尤其明显。&lt;/p&gt; 
     &lt;p&gt;假设一次需求同时需要修改：&lt;/p&gt; 
     &lt;p&gt;Web 前端、API、数据库 Schema、macOS 客户端和部署脚本。&lt;/p&gt; 
     &lt;p&gt;如果它们都在一个 MonoRepo 里，Agent 可以直接看到整个系统。&lt;/p&gt; 
     &lt;p&gt;数据库字段改了，它能够顺着依赖关系找到 API；API 改了，又可以继续找到客户端。&lt;/p&gt; 
     &lt;p&gt;所以，对 OMA 来说，MonoRepo 不只是代码管理风格。&lt;/p&gt; 
     &lt;p&gt;它实际上在做一件更重要的事情：&lt;/p&gt; 
     &lt;p&gt;&lt;strong&gt;把系统尽可能完整地放进 Agent 的可见范围。&lt;/strong&gt;&lt;/p&gt; 
     &lt;p&gt;换句话说，过去 Repository 经常围绕“人和团队”划边界；到了 Agent Coding 时代，Repository 还要开始考虑：&lt;/p&gt; 
     &lt;blockquote&gt; 
      &lt;p&gt;&lt;strong&gt;怎样划分，最有利于机器理解整个系统？&lt;/strong&gt;&lt;/p&gt; 
     &lt;/blockquote&gt; 
     &lt;p&gt;这是两个完全不同的出发点。&lt;/p&gt; 
     &lt;hr&gt; 
     &lt;h1 id="第二条个人最佳实践hierarchy-context-files"&gt;第二条个人最佳实践：Hierarchy Context Files&lt;/h1&gt; 
     &lt;p&gt;有了 MonoRepo，还只是让 Agent &lt;strong&gt;看得到代码&lt;/strong&gt;。&lt;/p&gt; 
     &lt;p&gt;但看到代码，并不代表它理解你的意图。&lt;/p&gt; 
     &lt;p&gt;所以第二个个人的最佳实践是：&lt;/p&gt; 
     &lt;p&gt;&lt;strong&gt;Hierarchy Context Files。&lt;/strong&gt;&lt;/p&gt; 
     &lt;p&gt;Coding Agent 有一个非常现实的问题：&lt;/p&gt; 
     &lt;p&gt;它每次进入项目，都需要重新建立上下文。&lt;/p&gt; 
     &lt;p&gt;这个项目为什么这样设计？&lt;/p&gt; 
     &lt;p&gt;技术栈是什么？&lt;/p&gt; 
     &lt;p&gt;哪些东西绝对不能动？&lt;/p&gt; 
     &lt;p&gt;命名规范是什么？&lt;/p&gt; 
     &lt;p&gt;UI 应该遵循什么风格？&lt;/p&gt; 
     &lt;p&gt;某个子模块为什么故意没有采用通常的实现方式？&lt;/p&gt; 
     &lt;p&gt;如果这些东西只存在于你的脑子里，Agent 每一轮都得重新猜。&lt;/p&gt; 
     &lt;p&gt;所以，一个适合 Agent 的代码库，不应该只有代码，还应该有一套&lt;strong&gt;层级化的上下文体系&lt;/strong&gt;。&lt;/p&gt; 
     &lt;p&gt;比如在最顶层描述整个项目的目标、原则和架构约束；进入具体模块以后，再补充这个模块自己的规则；再往下，还可以有更加局部的约定。&lt;/p&gt; 
     &lt;p&gt;于是形成类似：&lt;/p&gt; 
     &lt;p&gt;&lt;strong&gt;Global Context → Project Context → Module Context → Task Context&lt;/strong&gt;&lt;/p&gt; 
     &lt;p&gt;这样的层级。&lt;/p&gt; 
     &lt;p&gt;这里有一个很重要的原则：&lt;/p&gt; 
     &lt;blockquote&gt; 
      &lt;p&gt;&lt;strong&gt;上下文应该尽可能靠近它所约束的对象。&lt;/strong&gt;&lt;/p&gt; 
     &lt;/blockquote&gt; 
     &lt;p&gt;全局规则放全局。&lt;/p&gt; 
     &lt;p&gt;macOS 的规则放 macOS 目录。&lt;/p&gt; 
     &lt;p&gt;某个服务的特殊约束就放在那个服务附近。&lt;/p&gt; 
     &lt;p&gt;这样做的好处，不只是节约 Token。&lt;/p&gt; 
     &lt;p&gt;更重要的是，它开始把过去存在于程序员脑子里的&lt;strong&gt;隐性知识显性化&lt;/strong&gt;。&lt;/p&gt; 
     &lt;p&gt;这其实是 Agent Native Software Engineering 很重要的一步。&lt;/p&gt; 
     &lt;hr&gt; 
     &lt;h1 id="第三条个人最佳实践pairloop"&gt;第三条个人最佳实践：PairLoop&lt;/h1&gt; 
     &lt;p&gt;接下来是我很看重的一个词：&lt;/p&gt; 
     &lt;p&gt;&lt;strong&gt;PairLoop&lt;/strong&gt;&lt;/p&gt; 
     &lt;p&gt;很多人理解 Vibe Coding，会想象成：&lt;/p&gt; 
     &lt;blockquote&gt; 
      &lt;p&gt;“我把需求告诉 AI，然后 AI 把程序写完。”&lt;/p&gt; 
     &lt;/blockquote&gt; 
     &lt;p&gt;真正工作以后你会发现，这种模式通常并不好用。&lt;/p&gt; 
     &lt;p&gt;Vibe Coding 更像以前的 Pair Programming，只不过你的 Pair 从另一个程序员变成了 Coding Agent。&lt;/p&gt; 
     &lt;p&gt;而且这个过程不是一轮，是一个 Loop。&lt;/p&gt; 
     &lt;p&gt;把它展开，大概就是：&lt;/p&gt; 
     &lt;p&gt;&lt;strong&gt;意图 → 实现 → 运行 → 验证 → 反馈 → 修改 → 再运行。&lt;/strong&gt;&lt;/p&gt; 
     &lt;p&gt;然后不断循环。&lt;/p&gt; 
     &lt;p&gt;这里真正重要的并不是 Prompt 有多完美。&lt;/p&gt; 
     &lt;p&gt;事实上，我越来越不相信所谓 “一条神 Prompt 把事情搞定”。&lt;/p&gt; 
     &lt;p&gt;复杂的软件系统不可能靠一次描述就穷尽所有细节。&lt;/p&gt; 
     &lt;p&gt;真正可靠的方法是：&lt;/p&gt; 
     &lt;p&gt;&lt;strong&gt;缩短反馈环&lt;/strong&gt;&lt;/p&gt; 
     &lt;p&gt;让 Agent 做一点。&lt;/p&gt; 
     &lt;p&gt;马上运行。&lt;/p&gt; 
     &lt;p&gt;看到问题。&lt;/p&gt; 
     &lt;p&gt;马上修正。&lt;/p&gt; 
     &lt;p&gt;然后再进入下一轮。&lt;/p&gt; 
     &lt;p&gt;因此，Vibe Coding 的效率并不只取决于：&lt;/p&gt; 
     &lt;p&gt;&lt;strong&gt;Agent 一次能生成多少代码&lt;/strong&gt;&lt;/p&gt; 
     &lt;p&gt;更取决于：&lt;/p&gt; 
     &lt;p&gt;&lt;strong&gt;你和 Agent 一天能完成多少次有效闭环&lt;/strong&gt;&lt;/p&gt; 
     &lt;p&gt;这个区别非常重要。&lt;/p&gt; 
     &lt;p&gt;当然，这里的 Pair 也可以是 Agent 和 Agent 组 Pair，不一定是你和 Agent 组 Pair，甚至组合成两个甚至更多的层次，并不冲突。&lt;/p&gt; 
     &lt;hr&gt; 
     &lt;h1 id="第四条个人最佳实践multi-platform-over-cross-platform"&gt;第四条个人最佳实践：Multi-Platform over Cross Platform&lt;/h1&gt; 
     &lt;p&gt;这是一个我觉得非常有意思的变化。&lt;/p&gt; 
     &lt;p&gt;过去十几年，客户端开发有一个强烈趋势：&lt;/p&gt; 
     &lt;p&gt;&lt;strong&gt;Cross Platform&lt;/strong&gt;&lt;/p&gt; 
     &lt;p&gt;能不能一套代码跑 iOS、Android、macOS、Windows？&lt;/p&gt; 
     &lt;p&gt;它背后的逻辑非常合理：&lt;/p&gt; 
     &lt;p&gt;开发两个/多个平台的版本太贵，所以最好只维护一个版本。&lt;/p&gt; 
     &lt;p&gt;但 Vibe Coding 之后，我越来越倾向于：&lt;/p&gt; 
     &lt;p&gt;&lt;strong&gt;Multi-Platform over Cross Platform&lt;/strong&gt;&lt;/p&gt; 
     &lt;p&gt;注意，这两个词看起来很像，思路却完全不同。&lt;/p&gt; 
     &lt;p&gt;Cross Platform 追求：&lt;/p&gt; 
     &lt;blockquote&gt; 
      &lt;p&gt;&lt;strong&gt;一套实现运行在多个平台。&lt;/strong&gt;&lt;/p&gt; 
     &lt;/blockquote&gt; 
     &lt;p&gt;Multi-Platform 则接受：&lt;/p&gt; 
     &lt;blockquote&gt; 
      &lt;p&gt;&lt;strong&gt;每个平台都可以有最适合自己的实现。&lt;/strong&gt;&lt;/p&gt; 
     &lt;/blockquote&gt; 
     &lt;p&gt;以前后者的问题是&lt;strong&gt;成本&lt;/strong&gt;。&lt;/p&gt; 
     &lt;p&gt;Swift 写一套，Kotlin 写一套，Web 再写一套，维护成本太高。（甚至人你都找不到，除非你一起手就是大厂）&lt;/p&gt; 
     &lt;p&gt;但当 Coding Agent 可以帮你承担大量实现工作以后，这个成本结构发生了改变。&lt;/p&gt; 
     &lt;p&gt;这时候，与其为了共享代码，让所有平台迁就某一个抽象层，不如：&lt;/p&gt; 
     &lt;p&gt;以 iOS 的方式和技术栈做 iOS 应用，&lt;/p&gt; 
     &lt;p&gt;以 macOS 的方式和技术栈做 macOS 应用，&lt;/p&gt; 
     &lt;p&gt;以 Web 的方式和技术栈做 Web 应用…&lt;/p&gt; 
     &lt;p&gt;真正共享的，可以是产品定义、协议、数据模型、设计规则和业务逻辑描述，而不一定非得共享每一行实现代码。&lt;/p&gt; 
     &lt;p&gt;AI 实际上让“重复实现”第一次变得没那么可怕。&lt;/p&gt; 
     &lt;hr&gt; 
     &lt;h1 id="第五条个人最佳实践multi-lang-over-single-lang-ecosystem"&gt;第五条个人最佳实践：Multi-Lang over Single Lang Ecosystem&lt;/h1&gt; 
     &lt;p&gt;同样的变化，也发生在编程语言上。&lt;/p&gt; 
     &lt;p&gt;所以第五条是：&lt;/p&gt; 
     &lt;p&gt;&lt;strong&gt;Multi-Lang over Single Lang Ecosystem。&lt;/strong&gt;&lt;/p&gt; 
     &lt;p&gt;以前我们很喜欢所谓 One Language Everywhere。&lt;/p&gt; 
     &lt;p&gt;比如：&lt;/p&gt; 
     &lt;p&gt;前端 JavaScript，&lt;/p&gt; 
     &lt;p&gt;后端也 Node.js，&lt;/p&gt; 
     &lt;p&gt;工具也 JavaScript，&lt;/p&gt; 
     &lt;p&gt;这样整个团队只需要掌握一种语言。&lt;/p&gt; 
     &lt;p&gt;它最大的好处，还是降低人的学习和切换成本。&lt;/p&gt; 
     &lt;p&gt;但 Coding Agent 并没有这么强的“语言洁癖”或者说“语言壁垒”。&lt;/p&gt; 
     &lt;p&gt;今天写 Swift，下一分钟写 Rust，再下一分钟改 TypeScript，对 Agent 来说并不像人一样需要重新学习个半年。&lt;/p&gt; 
     &lt;p&gt;于是技术选型可以逐渐回到一个很朴素的问题：&lt;/p&gt; 
     &lt;blockquote&gt; 
      &lt;p&gt;&lt;strong&gt;这件事情，用什么计算机语言做最合适？&lt;/strong&gt;&lt;/p&gt; 
     &lt;/blockquote&gt; 
     &lt;p&gt;macOS 原生 App 用 Swift。&lt;/p&gt; 
     &lt;p&gt;某个高性能组件用 Rust。&lt;/p&gt; 
     &lt;p&gt;Web UI 用 TypeScript。&lt;/p&gt; 
     &lt;p&gt;一些自动化任务用 Python。&lt;/p&gt; 
     &lt;p&gt;服务器再根据实际情况选最适合的语言。&lt;/p&gt; 
     &lt;p&gt;过去 Polyglot Programming （多语言混合编程） 最大的问题之一是认知成本。&lt;/p&gt; 
     &lt;p&gt;而 AI 正在显著压低这个成本。&lt;/p&gt; 
     &lt;p&gt;所以未来软件系统可能反而会变得&lt;strong&gt;更多语言，而不是更少语言&lt;/strong&gt;。&lt;/p&gt; 
     &lt;p&gt;只不过复杂性的一部分，从“人必须熟悉所有语言”，转移成了：&lt;/p&gt; 
     &lt;p&gt;&lt;strong&gt;人必须对问题的边界和语言的匹配度作出合适的决策&lt;/strong&gt;&lt;/p&gt; 
     &lt;hr&gt; 
     &lt;h1 id="第六条个人最佳实践广域网验收局域网交付"&gt;第六条个人最佳实践：广域网验收，局域网交付&lt;/h1&gt; 
     &lt;p&gt;这背后的思路其实也是在优化反馈 Loop。&lt;/p&gt; 
     &lt;p&gt;开发过程中，最重要的是让东西尽快被看到。&lt;/p&gt; 
     &lt;p&gt;因此验收环境应该尽可能容易访问。&lt;/p&gt; 
     &lt;p&gt;一个功能完成以后，不要让对方先装环境、VPN、依赖和各种工具才能看。&lt;/p&gt; 
     &lt;p&gt;最好给一个地址，打开就能验。&lt;/p&gt; 
     &lt;p&gt;这是&lt;strong&gt;广域网验收&lt;/strong&gt;。&lt;/p&gt; 
     &lt;p&gt;但最终真正交付的时候，尤其企业内部系统或者私有化软件，完全可以进入客户自己的局域网或者内部环境。&lt;/p&gt; 
     &lt;p&gt;这是&lt;strong&gt;局域网交付&lt;/strong&gt;。&lt;/p&gt; 
     &lt;p&gt;把“验收”和“最终部署”拆开，解决的是两个不同的问题：&lt;/p&gt; 
     &lt;p&gt;验收追求&lt;strong&gt;低摩擦反馈&lt;/strong&gt;；&lt;/p&gt; 
     &lt;p&gt;交付追求&lt;strong&gt;安全、私有和可控&lt;/strong&gt;。&lt;/p&gt; 
     &lt;p&gt;如果把二者强行绑定在一起，反馈周期往往会被部署复杂性拖慢。&lt;/p&gt; 
     &lt;p&gt;而 Vibe Coding 最怕的，就是 Loop 太长。&lt;/p&gt; 
     &lt;hr&gt; 
     &lt;h1 id="一个更深的变化reuse-vs.-distill"&gt;一个更深的变化：Reuse VS. Distill&lt;/h1&gt; 
     &lt;p&gt;传统软件工程非常强调 Reuse。&lt;/p&gt; 
     &lt;p&gt;不要重复代码。&lt;/p&gt; 
     &lt;p&gt;做公共组件。&lt;/p&gt; 
     &lt;p&gt;做公共库。&lt;/p&gt; 
     &lt;p&gt;抽象框架。&lt;/p&gt; 
     &lt;p&gt;沉淀基础设施。&lt;/p&gt; 
     &lt;p&gt;这是因为：&lt;/p&gt; 
     &lt;p&gt;&lt;strong&gt;代码贵，所以代码值得重复利用。&lt;/strong&gt;&lt;/p&gt; 
     &lt;p&gt;但 Vibe Coding 以后，我们可能需要重新思考：&lt;/p&gt; 
     &lt;p&gt;真正应该重复利用的，到底是什么？&lt;/p&gt; 
     &lt;p&gt;比如我刚刚完成一个非常好的 macOS 权限授权流程。&lt;/p&gt; 
     &lt;p&gt;过去第一反应可能是：&lt;/p&gt; 
     &lt;p&gt;&lt;strong&gt;把这套代码抽成 Framework。&lt;/strong&gt;&lt;/p&gt; 
     &lt;p&gt;但在 Agent 时代，另一种做法可能更有价值：&lt;/p&gt; 
     &lt;p&gt;把这次实践里真正有效的东西提炼出来：&lt;/p&gt; 
     &lt;p&gt;设计原则是什么？&lt;/p&gt; 
     &lt;p&gt;哪些 API 容易踩坑？&lt;/p&gt; 
     &lt;p&gt;正确流程是什么？&lt;/p&gt; 
     &lt;p&gt;交互应该怎样设计？&lt;/p&gt; 
     &lt;p&gt;哪些异常情况必须处理？&lt;/p&gt; 
     &lt;p&gt;然后把这些东西沉淀成一份 Context、Spec、Skill 或 Pattern。&lt;/p&gt; 
     &lt;p&gt;下一次，再让 Agent 根据新的项目重新生成最适合那个项目的实现。&lt;/p&gt; 
     &lt;p&gt;这就是：&lt;/p&gt; 
     &lt;p&gt;&lt;strong&gt;Distill，而不只是 Reuse。&lt;/strong&gt;&lt;/p&gt; 
     &lt;p&gt;Reuse 是：&lt;/p&gt; 
     &lt;blockquote&gt; 
      &lt;p&gt;复用上一次的代码。&lt;/p&gt; 
     &lt;/blockquote&gt; 
     &lt;p&gt;Distill 更像是：&lt;/p&gt; 
     &lt;blockquote&gt; 
      &lt;p&gt;复用上一次获得的认知。&lt;/p&gt; 
     &lt;/blockquote&gt; 
     &lt;p&gt;代码是某一次问题求解的结果。&lt;/p&gt; 
     &lt;p&gt;而被提炼出来的知识，则可以继续生成许多不同的结果。&lt;/p&gt; 
     &lt;p&gt;AI 让“重新生成代码”越来越便宜以后，后者的价值会越来越高。&lt;/p&gt; 
     &lt;hr&gt; 
     &lt;h2 id="最终原则more-loops-more-certainty"&gt;最终原则：More Loops, More Certainty&lt;/h2&gt; 
     &lt;p&gt;综合整套最佳实践，我把它总结成一句话：&lt;/p&gt; 
     &lt;p&gt;&lt;strong&gt;More Loops, More Certainty.&lt;/strong&gt;&lt;/p&gt; 
     &lt;p&gt;也就是&lt;strong&gt;更多轮次，更多确定性。&lt;/strong&gt;&lt;/p&gt; 
     &lt;p&gt;这其实也是我现在理解 Vibe Coding 最核心的一点。&lt;/p&gt; 
     &lt;p&gt;很多人担心 AI 写代码不可靠。&lt;/p&gt; 
     &lt;p&gt;这个担心没有错。&lt;/p&gt; 
     &lt;p&gt;但解决方案并不是要求 AI：&lt;/p&gt; 
     &lt;p&gt;&lt;strong&gt;一次就必须百分之百正确。&lt;/strong&gt;&lt;/p&gt; 
     &lt;p&gt;软件开发本来也不是这样工作的。&lt;/p&gt; 
     &lt;p&gt;真正能够制造确定性的，从来都是反馈：&lt;/p&gt; 
     &lt;p&gt;编译一次。&lt;/p&gt; 
     &lt;p&gt;跑一次。&lt;/p&gt; 
     &lt;p&gt;测试一次。&lt;/p&gt; 
     &lt;p&gt;看一次 UI。&lt;/p&gt; 
     &lt;p&gt;部署一次。&lt;/p&gt; 
     &lt;p&gt;让真实用户操作一次。&lt;/p&gt; 
     &lt;p&gt;发现问题。&lt;/p&gt; 
     &lt;p&gt;然后再修。&lt;/p&gt; 
     &lt;p&gt;AI 最大的价值，并不是消灭这些 Loop。&lt;/p&gt; 
     &lt;p&gt;恰恰相反，它让每一次修改的成本急剧下降，因此我们终于可以：&lt;/p&gt; 
     &lt;p&gt;&lt;strong&gt;跑更多 Loop(s)&lt;/strong&gt;&lt;/p&gt; 
     &lt;p&gt;如果以前修改一个方案需要两天，那么大家倾向于修改之前讨论半天。&lt;/p&gt; 
     &lt;p&gt;现在修改只需要十分钟，那最经济的方式可能变成：&lt;/p&gt; 
     &lt;p&gt;先做出来。&lt;/p&gt; 
     &lt;p&gt;跑一下。&lt;/p&gt; 
     &lt;p&gt;不对就改。&lt;/p&gt; 
     &lt;p&gt;再跑。&lt;/p&gt; 
     &lt;p&gt;这是一种完全不同的软件生产经济学。&lt;/p&gt; 
     &lt;hr&gt; 
     &lt;h1 id="vibe-coding-并不是不懂代码也没关系"&gt;Vibe Coding 并不是“不懂代码也没关系”&lt;/h1&gt; 
     &lt;p&gt;最后还要澄清一个容易产生的误会：&lt;/p&gt; 
     &lt;p&gt;当代码越来越多由 AI 生成时，并不意味着工程能力变得不重要。&lt;/p&gt; 
     &lt;p&gt;恰恰相反。&lt;/p&gt; 
     &lt;p&gt;过去，你的能力决定：&lt;/p&gt; 
     &lt;p&gt;&lt;strong&gt;你能写出什么。&lt;/strong&gt;&lt;/p&gt; 
     &lt;p&gt;现在越来越变成：&lt;/p&gt; 
     &lt;p&gt;&lt;strong&gt;你能判断什么是对的。&lt;/strong&gt;&lt;/p&gt; 
     &lt;p&gt;架构有没有问题？&lt;/p&gt; 
     &lt;p&gt;技术选型合不合理？&lt;/p&gt; 
     &lt;p&gt;平台体验是不是原生？&lt;/p&gt; 
     &lt;p&gt;数据模型有没有埋雷？&lt;/p&gt; 
     &lt;p&gt;安全边界在哪里？&lt;/p&gt; 
     &lt;p&gt;Agent 是在解决问题，还是只是绕开问题？&lt;/p&gt; 
     &lt;p&gt;这些事情最终仍然需要人来判断。&lt;/p&gt; 
     &lt;p&gt;所以 OMA 并不是：&lt;/p&gt; 
     &lt;blockquote&gt; 
      &lt;p&gt;一个人什么都亲自干。&lt;/p&gt; 
     &lt;/blockquote&gt; 
     &lt;p&gt;更准确的定义可能是：&lt;/p&gt; 
     &lt;blockquote&gt; 
      &lt;p&gt;&lt;strong&gt;一个人能够对完整结果负责。&lt;/strong&gt;&lt;/p&gt; 
     &lt;/blockquote&gt; 
     &lt;p&gt;AI 可以写代码，可以跑命令，可以修改 UI，可以修 Bug。&lt;/p&gt; 
     &lt;p&gt;但方向、边界、取舍和最终验收，仍然在 Builder 手里。&lt;/p&gt; 
     &lt;p&gt;而这，大概也是 Vibe Coding 真正有意思的地方。&lt;/p&gt; 
     &lt;p&gt;它首先改变的不是编程语言，不是 IDE，也不是某一种模型。&lt;/p&gt; 
     &lt;p&gt;它改变的是：&lt;/p&gt; 
     &lt;p&gt;&lt;strong&gt;一个人可以完成多大范围的软件工程&lt;/strong&gt;。&lt;/p&gt; 
     &lt;p&gt;以前我们靠组织扩大能力，&lt;/p&gt; 
     &lt;p&gt;现在，一个 OMA 也可以靠 Agent 扩大能力和个人边界。&lt;/p&gt; 
     &lt;p&gt;至于如何让这种能力变得稳定，而不是变成一场随机的“AI 抽卡游戏”，我的答案依然是：&lt;/p&gt; 
     &lt;blockquote&gt; 
      &lt;p&gt;&lt;strong&gt;More Loops, More Certainty.&lt;/strong&gt;&lt;/p&gt; 
     &lt;/blockquote&gt; 
     &lt;p&gt;循环得足够快、足够多，反馈足够及时，结果就会越来越确定。&lt;/p&gt; 
     &lt;p&gt;最后，祝大家 &lt;strong&gt;Happy Vibe Coding&lt;/strong&gt;。&lt;/p&gt; &lt;!-- tail --&gt; 
     &lt;ins class="adsbygoogle" style="display:block" data-ad-client="ca-pub-3687639021943715" data-ad-slot="7874087130" data-ad-format="auto" data-full-width-responsive="true"&gt;&lt;/ins&gt; 
     &lt;script&gt;
                 (adsbygoogle = window.adsbygoogle || []).push({});
            &lt;/script&gt; 
     &lt;hr&gt; 
     &lt;div&gt; &lt;a href="/posts.html"&gt; &lt;b&gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; 更多阅读 &amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt; &lt;/b&gt;&lt;/a&gt; 
     &lt;/div&gt; 
     &lt;div id="random_posts"&gt; 
      &lt;div class="alert alert-light" role="alert"&gt; &lt;a href="/posts/2024-07-05-employee-and-entreprenurs.html"&gt;打工人与创业者有什么区别？ &lt;/a&gt; 
      &lt;/div&gt; 
      &lt;div class="alert alert-light" role="alert"&gt; &lt;a href="/posts/2013-03-12-concurrency_theory_frameworks_and_practices.html"&gt;并发编程： 理论，框架与实践 &lt;/a&gt; 
      &lt;/div&gt; 
      &lt;div class="alert alert-light" role="alert"&gt; &lt;a href="/posts/2023-09-27-the-first-consultant-of-China.html"&gt;中国咨询之父是谁？ &lt;/a&gt; 
      &lt;/div&gt; 
     &lt;/div&gt; 
     &lt;hr&gt; 
     &lt;div id="comments"&gt;&lt;/div&gt; 
     &lt;hr&gt; &lt;!-- Section CTA --&gt; 
     &lt;section class="overflow-x-clip bg-zinc-50 py-16 md:py-24"&gt; 
      &lt;div class="relative mx-auto w-full max-w-screen-xl px-4"&gt; 
       &lt;div class="relative z-10 w-full"&gt; &lt;!-- 福强私学推荐 --&gt; 
        &lt;div class="mx-auto max-w-screen-md"&gt; 
         &lt;h2 class="mb-4 text-center text-4xl font-bold md:text-5xl"&gt;&lt;a href="https://afoo.me/kb.html" class="border-b"&gt;「福强私学」&lt;/a&gt;来一个？&lt;/h2&gt; 
         &lt;p class="mx-auto mb-8 w-full text-center text-lg leading-8 text-zinc-700 md:w-5/6 md:text-xl"&gt;「福强私学」, 一部沉淀了个人成长、技术与架构、组织与管理以及商业上的方法与心法的百科全书。&lt;/p&gt; 
        &lt;/div&gt; 
        &lt;div class="mx-auto mt-6 w-full md:mt-12 md:w-4/5"&gt; &lt;a href="https://afoo.me/kb.html"&gt; &lt;img alt="footer img for kb.afoo.me" loading="lazy" width="2911" height="1961" decoding="async" data-nimg="1" class="mx-auto rounded-lg object-contain shadow-lg sm:rounded-2xl lg:rounded-3xl" style="color:transparent" src="https://og.afoo.me/?url=footer"&gt; &lt;/a&gt; 
        &lt;/div&gt; &lt;!-- 小报童推荐 --&gt; 
        &lt;div class="mx-auto max-w-screen-md"&gt; 
         &lt;h2 class="mt-8 mb-4 text-center text-4xl font-bold md:text-5xl"&gt;&lt;a href="https://xiaobot.net/p/aifd" class="border-b"&gt;福强老师的 AI 通识课&lt;/a&gt;&lt;/h2&gt;&lt;a href="https://xiaobot.net/p/aifd" class="border-b"&gt; &lt;/a&gt;
        &lt;/div&gt;&lt;a href="https://xiaobot.net/p/aifd" class="border-b"&gt; &lt;/a&gt;
        &lt;div class="mx-auto mt-6 w-full md:mt-12 md:w-4/5"&gt;
         &lt;a href="https://xiaobot.net/p/aifd" class="border-b"&gt; &lt;/a&gt;&lt;a href="https://xiaobot.net/p/aifd"&gt; &lt;img alt="footer img for kb.afoo.me" loading="lazy" width="2911" height="1961" decoding="async" data-nimg="1" class="mx-auto rounded-lg object-contain shadow-lg sm:rounded-2xl lg:rounded-3xl" style="color:transparent" src="/images/xbt-footer.webp"&gt; &lt;/a&gt; 
        &lt;/div&gt; 
        &lt;div class="mx-auto mt-6 w-full md:mt-12 md:w-4/5"&gt; 
         &lt;img alt="footer img for kb.afoo.me" loading="lazy" decoding="async" data-nimg="1" class="mx-auto p-3" style="color:transparent" src="/images/footer-links-2025.webp"&gt; 
        &lt;/div&gt; 
       &lt;/div&gt; 
      &lt;/div&gt; 
     &lt;/section&gt; 
     &lt;hr&gt; 
     &lt;p&gt; &lt;span style="font-size: xx-large;"&gt; 开天窗，拉认知，订阅「福报」，即刻拥有自己的全模态人工智能。 &lt;/span&gt; &lt;/p&gt; &lt;a href="https://wfq.gumroad.com/l/fb"&gt; &lt;img src="/images/fb_subscribe_v2.jpg" alt="订阅「福报」"&gt; &lt;/a&gt; 
     &lt;hr&gt; 
     &lt;div hx-get="https://toolfooter.afoo.me/" hx-trigger="revealed" htmx-indicator="#tfloader"&gt; 
      &lt;div id="tfloader" class="x-indicator"&gt; 
       &lt;svg width="57" height="57" viewbox="0 0 57 57" xmlns="http://www.w3.org/2000/svg" stroke="#3F83F8"&gt; &lt;g fill="none" fill-rule="evenodd"&gt; 
         &lt;g transform="translate(1 1)" stroke-width="2"&gt; 
          &lt;circle cx="5" cy="50" r="5"&gt; 
           &lt;animate attributename="cy" begin="0s" dur="2.2s" values="50;5;50;50" calcmode="linear" repeatcount="indefinite" /&gt; 
           &lt;animate attributename="cx" begin="0s" dur="2.2s" values="5;27;49;5" calcmode="linear" repeatcount="indefinite" /&gt; 
          &lt;/circle&gt; 
          &lt;circle cx="27" cy="5" r="5"&gt; 
           &lt;animate attributename="cy" begin="0s" dur="2.2s" from="5" to="5" values="5;50;50;5" calcmode="linear" repeatcount="indefinite" /&gt; 
           &lt;animate attributename="cx" begin="0s" dur="2.2s" from="27" to="27" values="27;49;5;27" calcmode="linear" repeatcount="indefinite" /&gt; 
          &lt;/circle&gt; 
          &lt;circle cx="49" cy="50" r="5"&gt; 
           &lt;animate attributename="cy" begin="0s" dur="2.2s" values="50;50;5;50" calcmode="linear" repeatcount="indefinite" /&gt; 
           &lt;animate attributename="cx" from="49" to="49" begin="0s" dur="2.2s" values="49;5;27;49" calcmode="linear" repeatcount="indefinite" /&gt; 
          &lt;/circle&gt; 
         &lt;/g&gt; 
        &lt;/g&gt; 
       &lt;/svg&gt; 
      &lt;/div&gt; 
     &lt;/div&gt; 
    &lt;/div&gt; 
   &lt;/section&gt; 
  &lt;/main&gt; 
  &lt;div style="position: fixed; left: 0; bottom: 0; padding: 10px; z-index: 1000;"&gt; 
   &lt;img src="/icons/Written-By-Human-Not-By-AI-Badge-black@2x.png" alt loading="lazy"&gt; 
  &lt;/div&gt; 
  &lt;footer class="border-t border-gray-200 dark:border-slate-800"&gt; 
   &lt;div class="max-w-6xl mx-auto px-4 sm:px-6"&gt; 
    &lt;div class="md:flex md:items-center md:justify-between py-6 md:py-8"&gt; 
     &lt;ul class="flex mb-4 md:order-1 -ml-2 md:ml-4 md:mb-0"&gt; 
      &lt;li&gt; &lt;a class="text-gray-500 dark:text-gray-400 hover:bg-gray-100 dark:hover:bg-gray-700 focus:outline-none focus:ring-4 focus:ring-gray-200 dark:focus:ring-gray-700 rounded-lg text-sm p-2.5 inline-flex items-center" aria-label="Twitter" href="https://twitter.com/afoo_me"&gt; 
        &lt;svg viewbox="0 0 24 24" class="w-5 h-5" astro-icon="tabler:brand-twitter"&gt; &lt;path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M22 4.01c-1 .49-1.98.689-3 .99-1.121-1.265-2.783-1.335-4.38-.737S11.977 6.323 12 8v1c-3.245.083-6.135-1.395-8-4 0 0-4.182 7.433 4 11-1.872 1.247-3.739 2.088-6 2 3.308 1.803 6.913 2.423 10.034 1.517 3.58-1.04 6.522-3.723 7.651-7.742a13.84 13.84 0 0 0 .497-3.753C20.18 7.773 21.692 5.25 22 4.009z"&gt; 
         &lt;/path&gt; 
        &lt;/svg&gt; &lt;/a&gt; &lt;/li&gt; 
      &lt;li&gt; &lt;a class="text-gray-500 dark:text-gray-400 hover:bg-gray-100 dark:hover:bg-gray-700 focus:outline-none focus:ring-4 focus:ring-gray-200 dark:focus:ring-gray-700 rounded-lg text-sm p-2.5 inline-flex items-center" aria-label="Facebook" href="https://www.facebook.com/fujohnwang/"&gt; 
        &lt;svg viewbox="0 0 24 24" class="w-5 h-5" astro-icon="tabler:brand-facebook"&gt; &lt;path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M7 10v4h3v7h4v-7h3l1-4h-4V8a1 1 0 0 1 1-1h3V3h-3a5 5 0 0 0-5 5v2H7"&gt;&lt;/path&gt; 
        &lt;/svg&gt; &lt;/a&gt; &lt;/li&gt; 
      &lt;li&gt; &lt;a class="text-gray-500 dark:text-gray-400 hover:bg-gray-100 dark:hover:bg-gray-700 focus:outline-none focus:ring-4 focus:ring-gray-200 dark:focus:ring-gray-700 rounded-lg text-sm p-2.5 inline-flex items-center" aria-label="Github" href="https://github.com/fujohnwang"&gt; 
        &lt;svg viewbox="0 0 24 24" class="w-5 h-5" astro-icon="tabler:brand-github"&gt; &lt;path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 19c-4.3 1.4-4.3-2.5-6-3m12 5v-3.5c0-1 .1-1.4-.5-2 2.8-.3 5.5-1.4 5.5-6a4.6 4.6 0 0 0-1.3-3.2 4.2 4.2 0 0 0-.1-3.2s-1.1-.3-3.5 1.3a12.3 12.3 0 0 0-6.2 0C6.5 2.8 5.4 3.1 5.4 3.1a4.2 4.2 0 0 0-.1 3.2A4.6 4.6 0 0 0 4 9.5c0 4.6 2.7 5.7 5.5 6-.6.6-.6 1.2-.5 2V21"&gt; 
         &lt;/path&gt; 
        &lt;/svg&gt; &lt;/a&gt; &lt;/li&gt; 
     &lt;/ul&gt; 
     &lt;div class="text-sm text-gray-700 mr-4 dark:text-slate-400"&gt; &lt;span class="w-5 h-5 md:w-6 md:h-6 md:-mt-0.5 bg-cover mr-1.5 float-left rounded-sm"&gt; &lt;img src="https://afoo.me/favicon.svg" class="rounded-md" alt&gt; &lt;/span&gt; Copyright © 王福强个人版权所有 - Since 2004 (Everything is homebrewed with &lt;a href="https://pandoc.org/"&gt;Pandoc&lt;/a&gt; and Markdown, little &lt;a href="https://www.scala-lang.org/"&gt;Scala&lt;/a&gt; also included.) 
     &lt;/div&gt; 
    &lt;/div&gt; 
   &lt;/div&gt; 
  &lt;/footer&gt; 
  &lt;script&gt;
        // Set "light" theme as default
        if (!localStorage.theme) {
            localStorage.theme = "light";
        }

        if (
            localStorage.theme === 'dark' ||
            (!('theme' in localStorage) &amp;&amp; window.matchMedia('(prefers-color-scheme: dark)').matches)
        ) {
            document.documentElement.classList.add('dark');
        } else {
            document.documentElement.classList.remove('dark');
        }

        function attachEvent(selector, event, fn) {
            const matches = document.querySelectorAll(selector);
            if (matches &amp;&amp; matches.length) {
                matches.forEach((elem) =&gt; {
                    elem.addEventListener(event, () =&gt; fn(elem), false);
                });
            }
        }

        window.onload = function () {
            attachEvent('[data-toggle-menu]', 'click', function (elem) {
                elem.classList.toggle('expanded');
                document.body.classList.toggle('overflow-hidden');
                document.getElementById('header')?.classList.toggle('h-screen');
                document.querySelector('#header nav')?.classList.toggle('hidden');
            });
            attachEvent("[data-toggle-color-scheme]", "click", function () {
                    document.documentElement.classList.toggle("light");
                    localStorage.theme = "light";
                });
        };
        window.onpageshow = function () {
            const elem = document.querySelector('[data-toggle-menu]');
            if (elem) {
                elem.classList.remove('expanded');
            }
            document.body.classList.remove('overflow-hidden');
            document.getElementById('header')?.classList.remove('h-screen');
            document.querySelector('#header nav')?.classList.add('hidden');
        };
    &lt;/script&gt; 
  &lt;script type="text/javascript"&gt;
        var gitalk = new Gitalk({
          clientID: '518a605d711883414ac0',
          clientSecret: '69fb8ccc0616c5bcbc64d24ece0d06d279da91ff',
          repo: 'afoo.me.comments',
          owner: 'fujohnwang',
          admin: ['fujohnwang'],
          id: location.pathname.substring(0, 49),      // Ensure uniqueness and length less than 50
          distractionFreeMode: false  // Facebook-like distraction free mode
        })
        gitalk.render('comments')
    &lt;/script&gt; 
  &lt;script src="https://formspree.io/js/formbutton-v1.min.js" defer&gt;&lt;/script&gt; 
  &lt;script&gt;
  /* paste this line in verbatim */
  window.formbutton=window.formbutton||function(){(formbutton.q=formbutton.q||[]).push(arguments)};
  /* customize formbutton below*/     
  formbutton("create", {
    action: "https://formspree.io/f/xknlpkkd",
    title: "有什么可以帮到您？💕💕💕 How can I help you?",
    buttonImg: "&lt;img src='https://afoo.me/hero3/70.webp' alt/&gt;",
    fields: [
      { 
        type: "email", 
        label: "您的电子邮箱（方便与您联系）:", 
        name: "email",
        required: true,
        placeholder: "your@email.com"
      },
      {
        type: "textarea",
        label: "您想提交的反馈和询问信息:",
        name: "message",
        placeholder: "What's on your mind?",
      },
      { type: "submit" }      
    ],
    styles: {
      title: {
        backgroundColor: "blue"
      },
      button: {
        backgroundColor: "blue"
      }
    }
  });
&lt;/script&gt; 
  &lt;script&gt;
	// tooltips
	tippy('#aiedu', {
        content: "As to AI nowadays, LLM and Stable Diffusion are hot even hottest among them, If your want to both know-why and know-how with them, instead of only know-how which can't repeat itself, you should get you to https://ai.afoo.me right now ❗"
    });  
&lt;/script&gt;  
 &lt;/body&gt;
&lt;/html&gt;</description>
      <pubDate>Sun, 06 Sep 2026 16:00:00 GMT</pubDate>
      <guid>http://afoo.me/posts/2026-09-07-vibecoding-practices-of-an-OMA.html</guid>
      <dc:date>2026-09-06T16:00:00Z</dc:date>
    </item>
    <item>
      <title>国内的AI商战进展到哪一步了?</title>
      <link>http://afoo.me/posts/2026-09-01-AI-trend-of-china-today.html</link>
      <description>&lt;!doctype html&gt;
&lt;html lang="zh" class="motion-safe:scroll-smooth 2xl:text-[20px]"&gt; 
 &lt;head&gt; 
  &lt;meta charset="utf-8"&gt; 
  &lt;meta name="keywords" content="国内的AI商战进展到哪一步了? - 架构师， 架构士，架构教练, 教练, 个人成长, 组织成长, 独立顾问, architecture, book author, thinker, fighter, 架构, 思考, 技术, 武术, 哲学"&gt; 
  &lt;meta name="description" content="国内的AI商战进展到哪一步了? - 福强说，扶墙老师说，王福强的个人博客， 一个架构士的思考与沉淀"&gt; 
  &lt;meta name="author" content="王福强"&gt; 
  &lt;meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"&gt; 
  &lt;meta http-equiv="Content-Type" content="text/html; charset=UTF-8"&gt; 
  &lt;meta name="robots" content="index,follow"&gt; 
  &lt;title&gt;国内的AI商战进展到哪一步了? -王福强的个人博客：一个架构士的思考与沉淀&lt;/title&gt; 
  &lt;meta name="date" content="2026-09-01"&gt; 
  &lt;meta property="og:title" content="国内的AI商战进展到哪一步了?"&gt; 
  &lt;meta property="og:type" content="landing page"&gt; 
  &lt;meta property="og:url" content="https://afoo.me/posts/2026-09-01-AI-trend-of-china-today.html"&gt; 
  &lt;meta property="og:image" content="https://og.afoo.me?url=https://afoo.me/posts/2026-09-01-AI-trend-of-china-today.html"&gt; 
  &lt;meta name="twitter:card" content="summary_large_image"&gt; 
  &lt;meta name="twitter:title" content="国内的AI商战进展到哪一步了?"&gt; 
  &lt;meta name="twitter:site" content="@afoo_me"&gt; 
  &lt;meta name="twitter:creator" content="@afoo_me"&gt; 
  &lt;meta name="twitter:image" content="https://og.afoo.me?url=https://afoo.me/posts/2026-09-01-AI-trend-of-china-today.html"&gt; 
  &lt;meta name="twitter:description" content="国内的AI商战进展到哪一步了? - 王福强的个人博客， 一个架构士的思考与沉淀"&gt; 
  &lt;link rel="shortcut icon" href="/favicon.ico"&gt; 
  &lt;link rel="canonical" href="https://afoo.me/posts/2026-09-01-AI-trend-of-china-today.html"&gt; 
  &lt;link rel="icon" type="image/svg+xml" href="https://afoo.me/favicon.svg"&gt; 
  &lt;link rel="mask-icon" href="https://afoo.me/favicon.svg" color="#3383F8"&gt; 
  &lt;script src="https://afoo.me/js/htmx.min.js"&gt;&lt;/script&gt; 
  &lt;link rel="stylesheet" href="https://unpkg.com/gitalk/dist/gitalk.css"&gt; 
  &lt;script src="https://unpkg.com/gitalk/dist/gitalk.min.js"&gt;&lt;/script&gt; 
  &lt;script src="https://afoo.me/js/popper.min.js"&gt;&lt;/script&gt; 
  &lt;script src="https://afoo.me/js/tippy.min.js"&gt;&lt;/script&gt; 
  &lt;link rel="stylesheet" href="/css/af.css"&gt; 
  &lt;link rel="stylesheet" href="/css/components.css"&gt; 
  &lt;link ref="stylesheet" href="/css/pygments.css"&gt; 
  &lt;style type="text/css"&gt;
        pre &gt; code{
          white-space: pre-wrap;
          font-family: monospace;
          font-size: 14px;
          /* border-left: blueviolet;
          border-left-width: thick;
          border-left-style: double;
          padding-left: 1rem !important; */
        }
        
        .x-indicator{
            display:none;
        }
        .htmx-request .x-indicator{
            display:inline;
        }
        .htmx-request.x-indicator{
            display:inline;
        }
    &lt;/style&gt; 
  &lt;script type="application/ld+json"&gt;
    {
      "@context": "https://schema.org",
      "@type": "NewsArticle",
      "headline": "国内的AI商战进展到哪一步了?",
      "image": [
        "https://afoo.me/images/fb_subscribe.jpg"
       ],
      "datePublished": "2026-09-01",
      "author": [{
          "@type": "Person",
          "name": "王福强",
          "url": "https://afoo.me"
        }]
    }
  &lt;/script&gt; 
  &lt;script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-3687639021943715" crossorigin="anonymous"&gt;&lt;/script&gt; 
 &lt;/head&gt; 
 &lt;body class="antialiased text-slate-800 dark:text-slate-300 tracking-tight bg-slate-50 dark:bg-gray-900 vsc-initialized"&gt; 
  &lt;header class="sticky top-0 z-40 flex-none mx-auto w-full bg-slate-50 md:bg-slate-50/90 dark:bg-gray-900 dark:md:bg-gray-900/90 md:backdrop-blur-sm border-b border-slate-200 dark:border-b-0" id="header"&gt; 
   &lt;div class="py-3 px-3 mx-auto w-full md:flex md:justify-between max-w-6xl md:px-4"&gt; 
    &lt;div class="flex justify-between"&gt; &lt;a class="flex items-center" href="https://afoo.me"&gt; &lt;span class="self-center ml-2 text-2xl font-extrabold text-slate-800 whitespace-nowrap dark:text-white"&gt; &lt;img src="/images/afoo.PNG" alt="logo" style="height:60px;"&gt; &lt;/span&gt; &lt;/a&gt; 
     &lt;div class="flex items-center md:hidden"&gt; &lt;button type="button" class="text-gray-500 dark:text-gray-400 hover:bg-gray-100 dark:hover:bg-gray-700 focus:outline-none focus:ring-4 focus:ring-gray-200 dark:focus:ring-gray-700 rounded-lg text-sm p-2.5 inline-flex items-center" aria-label="Toggle between Dark and Light mode" data-toggle-color-scheme=""&gt; 
       &lt;svg viewbox="0 0 24 24" class="w-6 h-6" astro-icon="tabler:sun"&gt; &lt;g fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" class="icon-tabler"&gt; 
         &lt;circle cx="12" cy="12" r="4"&gt;&lt;/circle&gt; 
         &lt;path d="M3 12h1m8-9v1m8 8h1m-9 8v1M5.6 5.6l.7.7m12.1-.7-.7.7m0 11.4.7.7m-12.1-.7-.7.7"&gt; 
         &lt;/path&gt; 
        &lt;/g&gt; 
       &lt;/svg&gt; &lt;/button&gt; &lt;button type="button" class="ml-1.5 text-gray-500 dark:text-gray-400 hover:bg-gray-100 dark:hover:bg-gray-800 focus:outline-none focus:ring-4 focus:ring-gray-200 dark:focus:ring-gray-700 rounded-lg text-sm p-2.5 inline-flex items-center transition" aria-label="Toggle Menu" data-toggle-menu=""&gt; 
       &lt;svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" preserveaspectratio="xMidYMid meet" viewbox="0 0 24 24" class="w-6 h-6" astro-icon="tabler:menu"&gt; &lt;g class="icon-tabler" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"&gt; 
         &lt;path d="M4 8h16"&gt;&lt;/path&gt; 
         &lt;path d="M4 16h16"&gt;&lt;/path&gt; 
        &lt;/g&gt; 
       &lt;/svg&gt; &lt;/button&gt; 
     &lt;/div&gt; 
    &lt;/div&gt; 
    &lt;nav class="items-center w-full md:w-auto hidden md:flex text-gray-600 dark:text-slate-200 h-screen md:h-auto" aria-label="Main navigation"&gt; 
     &lt;ul class="flex flex-col pt-8 md:pt-0 md:flex-row md:self-center w-full md:w-auto text-xl md:text-base"&gt; 
      &lt;li&gt;&lt;a class="font-medium hover:text-gray-900 dark:hover:text-white px-4 py-3 flex items-center transition duration-150 ease-in-out" href="https://kb.afoo.me/"&gt;福强私学&lt;/a&gt;&lt;/li&gt; 
      &lt;li&gt; &lt;a id="aiedu" class="font-medium hover:text-gray-900 dark:hover:text-white px-4 py-3 flex items-center transition duration-150 ease-in-out" href="http://ai.afoo.me"&gt; 福强AI学堂&lt;/a&gt; &lt;/li&gt; 
      &lt;li&gt; &lt;a class="font-medium hover:text-gray-900 dark:hover:text-white px-4 py-3 flex items-center transition duration-150 ease-in-out" href="http://jiagoubaike.com"&gt;架构百科&lt;/a&gt; &lt;/li&gt; 
      &lt;li&gt; &lt;a class="font-medium hover:text-gray-900 dark:hover:text-white px-4 py-3 flex items-center transition duration-150 ease-in-out" href="https://afoo.me/posts.html"&gt;博客文章 &lt;/a&gt; &lt;/li&gt; 
      &lt;li&gt; &lt;a class="font-medium hover:text-gray-900 dark:hover:text-white px-4 py-3 flex items-center transition duration-150 ease-in-out" href="https://afoo.me/books.html"&gt;创作出版&lt;/a&gt; &lt;/li&gt; 
      &lt;li&gt; &lt;a class="font-medium hover:text-gray-900 dark:hover:text-white px-4 py-3 flex items-center transition duration-150 ease-in-out" href="https://store.afoo.me"&gt;产品与服务&lt;/a&gt; &lt;/li&gt; 
      &lt;li&gt;&lt;a class="font-medium hover:text-gray-900 dark:hover:text-white px-4 py-3 flex items-center transition duration-150 ease-in-out" href="https://auth.afoo.me/user.html"&gt;登录信息&lt;/a&gt;&lt;/li&gt; 
      &lt;li&gt; &lt;a class="font-medium hover:text-gray-900 dark:hover:text-white px-4 py-3 flex items-center transition duration-150 ease-in-out" href="https://afoo.me/crosslinks.html"&gt;更多链接&lt;/a&gt; &lt;/li&gt; 
     &lt;/ul&gt; 
     &lt;div class="md:self-center flex items-center mb-4 md:mb-0 ml-2"&gt; 
      &lt;div class="hidden items-center md:flex"&gt; &lt;button type="button" class="text-gray-500 dark:text-gray-400 hover:bg-gray-100 dark:hover:bg-gray-700 focus:outline-none focus:ring-4 focus:ring-gray-200 dark:focus:ring-gray-700 rounded-lg text-sm p-2.5 inline-flex items-center" aria-label="Toggle between Dark and Light mode" data-toggle-color-scheme=""&gt; 
        &lt;svg viewbox="0 0 24 24" class="w-5 h-5" astro-icon="tabler:sun"&gt; &lt;g fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" class="icon-tabler"&gt; 
          &lt;circle cx="12" cy="12" r="4"&gt;&lt;/circle&gt; 
          &lt;path d="M3 12h1m8-9v1m8 8h1m-9 8v1M5.6 5.6l.7.7m12.1-.7-.7.7m0 11.4.7.7m-12.1-.7-.7.7"&gt; 
          &lt;/path&gt; 
         &lt;/g&gt; 
        &lt;/svg&gt; &lt;/button&gt; &lt;a class="text-gray-500 dark:text-gray-400 hover:bg-gray-100 dark:hover:bg-gray-700 focus:outline-none focus:ring-4 focus:ring-gray-200 dark:focus:ring-gray-700 rounded-lg text-sm p-2.5 inline-flex items-center" aria-label="RSS Feed" href="http://afoo.me/feeds.xml"&gt; 
        &lt;svg viewbox="0 0 24 24" class="w-5 h-5" astro-icon="tabler:rss"&gt; &lt;g fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" class="icon-tabler"&gt; 
          &lt;circle cx="5" cy="19" r="1"&gt;&lt;/circle&gt; 
          &lt;path d="M4 4a16 16 0 0 1 16 16M4 11a9 9 0 0 1 9 9"&gt;&lt;/path&gt; 
         &lt;/g&gt; 
        &lt;/svg&gt; &lt;/a&gt; 
      &lt;/div&gt; 
     &lt;/div&gt; 
    &lt;/nav&gt; 
   &lt;/div&gt; 
  &lt;/header&gt; 
  &lt;main&gt; 
   &lt;div id="leftSlot" class="visible md:invisible fixed top-0 left-0" style="width: 16rem;height: 80%;margin-top: 4rem;"&gt; &lt;!-- left --&gt; 
    &lt;ins class="adsbygoogle" style="display:block" data-ad-client="ca-pub-3687639021943715" data-ad-slot="3581141418" data-ad-format="auto" data-full-width-responsive="true"&gt;&lt;/ins&gt; 
    &lt;script&gt;
          (adsbygoogle = window.adsbygoogle || []).push({});
      &lt;/script&gt; 
   &lt;/div&gt; 
   &lt;div id="rightSlot" class="visible md:invisible fixed top-0 right-0" style="width: 16rem;height: 80%;margin-top: 4rem;"&gt; &lt;!-- right --&gt; 
    &lt;ins class="adsbygoogle" style="display:block" data-ad-client="ca-pub-3687639021943715" data-ad-slot="7030836806" data-ad-format="auto" data-full-width-responsive="true"&gt;&lt;/ins&gt; 
    &lt;script&gt;
           (adsbygoogle = window.adsbygoogle || []).push({});
      &lt;/script&gt; 
   &lt;/div&gt; 
   &lt;section class="text-gray-600 body-font relative"&gt; 
    &lt;div class="max-w-4xl mx-auto px-5 py-24 mb-12 prose prose-lg dark:prose-invert"&gt; 
     &lt;p class="lead"&gt; &lt;/p&gt;
     &lt;h1 class="title"&gt;国内的AI商战进展到哪一步了?&lt;/h1&gt; &lt;small&gt; &lt;h3 class="author"&gt;王福强&lt;/h3&gt; 
      &lt;div style="text-align: left;"&gt;
       2026-09-01
      &lt;/div&gt; &lt;/small&gt; 
     &lt;p&gt;&lt;/p&gt; &lt;!-- random --&gt; 
     &lt;ins class="adsbygoogle" style="display:block" data-ad-client="ca-pub-3687639021943715" data-ad-slot="2722720851" data-ad-format="auto" data-full-width-responsive="true"&gt;&lt;/ins&gt; 
     &lt;script&gt;
                 (adsbygoogle = window.adsbygoogle || []).push({});
            &lt;/script&gt; 
     &lt;hr&gt; 
     &lt;p&gt;以下只是个人观察或者说猜测，&lt;/p&gt; 
     &lt;p&gt;没啥数据支撑&lt;/p&gt; 
     &lt;p&gt;各位看官姑且笑笑、姑且看看、姑且谈谈…&lt;/p&gt; 
     &lt;p&gt;现在第一梯队的阵势已经差不多快形成三足鼎立的态势了&lt;/p&gt; 
     &lt;p&gt;但还远没有成型&lt;/p&gt; 
     &lt;p&gt;第一个就是字节主攻C端市场的战略意图很明显了&lt;/p&gt; 
     &lt;p&gt;将飞书之类原来做ToB的事业部拆的拆，散的散&lt;/p&gt; 
     &lt;p&gt;全都并入豆包&lt;/p&gt; 
     &lt;p&gt;主打一个抢占AI时代C端市场老大的地位&lt;/p&gt; 
     &lt;p&gt;第二个就是腾讯&lt;/p&gt; 
     &lt;p&gt;主攻办公市场的战略意图也十分明显&lt;/p&gt; 
     &lt;p&gt;今年以前（2026）&lt;/p&gt; 
     &lt;p&gt;腾讯在AI层面的战略落后是很明显的&lt;/p&gt; 
     &lt;p&gt;今年开始&lt;/p&gt; 
     &lt;p&gt;腾讯借着WorkBuddy这个产品主打后发优势&lt;/p&gt; 
     &lt;p&gt;连杭州电梯里都可以看到WorkBuddy的电梯广告投放&lt;/p&gt; 
     &lt;p&gt;你说他多舍得砸钱啊&lt;/p&gt; 
     &lt;p&gt;敢砸钱在广告上，就意味着他战略重心敲定了。&lt;/p&gt; 
     &lt;p&gt;第三个是阿里&lt;/p&gt; 
     &lt;p&gt;说实话，我觉得阿里现在不太稳当&lt;/p&gt; 
     &lt;p&gt;其实前期在模型上的优势还是挺明显的&lt;/p&gt; 
     &lt;p&gt;但到了现阶段&lt;/p&gt; 
     &lt;p&gt;他肯定是在模型、办公agent 和 coding agent层面的投入有些举棋不定？&lt;/p&gt; 
     &lt;p&gt;当然，只是个人感觉，没啥依据哈&lt;/p&gt; 
     &lt;p&gt;至于其它厂商&lt;/p&gt; 
     &lt;p&gt;大多都是在抢占MaaS和coding agent的市场&lt;/p&gt; 
     &lt;p&gt;有谁就不说了&lt;/p&gt; 
     &lt;p&gt;程序员群体都知道…&lt;/p&gt; &lt;!-- tail --&gt; 
     &lt;ins class="adsbygoogle" style="display:block" data-ad-client="ca-pub-3687639021943715" data-ad-slot="7874087130" data-ad-format="auto" data-full-width-responsive="true"&gt;&lt;/ins&gt; 
     &lt;script&gt;
                 (adsbygoogle = window.adsbygoogle || []).push({});
            &lt;/script&gt; 
     &lt;hr&gt; 
     &lt;div&gt; &lt;a href="/posts.html"&gt; &lt;b&gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; 更多阅读 &amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt; &lt;/b&gt;&lt;/a&gt; 
     &lt;/div&gt; 
     &lt;div id="random_posts"&gt; 
      &lt;div class="alert alert-light" role="alert"&gt; &lt;a href="/posts/2023-03-08-divident-X-comes-to-real.html"&gt;人口红利或者工程师红利到底在强调什么？ &lt;/a&gt; 
      &lt;/div&gt; 
      &lt;div class="alert alert-light" role="alert"&gt; &lt;a href="/posts/2024-09-25-how-to-choose-LLM-models.html"&gt;如何选择或者搭建合适的AI大语言模型服务？ &lt;/a&gt; 
      &lt;/div&gt; 
      &lt;div class="alert alert-light" role="alert"&gt; &lt;a href="/posts/2025-05-27-what-spring-ai-1-0-release-means.html"&gt;Spring AI 1.0 发布意味着什么？ &lt;/a&gt; 
      &lt;/div&gt; 
     &lt;/div&gt; 
     &lt;hr&gt; 
     &lt;div id="comments"&gt;&lt;/div&gt; 
     &lt;hr&gt; &lt;!-- Section CTA --&gt; 
     &lt;section class="overflow-x-clip bg-zinc-50 py-16 md:py-24"&gt; 
      &lt;div class="relative mx-auto w-full max-w-screen-xl px-4"&gt; 
       &lt;div class="relative z-10 w-full"&gt; &lt;!-- 福强私学推荐 --&gt; 
        &lt;div class="mx-auto max-w-screen-md"&gt; 
         &lt;h2 class="mb-4 text-center text-4xl font-bold md:text-5xl"&gt;&lt;a href="https://afoo.me/kb.html" class="border-b"&gt;「福强私学」&lt;/a&gt;来一个？&lt;/h2&gt; 
         &lt;p class="mx-auto mb-8 w-full text-center text-lg leading-8 text-zinc-700 md:w-5/6 md:text-xl"&gt;「福强私学」, 一部沉淀了个人成长、技术与架构、组织与管理以及商业上的方法与心法的百科全书。&lt;/p&gt; 
        &lt;/div&gt; 
        &lt;div class="mx-auto mt-6 w-full md:mt-12 md:w-4/5"&gt; &lt;a href="https://afoo.me/kb.html"&gt; &lt;img alt="footer img for kb.afoo.me" loading="lazy" width="2911" height="1961" decoding="async" data-nimg="1" class="mx-auto rounded-lg object-contain shadow-lg sm:rounded-2xl lg:rounded-3xl" style="color:transparent" src="https://og.afoo.me/?url=footer"&gt; &lt;/a&gt; 
        &lt;/div&gt; &lt;!-- 小报童推荐 --&gt; 
        &lt;div class="mx-auto max-w-screen-md"&gt; 
         &lt;h2 class="mt-8 mb-4 text-center text-4xl font-bold md:text-5xl"&gt;&lt;a href="https://xiaobot.net/p/aifd" class="border-b"&gt;福强老师的 AI 通识课&lt;/a&gt;&lt;/h2&gt;&lt;a href="https://xiaobot.net/p/aifd" class="border-b"&gt; &lt;/a&gt;
        &lt;/div&gt;&lt;a href="https://xiaobot.net/p/aifd" class="border-b"&gt; &lt;/a&gt;
        &lt;div class="mx-auto mt-6 w-full md:mt-12 md:w-4/5"&gt;
         &lt;a href="https://xiaobot.net/p/aifd" class="border-b"&gt; &lt;/a&gt;&lt;a href="https://xiaobot.net/p/aifd"&gt; &lt;img alt="footer img for kb.afoo.me" loading="lazy" width="2911" height="1961" decoding="async" data-nimg="1" class="mx-auto rounded-lg object-contain shadow-lg sm:rounded-2xl lg:rounded-3xl" style="color:transparent" src="/images/xbt-footer.webp"&gt; &lt;/a&gt; 
        &lt;/div&gt; 
        &lt;div class="mx-auto mt-6 w-full md:mt-12 md:w-4/5"&gt; 
         &lt;img alt="footer img for kb.afoo.me" loading="lazy" decoding="async" data-nimg="1" class="mx-auto p-3" style="color:transparent" src="/images/footer-links-2025.webp"&gt; 
        &lt;/div&gt; 
       &lt;/div&gt; 
      &lt;/div&gt; 
     &lt;/section&gt; 
     &lt;hr&gt; 
     &lt;p&gt; &lt;span style="font-size: xx-large;"&gt; 开天窗，拉认知，订阅「福报」，即刻拥有自己的全模态人工智能。 &lt;/span&gt; &lt;/p&gt; &lt;a href="https://wfq.gumroad.com/l/fb"&gt; &lt;img src="/images/fb_subscribe_v2.jpg" alt="订阅「福报」"&gt; &lt;/a&gt; 
     &lt;hr&gt; 
     &lt;div hx-get="https://toolfooter.afoo.me/" hx-trigger="revealed" htmx-indicator="#tfloader"&gt; 
      &lt;div id="tfloader" class="x-indicator"&gt; 
       &lt;svg width="57" height="57" viewbox="0 0 57 57" xmlns="http://www.w3.org/2000/svg" stroke="#3F83F8"&gt; &lt;g fill="none" fill-rule="evenodd"&gt; 
         &lt;g transform="translate(1 1)" stroke-width="2"&gt; 
          &lt;circle cx="5" cy="50" r="5"&gt; 
           &lt;animate attributename="cy" begin="0s" dur="2.2s" values="50;5;50;50" calcmode="linear" repeatcount="indefinite" /&gt; 
           &lt;animate attributename="cx" begin="0s" dur="2.2s" values="5;27;49;5" calcmode="linear" repeatcount="indefinite" /&gt; 
          &lt;/circle&gt; 
          &lt;circle cx="27" cy="5" r="5"&gt; 
           &lt;animate attributename="cy" begin="0s" dur="2.2s" from="5" to="5" values="5;50;50;5" calcmode="linear" repeatcount="indefinite" /&gt; 
           &lt;animate attributename="cx" begin="0s" dur="2.2s" from="27" to="27" values="27;49;5;27" calcmode="linear" repeatcount="indefinite" /&gt; 
          &lt;/circle&gt; 
          &lt;circle cx="49" cy="50" r="5"&gt; 
           &lt;animate attributename="cy" begin="0s" dur="2.2s" values="50;50;5;50" calcmode="linear" repeatcount="indefinite" /&gt; 
           &lt;animate attributename="cx" from="49" to="49" begin="0s" dur="2.2s" values="49;5;27;49" calcmode="linear" repeatcount="indefinite" /&gt; 
          &lt;/circle&gt; 
         &lt;/g&gt; 
        &lt;/g&gt; 
       &lt;/svg&gt; 
      &lt;/div&gt; 
     &lt;/div&gt; 
    &lt;/div&gt; 
   &lt;/section&gt; 
  &lt;/main&gt; 
  &lt;div style="position: fixed; left: 0; bottom: 0; padding: 10px; z-index: 1000;"&gt; 
   &lt;img src="/icons/Written-By-Human-Not-By-AI-Badge-black@2x.png" alt loading="lazy"&gt; 
  &lt;/div&gt; 
  &lt;footer class="border-t border-gray-200 dark:border-slate-800"&gt; 
   &lt;div class="max-w-6xl mx-auto px-4 sm:px-6"&gt; 
    &lt;div class="md:flex md:items-center md:justify-between py-6 md:py-8"&gt; 
     &lt;ul class="flex mb-4 md:order-1 -ml-2 md:ml-4 md:mb-0"&gt; 
      &lt;li&gt; &lt;a class="text-gray-500 dark:text-gray-400 hover:bg-gray-100 dark:hover:bg-gray-700 focus:outline-none focus:ring-4 focus:ring-gray-200 dark:focus:ring-gray-700 rounded-lg text-sm p-2.5 inline-flex items-center" aria-label="Twitter" href="https://twitter.com/afoo_me"&gt; 
        &lt;svg viewbox="0 0 24 24" class="w-5 h-5" astro-icon="tabler:brand-twitter"&gt; &lt;path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M22 4.01c-1 .49-1.98.689-3 .99-1.121-1.265-2.783-1.335-4.38-.737S11.977 6.323 12 8v1c-3.245.083-6.135-1.395-8-4 0 0-4.182 7.433 4 11-1.872 1.247-3.739 2.088-6 2 3.308 1.803 6.913 2.423 10.034 1.517 3.58-1.04 6.522-3.723 7.651-7.742a13.84 13.84 0 0 0 .497-3.753C20.18 7.773 21.692 5.25 22 4.009z"&gt; 
         &lt;/path&gt; 
        &lt;/svg&gt; &lt;/a&gt; &lt;/li&gt; 
      &lt;li&gt; &lt;a class="text-gray-500 dark:text-gray-400 hover:bg-gray-100 dark:hover:bg-gray-700 focus:outline-none focus:ring-4 focus:ring-gray-200 dark:focus:ring-gray-700 rounded-lg text-sm p-2.5 inline-flex items-center" aria-label="Facebook" href="https://www.facebook.com/fujohnwang/"&gt; 
        &lt;svg viewbox="0 0 24 24" class="w-5 h-5" astro-icon="tabler:brand-facebook"&gt; &lt;path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M7 10v4h3v7h4v-7h3l1-4h-4V8a1 1 0 0 1 1-1h3V3h-3a5 5 0 0 0-5 5v2H7"&gt;&lt;/path&gt; 
        &lt;/svg&gt; &lt;/a&gt; &lt;/li&gt; 
      &lt;li&gt; &lt;a class="text-gray-500 dark:text-gray-400 hover:bg-gray-100 dark:hover:bg-gray-700 focus:outline-none focus:ring-4 focus:ring-gray-200 dark:focus:ring-gray-700 rounded-lg text-sm p-2.5 inline-flex items-center" aria-label="Github" href="https://github.com/fujohnwang"&gt; 
        &lt;svg viewbox="0 0 24 24" class="w-5 h-5" astro-icon="tabler:brand-github"&gt; &lt;path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 19c-4.3 1.4-4.3-2.5-6-3m12 5v-3.5c0-1 .1-1.4-.5-2 2.8-.3 5.5-1.4 5.5-6a4.6 4.6 0 0 0-1.3-3.2 4.2 4.2 0 0 0-.1-3.2s-1.1-.3-3.5 1.3a12.3 12.3 0 0 0-6.2 0C6.5 2.8 5.4 3.1 5.4 3.1a4.2 4.2 0 0 0-.1 3.2A4.6 4.6 0 0 0 4 9.5c0 4.6 2.7 5.7 5.5 6-.6.6-.6 1.2-.5 2V21"&gt; 
         &lt;/path&gt; 
        &lt;/svg&gt; &lt;/a&gt; &lt;/li&gt; 
     &lt;/ul&gt; 
     &lt;div class="text-sm text-gray-700 mr-4 dark:text-slate-400"&gt; &lt;span class="w-5 h-5 md:w-6 md:h-6 md:-mt-0.5 bg-cover mr-1.5 float-left rounded-sm"&gt; &lt;img src="https://afoo.me/favicon.svg" class="rounded-md" alt&gt; &lt;/span&gt; Copyright © 王福强个人版权所有 - Since 2004 (Everything is homebrewed with &lt;a href="https://pandoc.org/"&gt;Pandoc&lt;/a&gt; and Markdown, little &lt;a href="https://www.scala-lang.org/"&gt;Scala&lt;/a&gt; also included.) 
     &lt;/div&gt; 
    &lt;/div&gt; 
   &lt;/div&gt; 
  &lt;/footer&gt; 
  &lt;script&gt;
        // Set "light" theme as default
        if (!localStorage.theme) {
            localStorage.theme = "light";
        }

        if (
            localStorage.theme === 'dark' ||
            (!('theme' in localStorage) &amp;&amp; window.matchMedia('(prefers-color-scheme: dark)').matches)
        ) {
            document.documentElement.classList.add('dark');
        } else {
            document.documentElement.classList.remove('dark');
        }

        function attachEvent(selector, event, fn) {
            const matches = document.querySelectorAll(selector);
            if (matches &amp;&amp; matches.length) {
                matches.forEach((elem) =&gt; {
                    elem.addEventListener(event, () =&gt; fn(elem), false);
                });
            }
        }

        window.onload = function () {
            attachEvent('[data-toggle-menu]', 'click', function (elem) {
                elem.classList.toggle('expanded');
                document.body.classList.toggle('overflow-hidden');
                document.getElementById('header')?.classList.toggle('h-screen');
                document.querySelector('#header nav')?.classList.toggle('hidden');
            });
            attachEvent("[data-toggle-color-scheme]", "click", function () {
                    document.documentElement.classList.toggle("light");
                    localStorage.theme = "light";
                });
        };
        window.onpageshow = function () {
            const elem = document.querySelector('[data-toggle-menu]');
            if (elem) {
                elem.classList.remove('expanded');
            }
            document.body.classList.remove('overflow-hidden');
            document.getElementById('header')?.classList.remove('h-screen');
            document.querySelector('#header nav')?.classList.add('hidden');
        };
    &lt;/script&gt; 
  &lt;script type="text/javascript"&gt;
        var gitalk = new Gitalk({
          clientID: '518a605d711883414ac0',
          clientSecret: '69fb8ccc0616c5bcbc64d24ece0d06d279da91ff',
          repo: 'afoo.me.comments',
          owner: 'fujohnwang',
          admin: ['fujohnwang'],
          id: location.pathname.substring(0, 49),      // Ensure uniqueness and length less than 50
          distractionFreeMode: false  // Facebook-like distraction free mode
        })
        gitalk.render('comments')
    &lt;/script&gt; 
  &lt;script src="https://formspree.io/js/formbutton-v1.min.js" defer&gt;&lt;/script&gt; 
  &lt;script&gt;
  /* paste this line in verbatim */
  window.formbutton=window.formbutton||function(){(formbutton.q=formbutton.q||[]).push(arguments)};
  /* customize formbutton below*/     
  formbutton("create", {
    action: "https://formspree.io/f/xknlpkkd",
    title: "有什么可以帮到您？💕💕💕 How can I help you?",
    buttonImg: "&lt;img src='https://afoo.me/hero3/70.webp' alt/&gt;",
    fields: [
      { 
        type: "email", 
        label: "您的电子邮箱（方便与您联系）:", 
        name: "email",
        required: true,
        placeholder: "your@email.com"
      },
      {
        type: "textarea",
        label: "您想提交的反馈和询问信息:",
        name: "message",
        placeholder: "What's on your mind?",
      },
      { type: "submit" }      
    ],
    styles: {
      title: {
        backgroundColor: "blue"
      },
      button: {
        backgroundColor: "blue"
      }
    }
  });
&lt;/script&gt; 
  &lt;script&gt;
	// tooltips
	tippy('#aiedu', {
        content: "As to AI nowadays, LLM and Stable Diffusion are hot even hottest among them, If your want to both know-why and know-how with them, instead of only know-how which can't repeat itself, you should get you to https://ai.afoo.me right now ❗"
    });  
&lt;/script&gt;  
 &lt;/body&gt;
&lt;/html&gt;</description>
      <pubDate>Mon, 31 Aug 2026 16:00:00 GMT</pubDate>
      <guid>http://afoo.me/posts/2026-09-01-AI-trend-of-china-today.html</guid>
      <dc:date>2026-08-31T16:00:00Z</dc:date>
    </item>
    <item>
      <title>人才与企业发展阶段之间的辨证关系</title>
      <link>http://afoo.me/posts/2026-08-30-hr-strategy-in-lifecycle-of-an-enterprise.html</link>
      <description>&lt;!doctype html&gt;
&lt;html lang="zh" class="motion-safe:scroll-smooth 2xl:text-[20px]"&gt; 
 &lt;head&gt; 
  &lt;meta charset="utf-8"&gt; 
  &lt;meta name="keywords" content="人才与企业发展阶段之间的辨证关系 - 架构师， 架构士，架构教练, 教练, 个人成长, 组织成长, 独立顾问, architecture, book author, thinker, fighter, 架构, 思考, 技术, 武术, 哲学"&gt; 
  &lt;meta name="description" content="人才与企业发展阶段之间的辨证关系 - 福强说，扶墙老师说，王福强的个人博客， 一个架构士的思考与沉淀"&gt; 
  &lt;meta name="author" content="王福强"&gt; 
  &lt;meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"&gt; 
  &lt;meta http-equiv="Content-Type" content="text/html; charset=UTF-8"&gt; 
  &lt;meta name="robots" content="index,follow"&gt; 
  &lt;title&gt;人才与企业发展阶段之间的辨证关系 -王福强的个人博客：一个架构士的思考与沉淀&lt;/title&gt; 
  &lt;meta name="date" content="2026-08-30"&gt; 
  &lt;meta property="og:title" content="人才与企业发展阶段之间的辨证关系"&gt; 
  &lt;meta property="og:type" content="landing page"&gt; 
  &lt;meta property="og:url" content="https://afoo.me/posts/2026-08-30-hr-strategy-in-lifecycle-of-an-enterprise.html"&gt; 
  &lt;meta property="og:image" content="https://og.afoo.me?url=https://afoo.me/posts/2026-08-30-hr-strategy-in-lifecycle-of-an-enterprise.html"&gt; 
  &lt;meta name="twitter:card" content="summary_large_image"&gt; 
  &lt;meta name="twitter:title" content="人才与企业发展阶段之间的辨证关系"&gt; 
  &lt;meta name="twitter:site" content="@afoo_me"&gt; 
  &lt;meta name="twitter:creator" content="@afoo_me"&gt; 
  &lt;meta name="twitter:image" content="https://og.afoo.me?url=https://afoo.me/posts/2026-08-30-hr-strategy-in-lifecycle-of-an-enterprise.html"&gt; 
  &lt;meta name="twitter:description" content="人才与企业发展阶段之间的辨证关系 - 王福强的个人博客， 一个架构士的思考与沉淀"&gt; 
  &lt;link rel="shortcut icon" href="/favicon.ico"&gt; 
  &lt;link rel="canonical" href="https://afoo.me/posts/2026-08-30-hr-strategy-in-lifecycle-of-an-enterprise.html"&gt; 
  &lt;link rel="icon" type="image/svg+xml" href="https://afoo.me/favicon.svg"&gt; 
  &lt;link rel="mask-icon" href="https://afoo.me/favicon.svg" color="#3383F8"&gt; 
  &lt;script src="https://afoo.me/js/htmx.min.js"&gt;&lt;/script&gt; 
  &lt;link rel="stylesheet" href="https://unpkg.com/gitalk/dist/gitalk.css"&gt; 
  &lt;script src="https://unpkg.com/gitalk/dist/gitalk.min.js"&gt;&lt;/script&gt; 
  &lt;script src="https://afoo.me/js/popper.min.js"&gt;&lt;/script&gt; 
  &lt;script src="https://afoo.me/js/tippy.min.js"&gt;&lt;/script&gt; 
  &lt;link rel="stylesheet" href="/css/af.css"&gt; 
  &lt;link rel="stylesheet" href="/css/components.css"&gt; 
  &lt;link ref="stylesheet" href="/css/pygments.css"&gt; 
  &lt;style type="text/css"&gt;
        pre &gt; code{
          white-space: pre-wrap;
          font-family: monospace;
          font-size: 14px;
          /* border-left: blueviolet;
          border-left-width: thick;
          border-left-style: double;
          padding-left: 1rem !important; */
        }
        
        .x-indicator{
            display:none;
        }
        .htmx-request .x-indicator{
            display:inline;
        }
        .htmx-request.x-indicator{
            display:inline;
        }
    &lt;/style&gt; 
  &lt;script type="application/ld+json"&gt;
    {
      "@context": "https://schema.org",
      "@type": "NewsArticle",
      "headline": "人才与企业发展阶段之间的辨证关系",
      "image": [
        "https://afoo.me/images/fb_subscribe.jpg"
       ],
      "datePublished": "2026-08-30",
      "author": [{
          "@type": "Person",
          "name": "王福强",
          "url": "https://afoo.me"
        }]
    }
  &lt;/script&gt; 
  &lt;script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-3687639021943715" crossorigin="anonymous"&gt;&lt;/script&gt; 
 &lt;/head&gt; 
 &lt;body class="antialiased text-slate-800 dark:text-slate-300 tracking-tight bg-slate-50 dark:bg-gray-900 vsc-initialized"&gt; 
  &lt;header class="sticky top-0 z-40 flex-none mx-auto w-full bg-slate-50 md:bg-slate-50/90 dark:bg-gray-900 dark:md:bg-gray-900/90 md:backdrop-blur-sm border-b border-slate-200 dark:border-b-0" id="header"&gt; 
   &lt;div class="py-3 px-3 mx-auto w-full md:flex md:justify-between max-w-6xl md:px-4"&gt; 
    &lt;div class="flex justify-between"&gt; &lt;a class="flex items-center" href="https://afoo.me"&gt; &lt;span class="self-center ml-2 text-2xl font-extrabold text-slate-800 whitespace-nowrap dark:text-white"&gt; &lt;img src="/images/afoo.PNG" alt="logo" style="height:60px;"&gt; &lt;/span&gt; &lt;/a&gt; 
     &lt;div class="flex items-center md:hidden"&gt; &lt;button type="button" class="text-gray-500 dark:text-gray-400 hover:bg-gray-100 dark:hover:bg-gray-700 focus:outline-none focus:ring-4 focus:ring-gray-200 dark:focus:ring-gray-700 rounded-lg text-sm p-2.5 inline-flex items-center" aria-label="Toggle between Dark and Light mode" data-toggle-color-scheme=""&gt; 
       &lt;svg viewbox="0 0 24 24" class="w-6 h-6" astro-icon="tabler:sun"&gt; &lt;g fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" class="icon-tabler"&gt; 
         &lt;circle cx="12" cy="12" r="4"&gt;&lt;/circle&gt; 
         &lt;path d="M3 12h1m8-9v1m8 8h1m-9 8v1M5.6 5.6l.7.7m12.1-.7-.7.7m0 11.4.7.7m-12.1-.7-.7.7"&gt; 
         &lt;/path&gt; 
        &lt;/g&gt; 
       &lt;/svg&gt; &lt;/button&gt; &lt;button type="button" class="ml-1.5 text-gray-500 dark:text-gray-400 hover:bg-gray-100 dark:hover:bg-gray-800 focus:outline-none focus:ring-4 focus:ring-gray-200 dark:focus:ring-gray-700 rounded-lg text-sm p-2.5 inline-flex items-center transition" aria-label="Toggle Menu" data-toggle-menu=""&gt; 
       &lt;svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" preserveaspectratio="xMidYMid meet" viewbox="0 0 24 24" class="w-6 h-6" astro-icon="tabler:menu"&gt; &lt;g class="icon-tabler" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"&gt; 
         &lt;path d="M4 8h16"&gt;&lt;/path&gt; 
         &lt;path d="M4 16h16"&gt;&lt;/path&gt; 
        &lt;/g&gt; 
       &lt;/svg&gt; &lt;/button&gt; 
     &lt;/div&gt; 
    &lt;/div&gt; 
    &lt;nav class="items-center w-full md:w-auto hidden md:flex text-gray-600 dark:text-slate-200 h-screen md:h-auto" aria-label="Main navigation"&gt; 
     &lt;ul class="flex flex-col pt-8 md:pt-0 md:flex-row md:self-center w-full md:w-auto text-xl md:text-base"&gt; 
      &lt;li&gt;&lt;a class="font-medium hover:text-gray-900 dark:hover:text-white px-4 py-3 flex items-center transition duration-150 ease-in-out" href="https://kb.afoo.me/"&gt;福强私学&lt;/a&gt;&lt;/li&gt; 
      &lt;li&gt; &lt;a id="aiedu" class="font-medium hover:text-gray-900 dark:hover:text-white px-4 py-3 flex items-center transition duration-150 ease-in-out" href="http://ai.afoo.me"&gt; 福强AI学堂&lt;/a&gt; &lt;/li&gt; 
      &lt;li&gt; &lt;a class="font-medium hover:text-gray-900 dark:hover:text-white px-4 py-3 flex items-center transition duration-150 ease-in-out" href="http://jiagoubaike.com"&gt;架构百科&lt;/a&gt; &lt;/li&gt; 
      &lt;li&gt; &lt;a class="font-medium hover:text-gray-900 dark:hover:text-white px-4 py-3 flex items-center transition duration-150 ease-in-out" href="https://afoo.me/posts.html"&gt;博客文章 &lt;/a&gt; &lt;/li&gt; 
      &lt;li&gt; &lt;a class="font-medium hover:text-gray-900 dark:hover:text-white px-4 py-3 flex items-center transition duration-150 ease-in-out" href="https://afoo.me/books.html"&gt;创作出版&lt;/a&gt; &lt;/li&gt; 
      &lt;li&gt; &lt;a class="font-medium hover:text-gray-900 dark:hover:text-white px-4 py-3 flex items-center transition duration-150 ease-in-out" href="https://store.afoo.me"&gt;产品与服务&lt;/a&gt; &lt;/li&gt; 
      &lt;li&gt;&lt;a class="font-medium hover:text-gray-900 dark:hover:text-white px-4 py-3 flex items-center transition duration-150 ease-in-out" href="https://auth.afoo.me/user.html"&gt;登录信息&lt;/a&gt;&lt;/li&gt; 
      &lt;li&gt; &lt;a class="font-medium hover:text-gray-900 dark:hover:text-white px-4 py-3 flex items-center transition duration-150 ease-in-out" href="https://afoo.me/crosslinks.html"&gt;更多链接&lt;/a&gt; &lt;/li&gt; 
     &lt;/ul&gt; 
     &lt;div class="md:self-center flex items-center mb-4 md:mb-0 ml-2"&gt; 
      &lt;div class="hidden items-center md:flex"&gt; &lt;button type="button" class="text-gray-500 dark:text-gray-400 hover:bg-gray-100 dark:hover:bg-gray-700 focus:outline-none focus:ring-4 focus:ring-gray-200 dark:focus:ring-gray-700 rounded-lg text-sm p-2.5 inline-flex items-center" aria-label="Toggle between Dark and Light mode" data-toggle-color-scheme=""&gt; 
        &lt;svg viewbox="0 0 24 24" class="w-5 h-5" astro-icon="tabler:sun"&gt; &lt;g fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" class="icon-tabler"&gt; 
          &lt;circle cx="12" cy="12" r="4"&gt;&lt;/circle&gt; 
          &lt;path d="M3 12h1m8-9v1m8 8h1m-9 8v1M5.6 5.6l.7.7m12.1-.7-.7.7m0 11.4.7.7m-12.1-.7-.7.7"&gt; 
          &lt;/path&gt; 
         &lt;/g&gt; 
        &lt;/svg&gt; &lt;/button&gt; &lt;a class="text-gray-500 dark:text-gray-400 hover:bg-gray-100 dark:hover:bg-gray-700 focus:outline-none focus:ring-4 focus:ring-gray-200 dark:focus:ring-gray-700 rounded-lg text-sm p-2.5 inline-flex items-center" aria-label="RSS Feed" href="http://afoo.me/feeds.xml"&gt; 
        &lt;svg viewbox="0 0 24 24" class="w-5 h-5" astro-icon="tabler:rss"&gt; &lt;g fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" class="icon-tabler"&gt; 
          &lt;circle cx="5" cy="19" r="1"&gt;&lt;/circle&gt; 
          &lt;path d="M4 4a16 16 0 0 1 16 16M4 11a9 9 0 0 1 9 9"&gt;&lt;/path&gt; 
         &lt;/g&gt; 
        &lt;/svg&gt; &lt;/a&gt; 
      &lt;/div&gt; 
     &lt;/div&gt; 
    &lt;/nav&gt; 
   &lt;/div&gt; 
  &lt;/header&gt; 
  &lt;main&gt; 
   &lt;div id="leftSlot" class="visible md:invisible fixed top-0 left-0" style="width: 16rem;height: 80%;margin-top: 4rem;"&gt; &lt;!-- left --&gt; 
    &lt;ins class="adsbygoogle" style="display:block" data-ad-client="ca-pub-3687639021943715" data-ad-slot="3581141418" data-ad-format="auto" data-full-width-responsive="true"&gt;&lt;/ins&gt; 
    &lt;script&gt;
          (adsbygoogle = window.adsbygoogle || []).push({});
      &lt;/script&gt; 
   &lt;/div&gt; 
   &lt;div id="rightSlot" class="visible md:invisible fixed top-0 right-0" style="width: 16rem;height: 80%;margin-top: 4rem;"&gt; &lt;!-- right --&gt; 
    &lt;ins class="adsbygoogle" style="display:block" data-ad-client="ca-pub-3687639021943715" data-ad-slot="7030836806" data-ad-format="auto" data-full-width-responsive="true"&gt;&lt;/ins&gt; 
    &lt;script&gt;
           (adsbygoogle = window.adsbygoogle || []).push({});
      &lt;/script&gt; 
   &lt;/div&gt; 
   &lt;section class="text-gray-600 body-font relative"&gt; 
    &lt;div class="max-w-4xl mx-auto px-5 py-24 mb-12 prose prose-lg dark:prose-invert"&gt; 
     &lt;p class="lead"&gt; &lt;/p&gt;
     &lt;h1 class="title"&gt;人才与企业发展阶段之间的辨证关系&lt;/h1&gt; &lt;small&gt; &lt;h3 class="author"&gt;王福强&lt;/h3&gt; 
      &lt;div style="text-align: left;"&gt;
       2026-08-30
      &lt;/div&gt; &lt;/small&gt; 
     &lt;p&gt;&lt;/p&gt; &lt;!-- random --&gt; 
     &lt;ins class="adsbygoogle" style="display:block" data-ad-client="ca-pub-3687639021943715" data-ad-slot="2722720851" data-ad-format="auto" data-full-width-responsive="true"&gt;&lt;/ins&gt; 
     &lt;script&gt;
                 (adsbygoogle = window.adsbygoogle || []).push({});
            &lt;/script&gt; 
     &lt;hr&gt; 
     &lt;p&gt;溜​⁣⁣⁣‌‌⁣⁣⁣⁣‌⁣‌‌⁣⁣‌⁣‌‌‌⁣⁣⁣⁣⁣⁣⁣‌‌⁣‌⁣⁣‌⁣⁣⁣⁣‌‌⁣‌⁣⁣⁣‌⁣‌‍达的时候&lt;/p&gt; 
     &lt;p&gt;想起在某司招聘的时候的一个事情&lt;/p&gt; 
     &lt;p&gt;当时我面试到一个表现的比较 aggressive 的年轻人&lt;/p&gt; 
     &lt;p&gt;我是比较欲しい的&lt;/p&gt; 
     &lt;p&gt;但另一个 VP 交叉面的时候给否了&lt;/p&gt; 
     &lt;p&gt;表现的也比较不屑&lt;/p&gt; 
     &lt;p&gt;这个事情我印象比较深&lt;/p&gt; 
     &lt;p&gt;现在想来&lt;/p&gt; 
     &lt;p&gt;当一家公司业务前景不明朗的时候&lt;/p&gt; 
     &lt;p&gt;或者创始人财务上比较“保守”的时候&lt;/p&gt; 
     &lt;p&gt;确实是不太喜欢比较 aggressive 的员工&lt;/p&gt; 
     &lt;p&gt;只有业务明朗而且处于高速发展期的时候&lt;/p&gt; 
     &lt;p&gt;这种 aggressive 的员工才比较吃香&lt;/p&gt; 
     &lt;p&gt;因为只要你能在主航道上拿到大结果&lt;/p&gt; 
     &lt;p&gt;我就敢给钱&lt;/p&gt; 
     &lt;p&gt;反而业务不明朗的时候&lt;/p&gt; 
     &lt;p&gt;要熬&lt;/p&gt; 
     &lt;p&gt;要少花钱&lt;/p&gt; 
     &lt;p&gt;要减少不必要的内耗&lt;/p&gt; 
     &lt;p&gt;这时候&lt;/p&gt; 
     &lt;p&gt;比较 aggressive 的员工&lt;/p&gt; 
     &lt;p&gt;自己耐不住&lt;/p&gt; 
     &lt;p&gt;公司也不一定留得住&lt;/p&gt; 
     &lt;p&gt;so 只能放弃&lt;/p&gt; 
     &lt;p&gt;减少不必要的切换和摩擦成本&lt;/p&gt; 
     &lt;hr&gt; 
     &lt;p&gt;当然，落到人身上，能容人的人还是少，绝大多数人不喜欢 aggressive 的人，更不要说下属&lt;/p&gt; &lt;!-- tail --&gt; 
     &lt;ins class="adsbygoogle" style="display:block" data-ad-client="ca-pub-3687639021943715" data-ad-slot="7874087130" data-ad-format="auto" data-full-width-responsive="true"&gt;&lt;/ins&gt; 
     &lt;script&gt;
                 (adsbygoogle = window.adsbygoogle || []).push({});
            &lt;/script&gt; 
     &lt;hr&gt; 
     &lt;div&gt; &lt;a href="/posts.html"&gt; &lt;b&gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; 更多阅读 &amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt; &lt;/b&gt;&lt;/a&gt; 
     &lt;/div&gt; 
     &lt;div id="random_posts"&gt; 
      &lt;div class="alert alert-light" role="alert"&gt; &lt;a href="/posts/2025-10-16-GeminiCLI_Extensions.html"&gt;Google Gemini CLI extensions是个什么东西？ &lt;/a&gt; 
      &lt;/div&gt; 
      &lt;div class="alert alert-light" role="alert"&gt; &lt;a href="/posts/2025-02-19-bounty-vs-employment.html"&gt;赏金模式还是雇佣关系，这是个问题… &lt;/a&gt; 
      &lt;/div&gt; 
      &lt;div class="alert alert-light" role="alert"&gt; &lt;a href="/posts/2014-05-07-weixin-zxl-team-guideline.html"&gt;张小龙内部邮件中提到团队的理念[转载] &lt;/a&gt; 
      &lt;/div&gt; 
     &lt;/div&gt; 
     &lt;hr&gt; 
     &lt;div id="comments"&gt;&lt;/div&gt; 
     &lt;hr&gt; &lt;!-- Section CTA --&gt; 
     &lt;section class="overflow-x-clip bg-zinc-50 py-16 md:py-24"&gt; 
      &lt;div class="relative mx-auto w-full max-w-screen-xl px-4"&gt; 
       &lt;div class="relative z-10 w-full"&gt; &lt;!-- 福强私学推荐 --&gt; 
        &lt;div class="mx-auto max-w-screen-md"&gt; 
         &lt;h2 class="mb-4 text-center text-4xl font-bold md:text-5xl"&gt;&lt;a href="https://afoo.me/kb.html" class="border-b"&gt;「福强私学」&lt;/a&gt;来一个？&lt;/h2&gt; 
         &lt;p class="mx-auto mb-8 w-full text-center text-lg leading-8 text-zinc-700 md:w-5/6 md:text-xl"&gt;「福强私学」, 一部沉淀了个人成长、技术与架构、组织与管理以及商业上的方法与心法的百科全书。&lt;/p&gt; 
        &lt;/div&gt; 
        &lt;div class="mx-auto mt-6 w-full md:mt-12 md:w-4/5"&gt; &lt;a href="https://afoo.me/kb.html"&gt; &lt;img alt="footer img for kb.afoo.me" loading="lazy" width="2911" height="1961" decoding="async" data-nimg="1" class="mx-auto rounded-lg object-contain shadow-lg sm:rounded-2xl lg:rounded-3xl" style="color:transparent" src="https://og.afoo.me/?url=footer"&gt; &lt;/a&gt; 
        &lt;/div&gt; &lt;!-- 小报童推荐 --&gt; 
        &lt;div class="mx-auto max-w-screen-md"&gt; 
         &lt;h2 class="mt-8 mb-4 text-center text-4xl font-bold md:text-5xl"&gt;&lt;a href="https://xiaobot.net/p/aifd" class="border-b"&gt;福强老师的 AI 通识课&lt;/a&gt;&lt;/h2&gt;&lt;a href="https://xiaobot.net/p/aifd" class="border-b"&gt; &lt;/a&gt;
        &lt;/div&gt;&lt;a href="https://xiaobot.net/p/aifd" class="border-b"&gt; &lt;/a&gt;
        &lt;div class="mx-auto mt-6 w-full md:mt-12 md:w-4/5"&gt;
         &lt;a href="https://xiaobot.net/p/aifd" class="border-b"&gt; &lt;/a&gt;&lt;a href="https://xiaobot.net/p/aifd"&gt; &lt;img alt="footer img for kb.afoo.me" loading="lazy" width="2911" height="1961" decoding="async" data-nimg="1" class="mx-auto rounded-lg object-contain shadow-lg sm:rounded-2xl lg:rounded-3xl" style="color:transparent" src="/images/xbt-footer.webp"&gt; &lt;/a&gt; 
        &lt;/div&gt; 
        &lt;div class="mx-auto mt-6 w-full md:mt-12 md:w-4/5"&gt; 
         &lt;img alt="footer img for kb.afoo.me" loading="lazy" decoding="async" data-nimg="1" class="mx-auto p-3" style="color:transparent" src="/images/footer-links-2025.webp"&gt; 
        &lt;/div&gt; 
       &lt;/div&gt; 
      &lt;/div&gt; 
     &lt;/section&gt; 
     &lt;hr&gt; 
     &lt;p&gt; &lt;span style="font-size: xx-large;"&gt; 开天窗，拉认知，订阅「福报」，即刻拥有自己的全模态人工智能。 &lt;/span&gt; &lt;/p&gt; &lt;a href="https://wfq.gumroad.com/l/fb"&gt; &lt;img src="/images/fb_subscribe_v2.jpg" alt="订阅「福报」"&gt; &lt;/a&gt; 
     &lt;hr&gt; 
     &lt;div hx-get="https://toolfooter.afoo.me/" hx-trigger="revealed" htmx-indicator="#tfloader"&gt; 
      &lt;div id="tfloader" class="x-indicator"&gt; 
       &lt;svg width="57" height="57" viewbox="0 0 57 57" xmlns="http://www.w3.org/2000/svg" stroke="#3F83F8"&gt; &lt;g fill="none" fill-rule="evenodd"&gt; 
         &lt;g transform="translate(1 1)" stroke-width="2"&gt; 
          &lt;circle cx="5" cy="50" r="5"&gt; 
           &lt;animate attributename="cy" begin="0s" dur="2.2s" values="50;5;50;50" calcmode="linear" repeatcount="indefinite" /&gt; 
           &lt;animate attributename="cx" begin="0s" dur="2.2s" values="5;27;49;5" calcmode="linear" repeatcount="indefinite" /&gt; 
          &lt;/circle&gt; 
          &lt;circle cx="27" cy="5" r="5"&gt; 
           &lt;animate attributename="cy" begin="0s" dur="2.2s" from="5" to="5" values="5;50;50;5" calcmode="linear" repeatcount="indefinite" /&gt; 
           &lt;animate attributename="cx" begin="0s" dur="2.2s" from="27" to="27" values="27;49;5;27" calcmode="linear" repeatcount="indefinite" /&gt; 
          &lt;/circle&gt; 
          &lt;circle cx="49" cy="50" r="5"&gt; 
           &lt;animate attributename="cy" begin="0s" dur="2.2s" values="50;50;5;50" calcmode="linear" repeatcount="indefinite" /&gt; 
           &lt;animate attributename="cx" from="49" to="49" begin="0s" dur="2.2s" values="49;5;27;49" calcmode="linear" repeatcount="indefinite" /&gt; 
          &lt;/circle&gt; 
         &lt;/g&gt; 
        &lt;/g&gt; 
       &lt;/svg&gt; 
      &lt;/div&gt; 
     &lt;/div&gt; 
    &lt;/div&gt; 
   &lt;/section&gt; 
  &lt;/main&gt; 
  &lt;div style="position: fixed; left: 0; bottom: 0; padding: 10px; z-index: 1000;"&gt; 
   &lt;img src="/icons/Written-By-Human-Not-By-AI-Badge-black@2x.png" alt loading="lazy"&gt; 
  &lt;/div&gt; 
  &lt;footer class="border-t border-gray-200 dark:border-slate-800"&gt; 
   &lt;div class="max-w-6xl mx-auto px-4 sm:px-6"&gt; 
    &lt;div class="md:flex md:items-center md:justify-between py-6 md:py-8"&gt; 
     &lt;ul class="flex mb-4 md:order-1 -ml-2 md:ml-4 md:mb-0"&gt; 
      &lt;li&gt; &lt;a class="text-gray-500 dark:text-gray-400 hover:bg-gray-100 dark:hover:bg-gray-700 focus:outline-none focus:ring-4 focus:ring-gray-200 dark:focus:ring-gray-700 rounded-lg text-sm p-2.5 inline-flex items-center" aria-label="Twitter" href="https://twitter.com/afoo_me"&gt; 
        &lt;svg viewbox="0 0 24 24" class="w-5 h-5" astro-icon="tabler:brand-twitter"&gt; &lt;path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M22 4.01c-1 .49-1.98.689-3 .99-1.121-1.265-2.783-1.335-4.38-.737S11.977 6.323 12 8v1c-3.245.083-6.135-1.395-8-4 0 0-4.182 7.433 4 11-1.872 1.247-3.739 2.088-6 2 3.308 1.803 6.913 2.423 10.034 1.517 3.58-1.04 6.522-3.723 7.651-7.742a13.84 13.84 0 0 0 .497-3.753C20.18 7.773 21.692 5.25 22 4.009z"&gt; 
         &lt;/path&gt; 
        &lt;/svg&gt; &lt;/a&gt; &lt;/li&gt; 
      &lt;li&gt; &lt;a class="text-gray-500 dark:text-gray-400 hover:bg-gray-100 dark:hover:bg-gray-700 focus:outline-none focus:ring-4 focus:ring-gray-200 dark:focus:ring-gray-700 rounded-lg text-sm p-2.5 inline-flex items-center" aria-label="Facebook" href="https://www.facebook.com/fujohnwang/"&gt; 
        &lt;svg viewbox="0 0 24 24" class="w-5 h-5" astro-icon="tabler:brand-facebook"&gt; &lt;path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M7 10v4h3v7h4v-7h3l1-4h-4V8a1 1 0 0 1 1-1h3V3h-3a5 5 0 0 0-5 5v2H7"&gt;&lt;/path&gt; 
        &lt;/svg&gt; &lt;/a&gt; &lt;/li&gt; 
      &lt;li&gt; &lt;a class="text-gray-500 dark:text-gray-400 hover:bg-gray-100 dark:hover:bg-gray-700 focus:outline-none focus:ring-4 focus:ring-gray-200 dark:focus:ring-gray-700 rounded-lg text-sm p-2.5 inline-flex items-center" aria-label="Github" href="https://github.com/fujohnwang"&gt; 
        &lt;svg viewbox="0 0 24 24" class="w-5 h-5" astro-icon="tabler:brand-github"&gt; &lt;path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 19c-4.3 1.4-4.3-2.5-6-3m12 5v-3.5c0-1 .1-1.4-.5-2 2.8-.3 5.5-1.4 5.5-6a4.6 4.6 0 0 0-1.3-3.2 4.2 4.2 0 0 0-.1-3.2s-1.1-.3-3.5 1.3a12.3 12.3 0 0 0-6.2 0C6.5 2.8 5.4 3.1 5.4 3.1a4.2 4.2 0 0 0-.1 3.2A4.6 4.6 0 0 0 4 9.5c0 4.6 2.7 5.7 5.5 6-.6.6-.6 1.2-.5 2V21"&gt; 
         &lt;/path&gt; 
        &lt;/svg&gt; &lt;/a&gt; &lt;/li&gt; 
     &lt;/ul&gt; 
     &lt;div class="text-sm text-gray-700 mr-4 dark:text-slate-400"&gt; &lt;span class="w-5 h-5 md:w-6 md:h-6 md:-mt-0.5 bg-cover mr-1.5 float-left rounded-sm"&gt; &lt;img src="https://afoo.me/favicon.svg" class="rounded-md" alt&gt; &lt;/span&gt; Copyright © 王福强个人版权所有 - Since 2004 (Everything is homebrewed with &lt;a href="https://pandoc.org/"&gt;Pandoc&lt;/a&gt; and Markdown, little &lt;a href="https://www.scala-lang.org/"&gt;Scala&lt;/a&gt; also included.) 
     &lt;/div&gt; 
    &lt;/div&gt; 
   &lt;/div&gt; 
  &lt;/footer&gt; 
  &lt;script&gt;
        // Set "light" theme as default
        if (!localStorage.theme) {
            localStorage.theme = "light";
        }

        if (
            localStorage.theme === 'dark' ||
            (!('theme' in localStorage) &amp;&amp; window.matchMedia('(prefers-color-scheme: dark)').matches)
        ) {
            document.documentElement.classList.add('dark');
        } else {
            document.documentElement.classList.remove('dark');
        }

        function attachEvent(selector, event, fn) {
            const matches = document.querySelectorAll(selector);
            if (matches &amp;&amp; matches.length) {
                matches.forEach((elem) =&gt; {
                    elem.addEventListener(event, () =&gt; fn(elem), false);
                });
            }
        }

        window.onload = function () {
            attachEvent('[data-toggle-menu]', 'click', function (elem) {
                elem.classList.toggle('expanded');
                document.body.classList.toggle('overflow-hidden');
                document.getElementById('header')?.classList.toggle('h-screen');
                document.querySelector('#header nav')?.classList.toggle('hidden');
            });
            attachEvent("[data-toggle-color-scheme]", "click", function () {
                    document.documentElement.classList.toggle("light");
                    localStorage.theme = "light";
                });
        };
        window.onpageshow = function () {
            const elem = document.querySelector('[data-toggle-menu]');
            if (elem) {
                elem.classList.remove('expanded');
            }
            document.body.classList.remove('overflow-hidden');
            document.getElementById('header')?.classList.remove('h-screen');
            document.querySelector('#header nav')?.classList.add('hidden');
        };
    &lt;/script&gt; 
  &lt;script type="text/javascript"&gt;
        var gitalk = new Gitalk({
          clientID: '518a605d711883414ac0',
          clientSecret: '69fb8ccc0616c5bcbc64d24ece0d06d279da91ff',
          repo: 'afoo.me.comments',
          owner: 'fujohnwang',
          admin: ['fujohnwang'],
          id: location.pathname.substring(0, 49),      // Ensure uniqueness and length less than 50
          distractionFreeMode: false  // Facebook-like distraction free mode
        })
        gitalk.render('comments')
    &lt;/script&gt; 
  &lt;script src="https://formspree.io/js/formbutton-v1.min.js" defer&gt;&lt;/script&gt; 
  &lt;script&gt;
  /* paste this line in verbatim */
  window.formbutton=window.formbutton||function(){(formbutton.q=formbutton.q||[]).push(arguments)};
  /* customize formbutton below*/     
  formbutton("create", {
    action: "https://formspree.io/f/xknlpkkd",
    title: "有什么可以帮到您？💕💕💕 How can I help you?",
    buttonImg: "&lt;img src='https://afoo.me/hero3/70.webp' alt/&gt;",
    fields: [
      { 
        type: "email", 
        label: "您的电子邮箱（方便与您联系）:", 
        name: "email",
        required: true,
        placeholder: "your@email.com"
      },
      {
        type: "textarea",
        label: "您想提交的反馈和询问信息:",
        name: "message",
        placeholder: "What's on your mind?",
      },
      { type: "submit" }      
    ],
    styles: {
      title: {
        backgroundColor: "blue"
      },
      button: {
        backgroundColor: "blue"
      }
    }
  });
&lt;/script&gt; 
  &lt;script&gt;
	// tooltips
	tippy('#aiedu', {
        content: "As to AI nowadays, LLM and Stable Diffusion are hot even hottest among them, If your want to both know-why and know-how with them, instead of only know-how which can't repeat itself, you should get you to https://ai.afoo.me right now ❗"
    });  
&lt;/script&gt;  
 &lt;/body&gt;
&lt;/html&gt;</description>
      <pubDate>Sat, 29 Aug 2026 16:00:00 GMT</pubDate>
      <guid>http://afoo.me/posts/2026-08-30-hr-strategy-in-lifecycle-of-an-enterprise.html</guid>
      <dc:date>2026-08-29T16:00:00Z</dc:date>
    </item>
    <item>
      <title>拯救行动中的AI</title>
      <link>http://afoo.me/posts/2026-08-24-AI-in-Project-Hail-Mary.html</link>
      <description>&lt;!doctype html&gt;
&lt;html lang="zh" class="motion-safe:scroll-smooth 2xl:text-[20px]"&gt; 
 &lt;head&gt; 
  &lt;meta charset="utf-8"&gt; 
  &lt;meta name="keywords" content="拯救行动中的AI - 架构师， 架构士，架构教练, 教练, 个人成长, 组织成长, 独立顾问, architecture, book author, thinker, fighter, 架构, 思考, 技术, 武术, 哲学"&gt; 
  &lt;meta name="description" content="拯救行动中的AI - 福强说，扶墙老师说，王福强的个人博客， 一个架构士的思考与沉淀"&gt; 
  &lt;meta name="author" content="王福强"&gt; 
  &lt;meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"&gt; 
  &lt;meta http-equiv="Content-Type" content="text/html; charset=UTF-8"&gt; 
  &lt;meta name="robots" content="index,follow"&gt; 
  &lt;title&gt;拯救行动中的AI -王福强的个人博客：一个架构士的思考与沉淀&lt;/title&gt; 
  &lt;meta name="date" content="2026-08-24"&gt; 
  &lt;meta property="og:title" content="拯救行动中的AI"&gt; 
  &lt;meta property="og:type" content="landing page"&gt; 
  &lt;meta property="og:url" content="https://afoo.me/posts/2026-08-24-AI-in-Project-Hail-Mary.html"&gt; 
  &lt;meta property="og:image" content="https://og.afoo.me?url=https://afoo.me/posts/2026-08-24-AI-in-Project-Hail-Mary.html"&gt; 
  &lt;meta name="twitter:card" content="summary_large_image"&gt; 
  &lt;meta name="twitter:title" content="拯救行动中的AI"&gt; 
  &lt;meta name="twitter:site" content="@afoo_me"&gt; 
  &lt;meta name="twitter:creator" content="@afoo_me"&gt; 
  &lt;meta name="twitter:image" content="https://og.afoo.me?url=https://afoo.me/posts/2026-08-24-AI-in-Project-Hail-Mary.html"&gt; 
  &lt;meta name="twitter:description" content="拯救行动中的AI - 王福强的个人博客， 一个架构士的思考与沉淀"&gt; 
  &lt;link rel="shortcut icon" href="/favicon.ico"&gt; 
  &lt;link rel="canonical" href="https://afoo.me/posts/2026-08-24-AI-in-Project-Hail-Mary.html"&gt; 
  &lt;link rel="icon" type="image/svg+xml" href="https://afoo.me/favicon.svg"&gt; 
  &lt;link rel="mask-icon" href="https://afoo.me/favicon.svg" color="#3383F8"&gt; 
  &lt;script src="https://afoo.me/js/htmx.min.js"&gt;&lt;/script&gt; 
  &lt;link rel="stylesheet" href="https://unpkg.com/gitalk/dist/gitalk.css"&gt; 
  &lt;script src="https://unpkg.com/gitalk/dist/gitalk.min.js"&gt;&lt;/script&gt; 
  &lt;script src="https://afoo.me/js/popper.min.js"&gt;&lt;/script&gt; 
  &lt;script src="https://afoo.me/js/tippy.min.js"&gt;&lt;/script&gt; 
  &lt;link rel="stylesheet" href="/css/af.css"&gt; 
  &lt;link rel="stylesheet" href="/css/components.css"&gt; 
  &lt;link ref="stylesheet" href="/css/pygments.css"&gt; 
  &lt;style type="text/css"&gt;
        pre &gt; code{
          white-space: pre-wrap;
          font-family: monospace;
          font-size: 14px;
          /* border-left: blueviolet;
          border-left-width: thick;
          border-left-style: double;
          padding-left: 1rem !important; */
        }
        
        .x-indicator{
            display:none;
        }
        .htmx-request .x-indicator{
            display:inline;
        }
        .htmx-request.x-indicator{
            display:inline;
        }
    &lt;/style&gt; 
  &lt;script type="application/ld+json"&gt;
    {
      "@context": "https://schema.org",
      "@type": "NewsArticle",
      "headline": "拯救行动中的AI",
      "image": [
        "https://afoo.me/images/fb_subscribe.jpg"
       ],
      "datePublished": "2026-08-24",
      "author": [{
          "@type": "Person",
          "name": "王福强",
          "url": "https://afoo.me"
        }]
    }
  &lt;/script&gt; 
  &lt;script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-3687639021943715" crossorigin="anonymous"&gt;&lt;/script&gt; 
 &lt;/head&gt; 
 &lt;body class="antialiased text-slate-800 dark:text-slate-300 tracking-tight bg-slate-50 dark:bg-gray-900 vsc-initialized"&gt; 
  &lt;header class="sticky top-0 z-40 flex-none mx-auto w-full bg-slate-50 md:bg-slate-50/90 dark:bg-gray-900 dark:md:bg-gray-900/90 md:backdrop-blur-sm border-b border-slate-200 dark:border-b-0" id="header"&gt; 
   &lt;div class="py-3 px-3 mx-auto w-full md:flex md:justify-between max-w-6xl md:px-4"&gt; 
    &lt;div class="flex justify-between"&gt; &lt;a class="flex items-center" href="https://afoo.me"&gt; &lt;span class="self-center ml-2 text-2xl font-extrabold text-slate-800 whitespace-nowrap dark:text-white"&gt; &lt;img src="/images/afoo.PNG" alt="logo" style="height:60px;"&gt; &lt;/span&gt; &lt;/a&gt; 
     &lt;div class="flex items-center md:hidden"&gt; &lt;button type="button" class="text-gray-500 dark:text-gray-400 hover:bg-gray-100 dark:hover:bg-gray-700 focus:outline-none focus:ring-4 focus:ring-gray-200 dark:focus:ring-gray-700 rounded-lg text-sm p-2.5 inline-flex items-center" aria-label="Toggle between Dark and Light mode" data-toggle-color-scheme=""&gt; 
       &lt;svg viewbox="0 0 24 24" class="w-6 h-6" astro-icon="tabler:sun"&gt; &lt;g fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" class="icon-tabler"&gt; 
         &lt;circle cx="12" cy="12" r="4"&gt;&lt;/circle&gt; 
         &lt;path d="M3 12h1m8-9v1m8 8h1m-9 8v1M5.6 5.6l.7.7m12.1-.7-.7.7m0 11.4.7.7m-12.1-.7-.7.7"&gt; 
         &lt;/path&gt; 
        &lt;/g&gt; 
       &lt;/svg&gt; &lt;/button&gt; &lt;button type="button" class="ml-1.5 text-gray-500 dark:text-gray-400 hover:bg-gray-100 dark:hover:bg-gray-800 focus:outline-none focus:ring-4 focus:ring-gray-200 dark:focus:ring-gray-700 rounded-lg text-sm p-2.5 inline-flex items-center transition" aria-label="Toggle Menu" data-toggle-menu=""&gt; 
       &lt;svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" preserveaspectratio="xMidYMid meet" viewbox="0 0 24 24" class="w-6 h-6" astro-icon="tabler:menu"&gt; &lt;g class="icon-tabler" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"&gt; 
         &lt;path d="M4 8h16"&gt;&lt;/path&gt; 
         &lt;path d="M4 16h16"&gt;&lt;/path&gt; 
        &lt;/g&gt; 
       &lt;/svg&gt; &lt;/button&gt; 
     &lt;/div&gt; 
    &lt;/div&gt; 
    &lt;nav class="items-center w-full md:w-auto hidden md:flex text-gray-600 dark:text-slate-200 h-screen md:h-auto" aria-label="Main navigation"&gt; 
     &lt;ul class="flex flex-col pt-8 md:pt-0 md:flex-row md:self-center w-full md:w-auto text-xl md:text-base"&gt; 
      &lt;li&gt;&lt;a class="font-medium hover:text-gray-900 dark:hover:text-white px-4 py-3 flex items-center transition duration-150 ease-in-out" href="https://kb.afoo.me/"&gt;福强私学&lt;/a&gt;&lt;/li&gt; 
      &lt;li&gt; &lt;a id="aiedu" class="font-medium hover:text-gray-900 dark:hover:text-white px-4 py-3 flex items-center transition duration-150 ease-in-out" href="http://ai.afoo.me"&gt; 福强AI学堂&lt;/a&gt; &lt;/li&gt; 
      &lt;li&gt; &lt;a class="font-medium hover:text-gray-900 dark:hover:text-white px-4 py-3 flex items-center transition duration-150 ease-in-out" href="http://jiagoubaike.com"&gt;架构百科&lt;/a&gt; &lt;/li&gt; 
      &lt;li&gt; &lt;a class="font-medium hover:text-gray-900 dark:hover:text-white px-4 py-3 flex items-center transition duration-150 ease-in-out" href="https://afoo.me/posts.html"&gt;博客文章 &lt;/a&gt; &lt;/li&gt; 
      &lt;li&gt; &lt;a class="font-medium hover:text-gray-900 dark:hover:text-white px-4 py-3 flex items-center transition duration-150 ease-in-out" href="https://afoo.me/books.html"&gt;创作出版&lt;/a&gt; &lt;/li&gt; 
      &lt;li&gt; &lt;a class="font-medium hover:text-gray-900 dark:hover:text-white px-4 py-3 flex items-center transition duration-150 ease-in-out" href="https://store.afoo.me"&gt;产品与服务&lt;/a&gt; &lt;/li&gt; 
      &lt;li&gt;&lt;a class="font-medium hover:text-gray-900 dark:hover:text-white px-4 py-3 flex items-center transition duration-150 ease-in-out" href="https://auth.afoo.me/user.html"&gt;登录信息&lt;/a&gt;&lt;/li&gt; 
      &lt;li&gt; &lt;a class="font-medium hover:text-gray-900 dark:hover:text-white px-4 py-3 flex items-center transition duration-150 ease-in-out" href="https://afoo.me/crosslinks.html"&gt;更多链接&lt;/a&gt; &lt;/li&gt; 
     &lt;/ul&gt; 
     &lt;div class="md:self-center flex items-center mb-4 md:mb-0 ml-2"&gt; 
      &lt;div class="hidden items-center md:flex"&gt; &lt;button type="button" class="text-gray-500 dark:text-gray-400 hover:bg-gray-100 dark:hover:bg-gray-700 focus:outline-none focus:ring-4 focus:ring-gray-200 dark:focus:ring-gray-700 rounded-lg text-sm p-2.5 inline-flex items-center" aria-label="Toggle between Dark and Light mode" data-toggle-color-scheme=""&gt; 
        &lt;svg viewbox="0 0 24 24" class="w-5 h-5" astro-icon="tabler:sun"&gt; &lt;g fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" class="icon-tabler"&gt; 
          &lt;circle cx="12" cy="12" r="4"&gt;&lt;/circle&gt; 
          &lt;path d="M3 12h1m8-9v1m8 8h1m-9 8v1M5.6 5.6l.7.7m12.1-.7-.7.7m0 11.4.7.7m-12.1-.7-.7.7"&gt; 
          &lt;/path&gt; 
         &lt;/g&gt; 
        &lt;/svg&gt; &lt;/button&gt; &lt;a class="text-gray-500 dark:text-gray-400 hover:bg-gray-100 dark:hover:bg-gray-700 focus:outline-none focus:ring-4 focus:ring-gray-200 dark:focus:ring-gray-700 rounded-lg text-sm p-2.5 inline-flex items-center" aria-label="RSS Feed" href="http://afoo.me/feeds.xml"&gt; 
        &lt;svg viewbox="0 0 24 24" class="w-5 h-5" astro-icon="tabler:rss"&gt; &lt;g fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" class="icon-tabler"&gt; 
          &lt;circle cx="5" cy="19" r="1"&gt;&lt;/circle&gt; 
          &lt;path d="M4 4a16 16 0 0 1 16 16M4 11a9 9 0 0 1 9 9"&gt;&lt;/path&gt; 
         &lt;/g&gt; 
        &lt;/svg&gt; &lt;/a&gt; 
      &lt;/div&gt; 
     &lt;/div&gt; 
    &lt;/nav&gt; 
   &lt;/div&gt; 
  &lt;/header&gt; 
  &lt;main&gt; 
   &lt;div id="leftSlot" class="visible md:invisible fixed top-0 left-0" style="width: 16rem;height: 80%;margin-top: 4rem;"&gt; &lt;!-- left --&gt; 
    &lt;ins class="adsbygoogle" style="display:block" data-ad-client="ca-pub-3687639021943715" data-ad-slot="3581141418" data-ad-format="auto" data-full-width-responsive="true"&gt;&lt;/ins&gt; 
    &lt;script&gt;
          (adsbygoogle = window.adsbygoogle || []).push({});
      &lt;/script&gt; 
   &lt;/div&gt; 
   &lt;div id="rightSlot" class="visible md:invisible fixed top-0 right-0" style="width: 16rem;height: 80%;margin-top: 4rem;"&gt; &lt;!-- right --&gt; 
    &lt;ins class="adsbygoogle" style="display:block" data-ad-client="ca-pub-3687639021943715" data-ad-slot="7030836806" data-ad-format="auto" data-full-width-responsive="true"&gt;&lt;/ins&gt; 
    &lt;script&gt;
           (adsbygoogle = window.adsbygoogle || []).push({});
      &lt;/script&gt; 
   &lt;/div&gt; 
   &lt;section class="text-gray-600 body-font relative"&gt; 
    &lt;div class="max-w-4xl mx-auto px-5 py-24 mb-12 prose prose-lg dark:prose-invert"&gt; 
     &lt;p class="lead"&gt; &lt;/p&gt;
     &lt;h1 class="title"&gt;拯救行动中的AI&lt;/h1&gt; &lt;small&gt; &lt;h3 class="author"&gt;王福强&lt;/h3&gt; 
      &lt;div style="text-align: left;"&gt;
       2026-08-24
      &lt;/div&gt; &lt;/small&gt; 
     &lt;p&gt;&lt;/p&gt; &lt;!-- random --&gt; 
     &lt;ins class="adsbygoogle" style="display:block" data-ad-client="ca-pub-3687639021943715" data-ad-slot="2722720851" data-ad-format="auto" data-full-width-responsive="true"&gt;&lt;/ins&gt; 
     &lt;script&gt;
                 (adsbygoogle = window.adsbygoogle || []).push({});
            &lt;/script&gt; 
     &lt;hr&gt; 
     &lt;p&gt;(AI in Project Hail Mary)&lt;/p&gt; 
     &lt;p&gt;拯救行动里面有个场景，想来很有意思&lt;/p&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;比如，&lt;/p&gt; 
     &lt;p&gt;当主人公要跟外星人沟通的时候&lt;/p&gt; 
     &lt;p&gt;当相互比划的效率不行的时候&lt;/p&gt; 
     &lt;p&gt;主人公想了个edge端最简单的PoC方案&lt;/p&gt; 
     &lt;ol type="1"&gt; 
      &lt;li&gt;录音（语料采集）&lt;/li&gt; 
      &lt;li&gt;对齐（数据标注）&lt;/li&gt; 
      &lt;li&gt;翻译（双向映射/神经网络）&lt;/li&gt; 
     &lt;/ol&gt; 
     &lt;p&gt;这个PoC方案把现在AI的能力都利用上了，尤其是livechat相关的技术：&lt;/p&gt; 
     &lt;ol type="1"&gt; 
      &lt;li&gt;录音（ASR，语音识别）&lt;/li&gt; 
      &lt;li&gt;对齐（模型训练）&lt;/li&gt; 
      &lt;li&gt;翻译（TTS，文本到语音输出）&lt;/li&gt; 
     &lt;/ol&gt; 
     &lt;p&gt;把123压缩到一个模型服务，就成了一个多模态大模型🤣&lt;/p&gt; 
     &lt;p&gt;方案很简陋，但却完整复现了一个AI语音方案的构建过程，主人公不愧是寓教于乐的中学老师🤣&lt;/p&gt; 
     &lt;p&gt;另外， 里面提到舰长 deceased， 我差点儿看成 decreased 😂&lt;/p&gt; &lt;!-- tail --&gt; 
     &lt;ins class="adsbygoogle" style="display:block" data-ad-client="ca-pub-3687639021943715" data-ad-slot="7874087130" data-ad-format="auto" data-full-width-responsive="true"&gt;&lt;/ins&gt; 
     &lt;script&gt;
                 (adsbygoogle = window.adsbygoogle || []).push({});
            &lt;/script&gt; 
     &lt;hr&gt; 
     &lt;div&gt; &lt;a href="/posts.html"&gt; &lt;b&gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; 更多阅读 &amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt; &lt;/b&gt;&lt;/a&gt; 
     &lt;/div&gt; 
     &lt;div id="random_posts"&gt; 
      &lt;div class="alert alert-light" role="alert"&gt; &lt;a href="/posts/2010-06-28-cars-in-back-mirror.html"&gt;后视镜中的车流&lt;/a&gt; 
      &lt;/div&gt; 
      &lt;div class="alert alert-light" role="alert"&gt; &lt;a href="/posts/2007-05-14-resident-evil.html"&gt;Resident Evil &lt;/a&gt; 
      &lt;/div&gt; 
      &lt;div class="alert alert-light" role="alert"&gt; &lt;a href="/posts/2014-05-22-what-u-know-about-seo-is-wrong.html"&gt;N个对SEO的错误认知 &lt;/a&gt; 
      &lt;/div&gt; 
     &lt;/div&gt; 
     &lt;hr&gt; 
     &lt;div id="comments"&gt;&lt;/div&gt; 
     &lt;hr&gt; &lt;!-- Section CTA --&gt; 
     &lt;section class="overflow-x-clip bg-zinc-50 py-16 md:py-24"&gt; 
      &lt;div class="relative mx-auto w-full max-w-screen-xl px-4"&gt; 
       &lt;div class="relative z-10 w-full"&gt; &lt;!-- 福强私学推荐 --&gt; 
        &lt;div class="mx-auto max-w-screen-md"&gt; 
         &lt;h2 class="mb-4 text-center text-4xl font-bold md:text-5xl"&gt;&lt;a href="https://afoo.me/kb.html" class="border-b"&gt;「福强私学」&lt;/a&gt;来一个？&lt;/h2&gt; 
         &lt;p class="mx-auto mb-8 w-full text-center text-lg leading-8 text-zinc-700 md:w-5/6 md:text-xl"&gt;「福强私学」, 一部沉淀了个人成长、技术与架构、组织与管理以及商业上的方法与心法的百科全书。&lt;/p&gt; 
        &lt;/div&gt; 
        &lt;div class="mx-auto mt-6 w-full md:mt-12 md:w-4/5"&gt; &lt;a href="https://afoo.me/kb.html"&gt; &lt;img alt="footer img for kb.afoo.me" loading="lazy" width="2911" height="1961" decoding="async" data-nimg="1" class="mx-auto rounded-lg object-contain shadow-lg sm:rounded-2xl lg:rounded-3xl" style="color:transparent" src="https://og.afoo.me/?url=footer"&gt; &lt;/a&gt; 
        &lt;/div&gt; &lt;!-- 小报童推荐 --&gt; 
        &lt;div class="mx-auto max-w-screen-md"&gt; 
         &lt;h2 class="mt-8 mb-4 text-center text-4xl font-bold md:text-5xl"&gt;&lt;a href="https://xiaobot.net/p/aifd" class="border-b"&gt;福强老师的 AI 通识课&lt;/a&gt;&lt;/h2&gt;&lt;a href="https://xiaobot.net/p/aifd" class="border-b"&gt; &lt;/a&gt;
        &lt;/div&gt;&lt;a href="https://xiaobot.net/p/aifd" class="border-b"&gt; &lt;/a&gt;
        &lt;div class="mx-auto mt-6 w-full md:mt-12 md:w-4/5"&gt;
         &lt;a href="https://xiaobot.net/p/aifd" class="border-b"&gt; &lt;/a&gt;&lt;a href="https://xiaobot.net/p/aifd"&gt; &lt;img alt="footer img for kb.afoo.me" loading="lazy" width="2911" height="1961" decoding="async" data-nimg="1" class="mx-auto rounded-lg object-contain shadow-lg sm:rounded-2xl lg:rounded-3xl" style="color:transparent" src="/images/xbt-footer.webp"&gt; &lt;/a&gt; 
        &lt;/div&gt; 
        &lt;div class="mx-auto mt-6 w-full md:mt-12 md:w-4/5"&gt; 
         &lt;img alt="footer img for kb.afoo.me" loading="lazy" decoding="async" data-nimg="1" class="mx-auto p-3" style="color:transparent" src="/images/footer-links-2025.webp"&gt; 
        &lt;/div&gt; 
       &lt;/div&gt; 
      &lt;/div&gt; 
     &lt;/section&gt; 
     &lt;hr&gt; 
     &lt;p&gt; &lt;span style="font-size: xx-large;"&gt; 开天窗，拉认知，订阅「福报」，即刻拥有自己的全模态人工智能。 &lt;/span&gt; &lt;/p&gt; &lt;a href="https://wfq.gumroad.com/l/fb"&gt; &lt;img src="/images/fb_subscribe_v2.jpg" alt="订阅「福报」"&gt; &lt;/a&gt; 
     &lt;hr&gt; 
     &lt;div hx-get="https://toolfooter.afoo.me/" hx-trigger="revealed" htmx-indicator="#tfloader"&gt; 
      &lt;div id="tfloader" class="x-indicator"&gt; 
       &lt;svg width="57" height="57" viewbox="0 0 57 57" xmlns="http://www.w3.org/2000/svg" stroke="#3F83F8"&gt; &lt;g fill="none" fill-rule="evenodd"&gt; 
         &lt;g transform="translate(1 1)" stroke-width="2"&gt; 
          &lt;circle cx="5" cy="50" r="5"&gt; 
           &lt;animate attributename="cy" begin="0s" dur="2.2s" values="50;5;50;50" calcmode="linear" repeatcount="indefinite" /&gt; 
           &lt;animate attributename="cx" begin="0s" dur="2.2s" values="5;27;49;5" calcmode="linear" repeatcount="indefinite" /&gt; 
          &lt;/circle&gt; 
          &lt;circle cx="27" cy="5" r="5"&gt; 
           &lt;animate attributename="cy" begin="0s" dur="2.2s" from="5" to="5" values="5;50;50;5" calcmode="linear" repeatcount="indefinite" /&gt; 
           &lt;animate attributename="cx" begin="0s" dur="2.2s" from="27" to="27" values="27;49;5;27" calcmode="linear" repeatcount="indefinite" /&gt; 
          &lt;/circle&gt; 
          &lt;circle cx="49" cy="50" r="5"&gt; 
           &lt;animate attributename="cy" begin="0s" dur="2.2s" values="50;50;5;50" calcmode="linear" repeatcount="indefinite" /&gt; 
           &lt;animate attributename="cx" from="49" to="49" begin="0s" dur="2.2s" values="49;5;27;49" calcmode="linear" repeatcount="indefinite" /&gt; 
          &lt;/circle&gt; 
         &lt;/g&gt; 
        &lt;/g&gt; 
       &lt;/svg&gt; 
      &lt;/div&gt; 
     &lt;/div&gt; 
    &lt;/div&gt; 
   &lt;/section&gt; 
  &lt;/main&gt; 
  &lt;div style="position: fixed; left: 0; bottom: 0; padding: 10px; z-index: 1000;"&gt; 
   &lt;img src="/icons/Written-By-Human-Not-By-AI-Badge-black@2x.png" alt loading="lazy"&gt; 
  &lt;/div&gt; 
  &lt;footer class="border-t border-gray-200 dark:border-slate-800"&gt; 
   &lt;div class="max-w-6xl mx-auto px-4 sm:px-6"&gt; 
    &lt;div class="md:flex md:items-center md:justify-between py-6 md:py-8"&gt; 
     &lt;ul class="flex mb-4 md:order-1 -ml-2 md:ml-4 md:mb-0"&gt; 
      &lt;li&gt; &lt;a class="text-gray-500 dark:text-gray-400 hover:bg-gray-100 dark:hover:bg-gray-700 focus:outline-none focus:ring-4 focus:ring-gray-200 dark:focus:ring-gray-700 rounded-lg text-sm p-2.5 inline-flex items-center" aria-label="Twitter" href="https://twitter.com/afoo_me"&gt; 
        &lt;svg viewbox="0 0 24 24" class="w-5 h-5" astro-icon="tabler:brand-twitter"&gt; &lt;path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M22 4.01c-1 .49-1.98.689-3 .99-1.121-1.265-2.783-1.335-4.38-.737S11.977 6.323 12 8v1c-3.245.083-6.135-1.395-8-4 0 0-4.182 7.433 4 11-1.872 1.247-3.739 2.088-6 2 3.308 1.803 6.913 2.423 10.034 1.517 3.58-1.04 6.522-3.723 7.651-7.742a13.84 13.84 0 0 0 .497-3.753C20.18 7.773 21.692 5.25 22 4.009z"&gt; 
         &lt;/path&gt; 
        &lt;/svg&gt; &lt;/a&gt; &lt;/li&gt; 
      &lt;li&gt; &lt;a class="text-gray-500 dark:text-gray-400 hover:bg-gray-100 dark:hover:bg-gray-700 focus:outline-none focus:ring-4 focus:ring-gray-200 dark:focus:ring-gray-700 rounded-lg text-sm p-2.5 inline-flex items-center" aria-label="Facebook" href="https://www.facebook.com/fujohnwang/"&gt; 
        &lt;svg viewbox="0 0 24 24" class="w-5 h-5" astro-icon="tabler:brand-facebook"&gt; &lt;path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M7 10v4h3v7h4v-7h3l1-4h-4V8a1 1 0 0 1 1-1h3V3h-3a5 5 0 0 0-5 5v2H7"&gt;&lt;/path&gt; 
        &lt;/svg&gt; &lt;/a&gt; &lt;/li&gt; 
      &lt;li&gt; &lt;a class="text-gray-500 dark:text-gray-400 hover:bg-gray-100 dark:hover:bg-gray-700 focus:outline-none focus:ring-4 focus:ring-gray-200 dark:focus:ring-gray-700 rounded-lg text-sm p-2.5 inline-flex items-center" aria-label="Github" href="https://github.com/fujohnwang"&gt; 
        &lt;svg viewbox="0 0 24 24" class="w-5 h-5" astro-icon="tabler:brand-github"&gt; &lt;path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 19c-4.3 1.4-4.3-2.5-6-3m12 5v-3.5c0-1 .1-1.4-.5-2 2.8-.3 5.5-1.4 5.5-6a4.6 4.6 0 0 0-1.3-3.2 4.2 4.2 0 0 0-.1-3.2s-1.1-.3-3.5 1.3a12.3 12.3 0 0 0-6.2 0C6.5 2.8 5.4 3.1 5.4 3.1a4.2 4.2 0 0 0-.1 3.2A4.6 4.6 0 0 0 4 9.5c0 4.6 2.7 5.7 5.5 6-.6.6-.6 1.2-.5 2V21"&gt; 
         &lt;/path&gt; 
        &lt;/svg&gt; &lt;/a&gt; &lt;/li&gt; 
     &lt;/ul&gt; 
     &lt;div class="text-sm text-gray-700 mr-4 dark:text-slate-400"&gt; &lt;span class="w-5 h-5 md:w-6 md:h-6 md:-mt-0.5 bg-cover mr-1.5 float-left rounded-sm"&gt; &lt;img src="https://afoo.me/favicon.svg" class="rounded-md" alt&gt; &lt;/span&gt; Copyright © 王福强个人版权所有 - Since 2004 (Everything is homebrewed with &lt;a href="https://pandoc.org/"&gt;Pandoc&lt;/a&gt; and Markdown, little &lt;a href="https://www.scala-lang.org/"&gt;Scala&lt;/a&gt; also included.) 
     &lt;/div&gt; 
    &lt;/div&gt; 
   &lt;/div&gt; 
  &lt;/footer&gt; 
  &lt;script&gt;
        // Set "light" theme as default
        if (!localStorage.theme) {
            localStorage.theme = "light";
        }

        if (
            localStorage.theme === 'dark' ||
            (!('theme' in localStorage) &amp;&amp; window.matchMedia('(prefers-color-scheme: dark)').matches)
        ) {
            document.documentElement.classList.add('dark');
        } else {
            document.documentElement.classList.remove('dark');
        }

        function attachEvent(selector, event, fn) {
            const matches = document.querySelectorAll(selector);
            if (matches &amp;&amp; matches.length) {
                matches.forEach((elem) =&gt; {
                    elem.addEventListener(event, () =&gt; fn(elem), false);
                });
            }
        }

        window.onload = function () {
            attachEvent('[data-toggle-menu]', 'click', function (elem) {
                elem.classList.toggle('expanded');
                document.body.classList.toggle('overflow-hidden');
                document.getElementById('header')?.classList.toggle('h-screen');
                document.querySelector('#header nav')?.classList.toggle('hidden');
            });
            attachEvent("[data-toggle-color-scheme]", "click", function () {
                    document.documentElement.classList.toggle("light");
                    localStorage.theme = "light";
                });
        };
        window.onpageshow = function () {
            const elem = document.querySelector('[data-toggle-menu]');
            if (elem) {
                elem.classList.remove('expanded');
            }
            document.body.classList.remove('overflow-hidden');
            document.getElementById('header')?.classList.remove('h-screen');
            document.querySelector('#header nav')?.classList.add('hidden');
        };
    &lt;/script&gt; 
  &lt;script type="text/javascript"&gt;
        var gitalk = new Gitalk({
          clientID: '518a605d711883414ac0',
          clientSecret: '69fb8ccc0616c5bcbc64d24ece0d06d279da91ff',
          repo: 'afoo.me.comments',
          owner: 'fujohnwang',
          admin: ['fujohnwang'],
          id: location.pathname.substring(0, 49),      // Ensure uniqueness and length less than 50
          distractionFreeMode: false  // Facebook-like distraction free mode
        })
        gitalk.render('comments')
    &lt;/script&gt; 
  &lt;script src="https://formspree.io/js/formbutton-v1.min.js" defer&gt;&lt;/script&gt; 
  &lt;script&gt;
  /* paste this line in verbatim */
  window.formbutton=window.formbutton||function(){(formbutton.q=formbutton.q||[]).push(arguments)};
  /* customize formbutton below*/     
  formbutton("create", {
    action: "https://formspree.io/f/xknlpkkd",
    title: "有什么可以帮到您？💕💕💕 How can I help you?",
    buttonImg: "&lt;img src='https://afoo.me/hero3/70.webp' alt/&gt;",
    fields: [
      { 
        type: "email", 
        label: "您的电子邮箱（方便与您联系）:", 
        name: "email",
        required: true,
        placeholder: "your@email.com"
      },
      {
        type: "textarea",
        label: "您想提交的反馈和询问信息:",
        name: "message",
        placeholder: "What's on your mind?",
      },
      { type: "submit" }      
    ],
    styles: {
      title: {
        backgroundColor: "blue"
      },
      button: {
        backgroundColor: "blue"
      }
    }
  });
&lt;/script&gt; 
  &lt;script&gt;
	// tooltips
	tippy('#aiedu', {
        content: "As to AI nowadays, LLM and Stable Diffusion are hot even hottest among them, If your want to both know-why and know-how with them, instead of only know-how which can't repeat itself, you should get you to https://ai.afoo.me right now ❗"
    });  
&lt;/script&gt;  
 &lt;/body&gt;
&lt;/html&gt;</description>
      <pubDate>Sun, 23 Aug 2026 16:00:00 GMT</pubDate>
      <guid>http://afoo.me/posts/2026-08-24-AI-in-Project-Hail-Mary.html</guid>
      <dc:date>2026-08-23T16:00:00Z</dc:date>
    </item>
    <item>
      <title>TVP 走进 宁德时代(CATL) 杂记</title>
      <link>http://afoo.me/posts/2026-08-21-TVP-CATL-visit.html</link>
      <description>&lt;!doctype html&gt;
&lt;html lang="zh" class="motion-safe:scroll-smooth 2xl:text-[20px]"&gt; 
 &lt;head&gt; 
  &lt;meta charset="utf-8"&gt; 
  &lt;meta name="keywords" content="TVP 走进 宁德时代(CATL) 杂记 - 架构师， 架构士，架构教练, 教练, 个人成长, 组织成长, 独立顾问, architecture, book author, thinker, fighter, 架构, 思考, 技术, 武术, 哲学"&gt; 
  &lt;meta name="description" content="TVP 走进 宁德时代(CATL) 杂记 - 福强说，扶墙老师说，王福强的个人博客， 一个架构士的思考与沉淀"&gt; 
  &lt;meta name="author" content="王福强"&gt; 
  &lt;meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"&gt; 
  &lt;meta http-equiv="Content-Type" content="text/html; charset=UTF-8"&gt; 
  &lt;meta name="robots" content="index,follow"&gt; 
  &lt;title&gt;TVP 走进 宁德时代(CATL) 杂记 -王福强的个人博客：一个架构士的思考与沉淀&lt;/title&gt; 
  &lt;meta name="date" content="2026-08-21"&gt; 
  &lt;meta property="og:title" content="TVP 走进 宁德时代(CATL) 杂记"&gt; 
  &lt;meta property="og:type" content="landing page"&gt; 
  &lt;meta property="og:url" content="https://afoo.me/posts/2026-08-21-TVP-CATL-visit.html"&gt; 
  &lt;meta property="og:image" content="https://og.afoo.me?url=https://afoo.me/posts/2026-08-21-TVP-CATL-visit.html"&gt; 
  &lt;meta name="twitter:card" content="summary_large_image"&gt; 
  &lt;meta name="twitter:title" content="TVP 走进 宁德时代(CATL) 杂记"&gt; 
  &lt;meta name="twitter:site" content="@afoo_me"&gt; 
  &lt;meta name="twitter:creator" content="@afoo_me"&gt; 
  &lt;meta name="twitter:image" content="https://og.afoo.me?url=https://afoo.me/posts/2026-08-21-TVP-CATL-visit.html"&gt; 
  &lt;meta name="twitter:description" content="TVP 走进 宁德时代(CATL) 杂记 - 王福强的个人博客， 一个架构士的思考与沉淀"&gt; 
  &lt;link rel="shortcut icon" href="/favicon.ico"&gt; 
  &lt;link rel="canonical" href="https://afoo.me/posts/2026-08-21-TVP-CATL-visit.html"&gt; 
  &lt;link rel="icon" type="image/svg+xml" href="https://afoo.me/favicon.svg"&gt; 
  &lt;link rel="mask-icon" href="https://afoo.me/favicon.svg" color="#3383F8"&gt; 
  &lt;script src="https://afoo.me/js/htmx.min.js"&gt;&lt;/script&gt; 
  &lt;link rel="stylesheet" href="https://unpkg.com/gitalk/dist/gitalk.css"&gt; 
  &lt;script src="https://unpkg.com/gitalk/dist/gitalk.min.js"&gt;&lt;/script&gt; 
  &lt;script src="https://afoo.me/js/popper.min.js"&gt;&lt;/script&gt; 
  &lt;script src="https://afoo.me/js/tippy.min.js"&gt;&lt;/script&gt; 
  &lt;link rel="stylesheet" href="/css/af.css"&gt; 
  &lt;link rel="stylesheet" href="/css/components.css"&gt; 
  &lt;link ref="stylesheet" href="/css/pygments.css"&gt; 
  &lt;style type="text/css"&gt;
        pre &gt; code{
          white-space: pre-wrap;
          font-family: monospace;
          font-size: 14px;
          /* border-left: blueviolet;
          border-left-width: thick;
          border-left-style: double;
          padding-left: 1rem !important; */
        }
        
        .x-indicator{
            display:none;
        }
        .htmx-request .x-indicator{
            display:inline;
        }
        .htmx-request.x-indicator{
            display:inline;
        }
    &lt;/style&gt; 
  &lt;script type="application/ld+json"&gt;
    {
      "@context": "https://schema.org",
      "@type": "NewsArticle",
      "headline": "TVP 走进 宁德时代(CATL) 杂记",
      "image": [
        "https://afoo.me/images/fb_subscribe.jpg"
       ],
      "datePublished": "2026-08-21",
      "author": [{
          "@type": "Person",
          "name": "王福强",
          "url": "https://afoo.me"
        }]
    }
  &lt;/script&gt; 
  &lt;script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-3687639021943715" crossorigin="anonymous"&gt;&lt;/script&gt; 
 &lt;/head&gt; 
 &lt;body class="antialiased text-slate-800 dark:text-slate-300 tracking-tight bg-slate-50 dark:bg-gray-900 vsc-initialized"&gt; 
  &lt;header class="sticky top-0 z-40 flex-none mx-auto w-full bg-slate-50 md:bg-slate-50/90 dark:bg-gray-900 dark:md:bg-gray-900/90 md:backdrop-blur-sm border-b border-slate-200 dark:border-b-0" id="header"&gt; 
   &lt;div class="py-3 px-3 mx-auto w-full md:flex md:justify-between max-w-6xl md:px-4"&gt; 
    &lt;div class="flex justify-between"&gt; &lt;a class="flex items-center" href="https://afoo.me"&gt; &lt;span class="self-center ml-2 text-2xl font-extrabold text-slate-800 whitespace-nowrap dark:text-white"&gt; &lt;img src="/images/afoo.PNG" alt="logo" style="height:60px;"&gt; &lt;/span&gt; &lt;/a&gt; 
     &lt;div class="flex items-center md:hidden"&gt; &lt;button type="button" class="text-gray-500 dark:text-gray-400 hover:bg-gray-100 dark:hover:bg-gray-700 focus:outline-none focus:ring-4 focus:ring-gray-200 dark:focus:ring-gray-700 rounded-lg text-sm p-2.5 inline-flex items-center" aria-label="Toggle between Dark and Light mode" data-toggle-color-scheme=""&gt; 
       &lt;svg viewbox="0 0 24 24" class="w-6 h-6" astro-icon="tabler:sun"&gt; &lt;g fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" class="icon-tabler"&gt; 
         &lt;circle cx="12" cy="12" r="4"&gt;&lt;/circle&gt; 
         &lt;path d="M3 12h1m8-9v1m8 8h1m-9 8v1M5.6 5.6l.7.7m12.1-.7-.7.7m0 11.4.7.7m-12.1-.7-.7.7"&gt; 
         &lt;/path&gt; 
        &lt;/g&gt; 
       &lt;/svg&gt; &lt;/button&gt; &lt;button type="button" class="ml-1.5 text-gray-500 dark:text-gray-400 hover:bg-gray-100 dark:hover:bg-gray-800 focus:outline-none focus:ring-4 focus:ring-gray-200 dark:focus:ring-gray-700 rounded-lg text-sm p-2.5 inline-flex items-center transition" aria-label="Toggle Menu" data-toggle-menu=""&gt; 
       &lt;svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" preserveaspectratio="xMidYMid meet" viewbox="0 0 24 24" class="w-6 h-6" astro-icon="tabler:menu"&gt; &lt;g class="icon-tabler" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"&gt; 
         &lt;path d="M4 8h16"&gt;&lt;/path&gt; 
         &lt;path d="M4 16h16"&gt;&lt;/path&gt; 
        &lt;/g&gt; 
       &lt;/svg&gt; &lt;/button&gt; 
     &lt;/div&gt; 
    &lt;/div&gt; 
    &lt;nav class="items-center w-full md:w-auto hidden md:flex text-gray-600 dark:text-slate-200 h-screen md:h-auto" aria-label="Main navigation"&gt; 
     &lt;ul class="flex flex-col pt-8 md:pt-0 md:flex-row md:self-center w-full md:w-auto text-xl md:text-base"&gt; 
      &lt;li&gt;&lt;a class="font-medium hover:text-gray-900 dark:hover:text-white px-4 py-3 flex items-center transition duration-150 ease-in-out" href="https://kb.afoo.me/"&gt;福强私学&lt;/a&gt;&lt;/li&gt; 
      &lt;li&gt; &lt;a id="aiedu" class="font-medium hover:text-gray-900 dark:hover:text-white px-4 py-3 flex items-center transition duration-150 ease-in-out" href="http://ai.afoo.me"&gt; 福强AI学堂&lt;/a&gt; &lt;/li&gt; 
      &lt;li&gt; &lt;a class="font-medium hover:text-gray-900 dark:hover:text-white px-4 py-3 flex items-center transition duration-150 ease-in-out" href="http://jiagoubaike.com"&gt;架构百科&lt;/a&gt; &lt;/li&gt; 
      &lt;li&gt; &lt;a class="font-medium hover:text-gray-900 dark:hover:text-white px-4 py-3 flex items-center transition duration-150 ease-in-out" href="https://afoo.me/posts.html"&gt;博客文章 &lt;/a&gt; &lt;/li&gt; 
      &lt;li&gt; &lt;a class="font-medium hover:text-gray-900 dark:hover:text-white px-4 py-3 flex items-center transition duration-150 ease-in-out" href="https://afoo.me/books.html"&gt;创作出版&lt;/a&gt; &lt;/li&gt; 
      &lt;li&gt; &lt;a class="font-medium hover:text-gray-900 dark:hover:text-white px-4 py-3 flex items-center transition duration-150 ease-in-out" href="https://store.afoo.me"&gt;产品与服务&lt;/a&gt; &lt;/li&gt; 
      &lt;li&gt;&lt;a class="font-medium hover:text-gray-900 dark:hover:text-white px-4 py-3 flex items-center transition duration-150 ease-in-out" href="https://auth.afoo.me/user.html"&gt;登录信息&lt;/a&gt;&lt;/li&gt; 
      &lt;li&gt; &lt;a class="font-medium hover:text-gray-900 dark:hover:text-white px-4 py-3 flex items-center transition duration-150 ease-in-out" href="https://afoo.me/crosslinks.html"&gt;更多链接&lt;/a&gt; &lt;/li&gt; 
     &lt;/ul&gt; 
     &lt;div class="md:self-center flex items-center mb-4 md:mb-0 ml-2"&gt; 
      &lt;div class="hidden items-center md:flex"&gt; &lt;button type="button" class="text-gray-500 dark:text-gray-400 hover:bg-gray-100 dark:hover:bg-gray-700 focus:outline-none focus:ring-4 focus:ring-gray-200 dark:focus:ring-gray-700 rounded-lg text-sm p-2.5 inline-flex items-center" aria-label="Toggle between Dark and Light mode" data-toggle-color-scheme=""&gt; 
        &lt;svg viewbox="0 0 24 24" class="w-5 h-5" astro-icon="tabler:sun"&gt; &lt;g fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" class="icon-tabler"&gt; 
          &lt;circle cx="12" cy="12" r="4"&gt;&lt;/circle&gt; 
          &lt;path d="M3 12h1m8-9v1m8 8h1m-9 8v1M5.6 5.6l.7.7m12.1-.7-.7.7m0 11.4.7.7m-12.1-.7-.7.7"&gt; 
          &lt;/path&gt; 
         &lt;/g&gt; 
        &lt;/svg&gt; &lt;/button&gt; &lt;a class="text-gray-500 dark:text-gray-400 hover:bg-gray-100 dark:hover:bg-gray-700 focus:outline-none focus:ring-4 focus:ring-gray-200 dark:focus:ring-gray-700 rounded-lg text-sm p-2.5 inline-flex items-center" aria-label="RSS Feed" href="http://afoo.me/feeds.xml"&gt; 
        &lt;svg viewbox="0 0 24 24" class="w-5 h-5" astro-icon="tabler:rss"&gt; &lt;g fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" class="icon-tabler"&gt; 
          &lt;circle cx="5" cy="19" r="1"&gt;&lt;/circle&gt; 
          &lt;path d="M4 4a16 16 0 0 1 16 16M4 11a9 9 0 0 1 9 9"&gt;&lt;/path&gt; 
         &lt;/g&gt; 
        &lt;/svg&gt; &lt;/a&gt; 
      &lt;/div&gt; 
     &lt;/div&gt; 
    &lt;/nav&gt; 
   &lt;/div&gt; 
  &lt;/header&gt; 
  &lt;main&gt; 
   &lt;div id="leftSlot" class="visible md:invisible fixed top-0 left-0" style="width: 16rem;height: 80%;margin-top: 4rem;"&gt; &lt;!-- left --&gt; 
    &lt;ins class="adsbygoogle" style="display:block" data-ad-client="ca-pub-3687639021943715" data-ad-slot="3581141418" data-ad-format="auto" data-full-width-responsive="true"&gt;&lt;/ins&gt; 
    &lt;script&gt;
          (adsbygoogle = window.adsbygoogle || []).push({});
      &lt;/script&gt; 
   &lt;/div&gt; 
   &lt;div id="rightSlot" class="visible md:invisible fixed top-0 right-0" style="width: 16rem;height: 80%;margin-top: 4rem;"&gt; &lt;!-- right --&gt; 
    &lt;ins class="adsbygoogle" style="display:block" data-ad-client="ca-pub-3687639021943715" data-ad-slot="7030836806" data-ad-format="auto" data-full-width-responsive="true"&gt;&lt;/ins&gt; 
    &lt;script&gt;
           (adsbygoogle = window.adsbygoogle || []).push({});
      &lt;/script&gt; 
   &lt;/div&gt; 
   &lt;section class="text-gray-600 body-font relative"&gt; 
    &lt;div class="max-w-4xl mx-auto px-5 py-24 mb-12 prose prose-lg dark:prose-invert"&gt; 
     &lt;p class="lead"&gt; &lt;/p&gt;
     &lt;h1 class="title"&gt;TVP 走进 宁德时代(CATL) 杂记&lt;/h1&gt; &lt;small&gt; &lt;h3 class="author"&gt;王福强&lt;/h3&gt; 
      &lt;div style="text-align: left;"&gt;
       2026-08-21
      &lt;/div&gt; &lt;/small&gt; 
     &lt;p&gt;&lt;/p&gt; &lt;!-- random --&gt; 
     &lt;ins class="adsbygoogle" style="display:block" data-ad-client="ca-pub-3687639021943715" data-ad-slot="2722720851" data-ad-format="auto" data-full-width-responsive="true"&gt;&lt;/ins&gt; 
     &lt;script&gt;
                 (adsbygoogle = window.adsbygoogle || []).push({});
            &lt;/script&gt; 
     &lt;hr&gt; 
     &lt;p&gt;上半年基本上埋头拉车&lt;/p&gt; 
     &lt;p&gt;恰好 &lt;a href="https://cloud.tencent.com/tvp"&gt;TVP&lt;/a&gt; 组织了走访宁德时代的活动&lt;/p&gt; 
     &lt;p&gt;遂报名参加&lt;/p&gt; 
     &lt;p&gt;也要经常抬头看路不是？😉&lt;/p&gt; 
     &lt;p&gt;下面是一些杂记，没有章法和逻辑，想到哪儿说到哪儿…&lt;/p&gt; 
     &lt;h2 id="产线与工序"&gt;产线与工序&lt;/h2&gt; 
     &lt;p&gt;本次带我们参观的是2016年的厂（车间），不算最新，所以，没多少惊艳&lt;/p&gt; 
     &lt;p&gt;但已经是自动化程度很高了&lt;/p&gt; 
     &lt;p&gt;除了工序最后几个质检环节看到几个人&lt;/p&gt; 
     &lt;p&gt;整个工厂（车间）里几乎看不到人&lt;/p&gt; 
     &lt;p&gt;看到的只有机器&lt;/p&gt; 
     &lt;p&gt;偶尔几台轨道机器人&lt;/p&gt; 
     &lt;p&gt;主要是帮助物料衔接&lt;/p&gt; 
     &lt;p&gt;另外就是看到kuka机械臂堆垛，这应该是工厂里的常规场景吧？🤣&lt;/p&gt; 
     &lt;p&gt;我猜测&lt;/p&gt; 
     &lt;p&gt;宁德时代有三个代际的工厂&lt;/p&gt; 
     &lt;ol type="1"&gt; 
      &lt;li&gt;最早的工厂，更多是靠人工（因为我在宁德时代附近酒店里刷短视频的时候，刷到很多厂妹厂哥儿的视频，应该是不是研发，而是生产，但按照我们参观的工厂生产情况，明显用不了那么多人）&lt;/li&gt; 
      &lt;li&gt;第二代工厂，也就是我们参观的这个工厂，自动化+少量人工&lt;/li&gt; 
      &lt;li&gt;最新的工厂，自动化程度更高，但怕泄密，所以，不对外开放参观。 （毕竟， 我们参观工厂环节也是不让拍照的，更不要说最新的工厂细节）&lt;/li&gt; 
     &lt;/ol&gt; 
     &lt;p&gt;当然，以上纯个人猜测😉&lt;/p&gt; 
     &lt;h2 id="ab电池组"&gt;AB电池组&lt;/h2&gt; 
     &lt;p&gt;参观展厅的时候，有一个展示台挺有意思，用来展示不同材料电池的组合，比如可以用磷酸锂铁+三元锂组成一个组合电池，这个让我想起架构里的组合原则，更让我想起hybrid search或者fusion search之类的方案。&lt;/p&gt; 
     &lt;p&gt;看来架构或者说产品思想很多都是相通的。&lt;/p&gt; 
     &lt;p&gt;另外就是这个展示台的设计值得称赞，可以手动挑选电池块儿插入拼接，然后实时触发不同电池组合的演示视频介绍。&lt;/p&gt; 
     &lt;h2 id="vent-安全阀"&gt;vent 安全阀&lt;/h2&gt; 
     &lt;p&gt;电芯层面的安全设计，如果有废气或者泄漏，vent安全阀破损后就意味着这个电芯废了。&lt;/p&gt; 
     &lt;h2 id="formation"&gt;formation&lt;/h2&gt; 
     &lt;p&gt;我不知道你看到这个词儿能不能直觉性的了解它是什么意思？&lt;/p&gt; 
     &lt;p&gt;那“化成”呢？&lt;/p&gt; 
     &lt;p&gt;其实说实话，我听到介绍“化成”工序的时候，我认识这俩字儿，但我不知道啥意思&lt;/p&gt; 
     &lt;p&gt;然后我看到演示屏幕右上角对应的单词是“Fromation”，&lt;/p&gt; 
     &lt;p&gt;然后我心里反而有底了，因为我怀疑这个地方这个单词拼错了（typo）&lt;/p&gt; 
     &lt;p&gt;我就站着看了会儿视频，当看到视频里下面字幕里是formation的时候，我就确定了&lt;/p&gt; 
     &lt;p&gt;其实就是“成形”🤣&lt;/p&gt; 
     &lt;p&gt;整个参观过程，我自己有一个很强烈的感受&lt;/p&gt; 
     &lt;p&gt;当我看不懂汉字在说啥的时候，我看英文反而一眼就看懂了&lt;/p&gt; 
     &lt;p&gt;比如：&lt;/p&gt; 
     &lt;ul&gt; 
      &lt;li&gt;麒麟凝聚态电池，凝聚态啥意思？ 看英文是condensed battery，哦，原来就是更密集（浓缩的）电池🤣&lt;/li&gt; 
      &lt;li&gt;无人车，其实就是自动车辆/自主运行的车辆，Autonomous Vehicle&lt;/li&gt; 
     &lt;/ul&gt; 
     &lt;p&gt;所以，当有人告诉你说学英语没用的时候&lt;/p&gt; 
     &lt;p&gt;你是不是再考虑考虑？😉&lt;/p&gt; 
     &lt;h2 id="桂花云贝"&gt;桂花云贝&lt;/h2&gt; 
     &lt;p&gt;今天晚宴上有道朴实无华的菜&lt;/p&gt; 
     &lt;p&gt;第一眼看上去是炒饭&lt;/p&gt; 
     &lt;p&gt;第二眼看上去又像是炒粉&lt;/p&gt; 
     &lt;p&gt;但一吃又特别鲜美，绝对不是炒饭的口感&lt;/p&gt; 
     &lt;p&gt;拍照问了豆包&lt;/p&gt; 
     &lt;p&gt;菜名叫“桂花云贝”&lt;/p&gt; 
     &lt;p&gt;别说，金灿灿的，是挺招人稀罕&lt;/p&gt; 
     &lt;h2 id="自动驾驶"&gt;自动驾驶&lt;/h2&gt; 
     &lt;p&gt;下午分享交流环节，&lt;/p&gt; 
     &lt;p&gt;广汽的总师（介绍上这么写的，我不确定是不是就是这个职位称呼，还是总架构师/总工程师的缩写）给我们介绍了汽车自动驾驶的发展历史&lt;/p&gt; 
     &lt;p&gt;了解到业界现在的真实水平和营销水平&lt;/p&gt; 
     &lt;p&gt;最主要的是&lt;/p&gt; 
     &lt;p&gt;肯定了百度在这个领域的贡献&lt;/p&gt; 
     &lt;p&gt;你们不是天天骂百度吗？&lt;/p&gt; 
     &lt;p&gt;其实人家也有在干实事。😉&lt;/p&gt; 
     &lt;h2 id="最后"&gt;最后&lt;/h2&gt; 
     &lt;p&gt;比较尴尬也比较巧合的是&lt;/p&gt; 
     &lt;p&gt;在这里遇到了原来在挖财的一个同事&lt;/p&gt; 
     &lt;p&gt;其实当时我们俩关系并不好&lt;/p&gt; 
     &lt;p&gt;甚至是水火不容&lt;/p&gt; 
     &lt;p&gt;我把他早拉黑了&lt;/p&gt; 
     &lt;p&gt;今天居然在现场遇到了😂&lt;/p&gt; 
     &lt;p&gt;但过去的就是过去了&lt;/p&gt; 
     &lt;p&gt;Let it be.&lt;/p&gt; 
     &lt;p&gt;况且，他应该是冲着腾讯云安全老大去的，碰到我真就是个巧合😂&lt;/p&gt; &lt;!-- tail --&gt; 
     &lt;ins class="adsbygoogle" style="display:block" data-ad-client="ca-pub-3687639021943715" data-ad-slot="7874087130" data-ad-format="auto" data-full-width-responsive="true"&gt;&lt;/ins&gt; 
     &lt;script&gt;
                 (adsbygoogle = window.adsbygoogle || []).push({});
            &lt;/script&gt; 
     &lt;hr&gt; 
     &lt;div&gt; &lt;a href="/posts.html"&gt; &lt;b&gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; 更多阅读 &amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt; &lt;/b&gt;&lt;/a&gt; 
     &lt;/div&gt; 
     &lt;div id="random_posts"&gt; 
      &lt;div class="alert alert-light" role="alert"&gt; &lt;a href="/posts/2005-00-00-launch-excel-with-jacob2.html"&gt;Excel&lt;/a&gt; 
      &lt;/div&gt; 
      &lt;div class="alert alert-light" role="alert"&gt; &lt;a href="/posts/2025-05-30-why-say-so.html"&gt;为啥是“爱学不学”？ &lt;/a&gt; 
      &lt;/div&gt; 
      &lt;div class="alert alert-light" role="alert"&gt; &lt;a href="/posts/2007-07-07-great-minds-think-alike.html"&gt;Great minds think alike &lt;/a&gt; 
      &lt;/div&gt; 
     &lt;/div&gt; 
     &lt;hr&gt; 
     &lt;div id="comments"&gt;&lt;/div&gt; 
     &lt;hr&gt; &lt;!-- Section CTA --&gt; 
     &lt;section class="overflow-x-clip bg-zinc-50 py-16 md:py-24"&gt; 
      &lt;div class="relative mx-auto w-full max-w-screen-xl px-4"&gt; 
       &lt;div class="relative z-10 w-full"&gt; &lt;!-- 福强私学推荐 --&gt; 
        &lt;div class="mx-auto max-w-screen-md"&gt; 
         &lt;h2 class="mb-4 text-center text-4xl font-bold md:text-5xl"&gt;&lt;a href="https://afoo.me/kb.html" class="border-b"&gt;「福强私学」&lt;/a&gt;来一个？&lt;/h2&gt; 
         &lt;p class="mx-auto mb-8 w-full text-center text-lg leading-8 text-zinc-700 md:w-5/6 md:text-xl"&gt;「福强私学」, 一部沉淀了个人成长、技术与架构、组织与管理以及商业上的方法与心法的百科全书。&lt;/p&gt; 
        &lt;/div&gt; 
        &lt;div class="mx-auto mt-6 w-full md:mt-12 md:w-4/5"&gt; &lt;a href="https://afoo.me/kb.html"&gt; &lt;img alt="footer img for kb.afoo.me" loading="lazy" width="2911" height="1961" decoding="async" data-nimg="1" class="mx-auto rounded-lg object-contain shadow-lg sm:rounded-2xl lg:rounded-3xl" style="color:transparent" src="https://og.afoo.me/?url=footer"&gt; &lt;/a&gt; 
        &lt;/div&gt; &lt;!-- 小报童推荐 --&gt; 
        &lt;div class="mx-auto max-w-screen-md"&gt; 
         &lt;h2 class="mt-8 mb-4 text-center text-4xl font-bold md:text-5xl"&gt;&lt;a href="https://xiaobot.net/p/aifd" class="border-b"&gt;福强老师的 AI 通识课&lt;/a&gt;&lt;/h2&gt;&lt;a href="https://xiaobot.net/p/aifd" class="border-b"&gt; &lt;/a&gt;
        &lt;/div&gt;&lt;a href="https://xiaobot.net/p/aifd" class="border-b"&gt; &lt;/a&gt;
        &lt;div class="mx-auto mt-6 w-full md:mt-12 md:w-4/5"&gt;
         &lt;a href="https://xiaobot.net/p/aifd" class="border-b"&gt; &lt;/a&gt;&lt;a href="https://xiaobot.net/p/aifd"&gt; &lt;img alt="footer img for kb.afoo.me" loading="lazy" width="2911" height="1961" decoding="async" data-nimg="1" class="mx-auto rounded-lg object-contain shadow-lg sm:rounded-2xl lg:rounded-3xl" style="color:transparent" src="/images/xbt-footer.webp"&gt; &lt;/a&gt; 
        &lt;/div&gt; 
        &lt;div class="mx-auto mt-6 w-full md:mt-12 md:w-4/5"&gt; 
         &lt;img alt="footer img for kb.afoo.me" loading="lazy" decoding="async" data-nimg="1" class="mx-auto p-3" style="color:transparent" src="/images/footer-links-2025.webp"&gt; 
        &lt;/div&gt; 
       &lt;/div&gt; 
      &lt;/div&gt; 
     &lt;/section&gt; 
     &lt;hr&gt; 
     &lt;p&gt; &lt;span style="font-size: xx-large;"&gt; 开天窗，拉认知，订阅「福报」，即刻拥有自己的全模态人工智能。 &lt;/span&gt; &lt;/p&gt; &lt;a href="https://wfq.gumroad.com/l/fb"&gt; &lt;img src="/images/fb_subscribe_v2.jpg" alt="订阅「福报」"&gt; &lt;/a&gt; 
     &lt;hr&gt; 
     &lt;div hx-get="https://toolfooter.afoo.me/" hx-trigger="revealed" htmx-indicator="#tfloader"&gt; 
      &lt;div id="tfloader" class="x-indicator"&gt; 
       &lt;svg width="57" height="57" viewbox="0 0 57 57" xmlns="http://www.w3.org/2000/svg" stroke="#3F83F8"&gt; &lt;g fill="none" fill-rule="evenodd"&gt; 
         &lt;g transform="translate(1 1)" stroke-width="2"&gt; 
          &lt;circle cx="5" cy="50" r="5"&gt; 
           &lt;animate attributename="cy" begin="0s" dur="2.2s" values="50;5;50;50" calcmode="linear" repeatcount="indefinite" /&gt; 
           &lt;animate attributename="cx" begin="0s" dur="2.2s" values="5;27;49;5" calcmode="linear" repeatcount="indefinite" /&gt; 
          &lt;/circle&gt; 
          &lt;circle cx="27" cy="5" r="5"&gt; 
           &lt;animate attributename="cy" begin="0s" dur="2.2s" from="5" to="5" values="5;50;50;5" calcmode="linear" repeatcount="indefinite" /&gt; 
           &lt;animate attributename="cx" begin="0s" dur="2.2s" from="27" to="27" values="27;49;5;27" calcmode="linear" repeatcount="indefinite" /&gt; 
          &lt;/circle&gt; 
          &lt;circle cx="49" cy="50" r="5"&gt; 
           &lt;animate attributename="cy" begin="0s" dur="2.2s" values="50;50;5;50" calcmode="linear" repeatcount="indefinite" /&gt; 
           &lt;animate attributename="cx" from="49" to="49" begin="0s" dur="2.2s" values="49;5;27;49" calcmode="linear" repeatcount="indefinite" /&gt; 
          &lt;/circle&gt; 
         &lt;/g&gt; 
        &lt;/g&gt; 
       &lt;/svg&gt; 
      &lt;/div&gt; 
     &lt;/div&gt; 
    &lt;/div&gt; 
   &lt;/section&gt; 
  &lt;/main&gt; 
  &lt;div style="position: fixed; left: 0; bottom: 0; padding: 10px; z-index: 1000;"&gt; 
   &lt;img src="/icons/Written-By-Human-Not-By-AI-Badge-black@2x.png" alt loading="lazy"&gt; 
  &lt;/div&gt; 
  &lt;footer class="border-t border-gray-200 dark:border-slate-800"&gt; 
   &lt;div class="max-w-6xl mx-auto px-4 sm:px-6"&gt; 
    &lt;div class="md:flex md:items-center md:justify-between py-6 md:py-8"&gt; 
     &lt;ul class="flex mb-4 md:order-1 -ml-2 md:ml-4 md:mb-0"&gt; 
      &lt;li&gt; &lt;a class="text-gray-500 dark:text-gray-400 hover:bg-gray-100 dark:hover:bg-gray-700 focus:outline-none focus:ring-4 focus:ring-gray-200 dark:focus:ring-gray-700 rounded-lg text-sm p-2.5 inline-flex items-center" aria-label="Twitter" href="https://twitter.com/afoo_me"&gt; 
        &lt;svg viewbox="0 0 24 24" class="w-5 h-5" astro-icon="tabler:brand-twitter"&gt; &lt;path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M22 4.01c-1 .49-1.98.689-3 .99-1.121-1.265-2.783-1.335-4.38-.737S11.977 6.323 12 8v1c-3.245.083-6.135-1.395-8-4 0 0-4.182 7.433 4 11-1.872 1.247-3.739 2.088-6 2 3.308 1.803 6.913 2.423 10.034 1.517 3.58-1.04 6.522-3.723 7.651-7.742a13.84 13.84 0 0 0 .497-3.753C20.18 7.773 21.692 5.25 22 4.009z"&gt; 
         &lt;/path&gt; 
        &lt;/svg&gt; &lt;/a&gt; &lt;/li&gt; 
      &lt;li&gt; &lt;a class="text-gray-500 dark:text-gray-400 hover:bg-gray-100 dark:hover:bg-gray-700 focus:outline-none focus:ring-4 focus:ring-gray-200 dark:focus:ring-gray-700 rounded-lg text-sm p-2.5 inline-flex items-center" aria-label="Facebook" href="https://www.facebook.com/fujohnwang/"&gt; 
        &lt;svg viewbox="0 0 24 24" class="w-5 h-5" astro-icon="tabler:brand-facebook"&gt; &lt;path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M7 10v4h3v7h4v-7h3l1-4h-4V8a1 1 0 0 1 1-1h3V3h-3a5 5 0 0 0-5 5v2H7"&gt;&lt;/path&gt; 
        &lt;/svg&gt; &lt;/a&gt; &lt;/li&gt; 
      &lt;li&gt; &lt;a class="text-gray-500 dark:text-gray-400 hover:bg-gray-100 dark:hover:bg-gray-700 focus:outline-none focus:ring-4 focus:ring-gray-200 dark:focus:ring-gray-700 rounded-lg text-sm p-2.5 inline-flex items-center" aria-label="Github" href="https://github.com/fujohnwang"&gt; 
        &lt;svg viewbox="0 0 24 24" class="w-5 h-5" astro-icon="tabler:brand-github"&gt; &lt;path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 19c-4.3 1.4-4.3-2.5-6-3m12 5v-3.5c0-1 .1-1.4-.5-2 2.8-.3 5.5-1.4 5.5-6a4.6 4.6 0 0 0-1.3-3.2 4.2 4.2 0 0 0-.1-3.2s-1.1-.3-3.5 1.3a12.3 12.3 0 0 0-6.2 0C6.5 2.8 5.4 3.1 5.4 3.1a4.2 4.2 0 0 0-.1 3.2A4.6 4.6 0 0 0 4 9.5c0 4.6 2.7 5.7 5.5 6-.6.6-.6 1.2-.5 2V21"&gt; 
         &lt;/path&gt; 
        &lt;/svg&gt; &lt;/a&gt; &lt;/li&gt; 
     &lt;/ul&gt; 
     &lt;div class="text-sm text-gray-700 mr-4 dark:text-slate-400"&gt; &lt;span class="w-5 h-5 md:w-6 md:h-6 md:-mt-0.5 bg-cover mr-1.5 float-left rounded-sm"&gt; &lt;img src="https://afoo.me/favicon.svg" class="rounded-md" alt&gt; &lt;/span&gt; Copyright © 王福强个人版权所有 - Since 2004 (Everything is homebrewed with &lt;a href="https://pandoc.org/"&gt;Pandoc&lt;/a&gt; and Markdown, little &lt;a href="https://www.scala-lang.org/"&gt;Scala&lt;/a&gt; also included.) 
     &lt;/div&gt; 
    &lt;/div&gt; 
   &lt;/div&gt; 
  &lt;/footer&gt; 
  &lt;script&gt;
        // Set "light" theme as default
        if (!localStorage.theme) {
            localStorage.theme = "light";
        }

        if (
            localStorage.theme === 'dark' ||
            (!('theme' in localStorage) &amp;&amp; window.matchMedia('(prefers-color-scheme: dark)').matches)
        ) {
            document.documentElement.classList.add('dark');
        } else {
            document.documentElement.classList.remove('dark');
        }

        function attachEvent(selector, event, fn) {
            const matches = document.querySelectorAll(selector);
            if (matches &amp;&amp; matches.length) {
                matches.forEach((elem) =&gt; {
                    elem.addEventListener(event, () =&gt; fn(elem), false);
                });
            }
        }

        window.onload = function () {
            attachEvent('[data-toggle-menu]', 'click', function (elem) {
                elem.classList.toggle('expanded');
                document.body.classList.toggle('overflow-hidden');
                document.getElementById('header')?.classList.toggle('h-screen');
                document.querySelector('#header nav')?.classList.toggle('hidden');
            });
            attachEvent("[data-toggle-color-scheme]", "click", function () {
                    document.documentElement.classList.toggle("light");
                    localStorage.theme = "light";
                });
        };
        window.onpageshow = function () {
            const elem = document.querySelector('[data-toggle-menu]');
            if (elem) {
                elem.classList.remove('expanded');
            }
            document.body.classList.remove('overflow-hidden');
            document.getElementById('header')?.classList.remove('h-screen');
            document.querySelector('#header nav')?.classList.add('hidden');
        };
    &lt;/script&gt; 
  &lt;script type="text/javascript"&gt;
        var gitalk = new Gitalk({
          clientID: '518a605d711883414ac0',
          clientSecret: '69fb8ccc0616c5bcbc64d24ece0d06d279da91ff',
          repo: 'afoo.me.comments',
          owner: 'fujohnwang',
          admin: ['fujohnwang'],
          id: location.pathname.substring(0, 49),      // Ensure uniqueness and length less than 50
          distractionFreeMode: false  // Facebook-like distraction free mode
        })
        gitalk.render('comments')
    &lt;/script&gt; 
  &lt;script src="https://formspree.io/js/formbutton-v1.min.js" defer&gt;&lt;/script&gt; 
  &lt;script&gt;
  /* paste this line in verbatim */
  window.formbutton=window.formbutton||function(){(formbutton.q=formbutton.q||[]).push(arguments)};
  /* customize formbutton below*/     
  formbutton("create", {
    action: "https://formspree.io/f/xknlpkkd",
    title: "有什么可以帮到您？💕💕💕 How can I help you?",
    buttonImg: "&lt;img src='https://afoo.me/hero3/70.webp' alt/&gt;",
    fields: [
      { 
        type: "email", 
        label: "您的电子邮箱（方便与您联系）:", 
        name: "email",
        required: true,
        placeholder: "your@email.com"
      },
      {
        type: "textarea",
        label: "您想提交的反馈和询问信息:",
        name: "message",
        placeholder: "What's on your mind?",
      },
      { type: "submit" }      
    ],
    styles: {
      title: {
        backgroundColor: "blue"
      },
      button: {
        backgroundColor: "blue"
      }
    }
  });
&lt;/script&gt; 
  &lt;script&gt;
	// tooltips
	tippy('#aiedu', {
        content: "As to AI nowadays, LLM and Stable Diffusion are hot even hottest among them, If your want to both know-why and know-how with them, instead of only know-how which can't repeat itself, you should get you to https://ai.afoo.me right now ❗"
    });  
&lt;/script&gt;  
 &lt;/body&gt;
&lt;/html&gt;</description>
      <pubDate>Thu, 20 Aug 2026 16:00:00 GMT</pubDate>
      <guid>http://afoo.me/posts/2026-08-21-TVP-CATL-visit.html</guid>
      <dc:date>2026-08-20T16:00:00Z</dc:date>
    </item>
    <item>
      <title>这些 AI 产品的定位其实不一样</title>
      <link>http://afoo.me/posts/2026-08-14-ai-products-positioning.html</link>
      <description>&lt;!doctype html&gt;
&lt;html lang="zh" class="motion-safe:scroll-smooth 2xl:text-[20px]"&gt; 
 &lt;head&gt; 
  &lt;meta charset="utf-8"&gt; 
  &lt;meta name="keywords" content="这些 AI 产品的定位其实不一样 - 架构师， 架构士，架构教练, 教练, 个人成长, 组织成长, 独立顾问, architecture, book author, thinker, fighter, 架构, 思考, 技术, 武术, 哲学"&gt; 
  &lt;meta name="description" content="这些 AI 产品的定位其实不一样 - 福强说，扶墙老师说，王福强的个人博客， 一个架构士的思考与沉淀"&gt; 
  &lt;meta name="author" content="王福强"&gt; 
  &lt;meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"&gt; 
  &lt;meta http-equiv="Content-Type" content="text/html; charset=UTF-8"&gt; 
  &lt;meta name="robots" content="index,follow"&gt; 
  &lt;title&gt;这些 AI 产品的定位其实不一样 -王福强的个人博客：一个架构士的思考与沉淀&lt;/title&gt; 
  &lt;meta name="date" content="2026-08-14"&gt; 
  &lt;meta property="og:title" content="这些 AI 产品的定位其实不一样"&gt; 
  &lt;meta property="og:type" content="landing page"&gt; 
  &lt;meta property="og:url" content="https://afoo.me/posts/2026-08-14-ai-products-positioning.html"&gt; 
  &lt;meta property="og:image" content="https://og.afoo.me?url=https://afoo.me/posts/2026-08-14-ai-products-positioning.html"&gt; 
  &lt;meta name="twitter:card" content="summary_large_image"&gt; 
  &lt;meta name="twitter:title" content="这些 AI 产品的定位其实不一样"&gt; 
  &lt;meta name="twitter:site" content="@afoo_me"&gt; 
  &lt;meta name="twitter:creator" content="@afoo_me"&gt; 
  &lt;meta name="twitter:image" content="https://og.afoo.me?url=https://afoo.me/posts/2026-08-14-ai-products-positioning.html"&gt; 
  &lt;meta name="twitter:description" content="这些 AI 产品的定位其实不一样 - 王福强的个人博客， 一个架构士的思考与沉淀"&gt; 
  &lt;link rel="shortcut icon" href="/favicon.ico"&gt; 
  &lt;link rel="canonical" href="https://afoo.me/posts/2026-08-14-ai-products-positioning.html"&gt; 
  &lt;link rel="icon" type="image/svg+xml" href="https://afoo.me/favicon.svg"&gt; 
  &lt;link rel="mask-icon" href="https://afoo.me/favicon.svg" color="#3383F8"&gt; 
  &lt;script src="https://afoo.me/js/htmx.min.js"&gt;&lt;/script&gt; 
  &lt;link rel="stylesheet" href="https://unpkg.com/gitalk/dist/gitalk.css"&gt; 
  &lt;script src="https://unpkg.com/gitalk/dist/gitalk.min.js"&gt;&lt;/script&gt; 
  &lt;script src="https://afoo.me/js/popper.min.js"&gt;&lt;/script&gt; 
  &lt;script src="https://afoo.me/js/tippy.min.js"&gt;&lt;/script&gt; 
  &lt;link rel="stylesheet" href="/css/af.css"&gt; 
  &lt;link rel="stylesheet" href="/css/components.css"&gt; 
  &lt;link ref="stylesheet" href="/css/pygments.css"&gt; 
  &lt;style type="text/css"&gt;
        pre &gt; code{
          white-space: pre-wrap;
          font-family: monospace;
          font-size: 14px;
          /* border-left: blueviolet;
          border-left-width: thick;
          border-left-style: double;
          padding-left: 1rem !important; */
        }
        
        .x-indicator{
            display:none;
        }
        .htmx-request .x-indicator{
            display:inline;
        }
        .htmx-request.x-indicator{
            display:inline;
        }
    &lt;/style&gt; 
  &lt;script type="application/ld+json"&gt;
    {
      "@context": "https://schema.org",
      "@type": "NewsArticle",
      "headline": "这些 AI 产品的定位其实不一样",
      "image": [
        "https://afoo.me/images/fb_subscribe.jpg"
       ],
      "datePublished": "2026-08-14",
      "author": [{
          "@type": "Person",
          "name": "王福强",
          "url": "https://afoo.me"
        }]
    }
  &lt;/script&gt; 
  &lt;script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-3687639021943715" crossorigin="anonymous"&gt;&lt;/script&gt; 
 &lt;/head&gt; 
 &lt;body class="antialiased text-slate-800 dark:text-slate-300 tracking-tight bg-slate-50 dark:bg-gray-900 vsc-initialized"&gt; 
  &lt;header class="sticky top-0 z-40 flex-none mx-auto w-full bg-slate-50 md:bg-slate-50/90 dark:bg-gray-900 dark:md:bg-gray-900/90 md:backdrop-blur-sm border-b border-slate-200 dark:border-b-0" id="header"&gt; 
   &lt;div class="py-3 px-3 mx-auto w-full md:flex md:justify-between max-w-6xl md:px-4"&gt; 
    &lt;div class="flex justify-between"&gt; &lt;a class="flex items-center" href="https://afoo.me"&gt; &lt;span class="self-center ml-2 text-2xl font-extrabold text-slate-800 whitespace-nowrap dark:text-white"&gt; &lt;img src="/images/afoo.PNG" alt="logo" style="height:60px;"&gt; &lt;/span&gt; &lt;/a&gt; 
     &lt;div class="flex items-center md:hidden"&gt; &lt;button type="button" class="text-gray-500 dark:text-gray-400 hover:bg-gray-100 dark:hover:bg-gray-700 focus:outline-none focus:ring-4 focus:ring-gray-200 dark:focus:ring-gray-700 rounded-lg text-sm p-2.5 inline-flex items-center" aria-label="Toggle between Dark and Light mode" data-toggle-color-scheme=""&gt; 
       &lt;svg viewbox="0 0 24 24" class="w-6 h-6" astro-icon="tabler:sun"&gt; &lt;g fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" class="icon-tabler"&gt; 
         &lt;circle cx="12" cy="12" r="4"&gt;&lt;/circle&gt; 
         &lt;path d="M3 12h1m8-9v1m8 8h1m-9 8v1M5.6 5.6l.7.7m12.1-.7-.7.7m0 11.4.7.7m-12.1-.7-.7.7"&gt; 
         &lt;/path&gt; 
        &lt;/g&gt; 
       &lt;/svg&gt; &lt;/button&gt; &lt;button type="button" class="ml-1.5 text-gray-500 dark:text-gray-400 hover:bg-gray-100 dark:hover:bg-gray-800 focus:outline-none focus:ring-4 focus:ring-gray-200 dark:focus:ring-gray-700 rounded-lg text-sm p-2.5 inline-flex items-center transition" aria-label="Toggle Menu" data-toggle-menu=""&gt; 
       &lt;svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" preserveaspectratio="xMidYMid meet" viewbox="0 0 24 24" class="w-6 h-6" astro-icon="tabler:menu"&gt; &lt;g class="icon-tabler" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"&gt; 
         &lt;path d="M4 8h16"&gt;&lt;/path&gt; 
         &lt;path d="M4 16h16"&gt;&lt;/path&gt; 
        &lt;/g&gt; 
       &lt;/svg&gt; &lt;/button&gt; 
     &lt;/div&gt; 
    &lt;/div&gt; 
    &lt;nav class="items-center w-full md:w-auto hidden md:flex text-gray-600 dark:text-slate-200 h-screen md:h-auto" aria-label="Main navigation"&gt; 
     &lt;ul class="flex flex-col pt-8 md:pt-0 md:flex-row md:self-center w-full md:w-auto text-xl md:text-base"&gt; 
      &lt;li&gt;&lt;a class="font-medium hover:text-gray-900 dark:hover:text-white px-4 py-3 flex items-center transition duration-150 ease-in-out" href="https://kb.afoo.me/"&gt;福强私学&lt;/a&gt;&lt;/li&gt; 
      &lt;li&gt; &lt;a id="aiedu" class="font-medium hover:text-gray-900 dark:hover:text-white px-4 py-3 flex items-center transition duration-150 ease-in-out" href="http://ai.afoo.me"&gt; 福强AI学堂&lt;/a&gt; &lt;/li&gt; 
      &lt;li&gt; &lt;a class="font-medium hover:text-gray-900 dark:hover:text-white px-4 py-3 flex items-center transition duration-150 ease-in-out" href="http://jiagoubaike.com"&gt;架构百科&lt;/a&gt; &lt;/li&gt; 
      &lt;li&gt; &lt;a class="font-medium hover:text-gray-900 dark:hover:text-white px-4 py-3 flex items-center transition duration-150 ease-in-out" href="https://afoo.me/posts.html"&gt;博客文章 &lt;/a&gt; &lt;/li&gt; 
      &lt;li&gt; &lt;a class="font-medium hover:text-gray-900 dark:hover:text-white px-4 py-3 flex items-center transition duration-150 ease-in-out" href="https://afoo.me/books.html"&gt;创作出版&lt;/a&gt; &lt;/li&gt; 
      &lt;li&gt; &lt;a class="font-medium hover:text-gray-900 dark:hover:text-white px-4 py-3 flex items-center transition duration-150 ease-in-out" href="https://store.afoo.me"&gt;产品与服务&lt;/a&gt; &lt;/li&gt; 
      &lt;li&gt;&lt;a class="font-medium hover:text-gray-900 dark:hover:text-white px-4 py-3 flex items-center transition duration-150 ease-in-out" href="https://auth.afoo.me/user.html"&gt;登录信息&lt;/a&gt;&lt;/li&gt; 
      &lt;li&gt; &lt;a class="font-medium hover:text-gray-900 dark:hover:text-white px-4 py-3 flex items-center transition duration-150 ease-in-out" href="https://afoo.me/crosslinks.html"&gt;更多链接&lt;/a&gt; &lt;/li&gt; 
     &lt;/ul&gt; 
     &lt;div class="md:self-center flex items-center mb-4 md:mb-0 ml-2"&gt; 
      &lt;div class="hidden items-center md:flex"&gt; &lt;button type="button" class="text-gray-500 dark:text-gray-400 hover:bg-gray-100 dark:hover:bg-gray-700 focus:outline-none focus:ring-4 focus:ring-gray-200 dark:focus:ring-gray-700 rounded-lg text-sm p-2.5 inline-flex items-center" aria-label="Toggle between Dark and Light mode" data-toggle-color-scheme=""&gt; 
        &lt;svg viewbox="0 0 24 24" class="w-5 h-5" astro-icon="tabler:sun"&gt; &lt;g fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" class="icon-tabler"&gt; 
          &lt;circle cx="12" cy="12" r="4"&gt;&lt;/circle&gt; 
          &lt;path d="M3 12h1m8-9v1m8 8h1m-9 8v1M5.6 5.6l.7.7m12.1-.7-.7.7m0 11.4.7.7m-12.1-.7-.7.7"&gt; 
          &lt;/path&gt; 
         &lt;/g&gt; 
        &lt;/svg&gt; &lt;/button&gt; &lt;a class="text-gray-500 dark:text-gray-400 hover:bg-gray-100 dark:hover:bg-gray-700 focus:outline-none focus:ring-4 focus:ring-gray-200 dark:focus:ring-gray-700 rounded-lg text-sm p-2.5 inline-flex items-center" aria-label="RSS Feed" href="http://afoo.me/feeds.xml"&gt; 
        &lt;svg viewbox="0 0 24 24" class="w-5 h-5" astro-icon="tabler:rss"&gt; &lt;g fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" class="icon-tabler"&gt; 
          &lt;circle cx="5" cy="19" r="1"&gt;&lt;/circle&gt; 
          &lt;path d="M4 4a16 16 0 0 1 16 16M4 11a9 9 0 0 1 9 9"&gt;&lt;/path&gt; 
         &lt;/g&gt; 
        &lt;/svg&gt; &lt;/a&gt; 
      &lt;/div&gt; 
     &lt;/div&gt; 
    &lt;/nav&gt; 
   &lt;/div&gt; 
  &lt;/header&gt; 
  &lt;main&gt; 
   &lt;div id="leftSlot" class="visible md:invisible fixed top-0 left-0" style="width: 16rem;height: 80%;margin-top: 4rem;"&gt; &lt;!-- left --&gt; 
    &lt;ins class="adsbygoogle" style="display:block" data-ad-client="ca-pub-3687639021943715" data-ad-slot="3581141418" data-ad-format="auto" data-full-width-responsive="true"&gt;&lt;/ins&gt; 
    &lt;script&gt;
          (adsbygoogle = window.adsbygoogle || []).push({});
      &lt;/script&gt; 
   &lt;/div&gt; 
   &lt;div id="rightSlot" class="visible md:invisible fixed top-0 right-0" style="width: 16rem;height: 80%;margin-top: 4rem;"&gt; &lt;!-- right --&gt; 
    &lt;ins class="adsbygoogle" style="display:block" data-ad-client="ca-pub-3687639021943715" data-ad-slot="7030836806" data-ad-format="auto" data-full-width-responsive="true"&gt;&lt;/ins&gt; 
    &lt;script&gt;
           (adsbygoogle = window.adsbygoogle || []).push({});
      &lt;/script&gt; 
   &lt;/div&gt; 
   &lt;section class="text-gray-600 body-font relative"&gt; 
    &lt;div class="max-w-4xl mx-auto px-5 py-24 mb-12 prose prose-lg dark:prose-invert"&gt; 
     &lt;p class="lead"&gt; &lt;/p&gt;
     &lt;h1 class="title"&gt;这些 AI 产品的定位其实不一样&lt;/h1&gt; &lt;small&gt; &lt;h3 class="author"&gt;王福强&lt;/h3&gt; 
      &lt;div style="text-align: left;"&gt;
       2026-08-14
      &lt;/div&gt; &lt;/small&gt; 
     &lt;p&gt;&lt;/p&gt; &lt;!-- random --&gt; 
     &lt;ins class="adsbygoogle" style="display:block" data-ad-client="ca-pub-3687639021943715" data-ad-slot="2722720851" data-ad-format="auto" data-full-width-responsive="true"&gt;&lt;/ins&gt; 
     &lt;script&gt;
                 (adsbygoogle = window.adsbygoogle || []).push({});
            &lt;/script&gt; 
     &lt;hr&gt; 
     &lt;p&gt;什么是Coding Agents？&lt;/p&gt; 
     &lt;p&gt;即定位专注于写代码场景的AI Agents， 比如Claude Code， Codex，Grok Build， Pi，以及最新出来的DeepSeek Harness…&lt;/p&gt; 
     &lt;h2 id="小龙虾-与-coding-agents"&gt;小龙虾 与 Coding Agents&lt;/h2&gt; 
     &lt;p&gt;小龙虾（OpenClaw）跟 Coding Agents 其实不完全一样。&lt;/p&gt; 
     &lt;ul&gt; 
      &lt;li&gt;小龙虾偏服务器端，偏Remote， 用户访问它的时候，是通过其它外围channels，比如telegram，飞书之类IM产品；但Coding Agents更偏Local，通常跑在开发者使用的开发机上，虽然现在很多人喜欢结合UU/Tailscale/Paseo/Herdr等工具远程访问这些Coding Agents，但Coding Agents骨子里还是偏Local开发机上的Agents实现。&lt;/li&gt; 
      &lt;li&gt;小龙虾更偏通用Agents， Coding Agents更偏Coding；&lt;/li&gt; 
      &lt;li&gt;小龙虾的受众更广， Coding Agents的受众通常是研发；&lt;/li&gt; 
     &lt;/ul&gt; 
     &lt;h2 id="workbuddy-与-coding-agents"&gt;WorkBuddy 与 Coding Agents&lt;/h2&gt; 
     &lt;p&gt;WorkBuddy的产品定位更偏办公， Coding Agents的产品定位还是Coding。&lt;/p&gt; 
     &lt;h2 id="clitui-与-gui"&gt;CLI，TUI 与 GUI&lt;/h2&gt; 
     &lt;p&gt;同为Coding Agents，&lt;/p&gt; 
     &lt;p&gt;但Coding Agent跟Coding Agent其实也不一样&lt;/p&gt; 
     &lt;p&gt;比如Claude Code更偏重CLI产品形式&lt;/p&gt; 
     &lt;p&gt;而Codex更偏GUI产品形式（虽然也有rust版的CLI版）&lt;/p&gt; 
     &lt;p&gt;而像Herdr之类agents管理类的CLI工具，其实有点儿向TUI偏移了。&lt;/p&gt; &lt;!-- tail --&gt; 
     &lt;ins class="adsbygoogle" style="display:block" data-ad-client="ca-pub-3687639021943715" data-ad-slot="7874087130" data-ad-format="auto" data-full-width-responsive="true"&gt;&lt;/ins&gt; 
     &lt;script&gt;
                 (adsbygoogle = window.adsbygoogle || []).push({});
            &lt;/script&gt; 
     &lt;hr&gt; 
     &lt;div&gt; &lt;a href="/posts.html"&gt; &lt;b&gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; 更多阅读 &amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt; &lt;/b&gt;&lt;/a&gt; 
     &lt;/div&gt; 
     &lt;div id="random_posts"&gt; 
      &lt;div class="alert alert-light" role="alert"&gt; &lt;a href="/posts/2009-03-03-required-rate-of-return.html"&gt;必要回报率(Required Rate Of Return) &lt;/a&gt; 
      &lt;/div&gt; 
      &lt;div class="alert alert-light" role="alert"&gt; &lt;a href="/posts/2025-08-22-kvectors-intro.html"&gt;KVectors 向量数据库基本成型！ &lt;/a&gt; 
      &lt;/div&gt; 
      &lt;div class="alert alert-light" role="alert"&gt; &lt;a href="/posts/2023-06-20-ali-reorg.html"&gt;啥？阿里巴巴又做组织结构调整了？！ &lt;/a&gt; 
      &lt;/div&gt; 
     &lt;/div&gt; 
     &lt;hr&gt; 
     &lt;div id="comments"&gt;&lt;/div&gt; 
     &lt;hr&gt; &lt;!-- Section CTA --&gt; 
     &lt;section class="overflow-x-clip bg-zinc-50 py-16 md:py-24"&gt; 
      &lt;div class="relative mx-auto w-full max-w-screen-xl px-4"&gt; 
       &lt;div class="relative z-10 w-full"&gt; &lt;!-- 福强私学推荐 --&gt; 
        &lt;div class="mx-auto max-w-screen-md"&gt; 
         &lt;h2 class="mb-4 text-center text-4xl font-bold md:text-5xl"&gt;&lt;a href="https://afoo.me/kb.html" class="border-b"&gt;「福强私学」&lt;/a&gt;来一个？&lt;/h2&gt; 
         &lt;p class="mx-auto mb-8 w-full text-center text-lg leading-8 text-zinc-700 md:w-5/6 md:text-xl"&gt;「福强私学」, 一部沉淀了个人成长、技术与架构、组织与管理以及商业上的方法与心法的百科全书。&lt;/p&gt; 
        &lt;/div&gt; 
        &lt;div class="mx-auto mt-6 w-full md:mt-12 md:w-4/5"&gt; &lt;a href="https://afoo.me/kb.html"&gt; &lt;img alt="footer img for kb.afoo.me" loading="lazy" width="2911" height="1961" decoding="async" data-nimg="1" class="mx-auto rounded-lg object-contain shadow-lg sm:rounded-2xl lg:rounded-3xl" style="color:transparent" src="https://og.afoo.me/?url=footer"&gt; &lt;/a&gt; 
        &lt;/div&gt; &lt;!-- 小报童推荐 --&gt; 
        &lt;div class="mx-auto max-w-screen-md"&gt; 
         &lt;h2 class="mt-8 mb-4 text-center text-4xl font-bold md:text-5xl"&gt;&lt;a href="https://xiaobot.net/p/aifd" class="border-b"&gt;福强老师的 AI 通识课&lt;/a&gt;&lt;/h2&gt;&lt;a href="https://xiaobot.net/p/aifd" class="border-b"&gt; &lt;/a&gt;
        &lt;/div&gt;&lt;a href="https://xiaobot.net/p/aifd" class="border-b"&gt; &lt;/a&gt;
        &lt;div class="mx-auto mt-6 w-full md:mt-12 md:w-4/5"&gt;
         &lt;a href="https://xiaobot.net/p/aifd" class="border-b"&gt; &lt;/a&gt;&lt;a href="https://xiaobot.net/p/aifd"&gt; &lt;img alt="footer img for kb.afoo.me" loading="lazy" width="2911" height="1961" decoding="async" data-nimg="1" class="mx-auto rounded-lg object-contain shadow-lg sm:rounded-2xl lg:rounded-3xl" style="color:transparent" src="/images/xbt-footer.webp"&gt; &lt;/a&gt; 
        &lt;/div&gt; 
        &lt;div class="mx-auto mt-6 w-full md:mt-12 md:w-4/5"&gt; 
         &lt;img alt="footer img for kb.afoo.me" loading="lazy" decoding="async" data-nimg="1" class="mx-auto p-3" style="color:transparent" src="/images/footer-links-2025.webp"&gt; 
        &lt;/div&gt; 
       &lt;/div&gt; 
      &lt;/div&gt; 
     &lt;/section&gt; 
     &lt;hr&gt; 
     &lt;p&gt; &lt;span style="font-size: xx-large;"&gt; 开天窗，拉认知，订阅「福报」，即刻拥有自己的全模态人工智能。 &lt;/span&gt; &lt;/p&gt; &lt;a href="https://wfq.gumroad.com/l/fb"&gt; &lt;img src="/images/fb_subscribe_v2.jpg" alt="订阅「福报」"&gt; &lt;/a&gt; 
     &lt;hr&gt; 
     &lt;div hx-get="https://toolfooter.afoo.me/" hx-trigger="revealed" htmx-indicator="#tfloader"&gt; 
      &lt;div id="tfloader" class="x-indicator"&gt; 
       &lt;svg width="57" height="57" viewbox="0 0 57 57" xmlns="http://www.w3.org/2000/svg" stroke="#3F83F8"&gt; &lt;g fill="none" fill-rule="evenodd"&gt; 
         &lt;g transform="translate(1 1)" stroke-width="2"&gt; 
          &lt;circle cx="5" cy="50" r="5"&gt; 
           &lt;animate attributename="cy" begin="0s" dur="2.2s" values="50;5;50;50" calcmode="linear" repeatcount="indefinite" /&gt; 
           &lt;animate attributename="cx" begin="0s" dur="2.2s" values="5;27;49;5" calcmode="linear" repeatcount="indefinite" /&gt; 
          &lt;/circle&gt; 
          &lt;circle cx="27" cy="5" r="5"&gt; 
           &lt;animate attributename="cy" begin="0s" dur="2.2s" from="5" to="5" values="5;50;50;5" calcmode="linear" repeatcount="indefinite" /&gt; 
           &lt;animate attributename="cx" begin="0s" dur="2.2s" from="27" to="27" values="27;49;5;27" calcmode="linear" repeatcount="indefinite" /&gt; 
          &lt;/circle&gt; 
          &lt;circle cx="49" cy="50" r="5"&gt; 
           &lt;animate attributename="cy" begin="0s" dur="2.2s" values="50;50;5;50" calcmode="linear" repeatcount="indefinite" /&gt; 
           &lt;animate attributename="cx" from="49" to="49" begin="0s" dur="2.2s" values="49;5;27;49" calcmode="linear" repeatcount="indefinite" /&gt; 
          &lt;/circle&gt; 
         &lt;/g&gt; 
        &lt;/g&gt; 
       &lt;/svg&gt; 
      &lt;/div&gt; 
     &lt;/div&gt; 
    &lt;/div&gt; 
   &lt;/section&gt; 
  &lt;/main&gt; 
  &lt;div style="position: fixed; left: 0; bottom: 0; padding: 10px; z-index: 1000;"&gt; 
   &lt;img src="/icons/Written-By-Human-Not-By-AI-Badge-black@2x.png" alt loading="lazy"&gt; 
  &lt;/div&gt; 
  &lt;footer class="border-t border-gray-200 dark:border-slate-800"&gt; 
   &lt;div class="max-w-6xl mx-auto px-4 sm:px-6"&gt; 
    &lt;div class="md:flex md:items-center md:justify-between py-6 md:py-8"&gt; 
     &lt;ul class="flex mb-4 md:order-1 -ml-2 md:ml-4 md:mb-0"&gt; 
      &lt;li&gt; &lt;a class="text-gray-500 dark:text-gray-400 hover:bg-gray-100 dark:hover:bg-gray-700 focus:outline-none focus:ring-4 focus:ring-gray-200 dark:focus:ring-gray-700 rounded-lg text-sm p-2.5 inline-flex items-center" aria-label="Twitter" href="https://twitter.com/afoo_me"&gt; 
        &lt;svg viewbox="0 0 24 24" class="w-5 h-5" astro-icon="tabler:brand-twitter"&gt; &lt;path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M22 4.01c-1 .49-1.98.689-3 .99-1.121-1.265-2.783-1.335-4.38-.737S11.977 6.323 12 8v1c-3.245.083-6.135-1.395-8-4 0 0-4.182 7.433 4 11-1.872 1.247-3.739 2.088-6 2 3.308 1.803 6.913 2.423 10.034 1.517 3.58-1.04 6.522-3.723 7.651-7.742a13.84 13.84 0 0 0 .497-3.753C20.18 7.773 21.692 5.25 22 4.009z"&gt; 
         &lt;/path&gt; 
        &lt;/svg&gt; &lt;/a&gt; &lt;/li&gt; 
      &lt;li&gt; &lt;a class="text-gray-500 dark:text-gray-400 hover:bg-gray-100 dark:hover:bg-gray-700 focus:outline-none focus:ring-4 focus:ring-gray-200 dark:focus:ring-gray-700 rounded-lg text-sm p-2.5 inline-flex items-center" aria-label="Facebook" href="https://www.facebook.com/fujohnwang/"&gt; 
        &lt;svg viewbox="0 0 24 24" class="w-5 h-5" astro-icon="tabler:brand-facebook"&gt; &lt;path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M7 10v4h3v7h4v-7h3l1-4h-4V8a1 1 0 0 1 1-1h3V3h-3a5 5 0 0 0-5 5v2H7"&gt;&lt;/path&gt; 
        &lt;/svg&gt; &lt;/a&gt; &lt;/li&gt; 
      &lt;li&gt; &lt;a class="text-gray-500 dark:text-gray-400 hover:bg-gray-100 dark:hover:bg-gray-700 focus:outline-none focus:ring-4 focus:ring-gray-200 dark:focus:ring-gray-700 rounded-lg text-sm p-2.5 inline-flex items-center" aria-label="Github" href="https://github.com/fujohnwang"&gt; 
        &lt;svg viewbox="0 0 24 24" class="w-5 h-5" astro-icon="tabler:brand-github"&gt; &lt;path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 19c-4.3 1.4-4.3-2.5-6-3m12 5v-3.5c0-1 .1-1.4-.5-2 2.8-.3 5.5-1.4 5.5-6a4.6 4.6 0 0 0-1.3-3.2 4.2 4.2 0 0 0-.1-3.2s-1.1-.3-3.5 1.3a12.3 12.3 0 0 0-6.2 0C6.5 2.8 5.4 3.1 5.4 3.1a4.2 4.2 0 0 0-.1 3.2A4.6 4.6 0 0 0 4 9.5c0 4.6 2.7 5.7 5.5 6-.6.6-.6 1.2-.5 2V21"&gt; 
         &lt;/path&gt; 
        &lt;/svg&gt; &lt;/a&gt; &lt;/li&gt; 
     &lt;/ul&gt; 
     &lt;div class="text-sm text-gray-700 mr-4 dark:text-slate-400"&gt; &lt;span class="w-5 h-5 md:w-6 md:h-6 md:-mt-0.5 bg-cover mr-1.5 float-left rounded-sm"&gt; &lt;img src="https://afoo.me/favicon.svg" class="rounded-md" alt&gt; &lt;/span&gt; Copyright © 王福强个人版权所有 - Since 2004 (Everything is homebrewed with &lt;a href="https://pandoc.org/"&gt;Pandoc&lt;/a&gt; and Markdown, little &lt;a href="https://www.scala-lang.org/"&gt;Scala&lt;/a&gt; also included.) 
     &lt;/div&gt; 
    &lt;/div&gt; 
   &lt;/div&gt; 
  &lt;/footer&gt; 
  &lt;script&gt;
        // Set "light" theme as default
        if (!localStorage.theme) {
            localStorage.theme = "light";
        }

        if (
            localStorage.theme === 'dark' ||
            (!('theme' in localStorage) &amp;&amp; window.matchMedia('(prefers-color-scheme: dark)').matches)
        ) {
            document.documentElement.classList.add('dark');
        } else {
            document.documentElement.classList.remove('dark');
        }

        function attachEvent(selector, event, fn) {
            const matches = document.querySelectorAll(selector);
            if (matches &amp;&amp; matches.length) {
                matches.forEach((elem) =&gt; {
                    elem.addEventListener(event, () =&gt; fn(elem), false);
                });
            }
        }

        window.onload = function () {
            attachEvent('[data-toggle-menu]', 'click', function (elem) {
                elem.classList.toggle('expanded');
                document.body.classList.toggle('overflow-hidden');
                document.getElementById('header')?.classList.toggle('h-screen');
                document.querySelector('#header nav')?.classList.toggle('hidden');
            });
            attachEvent("[data-toggle-color-scheme]", "click", function () {
                    document.documentElement.classList.toggle("light");
                    localStorage.theme = "light";
                });
        };
        window.onpageshow = function () {
            const elem = document.querySelector('[data-toggle-menu]');
            if (elem) {
                elem.classList.remove('expanded');
            }
            document.body.classList.remove('overflow-hidden');
            document.getElementById('header')?.classList.remove('h-screen');
            document.querySelector('#header nav')?.classList.add('hidden');
        };
    &lt;/script&gt; 
  &lt;script type="text/javascript"&gt;
        var gitalk = new Gitalk({
          clientID: '518a605d711883414ac0',
          clientSecret: '69fb8ccc0616c5bcbc64d24ece0d06d279da91ff',
          repo: 'afoo.me.comments',
          owner: 'fujohnwang',
          admin: ['fujohnwang'],
          id: location.pathname.substring(0, 49),      // Ensure uniqueness and length less than 50
          distractionFreeMode: false  // Facebook-like distraction free mode
        })
        gitalk.render('comments')
    &lt;/script&gt; 
  &lt;script src="https://formspree.io/js/formbutton-v1.min.js" defer&gt;&lt;/script&gt; 
  &lt;script&gt;
  /* paste this line in verbatim */
  window.formbutton=window.formbutton||function(){(formbutton.q=formbutton.q||[]).push(arguments)};
  /* customize formbutton below*/     
  formbutton("create", {
    action: "https://formspree.io/f/xknlpkkd",
    title: "有什么可以帮到您？💕💕💕 How can I help you?",
    buttonImg: "&lt;img src='https://afoo.me/hero3/70.webp' alt/&gt;",
    fields: [
      { 
        type: "email", 
        label: "您的电子邮箱（方便与您联系）:", 
        name: "email",
        required: true,
        placeholder: "your@email.com"
      },
      {
        type: "textarea",
        label: "您想提交的反馈和询问信息:",
        name: "message",
        placeholder: "What's on your mind?",
      },
      { type: "submit" }      
    ],
    styles: {
      title: {
        backgroundColor: "blue"
      },
      button: {
        backgroundColor: "blue"
      }
    }
  });
&lt;/script&gt; 
  &lt;script&gt;
	// tooltips
	tippy('#aiedu', {
        content: "As to AI nowadays, LLM and Stable Diffusion are hot even hottest among them, If your want to both know-why and know-how with them, instead of only know-how which can't repeat itself, you should get you to https://ai.afoo.me right now ❗"
    });  
&lt;/script&gt;  
 &lt;/body&gt;
&lt;/html&gt;</description>
      <pubDate>Thu, 13 Aug 2026 16:00:00 GMT</pubDate>
      <guid>http://afoo.me/posts/2026-08-14-ai-products-positioning.html</guid>
      <dc:date>2026-08-13T16:00:00Z</dc:date>
    </item>
    <item>
      <title>录音硬件类产品随想</title>
      <link>http://afoo.me/posts/2026-08-13-open-recorder-product-thought.html</link>
      <description>&lt;!doctype html&gt;
&lt;html lang="zh" class="motion-safe:scroll-smooth 2xl:text-[20px]"&gt; 
 &lt;head&gt; 
  &lt;meta charset="utf-8"&gt; 
  &lt;meta name="keywords" content="录音硬件类产品随想 - 架构师， 架构士，架构教练, 教练, 个人成长, 组织成长, 独立顾问, architecture, book author, thinker, fighter, 架构, 思考, 技术, 武术, 哲学"&gt; 
  &lt;meta name="description" content="录音硬件类产品随想 - 福强说，扶墙老师说，王福强的个人博客， 一个架构士的思考与沉淀"&gt; 
  &lt;meta name="author" content="王福强"&gt; 
  &lt;meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"&gt; 
  &lt;meta http-equiv="Content-Type" content="text/html; charset=UTF-8"&gt; 
  &lt;meta name="robots" content="index,follow"&gt; 
  &lt;title&gt;录音硬件类产品随想 -王福强的个人博客：一个架构士的思考与沉淀&lt;/title&gt; 
  &lt;meta name="date" content="2026-08-13"&gt; 
  &lt;meta property="og:title" content="录音硬件类产品随想"&gt; 
  &lt;meta property="og:type" content="landing page"&gt; 
  &lt;meta property="og:url" content="https://afoo.me/posts/2026-08-13-open-recorder-product-thought.html"&gt; 
  &lt;meta property="og:image" content="https://og.afoo.me?url=https://afoo.me/posts/2026-08-13-open-recorder-product-thought.html"&gt; 
  &lt;meta name="twitter:card" content="summary_large_image"&gt; 
  &lt;meta name="twitter:title" content="录音硬件类产品随想"&gt; 
  &lt;meta name="twitter:site" content="@afoo_me"&gt; 
  &lt;meta name="twitter:creator" content="@afoo_me"&gt; 
  &lt;meta name="twitter:image" content="https://og.afoo.me?url=https://afoo.me/posts/2026-08-13-open-recorder-product-thought.html"&gt; 
  &lt;meta name="twitter:description" content="录音硬件类产品随想 - 王福强的个人博客， 一个架构士的思考与沉淀"&gt; 
  &lt;link rel="shortcut icon" href="/favicon.ico"&gt; 
  &lt;link rel="canonical" href="https://afoo.me/posts/2026-08-13-open-recorder-product-thought.html"&gt; 
  &lt;link rel="icon" type="image/svg+xml" href="https://afoo.me/favicon.svg"&gt; 
  &lt;link rel="mask-icon" href="https://afoo.me/favicon.svg" color="#3383F8"&gt; 
  &lt;script src="https://afoo.me/js/htmx.min.js"&gt;&lt;/script&gt; 
  &lt;link rel="stylesheet" href="https://unpkg.com/gitalk/dist/gitalk.css"&gt; 
  &lt;script src="https://unpkg.com/gitalk/dist/gitalk.min.js"&gt;&lt;/script&gt; 
  &lt;script src="https://afoo.me/js/popper.min.js"&gt;&lt;/script&gt; 
  &lt;script src="https://afoo.me/js/tippy.min.js"&gt;&lt;/script&gt; 
  &lt;link rel="stylesheet" href="/css/af.css"&gt; 
  &lt;link rel="stylesheet" href="/css/components.css"&gt; 
  &lt;link ref="stylesheet" href="/css/pygments.css"&gt; 
  &lt;style type="text/css"&gt;
        pre &gt; code{
          white-space: pre-wrap;
          font-family: monospace;
          font-size: 14px;
          /* border-left: blueviolet;
          border-left-width: thick;
          border-left-style: double;
          padding-left: 1rem !important; */
        }
        
        .x-indicator{
            display:none;
        }
        .htmx-request .x-indicator{
            display:inline;
        }
        .htmx-request.x-indicator{
            display:inline;
        }
    &lt;/style&gt; 
  &lt;script type="application/ld+json"&gt;
    {
      "@context": "https://schema.org",
      "@type": "NewsArticle",
      "headline": "录音硬件类产品随想",
      "image": [
        "https://afoo.me/images/fb_subscribe.jpg"
       ],
      "datePublished": "2026-08-13",
      "author": [{
          "@type": "Person",
          "name": "王福强",
          "url": "https://afoo.me"
        }]
    }
  &lt;/script&gt; 
  &lt;script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-3687639021943715" crossorigin="anonymous"&gt;&lt;/script&gt; 
 &lt;/head&gt; 
 &lt;body class="antialiased text-slate-800 dark:text-slate-300 tracking-tight bg-slate-50 dark:bg-gray-900 vsc-initialized"&gt; 
  &lt;header class="sticky top-0 z-40 flex-none mx-auto w-full bg-slate-50 md:bg-slate-50/90 dark:bg-gray-900 dark:md:bg-gray-900/90 md:backdrop-blur-sm border-b border-slate-200 dark:border-b-0" id="header"&gt; 
   &lt;div class="py-3 px-3 mx-auto w-full md:flex md:justify-between max-w-6xl md:px-4"&gt; 
    &lt;div class="flex justify-between"&gt; &lt;a class="flex items-center" href="https://afoo.me"&gt; &lt;span class="self-center ml-2 text-2xl font-extrabold text-slate-800 whitespace-nowrap dark:text-white"&gt; &lt;img src="/images/afoo.PNG" alt="logo" style="height:60px;"&gt; &lt;/span&gt; &lt;/a&gt; 
     &lt;div class="flex items-center md:hidden"&gt; &lt;button type="button" class="text-gray-500 dark:text-gray-400 hover:bg-gray-100 dark:hover:bg-gray-700 focus:outline-none focus:ring-4 focus:ring-gray-200 dark:focus:ring-gray-700 rounded-lg text-sm p-2.5 inline-flex items-center" aria-label="Toggle between Dark and Light mode" data-toggle-color-scheme=""&gt; 
       &lt;svg viewbox="0 0 24 24" class="w-6 h-6" astro-icon="tabler:sun"&gt; &lt;g fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" class="icon-tabler"&gt; 
         &lt;circle cx="12" cy="12" r="4"&gt;&lt;/circle&gt; 
         &lt;path d="M3 12h1m8-9v1m8 8h1m-9 8v1M5.6 5.6l.7.7m12.1-.7-.7.7m0 11.4.7.7m-12.1-.7-.7.7"&gt; 
         &lt;/path&gt; 
        &lt;/g&gt; 
       &lt;/svg&gt; &lt;/button&gt; &lt;button type="button" class="ml-1.5 text-gray-500 dark:text-gray-400 hover:bg-gray-100 dark:hover:bg-gray-800 focus:outline-none focus:ring-4 focus:ring-gray-200 dark:focus:ring-gray-700 rounded-lg text-sm p-2.5 inline-flex items-center transition" aria-label="Toggle Menu" data-toggle-menu=""&gt; 
       &lt;svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" preserveaspectratio="xMidYMid meet" viewbox="0 0 24 24" class="w-6 h-6" astro-icon="tabler:menu"&gt; &lt;g class="icon-tabler" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"&gt; 
         &lt;path d="M4 8h16"&gt;&lt;/path&gt; 
         &lt;path d="M4 16h16"&gt;&lt;/path&gt; 
        &lt;/g&gt; 
       &lt;/svg&gt; &lt;/button&gt; 
     &lt;/div&gt; 
    &lt;/div&gt; 
    &lt;nav class="items-center w-full md:w-auto hidden md:flex text-gray-600 dark:text-slate-200 h-screen md:h-auto" aria-label="Main navigation"&gt; 
     &lt;ul class="flex flex-col pt-8 md:pt-0 md:flex-row md:self-center w-full md:w-auto text-xl md:text-base"&gt; 
      &lt;li&gt;&lt;a class="font-medium hover:text-gray-900 dark:hover:text-white px-4 py-3 flex items-center transition duration-150 ease-in-out" href="https://kb.afoo.me/"&gt;福强私学&lt;/a&gt;&lt;/li&gt; 
      &lt;li&gt; &lt;a id="aiedu" class="font-medium hover:text-gray-900 dark:hover:text-white px-4 py-3 flex items-center transition duration-150 ease-in-out" href="http://ai.afoo.me"&gt; 福强AI学堂&lt;/a&gt; &lt;/li&gt; 
      &lt;li&gt; &lt;a class="font-medium hover:text-gray-900 dark:hover:text-white px-4 py-3 flex items-center transition duration-150 ease-in-out" href="http://jiagoubaike.com"&gt;架构百科&lt;/a&gt; &lt;/li&gt; 
      &lt;li&gt; &lt;a class="font-medium hover:text-gray-900 dark:hover:text-white px-4 py-3 flex items-center transition duration-150 ease-in-out" href="https://afoo.me/posts.html"&gt;博客文章 &lt;/a&gt; &lt;/li&gt; 
      &lt;li&gt; &lt;a class="font-medium hover:text-gray-900 dark:hover:text-white px-4 py-3 flex items-center transition duration-150 ease-in-out" href="https://afoo.me/books.html"&gt;创作出版&lt;/a&gt; &lt;/li&gt; 
      &lt;li&gt; &lt;a class="font-medium hover:text-gray-900 dark:hover:text-white px-4 py-3 flex items-center transition duration-150 ease-in-out" href="https://store.afoo.me"&gt;产品与服务&lt;/a&gt; &lt;/li&gt; 
      &lt;li&gt;&lt;a class="font-medium hover:text-gray-900 dark:hover:text-white px-4 py-3 flex items-center transition duration-150 ease-in-out" href="https://auth.afoo.me/user.html"&gt;登录信息&lt;/a&gt;&lt;/li&gt; 
      &lt;li&gt; &lt;a class="font-medium hover:text-gray-900 dark:hover:text-white px-4 py-3 flex items-center transition duration-150 ease-in-out" href="https://afoo.me/crosslinks.html"&gt;更多链接&lt;/a&gt; &lt;/li&gt; 
     &lt;/ul&gt; 
     &lt;div class="md:self-center flex items-center mb-4 md:mb-0 ml-2"&gt; 
      &lt;div class="hidden items-center md:flex"&gt; &lt;button type="button" class="text-gray-500 dark:text-gray-400 hover:bg-gray-100 dark:hover:bg-gray-700 focus:outline-none focus:ring-4 focus:ring-gray-200 dark:focus:ring-gray-700 rounded-lg text-sm p-2.5 inline-flex items-center" aria-label="Toggle between Dark and Light mode" data-toggle-color-scheme=""&gt; 
        &lt;svg viewbox="0 0 24 24" class="w-5 h-5" astro-icon="tabler:sun"&gt; &lt;g fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" class="icon-tabler"&gt; 
          &lt;circle cx="12" cy="12" r="4"&gt;&lt;/circle&gt; 
          &lt;path d="M3 12h1m8-9v1m8 8h1m-9 8v1M5.6 5.6l.7.7m12.1-.7-.7.7m0 11.4.7.7m-12.1-.7-.7.7"&gt; 
          &lt;/path&gt; 
         &lt;/g&gt; 
        &lt;/svg&gt; &lt;/button&gt; &lt;a class="text-gray-500 dark:text-gray-400 hover:bg-gray-100 dark:hover:bg-gray-700 focus:outline-none focus:ring-4 focus:ring-gray-200 dark:focus:ring-gray-700 rounded-lg text-sm p-2.5 inline-flex items-center" aria-label="RSS Feed" href="http://afoo.me/feeds.xml"&gt; 
        &lt;svg viewbox="0 0 24 24" class="w-5 h-5" astro-icon="tabler:rss"&gt; &lt;g fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" class="icon-tabler"&gt; 
          &lt;circle cx="5" cy="19" r="1"&gt;&lt;/circle&gt; 
          &lt;path d="M4 4a16 16 0 0 1 16 16M4 11a9 9 0 0 1 9 9"&gt;&lt;/path&gt; 
         &lt;/g&gt; 
        &lt;/svg&gt; &lt;/a&gt; 
      &lt;/div&gt; 
     &lt;/div&gt; 
    &lt;/nav&gt; 
   &lt;/div&gt; 
  &lt;/header&gt; 
  &lt;main&gt; 
   &lt;div id="leftSlot" class="visible md:invisible fixed top-0 left-0" style="width: 16rem;height: 80%;margin-top: 4rem;"&gt; &lt;!-- left --&gt; 
    &lt;ins class="adsbygoogle" style="display:block" data-ad-client="ca-pub-3687639021943715" data-ad-slot="3581141418" data-ad-format="auto" data-full-width-responsive="true"&gt;&lt;/ins&gt; 
    &lt;script&gt;
          (adsbygoogle = window.adsbygoogle || []).push({});
      &lt;/script&gt; 
   &lt;/div&gt; 
   &lt;div id="rightSlot" class="visible md:invisible fixed top-0 right-0" style="width: 16rem;height: 80%;margin-top: 4rem;"&gt; &lt;!-- right --&gt; 
    &lt;ins class="adsbygoogle" style="display:block" data-ad-client="ca-pub-3687639021943715" data-ad-slot="7030836806" data-ad-format="auto" data-full-width-responsive="true"&gt;&lt;/ins&gt; 
    &lt;script&gt;
           (adsbygoogle = window.adsbygoogle || []).push({});
      &lt;/script&gt; 
   &lt;/div&gt; 
   &lt;section class="text-gray-600 body-font relative"&gt; 
    &lt;div class="max-w-4xl mx-auto px-5 py-24 mb-12 prose prose-lg dark:prose-invert"&gt; 
     &lt;p class="lead"&gt; &lt;/p&gt;
     &lt;h1 class="title"&gt;录音硬件类产品随想&lt;/h1&gt; &lt;small&gt; &lt;h3 class="author"&gt;王福强&lt;/h3&gt; 
      &lt;div style="text-align: left;"&gt;
       2026-08-13
      &lt;/div&gt; &lt;/small&gt; 
     &lt;p&gt;&lt;/p&gt; &lt;!-- random --&gt; 
     &lt;ins class="adsbygoogle" style="display:block" data-ad-client="ca-pub-3687639021943715" data-ad-slot="2722720851" data-ad-format="auto" data-full-width-responsive="true"&gt;&lt;/ins&gt; 
     &lt;script&gt;
                 (adsbygoogle = window.adsbygoogle || []).push({});
            &lt;/script&gt; 
     &lt;hr&gt; 
     &lt;p&gt;我​⁣⁣⁣‌‌⁣⁣⁣⁣‌⁣‌‌⁣⁣‌⁣‌‌‌⁣⁣⁣⁣⁣⁣⁣‌‌⁣‌⁣⁣‌⁣⁣⁣⁣‌‌⁣‌⁣⁣⁣‌⁣‌‍对录音卡之类的产品需求其实挺简单的：&lt;/p&gt; 
     &lt;ol type="1"&gt; 
      &lt;li&gt;录音设备极简化设计，只有开关按钮和故障灯，剩下就是充电接口，绝不能有各种状态、显示屏等乱七八糟的设计。&lt;/li&gt; 
      &lt;li&gt;录音设备的充电和数据传输最好一条线搞定，因为我需要根据这条线来判断充电状态和数据传输&lt;/li&gt; 
      &lt;li&gt;录音设备插到专用dock上后，自动备份数据并上传到云端（产品原型是一台macbook pro + hammerspoon 自定义脚本）；&lt;/li&gt; 
     &lt;/ol&gt; 
     &lt;p&gt;整个产品架构中， 录音设备 和 专用dock 是关键。&lt;/p&gt; 
     &lt;p&gt;如果要商业化，也是专注在专用dock层面， 通过硬件加管理app形成附加价值， 允许用户配置类似于是否要做ASR（自动转录）、是否上传云端后自动清理录音设备、是否要配置多个云端存储等等。&lt;/p&gt; 
     &lt;p&gt;专用dock尽量轻量化设计，只负责充电和数据传输，不拥有大容量存储，否则就偏NAS了。&lt;/p&gt; 
     &lt;p&gt;整个产品组合的核心理念是，每日routine + fire&amp;amp;forget。&lt;/p&gt; 
     &lt;p&gt;具体来说就是，每天从dock上取下录音设备后即开机，全天录音，让录音设备成为自己的增强电子耳朵，到家或者休息之前，把录音设备插到dock上，dock自动上传数据并充电。&lt;/p&gt; 
     &lt;p&gt;这样，对于用户来说可以很快形成习惯，又没有太多执行和认知负担，很容易持续落实。&lt;/p&gt; 
     &lt;p&gt;至于像什么转录分析啥的，大部分时候不需要，但因为有dock和对应的app，也很容易扩展，但从来不是这套产品体系的关键诉求。&lt;/p&gt; &lt;!-- tail --&gt; 
     &lt;ins class="adsbygoogle" style="display:block" data-ad-client="ca-pub-3687639021943715" data-ad-slot="7874087130" data-ad-format="auto" data-full-width-responsive="true"&gt;&lt;/ins&gt; 
     &lt;script&gt;
                 (adsbygoogle = window.adsbygoogle || []).push({});
            &lt;/script&gt; 
     &lt;hr&gt; 
     &lt;div&gt; &lt;a href="/posts.html"&gt; &lt;b&gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; 更多阅读 &amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt; &lt;/b&gt;&lt;/a&gt; 
     &lt;/div&gt; 
     &lt;div id="random_posts"&gt; 
      &lt;div class="alert alert-light" role="alert"&gt; &lt;a href="/posts/2025-10-17-vector-db-training-delivery-successfully.html"&gt;向量数据库系列第二期企业培训圆满落幕！ &lt;/a&gt; 
      &lt;/div&gt; 
      &lt;div class="alert alert-light" role="alert"&gt; &lt;a href="/posts/2024-05-11-java-not-dead.html"&gt;没想到！Java真不行了！ &lt;/a&gt; 
      &lt;/div&gt; 
      &lt;div class="alert alert-light" role="alert"&gt; &lt;a href="/posts/2011-05-31-multiple_mysql_slaves_with_same_serverid.html"&gt;mysql多个slave使用同一个server id会怎样？ &lt;/a&gt; 
      &lt;/div&gt; 
     &lt;/div&gt; 
     &lt;hr&gt; 
     &lt;div id="comments"&gt;&lt;/div&gt; 
     &lt;hr&gt; &lt;!-- Section CTA --&gt; 
     &lt;section class="overflow-x-clip bg-zinc-50 py-16 md:py-24"&gt; 
      &lt;div class="relative mx-auto w-full max-w-screen-xl px-4"&gt; 
       &lt;div class="relative z-10 w-full"&gt; &lt;!-- 福强私学推荐 --&gt; 
        &lt;div class="mx-auto max-w-screen-md"&gt; 
         &lt;h2 class="mb-4 text-center text-4xl font-bold md:text-5xl"&gt;&lt;a href="https://afoo.me/kb.html" class="border-b"&gt;「福强私学」&lt;/a&gt;来一个？&lt;/h2&gt; 
         &lt;p class="mx-auto mb-8 w-full text-center text-lg leading-8 text-zinc-700 md:w-5/6 md:text-xl"&gt;「福强私学」, 一部沉淀了个人成长、技术与架构、组织与管理以及商业上的方法与心法的百科全书。&lt;/p&gt; 
        &lt;/div&gt; 
        &lt;div class="mx-auto mt-6 w-full md:mt-12 md:w-4/5"&gt; &lt;a href="https://afoo.me/kb.html"&gt; &lt;img alt="footer img for kb.afoo.me" loading="lazy" width="2911" height="1961" decoding="async" data-nimg="1" class="mx-auto rounded-lg object-contain shadow-lg sm:rounded-2xl lg:rounded-3xl" style="color:transparent" src="https://og.afoo.me/?url=footer"&gt; &lt;/a&gt; 
        &lt;/div&gt; &lt;!-- 小报童推荐 --&gt; 
        &lt;div class="mx-auto max-w-screen-md"&gt; 
         &lt;h2 class="mt-8 mb-4 text-center text-4xl font-bold md:text-5xl"&gt;&lt;a href="https://xiaobot.net/p/aifd" class="border-b"&gt;福强老师的 AI 通识课&lt;/a&gt;&lt;/h2&gt;&lt;a href="https://xiaobot.net/p/aifd" class="border-b"&gt; &lt;/a&gt;
        &lt;/div&gt;&lt;a href="https://xiaobot.net/p/aifd" class="border-b"&gt; &lt;/a&gt;
        &lt;div class="mx-auto mt-6 w-full md:mt-12 md:w-4/5"&gt;
         &lt;a href="https://xiaobot.net/p/aifd" class="border-b"&gt; &lt;/a&gt;&lt;a href="https://xiaobot.net/p/aifd"&gt; &lt;img alt="footer img for kb.afoo.me" loading="lazy" width="2911" height="1961" decoding="async" data-nimg="1" class="mx-auto rounded-lg object-contain shadow-lg sm:rounded-2xl lg:rounded-3xl" style="color:transparent" src="/images/xbt-footer.webp"&gt; &lt;/a&gt; 
        &lt;/div&gt; 
        &lt;div class="mx-auto mt-6 w-full md:mt-12 md:w-4/5"&gt; 
         &lt;img alt="footer img for kb.afoo.me" loading="lazy" decoding="async" data-nimg="1" class="mx-auto p-3" style="color:transparent" src="/images/footer-links-2025.webp"&gt; 
        &lt;/div&gt; 
       &lt;/div&gt; 
      &lt;/div&gt; 
     &lt;/section&gt; 
     &lt;hr&gt; 
     &lt;p&gt; &lt;span style="font-size: xx-large;"&gt; 开天窗，拉认知，订阅「福报」，即刻拥有自己的全模态人工智能。 &lt;/span&gt; &lt;/p&gt; &lt;a href="https://wfq.gumroad.com/l/fb"&gt; &lt;img src="/images/fb_subscribe_v2.jpg" alt="订阅「福报」"&gt; &lt;/a&gt; 
     &lt;hr&gt; 
     &lt;div hx-get="https://toolfooter.afoo.me/" hx-trigger="revealed" htmx-indicator="#tfloader"&gt; 
      &lt;div id="tfloader" class="x-indicator"&gt; 
       &lt;svg width="57" height="57" viewbox="0 0 57 57" xmlns="http://www.w3.org/2000/svg" stroke="#3F83F8"&gt; &lt;g fill="none" fill-rule="evenodd"&gt; 
         &lt;g transform="translate(1 1)" stroke-width="2"&gt; 
          &lt;circle cx="5" cy="50" r="5"&gt; 
           &lt;animate attributename="cy" begin="0s" dur="2.2s" values="50;5;50;50" calcmode="linear" repeatcount="indefinite" /&gt; 
           &lt;animate attributename="cx" begin="0s" dur="2.2s" values="5;27;49;5" calcmode="linear" repeatcount="indefinite" /&gt; 
          &lt;/circle&gt; 
          &lt;circle cx="27" cy="5" r="5"&gt; 
           &lt;animate attributename="cy" begin="0s" dur="2.2s" from="5" to="5" values="5;50;50;5" calcmode="linear" repeatcount="indefinite" /&gt; 
           &lt;animate attributename="cx" begin="0s" dur="2.2s" from="27" to="27" values="27;49;5;27" calcmode="linear" repeatcount="indefinite" /&gt; 
          &lt;/circle&gt; 
          &lt;circle cx="49" cy="50" r="5"&gt; 
           &lt;animate attributename="cy" begin="0s" dur="2.2s" values="50;50;5;50" calcmode="linear" repeatcount="indefinite" /&gt; 
           &lt;animate attributename="cx" from="49" to="49" begin="0s" dur="2.2s" values="49;5;27;49" calcmode="linear" repeatcount="indefinite" /&gt; 
          &lt;/circle&gt; 
         &lt;/g&gt; 
        &lt;/g&gt; 
       &lt;/svg&gt; 
      &lt;/div&gt; 
     &lt;/div&gt; 
    &lt;/div&gt; 
   &lt;/section&gt; 
  &lt;/main&gt; 
  &lt;div style="position: fixed; left: 0; bottom: 0; padding: 10px; z-index: 1000;"&gt; 
   &lt;img src="/icons/Written-By-Human-Not-By-AI-Badge-black@2x.png" alt loading="lazy"&gt; 
  &lt;/div&gt; 
  &lt;footer class="border-t border-gray-200 dark:border-slate-800"&gt; 
   &lt;div class="max-w-6xl mx-auto px-4 sm:px-6"&gt; 
    &lt;div class="md:flex md:items-center md:justify-between py-6 md:py-8"&gt; 
     &lt;ul class="flex mb-4 md:order-1 -ml-2 md:ml-4 md:mb-0"&gt; 
      &lt;li&gt; &lt;a class="text-gray-500 dark:text-gray-400 hover:bg-gray-100 dark:hover:bg-gray-700 focus:outline-none focus:ring-4 focus:ring-gray-200 dark:focus:ring-gray-700 rounded-lg text-sm p-2.5 inline-flex items-center" aria-label="Twitter" href="https://twitter.com/afoo_me"&gt; 
        &lt;svg viewbox="0 0 24 24" class="w-5 h-5" astro-icon="tabler:brand-twitter"&gt; &lt;path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M22 4.01c-1 .49-1.98.689-3 .99-1.121-1.265-2.783-1.335-4.38-.737S11.977 6.323 12 8v1c-3.245.083-6.135-1.395-8-4 0 0-4.182 7.433 4 11-1.872 1.247-3.739 2.088-6 2 3.308 1.803 6.913 2.423 10.034 1.517 3.58-1.04 6.522-3.723 7.651-7.742a13.84 13.84 0 0 0 .497-3.753C20.18 7.773 21.692 5.25 22 4.009z"&gt; 
         &lt;/path&gt; 
        &lt;/svg&gt; &lt;/a&gt; &lt;/li&gt; 
      &lt;li&gt; &lt;a class="text-gray-500 dark:text-gray-400 hover:bg-gray-100 dark:hover:bg-gray-700 focus:outline-none focus:ring-4 focus:ring-gray-200 dark:focus:ring-gray-700 rounded-lg text-sm p-2.5 inline-flex items-center" aria-label="Facebook" href="https://www.facebook.com/fujohnwang/"&gt; 
        &lt;svg viewbox="0 0 24 24" class="w-5 h-5" astro-icon="tabler:brand-facebook"&gt; &lt;path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M7 10v4h3v7h4v-7h3l1-4h-4V8a1 1 0 0 1 1-1h3V3h-3a5 5 0 0 0-5 5v2H7"&gt;&lt;/path&gt; 
        &lt;/svg&gt; &lt;/a&gt; &lt;/li&gt; 
      &lt;li&gt; &lt;a class="text-gray-500 dark:text-gray-400 hover:bg-gray-100 dark:hover:bg-gray-700 focus:outline-none focus:ring-4 focus:ring-gray-200 dark:focus:ring-gray-700 rounded-lg text-sm p-2.5 inline-flex items-center" aria-label="Github" href="https://github.com/fujohnwang"&gt; 
        &lt;svg viewbox="0 0 24 24" class="w-5 h-5" astro-icon="tabler:brand-github"&gt; &lt;path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 19c-4.3 1.4-4.3-2.5-6-3m12 5v-3.5c0-1 .1-1.4-.5-2 2.8-.3 5.5-1.4 5.5-6a4.6 4.6 0 0 0-1.3-3.2 4.2 4.2 0 0 0-.1-3.2s-1.1-.3-3.5 1.3a12.3 12.3 0 0 0-6.2 0C6.5 2.8 5.4 3.1 5.4 3.1a4.2 4.2 0 0 0-.1 3.2A4.6 4.6 0 0 0 4 9.5c0 4.6 2.7 5.7 5.5 6-.6.6-.6 1.2-.5 2V21"&gt; 
         &lt;/path&gt; 
        &lt;/svg&gt; &lt;/a&gt; &lt;/li&gt; 
     &lt;/ul&gt; 
     &lt;div class="text-sm text-gray-700 mr-4 dark:text-slate-400"&gt; &lt;span class="w-5 h-5 md:w-6 md:h-6 md:-mt-0.5 bg-cover mr-1.5 float-left rounded-sm"&gt; &lt;img src="https://afoo.me/favicon.svg" class="rounded-md" alt&gt; &lt;/span&gt; Copyright © 王福强个人版权所有 - Since 2004 (Everything is homebrewed with &lt;a href="https://pandoc.org/"&gt;Pandoc&lt;/a&gt; and Markdown, little &lt;a href="https://www.scala-lang.org/"&gt;Scala&lt;/a&gt; also included.) 
     &lt;/div&gt; 
    &lt;/div&gt; 
   &lt;/div&gt; 
  &lt;/footer&gt; 
  &lt;script&gt;
        // Set "light" theme as default
        if (!localStorage.theme) {
            localStorage.theme = "light";
        }

        if (
            localStorage.theme === 'dark' ||
            (!('theme' in localStorage) &amp;&amp; window.matchMedia('(prefers-color-scheme: dark)').matches)
        ) {
            document.documentElement.classList.add('dark');
        } else {
            document.documentElement.classList.remove('dark');
        }

        function attachEvent(selector, event, fn) {
            const matches = document.querySelectorAll(selector);
            if (matches &amp;&amp; matches.length) {
                matches.forEach((elem) =&gt; {
                    elem.addEventListener(event, () =&gt; fn(elem), false);
                });
            }
        }

        window.onload = function () {
            attachEvent('[data-toggle-menu]', 'click', function (elem) {
                elem.classList.toggle('expanded');
                document.body.classList.toggle('overflow-hidden');
                document.getElementById('header')?.classList.toggle('h-screen');
                document.querySelector('#header nav')?.classList.toggle('hidden');
            });
            attachEvent("[data-toggle-color-scheme]", "click", function () {
                    document.documentElement.classList.toggle("light");
                    localStorage.theme = "light";
                });
        };
        window.onpageshow = function () {
            const elem = document.querySelector('[data-toggle-menu]');
            if (elem) {
                elem.classList.remove('expanded');
            }
            document.body.classList.remove('overflow-hidden');
            document.getElementById('header')?.classList.remove('h-screen');
            document.querySelector('#header nav')?.classList.add('hidden');
        };
    &lt;/script&gt; 
  &lt;script type="text/javascript"&gt;
        var gitalk = new Gitalk({
          clientID: '518a605d711883414ac0',
          clientSecret: '69fb8ccc0616c5bcbc64d24ece0d06d279da91ff',
          repo: 'afoo.me.comments',
          owner: 'fujohnwang',
          admin: ['fujohnwang'],
          id: location.pathname.substring(0, 49),      // Ensure uniqueness and length less than 50
          distractionFreeMode: false  // Facebook-like distraction free mode
        })
        gitalk.render('comments')
    &lt;/script&gt; 
  &lt;script src="https://formspree.io/js/formbutton-v1.min.js" defer&gt;&lt;/script&gt; 
  &lt;script&gt;
  /* paste this line in verbatim */
  window.formbutton=window.formbutton||function(){(formbutton.q=formbutton.q||[]).push(arguments)};
  /* customize formbutton below*/     
  formbutton("create", {
    action: "https://formspree.io/f/xknlpkkd",
    title: "有什么可以帮到您？💕💕💕 How can I help you?",
    buttonImg: "&lt;img src='https://afoo.me/hero3/70.webp' alt/&gt;",
    fields: [
      { 
        type: "email", 
        label: "您的电子邮箱（方便与您联系）:", 
        name: "email",
        required: true,
        placeholder: "your@email.com"
      },
      {
        type: "textarea",
        label: "您想提交的反馈和询问信息:",
        name: "message",
        placeholder: "What's on your mind?",
      },
      { type: "submit" }      
    ],
    styles: {
      title: {
        backgroundColor: "blue"
      },
      button: {
        backgroundColor: "blue"
      }
    }
  });
&lt;/script&gt; 
  &lt;script&gt;
	// tooltips
	tippy('#aiedu', {
        content: "As to AI nowadays, LLM and Stable Diffusion are hot even hottest among them, If your want to both know-why and know-how with them, instead of only know-how which can't repeat itself, you should get you to https://ai.afoo.me right now ❗"
    });  
&lt;/script&gt;  
 &lt;/body&gt;
&lt;/html&gt;</description>
      <pubDate>Wed, 12 Aug 2026 16:00:00 GMT</pubDate>
      <guid>http://afoo.me/posts/2026-08-13-open-recorder-product-thought.html</guid>
      <dc:date>2026-08-12T16:00:00Z</dc:date>
    </item>
    <item>
      <title>FSCloud 面向个人有自部署能力的用户开放试用啦～</title>
      <link>http://afoo.me/posts/2026-08-11-open-fscloud-trial-for-hackers.html</link>
      <description>&lt;!doctype html&gt;
&lt;html lang="zh" class="motion-safe:scroll-smooth 2xl:text-[20px]"&gt; 
 &lt;head&gt; 
  &lt;meta charset="utf-8"&gt; 
  &lt;meta name="keywords" content="FSCloud 面向个人有自部署能力的用户开放试用啦～ - 架构师， 架构士，架构教练, 教练, 个人成长, 组织成长, 独立顾问, architecture, book author, thinker, fighter, 架构, 思考, 技术, 武术, 哲学"&gt; 
  &lt;meta name="description" content="FSCloud 面向个人有自部署能力的用户开放试用啦～ - 福强说，扶墙老师说，王福强的个人博客， 一个架构士的思考与沉淀"&gt; 
  &lt;meta name="author" content="王福强"&gt; 
  &lt;meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"&gt; 
  &lt;meta http-equiv="Content-Type" content="text/html; charset=UTF-8"&gt; 
  &lt;meta name="robots" content="index,follow"&gt; 
  &lt;title&gt;FSCloud 面向个人有自部署能力的用户开放试用啦～ -王福强的个人博客：一个架构士的思考与沉淀&lt;/title&gt; 
  &lt;meta name="date" content="2026-08-11"&gt; 
  &lt;meta property="og:title" content="FSCloud 面向个人有自部署能力的用户开放试用啦～"&gt; 
  &lt;meta property="og:type" content="landing page"&gt; 
  &lt;meta property="og:url" content="https://afoo.me/posts/2026-08-11-open-fscloud-trial-for-hackers.html"&gt; 
  &lt;meta property="og:image" content="https://og.afoo.me?url=https://afoo.me/posts/2026-08-11-open-fscloud-trial-for-hackers.html"&gt; 
  &lt;meta name="twitter:card" content="summary_large_image"&gt; 
  &lt;meta name="twitter:title" content="FSCloud 面向个人有自部署能力的用户开放试用啦～"&gt; 
  &lt;meta name="twitter:site" content="@afoo_me"&gt; 
  &lt;meta name="twitter:creator" content="@afoo_me"&gt; 
  &lt;meta name="twitter:image" content="https://og.afoo.me?url=https://afoo.me/posts/2026-08-11-open-fscloud-trial-for-hackers.html"&gt; 
  &lt;meta name="twitter:description" content="FSCloud 面向个人有自部署能力的用户开放试用啦～ - 王福强的个人博客， 一个架构士的思考与沉淀"&gt; 
  &lt;link rel="shortcut icon" href="/favicon.ico"&gt; 
  &lt;link rel="canonical" href="https://afoo.me/posts/2026-08-11-open-fscloud-trial-for-hackers.html"&gt; 
  &lt;link rel="icon" type="image/svg+xml" href="https://afoo.me/favicon.svg"&gt; 
  &lt;link rel="mask-icon" href="https://afoo.me/favicon.svg" color="#3383F8"&gt; 
  &lt;script src="https://afoo.me/js/htmx.min.js"&gt;&lt;/script&gt; 
  &lt;link rel="stylesheet" href="https://unpkg.com/gitalk/dist/gitalk.css"&gt; 
  &lt;script src="https://unpkg.com/gitalk/dist/gitalk.min.js"&gt;&lt;/script&gt; 
  &lt;script src="https://afoo.me/js/popper.min.js"&gt;&lt;/script&gt; 
  &lt;script src="https://afoo.me/js/tippy.min.js"&gt;&lt;/script&gt; 
  &lt;link rel="stylesheet" href="/css/af.css"&gt; 
  &lt;link rel="stylesheet" href="/css/components.css"&gt; 
  &lt;link ref="stylesheet" href="/css/pygments.css"&gt; 
  &lt;style type="text/css"&gt;
        pre &gt; code{
          white-space: pre-wrap;
          font-family: monospace;
          font-size: 14px;
          /* border-left: blueviolet;
          border-left-width: thick;
          border-left-style: double;
          padding-left: 1rem !important; */
        }
        
        .x-indicator{
            display:none;
        }
        .htmx-request .x-indicator{
            display:inline;
        }
        .htmx-request.x-indicator{
            display:inline;
        }
    &lt;/style&gt; 
  &lt;style type="text/css"&gt;
      pre &gt; code.sourceCode { white-space: pre; position: relative; }
      pre &gt; code.sourceCode &gt; span { line-height: 1.25; }
      pre &gt; code.sourceCode &gt; span:empty { height: 1.2em; }
      .sourceCode { overflow: visible; }
      code.sourceCode &gt; span { color: inherit; text-decoration: inherit; }
      div.sourceCode { margin: 1em 0; }
      pre.sourceCode { margin: 0; }
      @media screen {
      div.sourceCode { overflow: auto; }
      }
      @media print {
      pre &gt; code.sourceCode { white-space: pre-wrap; }
      pre &gt; code.sourceCode &gt; span { display: inline-block; text-indent: -5em; padding-left: 5em; }
      }
      pre.numberSource code
        { counter-reset: source-line 0; }
      pre.numberSource code &gt; span
        { position: relative; left: -4em; counter-increment: source-line; }
      pre.numberSource code &gt; span &gt; a:first-child::before
        { content: counter(source-line);
          position: relative; left: -1em; text-align: right; vertical-align: baseline;
          border: none; display: inline-block;
          -webkit-touch-callout: none; -webkit-user-select: none;
          -khtml-user-select: none; -moz-user-select: none;
          -ms-user-select: none; user-select: none;
          padding: 0 4px; width: 4em;
          color: #aaaaaa;
        }
      pre.numberSource { margin-left: 3em; border-left: 1px solid #aaaaaa;  padding-left: 4px; }
      div.sourceCode
        {   }
      @media screen {
      pre &gt; code.sourceCode &gt; span &gt; a:first-child::before { text-decoration: underline; }
      }
      code span.al { color: #ff0000; font-weight: bold; } /* Alert */
      code span.an { color: #60a0b0; font-weight: bold; font-style: italic; } /* Annotation */
      code span.at { color: #7d9029; } /* Attribute */
      code span.bn { color: #40a070; } /* BaseN */
      code span.bu { color: #008000; } /* BuiltIn */
      code span.cf { color: #007020; font-weight: bold; } /* ControlFlow */
      code span.ch { color: #4070a0; } /* Char */
      code span.cn { color: #880000; } /* Constant */
      code span.co { color: #60a0b0; font-style: italic; } /* Comment */
      code span.cv { color: #60a0b0; font-weight: bold; font-style: italic; } /* CommentVar */
      code span.do { color: #ba2121; font-style: italic; } /* Documentation */
      code span.dt { color: #902000; } /* DataType */
      code span.dv { color: #40a070; } /* DecVal */
      code span.er { color: #ff0000; font-weight: bold; } /* Error */
      code span.ex { } /* Extension */
      code span.fl { color: #40a070; } /* Float */
      code span.fu { color: #06287e; } /* Function */
      code span.im { color: #008000; font-weight: bold; } /* Import */
      code span.in { color: #60a0b0; font-weight: bold; font-style: italic; } /* Information */
      code span.kw { color: #007020; font-weight: bold; } /* Keyword */
      code span.op { color: #666666; } /* Operator */
      code span.ot { color: #007020; } /* Other */
      code span.pp { color: #bc7a00; } /* Preprocessor */
      code span.sc { color: #4070a0; } /* SpecialChar */
      code span.ss { color: #bb6688; } /* SpecialString */
      code span.st { color: #4070a0; } /* String */
      code span.va { color: #19177c; } /* Variable */
      code span.vs { color: #4070a0; } /* VerbatimString */
      code span.wa { color: #60a0b0; font-weight: bold; font-style: italic; } /* Warning */
    &lt;/style&gt; 
  &lt;script type="application/ld+json"&gt;
    {
      "@context": "https://schema.org",
      "@type": "NewsArticle",
      "headline": "FSCloud 面向个人有自部署能力的用户开放试用啦～",
      "image": [
        "https://afoo.me/images/fb_subscribe.jpg"
       ],
      "datePublished": "2026-08-11",
      "author": [{
          "@type": "Person",
          "name": "王福强",
          "url": "https://afoo.me"
        }]
    }
  &lt;/script&gt; 
  &lt;script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-3687639021943715" crossorigin="anonymous"&gt;&lt;/script&gt; 
 &lt;/head&gt; 
 &lt;body class="antialiased text-slate-800 dark:text-slate-300 tracking-tight bg-slate-50 dark:bg-gray-900 vsc-initialized"&gt; 
  &lt;header class="sticky top-0 z-40 flex-none mx-auto w-full bg-slate-50 md:bg-slate-50/90 dark:bg-gray-900 dark:md:bg-gray-900/90 md:backdrop-blur-sm border-b border-slate-200 dark:border-b-0" id="header"&gt; 
   &lt;div class="py-3 px-3 mx-auto w-full md:flex md:justify-between max-w-6xl md:px-4"&gt; 
    &lt;div class="flex justify-between"&gt; &lt;a class="flex items-center" href="https://afoo.me"&gt; &lt;span class="self-center ml-2 text-2xl font-extrabold text-slate-800 whitespace-nowrap dark:text-white"&gt; &lt;img src="/images/afoo.PNG" alt="logo" style="height:60px;"&gt; &lt;/span&gt; &lt;/a&gt; 
     &lt;div class="flex items-center md:hidden"&gt; &lt;button type="button" class="text-gray-500 dark:text-gray-400 hover:bg-gray-100 dark:hover:bg-gray-700 focus:outline-none focus:ring-4 focus:ring-gray-200 dark:focus:ring-gray-700 rounded-lg text-sm p-2.5 inline-flex items-center" aria-label="Toggle between Dark and Light mode" data-toggle-color-scheme=""&gt; 
       &lt;svg viewbox="0 0 24 24" class="w-6 h-6" astro-icon="tabler:sun"&gt; &lt;g fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" class="icon-tabler"&gt; 
         &lt;circle cx="12" cy="12" r="4"&gt;&lt;/circle&gt; 
         &lt;path d="M3 12h1m8-9v1m8 8h1m-9 8v1M5.6 5.6l.7.7m12.1-.7-.7.7m0 11.4.7.7m-12.1-.7-.7.7"&gt; 
         &lt;/path&gt; 
        &lt;/g&gt; 
       &lt;/svg&gt; &lt;/button&gt; &lt;button type="button" class="ml-1.5 text-gray-500 dark:text-gray-400 hover:bg-gray-100 dark:hover:bg-gray-800 focus:outline-none focus:ring-4 focus:ring-gray-200 dark:focus:ring-gray-700 rounded-lg text-sm p-2.5 inline-flex items-center transition" aria-label="Toggle Menu" data-toggle-menu=""&gt; 
       &lt;svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" preserveaspectratio="xMidYMid meet" viewbox="0 0 24 24" class="w-6 h-6" astro-icon="tabler:menu"&gt; &lt;g class="icon-tabler" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"&gt; 
         &lt;path d="M4 8h16"&gt;&lt;/path&gt; 
         &lt;path d="M4 16h16"&gt;&lt;/path&gt; 
        &lt;/g&gt; 
       &lt;/svg&gt; &lt;/button&gt; 
     &lt;/div&gt; 
    &lt;/div&gt; 
    &lt;nav class="items-center w-full md:w-auto hidden md:flex text-gray-600 dark:text-slate-200 h-screen md:h-auto" aria-label="Main navigation"&gt; 
     &lt;ul class="flex flex-col pt-8 md:pt-0 md:flex-row md:self-center w-full md:w-auto text-xl md:text-base"&gt; 
      &lt;li&gt;&lt;a class="font-medium hover:text-gray-900 dark:hover:text-white px-4 py-3 flex items-center transition duration-150 ease-in-out" href="https://kb.afoo.me/"&gt;福强私学&lt;/a&gt;&lt;/li&gt; 
      &lt;li&gt; &lt;a id="aiedu" class="font-medium hover:text-gray-900 dark:hover:text-white px-4 py-3 flex items-center transition duration-150 ease-in-out" href="http://ai.afoo.me"&gt; 福强AI学堂&lt;/a&gt; &lt;/li&gt; 
      &lt;li&gt; &lt;a class="font-medium hover:text-gray-900 dark:hover:text-white px-4 py-3 flex items-center transition duration-150 ease-in-out" href="http://jiagoubaike.com"&gt;架构百科&lt;/a&gt; &lt;/li&gt; 
      &lt;li&gt; &lt;a class="font-medium hover:text-gray-900 dark:hover:text-white px-4 py-3 flex items-center transition duration-150 ease-in-out" href="https://afoo.me/posts.html"&gt;博客文章 &lt;/a&gt; &lt;/li&gt; 
      &lt;li&gt; &lt;a class="font-medium hover:text-gray-900 dark:hover:text-white px-4 py-3 flex items-center transition duration-150 ease-in-out" href="https://afoo.me/books.html"&gt;创作出版&lt;/a&gt; &lt;/li&gt; 
      &lt;li&gt; &lt;a class="font-medium hover:text-gray-900 dark:hover:text-white px-4 py-3 flex items-center transition duration-150 ease-in-out" href="https://store.afoo.me"&gt;产品与服务&lt;/a&gt; &lt;/li&gt; 
      &lt;li&gt;&lt;a class="font-medium hover:text-gray-900 dark:hover:text-white px-4 py-3 flex items-center transition duration-150 ease-in-out" href="https://auth.afoo.me/user.html"&gt;登录信息&lt;/a&gt;&lt;/li&gt; 
      &lt;li&gt; &lt;a class="font-medium hover:text-gray-900 dark:hover:text-white px-4 py-3 flex items-center transition duration-150 ease-in-out" href="https://afoo.me/crosslinks.html"&gt;更多链接&lt;/a&gt; &lt;/li&gt; 
     &lt;/ul&gt; 
     &lt;div class="md:self-center flex items-center mb-4 md:mb-0 ml-2"&gt; 
      &lt;div class="hidden items-center md:flex"&gt; &lt;button type="button" class="text-gray-500 dark:text-gray-400 hover:bg-gray-100 dark:hover:bg-gray-700 focus:outline-none focus:ring-4 focus:ring-gray-200 dark:focus:ring-gray-700 rounded-lg text-sm p-2.5 inline-flex items-center" aria-label="Toggle between Dark and Light mode" data-toggle-color-scheme=""&gt; 
        &lt;svg viewbox="0 0 24 24" class="w-5 h-5" astro-icon="tabler:sun"&gt; &lt;g fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" class="icon-tabler"&gt; 
          &lt;circle cx="12" cy="12" r="4"&gt;&lt;/circle&gt; 
          &lt;path d="M3 12h1m8-9v1m8 8h1m-9 8v1M5.6 5.6l.7.7m12.1-.7-.7.7m0 11.4.7.7m-12.1-.7-.7.7"&gt; 
          &lt;/path&gt; 
         &lt;/g&gt; 
        &lt;/svg&gt; &lt;/button&gt; &lt;a class="text-gray-500 dark:text-gray-400 hover:bg-gray-100 dark:hover:bg-gray-700 focus:outline-none focus:ring-4 focus:ring-gray-200 dark:focus:ring-gray-700 rounded-lg text-sm p-2.5 inline-flex items-center" aria-label="RSS Feed" href="http://afoo.me/feeds.xml"&gt; 
        &lt;svg viewbox="0 0 24 24" class="w-5 h-5" astro-icon="tabler:rss"&gt; &lt;g fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" class="icon-tabler"&gt; 
          &lt;circle cx="5" cy="19" r="1"&gt;&lt;/circle&gt; 
          &lt;path d="M4 4a16 16 0 0 1 16 16M4 11a9 9 0 0 1 9 9"&gt;&lt;/path&gt; 
         &lt;/g&gt; 
        &lt;/svg&gt; &lt;/a&gt; 
      &lt;/div&gt; 
     &lt;/div&gt; 
    &lt;/nav&gt; 
   &lt;/div&gt; 
  &lt;/header&gt; 
  &lt;main&gt; 
   &lt;div id="leftSlot" class="visible md:invisible fixed top-0 left-0" style="width: 16rem;height: 80%;margin-top: 4rem;"&gt; &lt;!-- left --&gt; 
    &lt;ins class="adsbygoogle" style="display:block" data-ad-client="ca-pub-3687639021943715" data-ad-slot="3581141418" data-ad-format="auto" data-full-width-responsive="true"&gt;&lt;/ins&gt; 
    &lt;script&gt;
          (adsbygoogle = window.adsbygoogle || []).push({});
      &lt;/script&gt; 
   &lt;/div&gt; 
   &lt;div id="rightSlot" class="visible md:invisible fixed top-0 right-0" style="width: 16rem;height: 80%;margin-top: 4rem;"&gt; &lt;!-- right --&gt; 
    &lt;ins class="adsbygoogle" style="display:block" data-ad-client="ca-pub-3687639021943715" data-ad-slot="7030836806" data-ad-format="auto" data-full-width-responsive="true"&gt;&lt;/ins&gt; 
    &lt;script&gt;
           (adsbygoogle = window.adsbygoogle || []).push({});
      &lt;/script&gt; 
   &lt;/div&gt; 
   &lt;section class="text-gray-600 body-font relative"&gt; 
    &lt;div class="max-w-4xl mx-auto px-5 py-24 mb-12 prose prose-lg dark:prose-invert"&gt; 
     &lt;p class="lead"&gt; &lt;/p&gt;
     &lt;h1 class="title"&gt;FSCloud 面向个人有自部署能力的用户开放试用啦～&lt;/h1&gt; &lt;small&gt; &lt;h3 class="author"&gt;王福强&lt;/h3&gt; 
      &lt;div style="text-align: left;"&gt;
       2026-08-11
      &lt;/div&gt; &lt;/small&gt; 
     &lt;p&gt;&lt;/p&gt; &lt;!-- random --&gt; 
     &lt;ins class="adsbygoogle" style="display:block" data-ad-client="ca-pub-3687639021943715" data-ad-slot="2722720851" data-ad-format="auto" data-full-width-responsive="true"&gt;&lt;/ins&gt; 
     &lt;script&gt;
                 (adsbygoogle = window.adsbygoogle || []).push({});
            &lt;/script&gt; 
     &lt;hr&gt; 
     &lt;p&gt;安装部署很简单，&lt;/p&gt; 
     &lt;p&gt;首先确保本地已经安装了Docker（Docker Desktop或者OrbStack等都可以）&lt;/p&gt; 
     &lt;p&gt;然后&lt;a href="https://keevol.cn/fscloud/docker-compose.yml"&gt;下载&lt;/a&gt;或者保存如下&lt;code&gt;docker-compose.yaml&lt;/code&gt;配置内容到本地任意目录(保存到文件名依然需要是&lt;code&gt;docker-compose.yaml&lt;/code&gt;)：&lt;/p&gt; 
     &lt;div class="sourceCode" id="cb1"&gt;
      &lt;pre class="sourceCode yml"&gt;&lt;code class="sourceCode yaml"&gt;&lt;span id="cb1-1"&gt;&lt;a href="#cb1-1" aria-hidden="true" tabindex="-1"&gt;&lt;/a&gt;&lt;span class="fu"&gt;x-app-env&lt;/span&gt;&lt;span class="kw"&gt;:&lt;/span&gt;&lt;span class="at"&gt; &lt;/span&gt;&lt;span class="ot"&gt;&amp;amp;app-env&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-2"&gt;&lt;a href="#cb1-2" aria-hidden="true" tabindex="-1"&gt;&lt;/a&gt;&lt;span class="at"&gt;  &lt;/span&gt;&lt;span class="fu"&gt;FSCLOUD_PROFILE&lt;/span&gt;&lt;span class="kw"&gt;:&lt;/span&gt;&lt;span class="at"&gt; development&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-3"&gt;&lt;a href="#cb1-3" aria-hidden="true" tabindex="-1"&gt;&lt;/a&gt;&lt;span class="at"&gt;  &lt;/span&gt;&lt;span class="fu"&gt;FS_DATABASE__URL&lt;/span&gt;&lt;span class="kw"&gt;:&lt;/span&gt;&lt;span class="at"&gt; postgres://fscloud:fscloud@postgres:5432/fscloud?sslmode=disable&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-4"&gt;&lt;a href="#cb1-4" aria-hidden="true" tabindex="-1"&gt;&lt;/a&gt;&lt;span class="at"&gt;  &lt;/span&gt;&lt;span class="fu"&gt;FS_REDIS__ADDR&lt;/span&gt;&lt;span class="kw"&gt;:&lt;/span&gt;&lt;span class="at"&gt; redis:6379&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-5"&gt;&lt;a href="#cb1-5" aria-hidden="true" tabindex="-1"&gt;&lt;/a&gt;&lt;span class="at"&gt;  &lt;/span&gt;&lt;span class="fu"&gt;FS_REDIS__PASSWORD&lt;/span&gt;&lt;span class="kw"&gt;:&lt;/span&gt;&lt;span class="at"&gt; fscloud&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-6"&gt;&lt;a href="#cb1-6" aria-hidden="true" tabindex="-1"&gt;&lt;/a&gt;&lt;span class="at"&gt;  &lt;/span&gt;&lt;span class="fu"&gt;FS_REDIS__DB&lt;/span&gt;&lt;span class="kw"&gt;:&lt;/span&gt;&lt;span class="at"&gt; &lt;/span&gt;&lt;span class="st"&gt;"0"&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-7"&gt;&lt;a href="#cb1-7" aria-hidden="true" tabindex="-1"&gt;&lt;/a&gt;&lt;span class="at"&gt;  &lt;/span&gt;&lt;span class="fu"&gt;FS_MINIO__ENDPOINT&lt;/span&gt;&lt;span class="kw"&gt;:&lt;/span&gt;&lt;span class="at"&gt; minio:9000&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-8"&gt;&lt;a href="#cb1-8" aria-hidden="true" tabindex="-1"&gt;&lt;/a&gt;&lt;span class="at"&gt;  &lt;/span&gt;&lt;span class="fu"&gt;FS_MINIO__ACCESS_KEY&lt;/span&gt;&lt;span class="kw"&gt;:&lt;/span&gt;&lt;span class="at"&gt; minioadmin&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-9"&gt;&lt;a href="#cb1-9" aria-hidden="true" tabindex="-1"&gt;&lt;/a&gt;&lt;span class="at"&gt;  &lt;/span&gt;&lt;span class="fu"&gt;FS_MINIO__SECRET_KEY&lt;/span&gt;&lt;span class="kw"&gt;:&lt;/span&gt;&lt;span class="at"&gt; minioadmin&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-10"&gt;&lt;a href="#cb1-10" aria-hidden="true" tabindex="-1"&gt;&lt;/a&gt;&lt;span class="at"&gt;  &lt;/span&gt;&lt;span class="fu"&gt;FS_MINIO__BUCKET&lt;/span&gt;&lt;span class="kw"&gt;:&lt;/span&gt;&lt;span class="at"&gt; fscloud&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-11"&gt;&lt;a href="#cb1-11" aria-hidden="true" tabindex="-1"&gt;&lt;/a&gt;&lt;span class="at"&gt;  &lt;/span&gt;&lt;span class="fu"&gt;FS_MINIO__USE_SSL&lt;/span&gt;&lt;span class="kw"&gt;:&lt;/span&gt;&lt;span class="at"&gt; &lt;/span&gt;&lt;span class="st"&gt;"false"&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-12"&gt;&lt;a href="#cb1-12" aria-hidden="true" tabindex="-1"&gt;&lt;/a&gt;&lt;span class="at"&gt;  &lt;/span&gt;&lt;span class="fu"&gt;FS_MINIO__REGION&lt;/span&gt;&lt;span class="kw"&gt;:&lt;/span&gt;&lt;span class="at"&gt; us-east-1&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-13"&gt;&lt;a href="#cb1-13" aria-hidden="true" tabindex="-1"&gt;&lt;/a&gt;&lt;span class="at"&gt;  &lt;/span&gt;&lt;span class="fu"&gt;FS_JWT__ACCESS_SECRET&lt;/span&gt;&lt;span class="kw"&gt;:&lt;/span&gt;&lt;span class="at"&gt; ${FS_JWT_SECRET:-fscloud-trial-jwt-secret}&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-14"&gt;&lt;a href="#cb1-14" aria-hidden="true" tabindex="-1"&gt;&lt;/a&gt;&lt;span class="at"&gt;  &lt;/span&gt;&lt;span class="fu"&gt;FS_JWT__REFRESH_SECRET&lt;/span&gt;&lt;span class="kw"&gt;:&lt;/span&gt;&lt;span class="at"&gt; ${FS_JWT_SECRET:-fscloud-trial-jwt-secret}&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-15"&gt;&lt;a href="#cb1-15" aria-hidden="true" tabindex="-1"&gt;&lt;/a&gt;&lt;span class="at"&gt;  &lt;/span&gt;&lt;span class="fu"&gt;FS_NODE__REGION&lt;/span&gt;&lt;span class="kw"&gt;:&lt;/span&gt;&lt;span class="at"&gt; local&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-16"&gt;&lt;a href="#cb1-16" aria-hidden="true" tabindex="-1"&gt;&lt;/a&gt;&lt;/span&gt;
&lt;span id="cb1-17"&gt;&lt;a href="#cb1-17" aria-hidden="true" tabindex="-1"&gt;&lt;/a&gt;&lt;span class="fu"&gt;services&lt;/span&gt;&lt;span class="kw"&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-18"&gt;&lt;a href="#cb1-18" aria-hidden="true" tabindex="-1"&gt;&lt;/a&gt;&lt;span class="at"&gt;  &lt;/span&gt;&lt;span class="fu"&gt;postgres&lt;/span&gt;&lt;span class="kw"&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-19"&gt;&lt;a href="#cb1-19" aria-hidden="true" tabindex="-1"&gt;&lt;/a&gt;&lt;span class="at"&gt;    &lt;/span&gt;&lt;span class="fu"&gt;image&lt;/span&gt;&lt;span class="kw"&gt;:&lt;/span&gt;&lt;span class="at"&gt; postgres:16-alpine&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-20"&gt;&lt;a href="#cb1-20" aria-hidden="true" tabindex="-1"&gt;&lt;/a&gt;&lt;span class="at"&gt;    &lt;/span&gt;&lt;span class="fu"&gt;environment&lt;/span&gt;&lt;span class="kw"&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-21"&gt;&lt;a href="#cb1-21" aria-hidden="true" tabindex="-1"&gt;&lt;/a&gt;&lt;span class="at"&gt;      &lt;/span&gt;&lt;span class="fu"&gt;POSTGRES_USER&lt;/span&gt;&lt;span class="kw"&gt;:&lt;/span&gt;&lt;span class="at"&gt; fscloud&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-22"&gt;&lt;a href="#cb1-22" aria-hidden="true" tabindex="-1"&gt;&lt;/a&gt;&lt;span class="at"&gt;      &lt;/span&gt;&lt;span class="fu"&gt;POSTGRES_PASSWORD&lt;/span&gt;&lt;span class="kw"&gt;:&lt;/span&gt;&lt;span class="at"&gt; fscloud&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-23"&gt;&lt;a href="#cb1-23" aria-hidden="true" tabindex="-1"&gt;&lt;/a&gt;&lt;span class="at"&gt;      &lt;/span&gt;&lt;span class="fu"&gt;POSTGRES_DB&lt;/span&gt;&lt;span class="kw"&gt;:&lt;/span&gt;&lt;span class="at"&gt; fscloud&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-24"&gt;&lt;a href="#cb1-24" aria-hidden="true" tabindex="-1"&gt;&lt;/a&gt;&lt;span class="at"&gt;    &lt;/span&gt;&lt;span class="fu"&gt;volumes&lt;/span&gt;&lt;span class="kw"&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-25"&gt;&lt;a href="#cb1-25" aria-hidden="true" tabindex="-1"&gt;&lt;/a&gt;&lt;span class="at"&gt;      &lt;/span&gt;&lt;span class="kw"&gt;-&lt;/span&gt;&lt;span class="at"&gt; postgres-data:/var/lib/postgresql/data&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-26"&gt;&lt;a href="#cb1-26" aria-hidden="true" tabindex="-1"&gt;&lt;/a&gt;&lt;span class="at"&gt;    &lt;/span&gt;&lt;span class="fu"&gt;healthcheck&lt;/span&gt;&lt;span class="kw"&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-27"&gt;&lt;a href="#cb1-27" aria-hidden="true" tabindex="-1"&gt;&lt;/a&gt;&lt;span class="at"&gt;      &lt;/span&gt;&lt;span class="fu"&gt;test&lt;/span&gt;&lt;span class="kw"&gt;:&lt;/span&gt;&lt;span class="at"&gt; &lt;/span&gt;&lt;span class="kw"&gt;[&lt;/span&gt;&lt;span class="st"&gt;"CMD-SHELL"&lt;/span&gt;&lt;span class="kw"&gt;,&lt;/span&gt;&lt;span class="at"&gt; &lt;/span&gt;&lt;span class="st"&gt;"pg_isready -U fscloud -d fscloud"&lt;/span&gt;&lt;span class="kw"&gt;]&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-28"&gt;&lt;a href="#cb1-28" aria-hidden="true" tabindex="-1"&gt;&lt;/a&gt;&lt;span class="at"&gt;      &lt;/span&gt;&lt;span class="fu"&gt;interval&lt;/span&gt;&lt;span class="kw"&gt;:&lt;/span&gt;&lt;span class="at"&gt; 5s&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-29"&gt;&lt;a href="#cb1-29" aria-hidden="true" tabindex="-1"&gt;&lt;/a&gt;&lt;span class="at"&gt;      &lt;/span&gt;&lt;span class="fu"&gt;timeout&lt;/span&gt;&lt;span class="kw"&gt;:&lt;/span&gt;&lt;span class="at"&gt; 3s&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-30"&gt;&lt;a href="#cb1-30" aria-hidden="true" tabindex="-1"&gt;&lt;/a&gt;&lt;span class="at"&gt;      &lt;/span&gt;&lt;span class="fu"&gt;retries&lt;/span&gt;&lt;span class="kw"&gt;:&lt;/span&gt;&lt;span class="at"&gt; &lt;/span&gt;&lt;span class="dv"&gt;20&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-31"&gt;&lt;a href="#cb1-31" aria-hidden="true" tabindex="-1"&gt;&lt;/a&gt;&lt;span class="at"&gt;    &lt;/span&gt;&lt;span class="fu"&gt;restart&lt;/span&gt;&lt;span class="kw"&gt;:&lt;/span&gt;&lt;span class="at"&gt; unless-stopped&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-32"&gt;&lt;a href="#cb1-32" aria-hidden="true" tabindex="-1"&gt;&lt;/a&gt;&lt;/span&gt;
&lt;span id="cb1-33"&gt;&lt;a href="#cb1-33" aria-hidden="true" tabindex="-1"&gt;&lt;/a&gt;&lt;span class="at"&gt;  &lt;/span&gt;&lt;span class="fu"&gt;migrate&lt;/span&gt;&lt;span class="kw"&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-34"&gt;&lt;a href="#cb1-34" aria-hidden="true" tabindex="-1"&gt;&lt;/a&gt;&lt;span class="at"&gt;    &lt;/span&gt;&lt;span class="fu"&gt;image&lt;/span&gt;&lt;span class="kw"&gt;:&lt;/span&gt;&lt;span class="at"&gt; ${IMAGE_REGISTRY:-fujohnwang}/fscloud-migrations:${IMAGE_TAG:-latest}&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-35"&gt;&lt;a href="#cb1-35" aria-hidden="true" tabindex="-1"&gt;&lt;/a&gt;&lt;span class="at"&gt;    &lt;/span&gt;&lt;span class="fu"&gt;environment&lt;/span&gt;&lt;span class="kw"&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-36"&gt;&lt;a href="#cb1-36" aria-hidden="true" tabindex="-1"&gt;&lt;/a&gt;&lt;span class="at"&gt;      &lt;/span&gt;&lt;span class="fu"&gt;POSTGRES_USER&lt;/span&gt;&lt;span class="kw"&gt;:&lt;/span&gt;&lt;span class="at"&gt; fscloud&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-37"&gt;&lt;a href="#cb1-37" aria-hidden="true" tabindex="-1"&gt;&lt;/a&gt;&lt;span class="at"&gt;      &lt;/span&gt;&lt;span class="fu"&gt;POSTGRES_PASSWORD&lt;/span&gt;&lt;span class="kw"&gt;:&lt;/span&gt;&lt;span class="at"&gt; fscloud&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-38"&gt;&lt;a href="#cb1-38" aria-hidden="true" tabindex="-1"&gt;&lt;/a&gt;&lt;span class="at"&gt;      &lt;/span&gt;&lt;span class="fu"&gt;POSTGRES_DB&lt;/span&gt;&lt;span class="kw"&gt;:&lt;/span&gt;&lt;span class="at"&gt; fscloud&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-39"&gt;&lt;a href="#cb1-39" aria-hidden="true" tabindex="-1"&gt;&lt;/a&gt;&lt;span class="at"&gt;      &lt;/span&gt;&lt;span class="fu"&gt;PGHOST&lt;/span&gt;&lt;span class="kw"&gt;:&lt;/span&gt;&lt;span class="at"&gt; postgres&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-40"&gt;&lt;a href="#cb1-40" aria-hidden="true" tabindex="-1"&gt;&lt;/a&gt;&lt;span class="at"&gt;      &lt;/span&gt;&lt;span class="fu"&gt;PGPORT&lt;/span&gt;&lt;span class="kw"&gt;:&lt;/span&gt;&lt;span class="at"&gt; &lt;/span&gt;&lt;span class="st"&gt;"5432"&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-41"&gt;&lt;a href="#cb1-41" aria-hidden="true" tabindex="-1"&gt;&lt;/a&gt;&lt;span class="at"&gt;      &lt;/span&gt;&lt;span class="fu"&gt;PGPASSWORD&lt;/span&gt;&lt;span class="kw"&gt;:&lt;/span&gt;&lt;span class="at"&gt; fscloud&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-42"&gt;&lt;a href="#cb1-42" aria-hidden="true" tabindex="-1"&gt;&lt;/a&gt;&lt;span class="at"&gt;    &lt;/span&gt;&lt;span class="fu"&gt;depends_on&lt;/span&gt;&lt;span class="kw"&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-43"&gt;&lt;a href="#cb1-43" aria-hidden="true" tabindex="-1"&gt;&lt;/a&gt;&lt;span class="at"&gt;      &lt;/span&gt;&lt;span class="fu"&gt;postgres&lt;/span&gt;&lt;span class="kw"&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-44"&gt;&lt;a href="#cb1-44" aria-hidden="true" tabindex="-1"&gt;&lt;/a&gt;&lt;span class="at"&gt;        &lt;/span&gt;&lt;span class="fu"&gt;condition&lt;/span&gt;&lt;span class="kw"&gt;:&lt;/span&gt;&lt;span class="at"&gt; service_healthy&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-45"&gt;&lt;a href="#cb1-45" aria-hidden="true" tabindex="-1"&gt;&lt;/a&gt;&lt;span class="at"&gt;    &lt;/span&gt;&lt;span class="fu"&gt;restart&lt;/span&gt;&lt;span class="kw"&gt;:&lt;/span&gt;&lt;span class="at"&gt; &lt;/span&gt;&lt;span class="st"&gt;"no"&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-46"&gt;&lt;a href="#cb1-46" aria-hidden="true" tabindex="-1"&gt;&lt;/a&gt;&lt;/span&gt;
&lt;span id="cb1-47"&gt;&lt;a href="#cb1-47" aria-hidden="true" tabindex="-1"&gt;&lt;/a&gt;&lt;span class="at"&gt;  &lt;/span&gt;&lt;span class="fu"&gt;redis&lt;/span&gt;&lt;span class="kw"&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-48"&gt;&lt;a href="#cb1-48" aria-hidden="true" tabindex="-1"&gt;&lt;/a&gt;&lt;span class="at"&gt;    &lt;/span&gt;&lt;span class="fu"&gt;image&lt;/span&gt;&lt;span class="kw"&gt;:&lt;/span&gt;&lt;span class="at"&gt; redis:7-alpine&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-49"&gt;&lt;a href="#cb1-49" aria-hidden="true" tabindex="-1"&gt;&lt;/a&gt;&lt;span class="at"&gt;    &lt;/span&gt;&lt;span class="fu"&gt;command&lt;/span&gt;&lt;span class="kw"&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-50"&gt;&lt;a href="#cb1-50" aria-hidden="true" tabindex="-1"&gt;&lt;/a&gt;&lt;span class="at"&gt;      &lt;/span&gt;&lt;span class="kw"&gt;-&lt;/span&gt;&lt;span class="at"&gt; redis-server&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-51"&gt;&lt;a href="#cb1-51" aria-hidden="true" tabindex="-1"&gt;&lt;/a&gt;&lt;span class="at"&gt;      &lt;/span&gt;&lt;span class="kw"&gt;-&lt;/span&gt;&lt;span class="at"&gt; --requirepass&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-52"&gt;&lt;a href="#cb1-52" aria-hidden="true" tabindex="-1"&gt;&lt;/a&gt;&lt;span class="at"&gt;      &lt;/span&gt;&lt;span class="kw"&gt;-&lt;/span&gt;&lt;span class="at"&gt; fscloud&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-53"&gt;&lt;a href="#cb1-53" aria-hidden="true" tabindex="-1"&gt;&lt;/a&gt;&lt;span class="at"&gt;      &lt;/span&gt;&lt;span class="kw"&gt;-&lt;/span&gt;&lt;span class="at"&gt; --appendonly&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-54"&gt;&lt;a href="#cb1-54" aria-hidden="true" tabindex="-1"&gt;&lt;/a&gt;&lt;span class="at"&gt;      &lt;/span&gt;&lt;span class="kw"&gt;-&lt;/span&gt;&lt;span class="at"&gt; &lt;/span&gt;&lt;span class="st"&gt;"yes"&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-55"&gt;&lt;a href="#cb1-55" aria-hidden="true" tabindex="-1"&gt;&lt;/a&gt;&lt;span class="at"&gt;      &lt;/span&gt;&lt;span class="kw"&gt;-&lt;/span&gt;&lt;span class="at"&gt; --appendfsync&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-56"&gt;&lt;a href="#cb1-56" aria-hidden="true" tabindex="-1"&gt;&lt;/a&gt;&lt;span class="at"&gt;      &lt;/span&gt;&lt;span class="kw"&gt;-&lt;/span&gt;&lt;span class="at"&gt; everysec&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-57"&gt;&lt;a href="#cb1-57" aria-hidden="true" tabindex="-1"&gt;&lt;/a&gt;&lt;span class="at"&gt;      &lt;/span&gt;&lt;span class="kw"&gt;-&lt;/span&gt;&lt;span class="at"&gt; --maxmemory-policy&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-58"&gt;&lt;a href="#cb1-58" aria-hidden="true" tabindex="-1"&gt;&lt;/a&gt;&lt;span class="at"&gt;      &lt;/span&gt;&lt;span class="kw"&gt;-&lt;/span&gt;&lt;span class="at"&gt; noeviction&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-59"&gt;&lt;a href="#cb1-59" aria-hidden="true" tabindex="-1"&gt;&lt;/a&gt;&lt;span class="at"&gt;    &lt;/span&gt;&lt;span class="fu"&gt;volumes&lt;/span&gt;&lt;span class="kw"&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-60"&gt;&lt;a href="#cb1-60" aria-hidden="true" tabindex="-1"&gt;&lt;/a&gt;&lt;span class="at"&gt;      &lt;/span&gt;&lt;span class="kw"&gt;-&lt;/span&gt;&lt;span class="at"&gt; redis-data:/data&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-61"&gt;&lt;a href="#cb1-61" aria-hidden="true" tabindex="-1"&gt;&lt;/a&gt;&lt;span class="at"&gt;    &lt;/span&gt;&lt;span class="fu"&gt;healthcheck&lt;/span&gt;&lt;span class="kw"&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-62"&gt;&lt;a href="#cb1-62" aria-hidden="true" tabindex="-1"&gt;&lt;/a&gt;&lt;span class="at"&gt;      &lt;/span&gt;&lt;span class="fu"&gt;test&lt;/span&gt;&lt;span class="kw"&gt;:&lt;/span&gt;&lt;span class="at"&gt; &lt;/span&gt;&lt;span class="kw"&gt;[&lt;/span&gt;&lt;span class="st"&gt;"CMD"&lt;/span&gt;&lt;span class="kw"&gt;,&lt;/span&gt;&lt;span class="at"&gt; &lt;/span&gt;&lt;span class="st"&gt;"redis-cli"&lt;/span&gt;&lt;span class="kw"&gt;,&lt;/span&gt;&lt;span class="at"&gt; &lt;/span&gt;&lt;span class="st"&gt;"-a"&lt;/span&gt;&lt;span class="kw"&gt;,&lt;/span&gt;&lt;span class="at"&gt; &lt;/span&gt;&lt;span class="st"&gt;"fscloud"&lt;/span&gt;&lt;span class="kw"&gt;,&lt;/span&gt;&lt;span class="at"&gt; &lt;/span&gt;&lt;span class="st"&gt;"ping"&lt;/span&gt;&lt;span class="kw"&gt;]&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-63"&gt;&lt;a href="#cb1-63" aria-hidden="true" tabindex="-1"&gt;&lt;/a&gt;&lt;span class="at"&gt;      &lt;/span&gt;&lt;span class="fu"&gt;interval&lt;/span&gt;&lt;span class="kw"&gt;:&lt;/span&gt;&lt;span class="at"&gt; 5s&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-64"&gt;&lt;a href="#cb1-64" aria-hidden="true" tabindex="-1"&gt;&lt;/a&gt;&lt;span class="at"&gt;      &lt;/span&gt;&lt;span class="fu"&gt;timeout&lt;/span&gt;&lt;span class="kw"&gt;:&lt;/span&gt;&lt;span class="at"&gt; 3s&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-65"&gt;&lt;a href="#cb1-65" aria-hidden="true" tabindex="-1"&gt;&lt;/a&gt;&lt;span class="at"&gt;      &lt;/span&gt;&lt;span class="fu"&gt;retries&lt;/span&gt;&lt;span class="kw"&gt;:&lt;/span&gt;&lt;span class="at"&gt; &lt;/span&gt;&lt;span class="dv"&gt;20&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-66"&gt;&lt;a href="#cb1-66" aria-hidden="true" tabindex="-1"&gt;&lt;/a&gt;&lt;span class="at"&gt;    &lt;/span&gt;&lt;span class="fu"&gt;restart&lt;/span&gt;&lt;span class="kw"&gt;:&lt;/span&gt;&lt;span class="at"&gt; unless-stopped&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-67"&gt;&lt;a href="#cb1-67" aria-hidden="true" tabindex="-1"&gt;&lt;/a&gt;&lt;/span&gt;
&lt;span id="cb1-68"&gt;&lt;a href="#cb1-68" aria-hidden="true" tabindex="-1"&gt;&lt;/a&gt;&lt;span class="at"&gt;  &lt;/span&gt;&lt;span class="fu"&gt;minio&lt;/span&gt;&lt;span class="kw"&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-69"&gt;&lt;a href="#cb1-69" aria-hidden="true" tabindex="-1"&gt;&lt;/a&gt;&lt;span class="at"&gt;    &lt;/span&gt;&lt;span class="fu"&gt;image&lt;/span&gt;&lt;span class="kw"&gt;:&lt;/span&gt;&lt;span class="at"&gt; pgsty/minio:RELEASE.2026-04-17T00-00-00Z&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-70"&gt;&lt;a href="#cb1-70" aria-hidden="true" tabindex="-1"&gt;&lt;/a&gt;&lt;span class="at"&gt;    &lt;/span&gt;&lt;span class="fu"&gt;command&lt;/span&gt;&lt;span class="kw"&gt;:&lt;/span&gt;&lt;span class="at"&gt; server /data --console-address ":9001"&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-71"&gt;&lt;a href="#cb1-71" aria-hidden="true" tabindex="-1"&gt;&lt;/a&gt;&lt;span class="at"&gt;    &lt;/span&gt;&lt;span class="fu"&gt;environment&lt;/span&gt;&lt;span class="kw"&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-72"&gt;&lt;a href="#cb1-72" aria-hidden="true" tabindex="-1"&gt;&lt;/a&gt;&lt;span class="at"&gt;      &lt;/span&gt;&lt;span class="fu"&gt;MINIO_ROOT_USER&lt;/span&gt;&lt;span class="kw"&gt;:&lt;/span&gt;&lt;span class="at"&gt; minioadmin&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-73"&gt;&lt;a href="#cb1-73" aria-hidden="true" tabindex="-1"&gt;&lt;/a&gt;&lt;span class="at"&gt;      &lt;/span&gt;&lt;span class="fu"&gt;MINIO_ROOT_PASSWORD&lt;/span&gt;&lt;span class="kw"&gt;:&lt;/span&gt;&lt;span class="at"&gt; minioadmin&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-74"&gt;&lt;a href="#cb1-74" aria-hidden="true" tabindex="-1"&gt;&lt;/a&gt;&lt;span class="at"&gt;    &lt;/span&gt;&lt;span class="fu"&gt;volumes&lt;/span&gt;&lt;span class="kw"&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-75"&gt;&lt;a href="#cb1-75" aria-hidden="true" tabindex="-1"&gt;&lt;/a&gt;&lt;span class="at"&gt;      &lt;/span&gt;&lt;span class="kw"&gt;-&lt;/span&gt;&lt;span class="at"&gt; minio-data:/data&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-76"&gt;&lt;a href="#cb1-76" aria-hidden="true" tabindex="-1"&gt;&lt;/a&gt;&lt;span class="at"&gt;    &lt;/span&gt;&lt;span class="fu"&gt;healthcheck&lt;/span&gt;&lt;span class="kw"&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-77"&gt;&lt;a href="#cb1-77" aria-hidden="true" tabindex="-1"&gt;&lt;/a&gt;&lt;span class="at"&gt;      &lt;/span&gt;&lt;span class="fu"&gt;test&lt;/span&gt;&lt;span class="kw"&gt;:&lt;/span&gt;&lt;span class="at"&gt; &lt;/span&gt;&lt;span class="kw"&gt;[&lt;/span&gt;&lt;span class="st"&gt;"CMD"&lt;/span&gt;&lt;span class="kw"&gt;,&lt;/span&gt;&lt;span class="at"&gt; &lt;/span&gt;&lt;span class="st"&gt;"mc"&lt;/span&gt;&lt;span class="kw"&gt;,&lt;/span&gt;&lt;span class="at"&gt; &lt;/span&gt;&lt;span class="st"&gt;"ready"&lt;/span&gt;&lt;span class="kw"&gt;,&lt;/span&gt;&lt;span class="at"&gt; &lt;/span&gt;&lt;span class="st"&gt;"local"&lt;/span&gt;&lt;span class="kw"&gt;]&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-78"&gt;&lt;a href="#cb1-78" aria-hidden="true" tabindex="-1"&gt;&lt;/a&gt;&lt;span class="at"&gt;      &lt;/span&gt;&lt;span class="fu"&gt;interval&lt;/span&gt;&lt;span class="kw"&gt;:&lt;/span&gt;&lt;span class="at"&gt; 5s&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-79"&gt;&lt;a href="#cb1-79" aria-hidden="true" tabindex="-1"&gt;&lt;/a&gt;&lt;span class="at"&gt;      &lt;/span&gt;&lt;span class="fu"&gt;timeout&lt;/span&gt;&lt;span class="kw"&gt;:&lt;/span&gt;&lt;span class="at"&gt; 3s&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-80"&gt;&lt;a href="#cb1-80" aria-hidden="true" tabindex="-1"&gt;&lt;/a&gt;&lt;span class="at"&gt;      &lt;/span&gt;&lt;span class="fu"&gt;retries&lt;/span&gt;&lt;span class="kw"&gt;:&lt;/span&gt;&lt;span class="at"&gt; &lt;/span&gt;&lt;span class="dv"&gt;20&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-81"&gt;&lt;a href="#cb1-81" aria-hidden="true" tabindex="-1"&gt;&lt;/a&gt;&lt;span class="at"&gt;    &lt;/span&gt;&lt;span class="fu"&gt;restart&lt;/span&gt;&lt;span class="kw"&gt;:&lt;/span&gt;&lt;span class="at"&gt; unless-stopped&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-82"&gt;&lt;a href="#cb1-82" aria-hidden="true" tabindex="-1"&gt;&lt;/a&gt;&lt;/span&gt;
&lt;span id="cb1-83"&gt;&lt;a href="#cb1-83" aria-hidden="true" tabindex="-1"&gt;&lt;/a&gt;&lt;span class="at"&gt;  &lt;/span&gt;&lt;span class="fu"&gt;gateway&lt;/span&gt;&lt;span class="kw"&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-84"&gt;&lt;a href="#cb1-84" aria-hidden="true" tabindex="-1"&gt;&lt;/a&gt;&lt;span class="at"&gt;    &lt;/span&gt;&lt;span class="fu"&gt;image&lt;/span&gt;&lt;span class="kw"&gt;:&lt;/span&gt;&lt;span class="at"&gt; ${IMAGE_REGISTRY:-fujohnwang}/fscloud-gateway:${IMAGE_TAG:-latest}&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-85"&gt;&lt;a href="#cb1-85" aria-hidden="true" tabindex="-1"&gt;&lt;/a&gt;&lt;span class="at"&gt;    &lt;/span&gt;&lt;span class="fu"&gt;ports&lt;/span&gt;&lt;span class="kw"&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-86"&gt;&lt;a href="#cb1-86" aria-hidden="true" tabindex="-1"&gt;&lt;/a&gt;&lt;span class="at"&gt;      &lt;/span&gt;&lt;span class="kw"&gt;-&lt;/span&gt;&lt;span class="at"&gt; &lt;/span&gt;&lt;span class="st"&gt;"${FS_HTTP_PORT:-4432}:4432"&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-87"&gt;&lt;a href="#cb1-87" aria-hidden="true" tabindex="-1"&gt;&lt;/a&gt;&lt;span class="at"&gt;      &lt;/span&gt;&lt;span class="kw"&gt;-&lt;/span&gt;&lt;span class="at"&gt; &lt;/span&gt;&lt;span class="st"&gt;"${FS_QUIC_PORT:-4433}:4433/udp"&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-88"&gt;&lt;a href="#cb1-88" aria-hidden="true" tabindex="-1"&gt;&lt;/a&gt;&lt;span class="at"&gt;      &lt;/span&gt;&lt;span class="kw"&gt;-&lt;/span&gt;&lt;span class="at"&gt; &lt;/span&gt;&lt;span class="st"&gt;"${FS_WEBDAV_PORT:-4434}:4434"&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-89"&gt;&lt;a href="#cb1-89" aria-hidden="true" tabindex="-1"&gt;&lt;/a&gt;&lt;span class="at"&gt;    &lt;/span&gt;&lt;span class="fu"&gt;environment&lt;/span&gt;&lt;span class="kw"&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-90"&gt;&lt;a href="#cb1-90" aria-hidden="true" tabindex="-1"&gt;&lt;/a&gt;&lt;span class="at"&gt;      &lt;/span&gt;&lt;span class="fu"&gt;&amp;lt;&amp;lt;&lt;/span&gt;&lt;span class="kw"&gt;:&lt;/span&gt;&lt;span class="at"&gt; &lt;/span&gt;&lt;span class="ot"&gt;*app-env&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-91"&gt;&lt;a href="#cb1-91" aria-hidden="true" tabindex="-1"&gt;&lt;/a&gt;&lt;span class="at"&gt;      &lt;/span&gt;&lt;span class="fu"&gt;FS_QUIC__LISTEN_ADDR&lt;/span&gt;&lt;span class="kw"&gt;:&lt;/span&gt;&lt;span class="at"&gt; 0.0.0.0:4433&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-92"&gt;&lt;a href="#cb1-92" aria-hidden="true" tabindex="-1"&gt;&lt;/a&gt;&lt;span class="at"&gt;      &lt;/span&gt;&lt;span class="fu"&gt;FS_QUIC__ADVERTISE_ADDR&lt;/span&gt;&lt;span class="kw"&gt;:&lt;/span&gt;&lt;span class="at"&gt; ${FS_QUIC_ADVERTISE_ADDR:-localhost:4433}&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-93"&gt;&lt;a href="#cb1-93" aria-hidden="true" tabindex="-1"&gt;&lt;/a&gt;&lt;span class="at"&gt;      &lt;/span&gt;&lt;span class="fu"&gt;FS_TLS__CERT_FILE&lt;/span&gt;&lt;span class="kw"&gt;:&lt;/span&gt;&lt;span class="at"&gt; &lt;/span&gt;&lt;span class="st"&gt;""&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-94"&gt;&lt;a href="#cb1-94" aria-hidden="true" tabindex="-1"&gt;&lt;/a&gt;&lt;span class="at"&gt;      &lt;/span&gt;&lt;span class="fu"&gt;FS_TLS__KEY_FILE&lt;/span&gt;&lt;span class="kw"&gt;:&lt;/span&gt;&lt;span class="at"&gt; &lt;/span&gt;&lt;span class="st"&gt;""&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-95"&gt;&lt;a href="#cb1-95" aria-hidden="true" tabindex="-1"&gt;&lt;/a&gt;&lt;span class="at"&gt;    &lt;/span&gt;&lt;span class="fu"&gt;depends_on&lt;/span&gt;&lt;span class="kw"&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-96"&gt;&lt;a href="#cb1-96" aria-hidden="true" tabindex="-1"&gt;&lt;/a&gt;&lt;span class="at"&gt;      &lt;/span&gt;&lt;span class="fu"&gt;migrate&lt;/span&gt;&lt;span class="kw"&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-97"&gt;&lt;a href="#cb1-97" aria-hidden="true" tabindex="-1"&gt;&lt;/a&gt;&lt;span class="at"&gt;        &lt;/span&gt;&lt;span class="fu"&gt;condition&lt;/span&gt;&lt;span class="kw"&gt;:&lt;/span&gt;&lt;span class="at"&gt; service_completed_successfully&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-98"&gt;&lt;a href="#cb1-98" aria-hidden="true" tabindex="-1"&gt;&lt;/a&gt;&lt;span class="at"&gt;      &lt;/span&gt;&lt;span class="fu"&gt;redis&lt;/span&gt;&lt;span class="kw"&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-99"&gt;&lt;a href="#cb1-99" aria-hidden="true" tabindex="-1"&gt;&lt;/a&gt;&lt;span class="at"&gt;        &lt;/span&gt;&lt;span class="fu"&gt;condition&lt;/span&gt;&lt;span class="kw"&gt;:&lt;/span&gt;&lt;span class="at"&gt; service_healthy&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-100"&gt;&lt;a href="#cb1-100" aria-hidden="true" tabindex="-1"&gt;&lt;/a&gt;&lt;span class="at"&gt;      &lt;/span&gt;&lt;span class="fu"&gt;minio&lt;/span&gt;&lt;span class="kw"&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-101"&gt;&lt;a href="#cb1-101" aria-hidden="true" tabindex="-1"&gt;&lt;/a&gt;&lt;span class="at"&gt;        &lt;/span&gt;&lt;span class="fu"&gt;condition&lt;/span&gt;&lt;span class="kw"&gt;:&lt;/span&gt;&lt;span class="at"&gt; service_healthy&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-102"&gt;&lt;a href="#cb1-102" aria-hidden="true" tabindex="-1"&gt;&lt;/a&gt;&lt;span class="at"&gt;    &lt;/span&gt;&lt;span class="fu"&gt;restart&lt;/span&gt;&lt;span class="kw"&gt;:&lt;/span&gt;&lt;span class="at"&gt; unless-stopped&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-103"&gt;&lt;a href="#cb1-103" aria-hidden="true" tabindex="-1"&gt;&lt;/a&gt;&lt;/span&gt;
&lt;span id="cb1-104"&gt;&lt;a href="#cb1-104" aria-hidden="true" tabindex="-1"&gt;&lt;/a&gt;&lt;span class="at"&gt;  &lt;/span&gt;&lt;span class="fu"&gt;admin&lt;/span&gt;&lt;span class="kw"&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-105"&gt;&lt;a href="#cb1-105" aria-hidden="true" tabindex="-1"&gt;&lt;/a&gt;&lt;span class="at"&gt;    &lt;/span&gt;&lt;span class="fu"&gt;image&lt;/span&gt;&lt;span class="kw"&gt;:&lt;/span&gt;&lt;span class="at"&gt; ${IMAGE_REGISTRY:-fujohnwang}/fscloud-admin:${IMAGE_TAG:-latest}&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-106"&gt;&lt;a href="#cb1-106" aria-hidden="true" tabindex="-1"&gt;&lt;/a&gt;&lt;span class="at"&gt;    &lt;/span&gt;&lt;span class="fu"&gt;ports&lt;/span&gt;&lt;span class="kw"&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-107"&gt;&lt;a href="#cb1-107" aria-hidden="true" tabindex="-1"&gt;&lt;/a&gt;&lt;span class="at"&gt;      &lt;/span&gt;&lt;span class="kw"&gt;-&lt;/span&gt;&lt;span class="at"&gt; &lt;/span&gt;&lt;span class="st"&gt;"${FS_ADMIN_PORT:-4431}:4431"&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-108"&gt;&lt;a href="#cb1-108" aria-hidden="true" tabindex="-1"&gt;&lt;/a&gt;&lt;span class="at"&gt;    &lt;/span&gt;&lt;span class="fu"&gt;environment&lt;/span&gt;&lt;span class="kw"&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-109"&gt;&lt;a href="#cb1-109" aria-hidden="true" tabindex="-1"&gt;&lt;/a&gt;&lt;span class="at"&gt;      &lt;/span&gt;&lt;span class="fu"&gt;FSCLOUD_PROFILE&lt;/span&gt;&lt;span class="kw"&gt;:&lt;/span&gt;&lt;span class="at"&gt; development&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-110"&gt;&lt;a href="#cb1-110" aria-hidden="true" tabindex="-1"&gt;&lt;/a&gt;&lt;span class="at"&gt;      &lt;/span&gt;&lt;span class="fu"&gt;API_BASE&lt;/span&gt;&lt;span class="kw"&gt;:&lt;/span&gt;&lt;span class="at"&gt; http://gateway:4432&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-111"&gt;&lt;a href="#cb1-111" aria-hidden="true" tabindex="-1"&gt;&lt;/a&gt;&lt;span class="at"&gt;      &lt;/span&gt;&lt;span class="fu"&gt;DATABASE_URL&lt;/span&gt;&lt;span class="kw"&gt;:&lt;/span&gt;&lt;span class="at"&gt; postgres://fscloud:fscloud@postgres:5432/fscloud?sslmode=disable&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-112"&gt;&lt;a href="#cb1-112" aria-hidden="true" tabindex="-1"&gt;&lt;/a&gt;&lt;span class="at"&gt;      &lt;/span&gt;&lt;span class="fu"&gt;ADMIN_COOKIE_SECURE&lt;/span&gt;&lt;span class="kw"&gt;:&lt;/span&gt;&lt;span class="at"&gt; &lt;/span&gt;&lt;span class="st"&gt;"false"&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-113"&gt;&lt;a href="#cb1-113" aria-hidden="true" tabindex="-1"&gt;&lt;/a&gt;&lt;span class="at"&gt;    &lt;/span&gt;&lt;span class="fu"&gt;depends_on&lt;/span&gt;&lt;span class="kw"&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-114"&gt;&lt;a href="#cb1-114" aria-hidden="true" tabindex="-1"&gt;&lt;/a&gt;&lt;span class="at"&gt;      &lt;/span&gt;&lt;span class="fu"&gt;migrate&lt;/span&gt;&lt;span class="kw"&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-115"&gt;&lt;a href="#cb1-115" aria-hidden="true" tabindex="-1"&gt;&lt;/a&gt;&lt;span class="at"&gt;        &lt;/span&gt;&lt;span class="fu"&gt;condition&lt;/span&gt;&lt;span class="kw"&gt;:&lt;/span&gt;&lt;span class="at"&gt; service_completed_successfully&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-116"&gt;&lt;a href="#cb1-116" aria-hidden="true" tabindex="-1"&gt;&lt;/a&gt;&lt;span class="at"&gt;      &lt;/span&gt;&lt;span class="fu"&gt;gateway&lt;/span&gt;&lt;span class="kw"&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-117"&gt;&lt;a href="#cb1-117" aria-hidden="true" tabindex="-1"&gt;&lt;/a&gt;&lt;span class="at"&gt;        &lt;/span&gt;&lt;span class="fu"&gt;condition&lt;/span&gt;&lt;span class="kw"&gt;:&lt;/span&gt;&lt;span class="at"&gt; service_started&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-118"&gt;&lt;a href="#cb1-118" aria-hidden="true" tabindex="-1"&gt;&lt;/a&gt;&lt;span class="at"&gt;    &lt;/span&gt;&lt;span class="fu"&gt;restart&lt;/span&gt;&lt;span class="kw"&gt;:&lt;/span&gt;&lt;span class="at"&gt; unless-stopped&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-119"&gt;&lt;a href="#cb1-119" aria-hidden="true" tabindex="-1"&gt;&lt;/a&gt;&lt;/span&gt;
&lt;span id="cb1-120"&gt;&lt;a href="#cb1-120" aria-hidden="true" tabindex="-1"&gt;&lt;/a&gt;&lt;span class="fu"&gt;volumes&lt;/span&gt;&lt;span class="kw"&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-121"&gt;&lt;a href="#cb1-121" aria-hidden="true" tabindex="-1"&gt;&lt;/a&gt;&lt;span class="at"&gt;  &lt;/span&gt;&lt;span class="fu"&gt;postgres-data&lt;/span&gt;&lt;span class="kw"&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-122"&gt;&lt;a href="#cb1-122" aria-hidden="true" tabindex="-1"&gt;&lt;/a&gt;&lt;span class="at"&gt;  &lt;/span&gt;&lt;span class="fu"&gt;redis-data&lt;/span&gt;&lt;span class="kw"&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-123"&gt;&lt;a href="#cb1-123" aria-hidden="true" tabindex="-1"&gt;&lt;/a&gt;&lt;span class="at"&gt;  &lt;/span&gt;&lt;span class="fu"&gt;minio-data&lt;/span&gt;&lt;span class="kw"&gt;:&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
     &lt;/div&gt; 
     &lt;p&gt;然后到&lt;code&gt;docker-compose.yaml&lt;/code&gt;所在目录下执行：&lt;code&gt;docker compose up -d&lt;/code&gt;&lt;/p&gt; 
     &lt;p&gt;即可启动FSCloud各项服务。&lt;/p&gt; 
     &lt;p&gt;启动成功后：&lt;/p&gt; 
     &lt;ul&gt; 
      &lt;li&gt;访问 &lt;a href="http://localhost:4432" class="uri"&gt;http://localhost:4432&lt;/a&gt; 注册新用户并登录web端&lt;/li&gt; 
      &lt;li&gt;访问 &lt;a href="http://localhost:4432/cfg" class="uri"&gt;http://localhost:4432/cfg&lt;/a&gt; 可以下载macOS版客户端，native 客户端支持实时同步等高级功能。&lt;/li&gt; 
      &lt;li&gt;【可选】访问 &lt;a href="http://localhost:4431" class="uri"&gt;http://localhost:4431&lt;/a&gt; 设置初始管理员账号，并登录和管理FSCloud&lt;/li&gt; 
     &lt;/ul&gt; 
     &lt;p&gt;Enjoy ～&lt;/p&gt; &lt;!-- tail --&gt; 
     &lt;ins class="adsbygoogle" style="display:block" data-ad-client="ca-pub-3687639021943715" data-ad-slot="7874087130" data-ad-format="auto" data-full-width-responsive="true"&gt;&lt;/ins&gt; 
     &lt;script&gt;
                 (adsbygoogle = window.adsbygoogle || []).push({});
            &lt;/script&gt; 
     &lt;hr&gt; 
     &lt;div&gt; &lt;a href="/posts.html"&gt; &lt;b&gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; 更多阅读 &amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt; &lt;/b&gt;&lt;/a&gt; 
     &lt;/div&gt; 
     &lt;div id="random_posts"&gt; 
      &lt;div class="alert alert-light" role="alert"&gt; &lt;a href="/posts/2009-03-26-tech-concepts-and-theory-never-change.html"&gt;“换汤不换药”的技术概念或者理念 &lt;/a&gt; 
      &lt;/div&gt; 
      &lt;div class="alert alert-light" role="alert"&gt; &lt;a href="/posts/2018-08-06-cloud-is-not-your-savior.html"&gt;云不是万能药， 治不了你的无知与懒惰 &lt;/a&gt; 
      &lt;/div&gt; 
      &lt;div class="alert alert-light" role="alert"&gt; &lt;a href="/posts/2017-10-15-find-a-successor-instead-of-backup.html"&gt;扶墙老师谈管理：到底应不应该找backup &lt;/a&gt; 
      &lt;/div&gt; 
     &lt;/div&gt; 
     &lt;hr&gt; 
     &lt;div id="comments"&gt;&lt;/div&gt; 
     &lt;hr&gt; &lt;!-- Section CTA --&gt; 
     &lt;section class="overflow-x-clip bg-zinc-50 py-16 md:py-24"&gt; 
      &lt;div class="relative mx-auto w-full max-w-screen-xl px-4"&gt; 
       &lt;div class="relative z-10 w-full"&gt; &lt;!-- 福强私学推荐 --&gt; 
        &lt;div class="mx-auto max-w-screen-md"&gt; 
         &lt;h2 class="mb-4 text-center text-4xl font-bold md:text-5xl"&gt;&lt;a href="https://afoo.me/kb.html" class="border-b"&gt;「福强私学」&lt;/a&gt;来一个？&lt;/h2&gt; 
         &lt;p class="mx-auto mb-8 w-full text-center text-lg leading-8 text-zinc-700 md:w-5/6 md:text-xl"&gt;「福强私学」, 一部沉淀了个人成长、技术与架构、组织与管理以及商业上的方法与心法的百科全书。&lt;/p&gt; 
        &lt;/div&gt; 
        &lt;div class="mx-auto mt-6 w-full md:mt-12 md:w-4/5"&gt; &lt;a href="https://afoo.me/kb.html"&gt; &lt;img alt="footer img for kb.afoo.me" loading="lazy" width="2911" height="1961" decoding="async" data-nimg="1" class="mx-auto rounded-lg object-contain shadow-lg sm:rounded-2xl lg:rounded-3xl" style="color:transparent" src="https://og.afoo.me/?url=footer"&gt; &lt;/a&gt; 
        &lt;/div&gt; &lt;!-- 小报童推荐 --&gt; 
        &lt;div class="mx-auto max-w-screen-md"&gt; 
         &lt;h2 class="mt-8 mb-4 text-center text-4xl font-bold md:text-5xl"&gt;&lt;a href="https://xiaobot.net/p/aifd" class="border-b"&gt;福强老师的 AI 通识课&lt;/a&gt;&lt;/h2&gt;&lt;a href="https://xiaobot.net/p/aifd" class="border-b"&gt; &lt;/a&gt;
        &lt;/div&gt;&lt;a href="https://xiaobot.net/p/aifd" class="border-b"&gt; &lt;/a&gt;
        &lt;div class="mx-auto mt-6 w-full md:mt-12 md:w-4/5"&gt;
         &lt;a href="https://xiaobot.net/p/aifd" class="border-b"&gt; &lt;/a&gt;&lt;a href="https://xiaobot.net/p/aifd"&gt; &lt;img alt="footer img for kb.afoo.me" loading="lazy" width="2911" height="1961" decoding="async" data-nimg="1" class="mx-auto rounded-lg object-contain shadow-lg sm:rounded-2xl lg:rounded-3xl" style="color:transparent" src="/images/xbt-footer.webp"&gt; &lt;/a&gt; 
        &lt;/div&gt; 
        &lt;div class="mx-auto mt-6 w-full md:mt-12 md:w-4/5"&gt; 
         &lt;img alt="footer img for kb.afoo.me" loading="lazy" decoding="async" data-nimg="1" class="mx-auto p-3" style="color:transparent" src="/images/footer-links-2025.webp"&gt; 
        &lt;/div&gt; 
       &lt;/div&gt; 
      &lt;/div&gt; 
     &lt;/section&gt; 
     &lt;hr&gt; 
     &lt;p&gt; &lt;span style="font-size: xx-large;"&gt; 开天窗，拉认知，订阅「福报」，即刻拥有自己的全模态人工智能。 &lt;/span&gt; &lt;/p&gt; &lt;a href="https://wfq.gumroad.com/l/fb"&gt; &lt;img src="/images/fb_subscribe_v2.jpg" alt="订阅「福报」"&gt; &lt;/a&gt; 
     &lt;hr&gt; 
     &lt;div hx-get="https://toolfooter.afoo.me/" hx-trigger="revealed" htmx-indicator="#tfloader"&gt; 
      &lt;div id="tfloader" class="x-indicator"&gt; 
       &lt;svg width="57" height="57" viewbox="0 0 57 57" xmlns="http://www.w3.org/2000/svg" stroke="#3F83F8"&gt; &lt;g fill="none" fill-rule="evenodd"&gt; 
         &lt;g transform="translate(1 1)" stroke-width="2"&gt; 
          &lt;circle cx="5" cy="50" r="5"&gt; 
           &lt;animate attributename="cy" begin="0s" dur="2.2s" values="50;5;50;50" calcmode="linear" repeatcount="indefinite" /&gt; 
           &lt;animate attributename="cx" begin="0s" dur="2.2s" values="5;27;49;5" calcmode="linear" repeatcount="indefinite" /&gt; 
          &lt;/circle&gt; 
          &lt;circle cx="27" cy="5" r="5"&gt; 
           &lt;animate attributename="cy" begin="0s" dur="2.2s" from="5" to="5" values="5;50;50;5" calcmode="linear" repeatcount="indefinite" /&gt; 
           &lt;animate attributename="cx" begin="0s" dur="2.2s" from="27" to="27" values="27;49;5;27" calcmode="linear" repeatcount="indefinite" /&gt; 
          &lt;/circle&gt; 
          &lt;circle cx="49" cy="50" r="5"&gt; 
           &lt;animate attributename="cy" begin="0s" dur="2.2s" values="50;50;5;50" calcmode="linear" repeatcount="indefinite" /&gt; 
           &lt;animate attributename="cx" from="49" to="49" begin="0s" dur="2.2s" values="49;5;27;49" calcmode="linear" repeatcount="indefinite" /&gt; 
          &lt;/circle&gt; 
         &lt;/g&gt; 
        &lt;/g&gt; 
       &lt;/svg&gt; 
      &lt;/div&gt; 
     &lt;/div&gt; 
    &lt;/div&gt; 
   &lt;/section&gt; 
  &lt;/main&gt; 
  &lt;div style="position: fixed; left: 0; bottom: 0; padding: 10px; z-index: 1000;"&gt; 
   &lt;img src="/icons/Written-By-Human-Not-By-AI-Badge-black@2x.png" alt loading="lazy"&gt; 
  &lt;/div&gt; 
  &lt;footer class="border-t border-gray-200 dark:border-slate-800"&gt; 
   &lt;div class="max-w-6xl mx-auto px-4 sm:px-6"&gt; 
    &lt;div class="md:flex md:items-center md:justify-between py-6 md:py-8"&gt; 
     &lt;ul class="flex mb-4 md:order-1 -ml-2 md:ml-4 md:mb-0"&gt; 
      &lt;li&gt; &lt;a class="text-gray-500 dark:text-gray-400 hover:bg-gray-100 dark:hover:bg-gray-700 focus:outline-none focus:ring-4 focus:ring-gray-200 dark:focus:ring-gray-700 rounded-lg text-sm p-2.5 inline-flex items-center" aria-label="Twitter" href="https://twitter.com/afoo_me"&gt; 
        &lt;svg viewbox="0 0 24 24" class="w-5 h-5" astro-icon="tabler:brand-twitter"&gt; &lt;path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M22 4.01c-1 .49-1.98.689-3 .99-1.121-1.265-2.783-1.335-4.38-.737S11.977 6.323 12 8v1c-3.245.083-6.135-1.395-8-4 0 0-4.182 7.433 4 11-1.872 1.247-3.739 2.088-6 2 3.308 1.803 6.913 2.423 10.034 1.517 3.58-1.04 6.522-3.723 7.651-7.742a13.84 13.84 0 0 0 .497-3.753C20.18 7.773 21.692 5.25 22 4.009z"&gt; 
         &lt;/path&gt; 
        &lt;/svg&gt; &lt;/a&gt; &lt;/li&gt; 
      &lt;li&gt; &lt;a class="text-gray-500 dark:text-gray-400 hover:bg-gray-100 dark:hover:bg-gray-700 focus:outline-none focus:ring-4 focus:ring-gray-200 dark:focus:ring-gray-700 rounded-lg text-sm p-2.5 inline-flex items-center" aria-label="Facebook" href="https://www.facebook.com/fujohnwang/"&gt; 
        &lt;svg viewbox="0 0 24 24" class="w-5 h-5" astro-icon="tabler:brand-facebook"&gt; &lt;path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M7 10v4h3v7h4v-7h3l1-4h-4V8a1 1 0 0 1 1-1h3V3h-3a5 5 0 0 0-5 5v2H7"&gt;&lt;/path&gt; 
        &lt;/svg&gt; &lt;/a&gt; &lt;/li&gt; 
      &lt;li&gt; &lt;a class="text-gray-500 dark:text-gray-400 hover:bg-gray-100 dark:hover:bg-gray-700 focus:outline-none focus:ring-4 focus:ring-gray-200 dark:focus:ring-gray-700 rounded-lg text-sm p-2.5 inline-flex items-center" aria-label="Github" href="https://github.com/fujohnwang"&gt; 
        &lt;svg viewbox="0 0 24 24" class="w-5 h-5" astro-icon="tabler:brand-github"&gt; &lt;path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 19c-4.3 1.4-4.3-2.5-6-3m12 5v-3.5c0-1 .1-1.4-.5-2 2.8-.3 5.5-1.4 5.5-6a4.6 4.6 0 0 0-1.3-3.2 4.2 4.2 0 0 0-.1-3.2s-1.1-.3-3.5 1.3a12.3 12.3 0 0 0-6.2 0C6.5 2.8 5.4 3.1 5.4 3.1a4.2 4.2 0 0 0-.1 3.2A4.6 4.6 0 0 0 4 9.5c0 4.6 2.7 5.7 5.5 6-.6.6-.6 1.2-.5 2V21"&gt; 
         &lt;/path&gt; 
        &lt;/svg&gt; &lt;/a&gt; &lt;/li&gt; 
     &lt;/ul&gt; 
     &lt;div class="text-sm text-gray-700 mr-4 dark:text-slate-400"&gt; &lt;span class="w-5 h-5 md:w-6 md:h-6 md:-mt-0.5 bg-cover mr-1.5 float-left rounded-sm"&gt; &lt;img src="https://afoo.me/favicon.svg" class="rounded-md" alt&gt; &lt;/span&gt; Copyright © 王福强个人版权所有 - Since 2004 (Everything is homebrewed with &lt;a href="https://pandoc.org/"&gt;Pandoc&lt;/a&gt; and Markdown, little &lt;a href="https://www.scala-lang.org/"&gt;Scala&lt;/a&gt; also included.) 
     &lt;/div&gt; 
    &lt;/div&gt; 
   &lt;/div&gt; 
  &lt;/footer&gt; 
  &lt;script&gt;
        // Set "light" theme as default
        if (!localStorage.theme) {
            localStorage.theme = "light";
        }

        if (
            localStorage.theme === 'dark' ||
            (!('theme' in localStorage) &amp;&amp; window.matchMedia('(prefers-color-scheme: dark)').matches)
        ) {
            document.documentElement.classList.add('dark');
        } else {
            document.documentElement.classList.remove('dark');
        }

        function attachEvent(selector, event, fn) {
            const matches = document.querySelectorAll(selector);
            if (matches &amp;&amp; matches.length) {
                matches.forEach((elem) =&gt; {
                    elem.addEventListener(event, () =&gt; fn(elem), false);
                });
            }
        }

        window.onload = function () {
            attachEvent('[data-toggle-menu]', 'click', function (elem) {
                elem.classList.toggle('expanded');
                document.body.classList.toggle('overflow-hidden');
                document.getElementById('header')?.classList.toggle('h-screen');
                document.querySelector('#header nav')?.classList.toggle('hidden');
            });
            attachEvent("[data-toggle-color-scheme]", "click", function () {
                    document.documentElement.classList.toggle("light");
                    localStorage.theme = "light";
                });
        };
        window.onpageshow = function () {
            const elem = document.querySelector('[data-toggle-menu]');
            if (elem) {
                elem.classList.remove('expanded');
            }
            document.body.classList.remove('overflow-hidden');
            document.getElementById('header')?.classList.remove('h-screen');
            document.querySelector('#header nav')?.classList.add('hidden');
        };
    &lt;/script&gt; 
  &lt;script type="text/javascript"&gt;
        var gitalk = new Gitalk({
          clientID: '518a605d711883414ac0',
          clientSecret: '69fb8ccc0616c5bcbc64d24ece0d06d279da91ff',
          repo: 'afoo.me.comments',
          owner: 'fujohnwang',
          admin: ['fujohnwang'],
          id: location.pathname.substring(0, 49),      // Ensure uniqueness and length less than 50
          distractionFreeMode: false  // Facebook-like distraction free mode
        })
        gitalk.render('comments')
    &lt;/script&gt; 
  &lt;script src="https://formspree.io/js/formbutton-v1.min.js" defer&gt;&lt;/script&gt; 
  &lt;script&gt;
  /* paste this line in verbatim */
  window.formbutton=window.formbutton||function(){(formbutton.q=formbutton.q||[]).push(arguments)};
  /* customize formbutton below*/     
  formbutton("create", {
    action: "https://formspree.io/f/xknlpkkd",
    title: "有什么可以帮到您？💕💕💕 How can I help you?",
    buttonImg: "&lt;img src='https://afoo.me/hero3/70.webp' alt/&gt;",
    fields: [
      { 
        type: "email", 
        label: "您的电子邮箱（方便与您联系）:", 
        name: "email",
        required: true,
        placeholder: "your@email.com"
      },
      {
        type: "textarea",
        label: "您想提交的反馈和询问信息:",
        name: "message",
        placeholder: "What's on your mind?",
      },
      { type: "submit" }      
    ],
    styles: {
      title: {
        backgroundColor: "blue"
      },
      button: {
        backgroundColor: "blue"
      }
    }
  });
&lt;/script&gt; 
  &lt;script&gt;
	// tooltips
	tippy('#aiedu', {
        content: "As to AI nowadays, LLM and Stable Diffusion are hot even hottest among them, If your want to both know-why and know-how with them, instead of only know-how which can't repeat itself, you should get you to https://ai.afoo.me right now ❗"
    });  
&lt;/script&gt;  
 &lt;/body&gt;
&lt;/html&gt;</description>
      <pubDate>Mon, 10 Aug 2026 16:00:00 GMT</pubDate>
      <guid>http://afoo.me/posts/2026-08-11-open-fscloud-trial-for-hackers.html</guid>
      <dc:date>2026-08-10T16:00:00Z</dc:date>
    </item>
  </channel>
</rss>

