<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>蛤布斯堡</title>
    <link>https://blog.dengqi.org/</link>
    <description>Recent content on 蛤布斯堡</description>
    <generator>Hugo</generator>
    <language>zh-cn</language>
    <lastBuildDate>Mon, 06 Apr 2026 00:00:00 +0000</lastBuildDate>
    <atom:link href="https://blog.dengqi.org/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>森林与教室</title>
      <link>https://blog.dengqi.org/posts/%E6%A3%AE%E6%9E%97%E4%B8%8E%E6%95%99%E5%AE%A4%E5%8D%B1%E6%9C%BA%E5%8F%99%E4%BA%8B%E4%B8%AD%E7%9A%84%E6%94%BF%E6%B2%BB%E4%BC%A6%E7%90%86%E6%83%B3%E8%B1%A1-%E5%BE%AE%E4%BF%A1%E7%89%88/</link>
      <pubDate>Mon, 06 Apr 2026 00:00:00 +0000</pubDate>
      <guid>https://blog.dengqi.org/posts/%E6%A3%AE%E6%9E%97%E4%B8%8E%E6%95%99%E5%AE%A4%E5%8D%B1%E6%9C%BA%E5%8F%99%E4%BA%8B%E4%B8%AD%E7%9A%84%E6%94%BF%E6%B2%BB%E4%BC%A6%E7%90%86%E6%83%B3%E8%B1%A1-%E5%BE%AE%E4%BF%A1%E7%89%88/</guid>
      <description>&lt;h1 id=&#34;森林与教室&#34;&gt;森林与教室 &lt;a href=&#34;#%e6%a3%ae%e6%9e%97%e4%b8%8e%e6%95%99%e5%ae%a4&#34; class=&#34;anchor&#34;&gt;🔗&lt;/a&gt;&lt;/h1&gt;&lt;h2 id=&#34;一&#34;&gt;一 &lt;a href=&#34;#%e4%b8%80&#34; class=&#34;anchor&#34;&gt;🔗&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;中国的科幻读者近年长进了不少，竟参透了宇宙的终极奥义。这奥义据说是从两条公理推导出来的，凝练，庄严，有着数学般的冰冷美感。曰：生存是文明的第一需要。又曰：文明不断增长和扩张，但宇宙中的物质总量保持不变。由此推演，便得出了一片黑暗森林，宇宙中每一个文明都是带枪的猎人，在林间潜行，看见活物便开枪，因为不开枪的下场是自己先被打死。&lt;/p&gt;&#xA;&lt;p&gt;好一个宇宙的终极奥义。&lt;/p&gt;&#xA;&lt;p&gt;这套东西在社交媒体上大获成功，引用者众，信奉者更众。有人拿它解释国际关系，有人拿它解释职场竞争，有人拿它解释为何不能对邻居太好。总之，从银河系到隔壁老王，无一不可纳入法则管辖范围之内。它给了一代人一种廉价的清醒感：你看，我可不是什么天真的小布尔乔亚，我懂得宇宙的残酷真相。我读过《三体》。这最后一句，说出时往往微仰着头，面有得色，仿佛经此一悟，便与那些谈什么友谊和爱的幼稚之辈划清了界限似的。&lt;/p&gt;</description>
    </item>
    <item>
      <title>森林与教室：危机叙事中的政治伦理想象</title>
      <link>https://blog.dengqi.org/posts/%E6%A3%AE%E6%9E%97%E4%B8%8E%E6%95%99%E5%AE%A4%E5%8D%B1%E6%9C%BA%E5%8F%99%E4%BA%8B%E4%B8%AD%E7%9A%84%E6%94%BF%E6%B2%BB%E4%BC%A6%E7%90%86%E6%83%B3%E8%B1%A1/</link>
      <pubDate>Mon, 06 Apr 2026 00:00:00 +0000</pubDate>
      <guid>https://blog.dengqi.org/posts/%E6%A3%AE%E6%9E%97%E4%B8%8E%E6%95%99%E5%AE%A4%E5%8D%B1%E6%9C%BA%E5%8F%99%E4%BA%8B%E4%B8%AD%E7%9A%84%E6%94%BF%E6%B2%BB%E4%BC%A6%E7%90%86%E6%83%B3%E8%B1%A1/</guid>
      <description>&lt;h1 id=&#34;森林与教室危机叙事中的政治伦理想象&#34;&gt;森林与教室：危机叙事中的政治伦理想象 &lt;a href=&#34;#%e6%a3%ae%e6%9e%97%e4%b8%8e%e6%95%99%e5%ae%a4%e5%8d%b1%e6%9c%ba%e5%8f%99%e4%ba%8b%e4%b8%ad%e7%9a%84%e6%94%bf%e6%b2%bb%e4%bc%a6%e7%90%86%e6%83%b3%e8%b1%a1&#34; class=&#34;anchor&#34;&gt;🔗&lt;/a&gt;&lt;/h1&gt;&lt;h2 id=&#34;一&#34;&gt;一 &lt;a href=&#34;#%e4%b8%80&#34; class=&#34;anchor&#34;&gt;🔗&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;中国的科幻读者近年长进了不少，竟参透了宇宙的终极奥义。这奥义据说是从两条公理推导出来的，凝练，庄严，有着数学般的冰冷美感。曰：生存是文明的第一需要。又曰：文明不断增长和扩张，但宇宙中的物质总量保持不变。由此推演，便得出了一片黑暗森林，宇宙中每一个文明都是带枪的猎人，在林间潜行，看见活物便开枪，因为不开枪的下场是自己先被打死。&lt;/p&gt;&#xA;&lt;p&gt;好一个宇宙的终极奥义。&lt;/p&gt;&#xA;&lt;p&gt;这套东西在社交媒体上大获成功，引用者众，信奉者更众。有人拿它解释国际关系，有人拿它解释职场竞争，有人拿它解释为何不能对邻居太好。总之，从银河系到隔壁老王，无一不可纳入法则管辖范围之内。它给了一代人一种廉价的清醒感：你看，我可不是什么天真的小布尔乔亚，我懂得宇宙的残酷真相。我读过《三体》。这最后一句，说出时往往微仰着头，面有得色，仿佛经此一悟，便与那些谈什么友谊和爱的幼稚之辈划清了界限似的。&lt;/p&gt;</description>
    </item>
    <item>
      <title>ZeroClaw-01-系统整体架构深度解析</title>
      <link>https://blog.dengqi.org/posts/zerocraw-01-%E7%B3%BB%E7%BB%9F%E6%95%B4%E4%BD%93%E6%9E%B6%E6%9E%84%E6%B5%81%E7%A8%8B/</link>
      <pubDate>Thu, 19 Feb 2026 12:00:00 +0800</pubDate>
      <guid>https://blog.dengqi.org/posts/zerocraw-01-%E7%B3%BB%E7%BB%9F%E6%95%B4%E4%BD%93%E6%9E%B6%E6%9E%84%E6%B5%81%E7%A8%8B/</guid>
      <description>&lt;h1 id=&#34;zeroclaw-01-系统整体架构深度解析&#34;&gt;ZeroClaw-01-系统整体架构深度解析 &lt;a href=&#34;#zeroclaw-01-%e7%b3%bb%e7%bb%9f%e6%95%b4%e4%bd%93%e6%9e%b6%e6%9e%84%e6%b7%b1%e5%ba%a6%e8%a7%a3%e6%9e%90&#34; class=&#34;anchor&#34;&gt;🔗&lt;/a&gt;&lt;/h1&gt;&lt;blockquote&gt;&#xA;&lt;p&gt;本文档深度剖析 ZeroClaw 的核心业务流转机制，从产品经理视角到代码实现细节，帮助全面理解系统架构。&lt;/p&gt;&#xA;&lt;p&gt;适合阅读人群：产品经理、业务分析师、技术负责人、架构师、核心开发者&lt;/p&gt;</description>
    </item>
    <item>
      <title>ZeroClaw-02-安全模型与权限控制深度解析</title>
      <link>https://blog.dengqi.org/posts/zerocraw-02-%E5%AE%89%E5%85%A8%E6%A8%A1%E5%9E%8B%E4%B8%8E%E6%9D%83%E9%99%90%E6%8E%A7%E5%88%B6/</link>
      <pubDate>Thu, 19 Feb 2026 12:00:00 +0800</pubDate>
      <guid>https://blog.dengqi.org/posts/zerocraw-02-%E5%AE%89%E5%85%A8%E6%A8%A1%E5%9E%8B%E4%B8%8E%E6%9D%83%E9%99%90%E6%8E%A7%E5%88%B6/</guid>
      <description>&lt;h1 id=&#34;zeroclaw-02-安全模型与权限控制深度解析&#34;&gt;ZeroClaw-02-安全模型与权限控制深度解析 &lt;a href=&#34;#zeroclaw-02-%e5%ae%89%e5%85%a8%e6%a8%a1%e5%9e%8b%e4%b8%8e%e6%9d%83%e9%99%90%e6%8e%a7%e5%88%b6%e6%b7%b1%e5%ba%a6%e8%a7%a3%e6%9e%90&#34; class=&#34;anchor&#34;&gt;🔗&lt;/a&gt;&lt;/h1&gt;&lt;blockquote&gt;&#xA;&lt;p&gt;深入解析 ZeroClaw 的五层安全防护体系，从设计原理到代码实现，理解每一个安全决策的取舍。&lt;/p&gt;&#xA;&lt;p&gt;适合阅读人群：安全负责人、架构师、运维工程师、合规人员&lt;/p&gt;&lt;/blockquote&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;引言为什么安全对-ai-agent-至关重要&#34;&gt;引言：为什么安全对 AI Agent 至关重要？ &lt;a href=&#34;#%e5%bc%95%e8%a8%80%e4%b8%ba%e4%bb%80%e4%b9%88%e5%ae%89%e5%85%a8%e5%af%b9-ai-agent-%e8%87%b3%e5%85%b3%e9%87%8d%e8%a6%81&#34; class=&#34;anchor&#34;&gt;🔗&lt;/a&gt;&lt;/h2&gt;&lt;h3 id=&#34;ai-agent-的特殊安全风险&#34;&gt;AI Agent 的特殊安全风险 &lt;a href=&#34;#ai-agent-%e7%9a%84%e7%89%b9%e6%ae%8a%e5%ae%89%e5%85%a8%e9%a3%8e%e9%99%a9&#34; class=&#34;anchor&#34;&gt;🔗&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;传统应用是&amp;quot;被动&amp;quot;的——等待用户输入后响应。但 AI Agent 是&amp;quot;主动&amp;quot;的：&lt;/p&gt;</description>
    </item>
    <item>
      <title>ZeroClaw-03-记忆系统深度解析</title>
      <link>https://blog.dengqi.org/posts/zerocraw-03-%E8%AE%B0%E5%BF%86%E7%B3%BB%E7%BB%9F%E5%B7%A5%E4%BD%9C%E6%B5%81%E7%A8%8B/</link>
      <pubDate>Thu, 19 Feb 2026 12:00:00 +0800</pubDate>
      <guid>https://blog.dengqi.org/posts/zerocraw-03-%E8%AE%B0%E5%BF%86%E7%B3%BB%E7%BB%9F%E5%B7%A5%E4%BD%9C%E6%B5%81%E7%A8%8B/</guid>
      <description>&lt;h1 id=&#34;zeroclaw-03-记忆系统深度解析&#34;&gt;ZeroClaw-03-记忆系统深度解析 &lt;a href=&#34;#zeroclaw-03-%e8%ae%b0%e5%bf%86%e7%b3%bb%e7%bb%9f%e6%b7%b1%e5%ba%a6%e8%a7%a3%e6%9e%90&#34; class=&#34;anchor&#34;&gt;🔗&lt;/a&gt;&lt;/h1&gt;&lt;blockquote&gt;&#xA;&lt;p&gt;深入解析 ZeroClaw 的混合搜索记忆系统，从设计原理到代码实现，理解 AI 如何实现&amp;quot;长期记忆&amp;quot;。&lt;/p&gt;&#xA;&lt;p&gt;适合阅读人群：AI 应用设计师、架构师、算法工程师、核心开发者&lt;/p&gt;</description>
    </item>
    <item>
      <title>ZeroClaw-04-多渠道消息处理深度解析</title>
      <link>https://blog.dengqi.org/posts/zerocraw-04-%E5%A4%9A%E6%B8%A0%E9%81%93%E6%B6%88%E6%81%AF%E5%A4%84%E7%90%86/</link>
      <pubDate>Thu, 19 Feb 2026 12:00:00 +0800</pubDate>
      <guid>https://blog.dengqi.org/posts/zerocraw-04-%E5%A4%9A%E6%B8%A0%E9%81%93%E6%B6%88%E6%81%AF%E5%A4%84%E7%90%86/</guid>
      <description>&lt;h1 id=&#34;zeroclaw-04-多渠道消息处理深度解析&#34;&gt;ZeroClaw-04-多渠道消息处理深度解析 &lt;a href=&#34;#zeroclaw-04-%e5%a4%9a%e6%b8%a0%e9%81%93%e6%b6%88%e6%81%af%e5%a4%84%e7%90%86%e6%b7%b1%e5%ba%a6%e8%a7%a3%e6%9e%90&#34; class=&#34;anchor&#34;&gt;🔗&lt;/a&gt;&lt;/h1&gt;&lt;blockquote&gt;&#xA;&lt;p&gt;深入解析 ZeroClaw 如何统一处理来自 15+ 消息平台的消息，实现真正的&amp;quot;全渠道 AI 助手&amp;quot;。&lt;/p&gt;&#xA;&lt;p&gt;适合阅读人群：产品经理、渠道对接开发者、架构师&lt;/p&gt;&lt;/blockquote&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;引言为什么需要多渠道&#34;&gt;引言：为什么需要多渠道？ &lt;a href=&#34;#%e5%bc%95%e8%a8%80%e4%b8%ba%e4%bb%80%e4%b9%88%e9%9c%80%e8%a6%81%e5%a4%9a%e6%b8%a0%e9%81%93&#34; class=&#34;anchor&#34;&gt;🔗&lt;/a&gt;&lt;/h2&gt;&lt;h3 id=&#34;用户分散在各种平台&#34;&gt;用户分散在各种平台 &lt;a href=&#34;#%e7%94%a8%e6%88%b7%e5%88%86%e6%95%a3%e5%9c%a8%e5%90%84%e7%a7%8d%e5%b9%b3%e5%8f%b0&#34; class=&#34;anchor&#34;&gt;🔗&lt;/a&gt;&lt;/h3&gt;&lt;ul&gt;&#xA;&lt;li&gt;开发者在 Discord 上活跃&lt;/li&gt;&#xA;&lt;li&gt;商务人员在 Slack 上工作&lt;/li&gt;&#xA;&lt;li&gt;国内用户使用 Telegram 或微信&lt;/li&gt;&#xA;&lt;li&gt;海外用户习惯 WhatsApp&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;&lt;strong&gt;传统方案的问题&lt;/strong&gt;：&lt;/p&gt;</description>
    </item>
    <item>
      <title>ZeroClaw-05-工具执行生命周期深度解析</title>
      <link>https://blog.dengqi.org/posts/zerocraw-05-%E5%B7%A5%E5%85%B7%E6%89%A7%E8%A1%8C%E7%94%9F%E5%91%BD%E5%91%A8%E6%9C%9F/</link>
      <pubDate>Thu, 19 Feb 2026 12:00:00 +0800</pubDate>
      <guid>https://blog.dengqi.org/posts/zerocraw-05-%E5%B7%A5%E5%85%B7%E6%89%A7%E8%A1%8C%E7%94%9F%E5%91%BD%E5%91%A8%E6%9C%9F/</guid>
      <description>&lt;h1 id=&#34;zeroclaw-05-工具执行生命周期深度解析&#34;&gt;ZeroClaw-05-工具执行生命周期深度解析 &lt;a href=&#34;#zeroclaw-05-%e5%b7%a5%e5%85%b7%e6%89%a7%e8%a1%8c%e7%94%9f%e5%91%bd%e5%91%a8%e6%9c%9f%e6%b7%b1%e5%ba%a6%e8%a7%a3%e6%9e%90&#34; class=&#34;anchor&#34;&gt;🔗&lt;/a&gt;&lt;/h1&gt;&lt;blockquote&gt;&#xA;&lt;p&gt;深入解析 ZeroClaw 的工具系统，理解 AI 如何从&amp;quot;聊天&amp;quot;升级为&amp;quot;行动&amp;quot;。&lt;/p&gt;&#xA;&lt;p&gt;适合阅读人群：技术负责人、工具开发者、架构师&lt;/p&gt;</description>
    </item>
    <item>
      <title>ZeroClaw-06-配置与部署深度解析</title>
      <link>https://blog.dengqi.org/posts/zerocraw-06-%E9%85%8D%E7%BD%AE%E4%B8%8E%E9%83%A8%E7%BD%B2%E6%B5%81%E7%A8%8B/</link>
      <pubDate>Thu, 19 Feb 2026 12:00:00 +0800</pubDate>
      <guid>https://blog.dengqi.org/posts/zerocraw-06-%E9%85%8D%E7%BD%AE%E4%B8%8E%E9%83%A8%E7%BD%B2%E6%B5%81%E7%A8%8B/</guid>
      <description>&lt;h1 id=&#34;zeroclaw-06-配置与部署深度解析&#34;&gt;ZeroClaw-06-配置与部署深度解析 &lt;a href=&#34;#zeroclaw-06-%e9%85%8d%e7%bd%ae%e4%b8%8e%e9%83%a8%e7%bd%b2%e6%b7%b1%e5%ba%a6%e8%a7%a3%e6%9e%90&#34; class=&#34;anchor&#34;&gt;🔗&lt;/a&gt;&lt;/h1&gt;&lt;blockquote&gt;&#xA;&lt;p&gt;深入解析用户从0到1上手 ZeroClaw 的完整路径，理解配置系统的设计和部署最佳实践。&lt;/p&gt;&#xA;&lt;p&gt;适合阅读人群：产品经理、运维工程师、技术支持、DevOps&lt;/p&gt;&lt;/blockquote&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;引言新用户的第一次体验&#34;&gt;引言：新用户的第一次体验 &lt;a href=&#34;#%e5%bc%95%e8%a8%80%e6%96%b0%e7%94%a8%e6%88%b7%e7%9a%84%e7%ac%ac%e4%b8%80%e6%ac%a1%e4%bd%93%e9%aa%8c&#34; class=&#34;anchor&#34;&gt;🔗&lt;/a&gt;&lt;/h2&gt;&lt;h3 id=&#34;用户的心理历程&#34;&gt;用户的心理历程 &lt;a href=&#34;#%e7%94%a8%e6%88%b7%e7%9a%84%e5%bf%83%e7%90%86%e5%8e%86%e7%a8%8b&#34; class=&#34;anchor&#34;&gt;🔗&lt;/a&gt;&lt;/h3&gt;&lt;table&gt;&#xA;  &lt;thead&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;th&gt;阶段&lt;/th&gt;&#xA;          &lt;th&gt;心态&lt;/th&gt;&#xA;          &lt;th&gt;ZeroClaw 的设计目标&lt;/th&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;好奇&lt;/td&gt;&#xA;          &lt;td&gt;&amp;ldquo;听说这个 AI 助手很强大，想试试&amp;rdquo;&lt;/td&gt;&#xA;          &lt;td&gt;吸引注意，降低门槛&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;困惑&lt;/td&gt;&#xA;          &lt;td&gt;&amp;ldquo;怎么安装？需要什么条件？&amp;rdquo;&lt;/td&gt;&#xA;          &lt;td&gt;清晰的文档，一键安装&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;尝试&lt;/td&gt;&#xA;          &lt;td&gt;&amp;ldquo;按照文档一步步操作&amp;rdquo;&lt;/td&gt;&#xA;          &lt;td&gt;引导配置，即时反馈&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;惊喜&lt;/td&gt;&#xA;          &lt;td&gt;&amp;ldquo;哇，真的能帮我写代码！&amp;rdquo;&lt;/td&gt;&#xA;          &lt;td&gt;快速验证价值&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;依赖&lt;/td&gt;&#xA;          &lt;td&gt;&amp;ldquo;每天都离不开它了&amp;rdquo;&lt;/td&gt;&#xA;          &lt;td&gt;稳定可靠，持续优化&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;一用户上手旅程地图&#34;&gt;一、用户上手旅程地图 &lt;a href=&#34;#%e4%b8%80%e7%94%a8%e6%88%b7%e4%b8%8a%e6%89%8b%e6%97%85%e7%a8%8b%e5%9c%b0%e5%9b%be&#34; class=&#34;anchor&#34;&gt;🔗&lt;/a&gt;&lt;/h2&gt;&lt;h3 id=&#34;11-完整用户旅程&#34;&gt;1.1 完整用户旅程 &lt;a href=&#34;#11-%e5%ae%8c%e6%95%b4%e7%94%a8%e6%88%b7%e6%97%85%e7%a8%8b&#34; class=&#34;anchor&#34;&gt;🔗&lt;/a&gt;&lt;/h3&gt;&lt;pre class=&#34;mermaid&#34;&gt;journey&#xA;    title ZeroClaw 用户上手旅程&#xA;    section 发现阶段&#xA;      了解 ZeroClaw: 5: 用户&#xA;      阅读文档: 4: 用户&#xA;      决定尝试: 5: 用户&#xA;    section 准备阶段&#xA;      检查系统要求: 3: 用户&#xA;      安装依赖: 2: 用户, System&#xA;      克隆仓库: 4: 用户&#xA;    section 安装阶段&#xA;      运行引导脚本: 5: 用户&#xA;      配置 API Key: 3: 用户, Provider&#xA;      选择渠道: 4: 用户&#xA;    section 验证阶段&#xA;      首次对话: 5: 用户, Agent&#xA;      测试工具: 4: 用户, Agent&#xA;      配置 Gateway: 3: 用户&#xA;    section 生产阶段&#xA;      启动 Daemon: 4: 用户, System&#xA;      日常使用: 5: 用户, Agent&#xA;      分享推荐: 5: 用户&#xA;&lt;/pre&gt;&#xA;&#xA;&#xA;&#xA;&lt;h3 id=&#34;12-决策分支图&#34;&gt;1.2 决策分支图 &lt;a href=&#34;#12-%e5%86%b3%e7%ad%96%e5%88%86%e6%94%af%e5%9b%be&#34; class=&#34;anchor&#34;&gt;🔗&lt;/a&gt;&lt;/h3&gt;&lt;pre class=&#34;mermaid&#34;&gt;flowchart TD&#xA;    START[&#34;开始&#34;] --&gt; CHOICE1{&#34;部署环境?&#34;}&#xA;    &#xA;    CHOICE1 --&gt;|&#34;本地开发&#34;| LOCAL[&#34;本地开发路径&#34;]&#xA;    CHOICE1 --&gt;|&#34;服务器部署&#34;| SERVER[&#34;服务器部署路径&#34;]&#xA;    CHOICE1 --&gt;|&#34;边缘设备&#34;| EDGE[&#34;边缘设备路径&#34;]&#xA;    &#xA;    LOCAL --&gt; L1[&#34;快速安装&#34;]&#xA;    L1 --&gt; L2[&#34;Shell/CLI 模式&#34;]&#xA;    L2 --&gt; L3[&#34;可选：配置 Gateway&#34;]&#xA;    &#xA;    SERVER --&gt; S1[&#34;安全安装&#34;]&#xA;    S1 --&gt; S2[&#34;Docker 沙箱&#34;]&#xA;    S2 --&gt; S3[&#34;配置隧道&#34;]&#xA;    S3 --&gt; S4[&#34;启动 Daemon&#34;]&#xA;    &#xA;    EDGE --&gt; E1[&#34;交叉编译&#34;]&#xA;    E1 --&gt; E2[&#34;轻量配置&#34;]&#xA;    E2 --&gt; E3[&#34;启动 Daemon&#34;]&#xA;    &#xA;    L3 &amp; S4 &amp; E3 --&gt; END[&#34;生产使用&#34;]&#xA;    &#xA;    style LOCAL fill:#afa,stroke:#333&#xA;    style SERVER fill:#bbf,stroke:#333&#xA;    style EDGE fill:#ffa,stroke:#333&#xA;&lt;/pre&gt;&#xA;&#xA;&#xA;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;二配置系统架构&#34;&gt;二、配置系统架构 &lt;a href=&#34;#%e4%ba%8c%e9%85%8d%e7%bd%ae%e7%b3%bb%e7%bb%9f%e6%9e%b6%e6%9e%84&#34; class=&#34;anchor&#34;&gt;🔗&lt;/a&gt;&lt;/h2&gt;&lt;h3 id=&#34;21-配置加载层次&#34;&gt;2.1 配置加载层次 &lt;a href=&#34;#21-%e9%85%8d%e7%bd%ae%e5%8a%a0%e8%bd%bd%e5%b1%82%e6%ac%a1&#34; class=&#34;anchor&#34;&gt;🔗&lt;/a&gt;&lt;/h3&gt;&lt;pre class=&#34;mermaid&#34;&gt;flowchart TB&#xA;    subgraph 配置来源[&#34;配置来源（优先级从高到低）&#34;]&#xA;        CLI[&#34;命令行参数&lt;br/&gt;--config /path&#34;]&#xA;        ENV[&#34;环境变量&lt;br/&gt;ZEROCLAW_API_KEY&#34;]&#xA;        FILE[&#34;配置文件&lt;br/&gt;~/.zeroclaw/config.toml&#34;]&#xA;        DEFAULT[&#34;默认值&#34;]&#xA;    end&#xA;&#xA;    subgraph 合并逻辑[&#34;合并逻辑&#34;]&#xA;        MERGE[&#34;后加载覆盖先加载&#34;]&#xA;    end&#xA;&#xA;    subgraph 最终配置[&#34;最终配置&#34;]&#xA;        CONFIG[&#34;Config 结构体&#34;]&#xA;    end&#xA;&#xA;    DEFAULT --&gt; MERGE&#xA;    FILE --&gt; MERGE&#xA;    ENV --&gt; MERGE&#xA;    CLI --&gt; MERGE&#xA;    MERGE --&gt; CONFIG&#xA;&lt;/pre&gt;&#xA;&#xA;&#xA;&#xA;&lt;h3 id=&#34;22-配置结构代码&#34;&gt;2.2 配置结构代码 &lt;a href=&#34;#22-%e9%85%8d%e7%bd%ae%e7%bb%93%e6%9e%84%e4%bb%a3%e7%a0%81&#34; class=&#34;anchor&#34;&gt;🔗&lt;/a&gt;&lt;/h3&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-rust&#34; data-lang=&#34;rust&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;// src/config/mod.rs&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;&lt;/span&gt;&lt;span class=&#34;k&#34;&gt;use&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;serde&lt;/span&gt;::&lt;span class=&#34;n&#34;&gt;Deserialize&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;&lt;/span&gt;&lt;span class=&#34;cp&#34;&gt;#[derive(Debug, Deserialize, Clone)]&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;&lt;/span&gt;&lt;span class=&#34;k&#34;&gt;pub&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;struct&lt;/span&gt; &lt;span class=&#34;nc&#34;&gt;Config&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;sd&#34;&gt;/// API Key（可从环境变量读取）&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;sd&#34;&gt;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;cp&#34;&gt;#[serde(default)]&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;pub&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;api_key&lt;/span&gt;: &lt;span class=&#34;nb&#34;&gt;Option&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;String&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;sd&#34;&gt;/// 默认 Provider&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;sd&#34;&gt;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;cp&#34;&gt;#[serde(default = &lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;default_provider&amp;#34;&lt;/span&gt;&lt;span class=&#34;cp&#34;&gt;)]&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;pub&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;default_provider&lt;/span&gt;: &lt;span class=&#34;nb&#34;&gt;String&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;sd&#34;&gt;/// 默认模型&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;sd&#34;&gt;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;pub&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;default_model&lt;/span&gt;: &lt;span class=&#34;nb&#34;&gt;Option&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;String&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;sd&#34;&gt;/// 记忆配置&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;sd&#34;&gt;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;cp&#34;&gt;#[serde(default)]&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;pub&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;memory&lt;/span&gt;: &lt;span class=&#34;nc&#34;&gt;MemoryConfig&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;sd&#34;&gt;/// 网关配置&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;sd&#34;&gt;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;cp&#34;&gt;#[serde(default)]&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;pub&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;gateway&lt;/span&gt;: &lt;span class=&#34;nc&#34;&gt;GatewayConfig&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;sd&#34;&gt;/// 权限配置&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;sd&#34;&gt;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;cp&#34;&gt;#[serde(default)]&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;pub&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;autonomy&lt;/span&gt;: &lt;span class=&#34;nc&#34;&gt;AutonomyConfig&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;sd&#34;&gt;/// 运行时配置&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;sd&#34;&gt;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;cp&#34;&gt;#[serde(default)]&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;pub&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;runtime&lt;/span&gt;: &lt;span class=&#34;nc&#34;&gt;RuntimeConfig&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;sd&#34;&gt;/// 渠道配置&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;sd&#34;&gt;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;cp&#34;&gt;#[serde(default)]&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;pub&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;channels_config&lt;/span&gt;: &lt;span class=&#34;nc&#34;&gt;HashMap&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;String&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;ChannelConfig&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;&lt;/span&gt;&lt;span class=&#34;k&#34;&gt;fn&lt;/span&gt; &lt;span class=&#34;nf&#34;&gt;default_provider&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;()&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;-&amp;gt; &lt;span class=&#34;nb&#34;&gt;String&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;openrouter&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;to_string&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;()&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;&lt;/span&gt;&lt;span class=&#34;cp&#34;&gt;#[derive(Debug, Deserialize, Clone)]&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;&lt;/span&gt;&lt;span class=&#34;k&#34;&gt;pub&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;struct&lt;/span&gt; &lt;span class=&#34;nc&#34;&gt;MemoryConfig&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;cp&#34;&gt;#[serde(default = &lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;default_memory_backend&amp;#34;&lt;/span&gt;&lt;span class=&#34;cp&#34;&gt;)]&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;pub&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;backend&lt;/span&gt;: &lt;span class=&#34;nb&#34;&gt;String&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;cp&#34;&gt;#[serde(default = &lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;true&amp;#34;&lt;/span&gt;&lt;span class=&#34;cp&#34;&gt;)]&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;pub&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;auto_save&lt;/span&gt;: &lt;span class=&#34;kt&#34;&gt;bool&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;pub&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;embedding_provider&lt;/span&gt;: &lt;span class=&#34;nb&#34;&gt;Option&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;String&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;&lt;/span&gt;&lt;span class=&#34;k&#34;&gt;fn&lt;/span&gt; &lt;span class=&#34;nf&#34;&gt;default_memory_backend&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;()&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;-&amp;gt; &lt;span class=&#34;nb&#34;&gt;String&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;sqlite&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;to_string&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;()&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;&lt;/span&gt;&lt;span class=&#34;cp&#34;&gt;#[derive(Debug, Deserialize, Clone)]&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;&lt;/span&gt;&lt;span class=&#34;k&#34;&gt;pub&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;struct&lt;/span&gt; &lt;span class=&#34;nc&#34;&gt;GatewayConfig&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;cp&#34;&gt;#[serde(default = &lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;default_host&amp;#34;&lt;/span&gt;&lt;span class=&#34;cp&#34;&gt;)]&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;pub&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;host&lt;/span&gt;: &lt;span class=&#34;nb&#34;&gt;String&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;cp&#34;&gt;#[serde(default = &lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;default_port&amp;#34;&lt;/span&gt;&lt;span class=&#34;cp&#34;&gt;)]&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;pub&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;port&lt;/span&gt;: &lt;span class=&#34;kt&#34;&gt;u16&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;cp&#34;&gt;#[serde(default)]&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;pub&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;require_pairing&lt;/span&gt;: &lt;span class=&#34;kt&#34;&gt;bool&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;cp&#34;&gt;#[serde(default)]&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;pub&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;allow_public_bind&lt;/span&gt;: &lt;span class=&#34;kt&#34;&gt;bool&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;&lt;/span&gt;&lt;span class=&#34;k&#34;&gt;fn&lt;/span&gt; &lt;span class=&#34;nf&#34;&gt;default_host&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;()&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;-&amp;gt; &lt;span class=&#34;nb&#34;&gt;String&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;127.0.0.1&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;to_string&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;()&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;&lt;/span&gt;&lt;span class=&#34;k&#34;&gt;fn&lt;/span&gt; &lt;span class=&#34;nf&#34;&gt;default_port&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;()&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;-&amp;gt; &lt;span class=&#34;kt&#34;&gt;u16&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;3000&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id=&#34;23-配置加载实现&#34;&gt;2.3 配置加载实现 &lt;a href=&#34;#23-%e9%85%8d%e7%bd%ae%e5%8a%a0%e8%bd%bd%e5%ae%9e%e7%8e%b0&#34; class=&#34;anchor&#34;&gt;🔗&lt;/a&gt;&lt;/h3&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-rust&#34; data-lang=&#34;rust&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;// src/config/loader.rs&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;&lt;/span&gt;&lt;span class=&#34;k&#34;&gt;use&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;config&lt;/span&gt;::&lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Config&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;ConfigError&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Environment&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;File&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;};&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;&lt;/span&gt;&lt;span class=&#34;k&#34;&gt;pub&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;fn&lt;/span&gt; &lt;span class=&#34;nf&#34;&gt;load_config&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;cli_path&lt;/span&gt;: &lt;span class=&#34;nb&#34;&gt;Option&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;&amp;lt;&amp;amp;&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Path&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;-&amp;gt; &lt;span class=&#34;nb&#34;&gt;Result&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;AppConfig&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;ConfigError&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;kd&#34;&gt;let&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;mut&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;builder&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Config&lt;/span&gt;::&lt;span class=&#34;n&#34;&gt;builder&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;();&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;c1&#34;&gt;// 1. 加载默认配置&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;builder&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;builder&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;set_default&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;default_provider&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;openrouter&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;?&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;c1&#34;&gt;// 2. 加载配置文件（优先级：命令行指定 &amp;gt; 默认路径）&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;kd&#34;&gt;let&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;config_path&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;cli_path&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;        &lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;map&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;|&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;p&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;|&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;p&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;to_path_buf&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;())&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;        &lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;or_else&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;||&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;dirs&lt;/span&gt;::&lt;span class=&#34;n&#34;&gt;config_dir&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;().&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;map&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;|&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;d&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;|&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;d&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;join&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;zeroclaw/config.toml&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)));&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;        &#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;if&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;kd&#34;&gt;let&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;Some&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;path&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;config_path&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;        &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;if&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;path&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;exists&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;()&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;            &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;builder&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;builder&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;add_source&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;File&lt;/span&gt;::&lt;span class=&#34;n&#34;&gt;from&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;path&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;));&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;        &lt;/span&gt;&lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;c1&#34;&gt;// 3. 加载环境变量（ZEROCLAW_ 前缀）&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;builder&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;builder&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;add_source&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;        &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Environment&lt;/span&gt;::&lt;span class=&#34;n&#34;&gt;with_prefix&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;ZEROCLAW&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;            &lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;separator&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;_&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;            &lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;try_parsing&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;kc&#34;&gt;true&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;p&#34;&gt;);&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;c1&#34;&gt;// 4. 构建配置&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;kd&#34;&gt;let&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;config&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;builder&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;build&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;()&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;?&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;c1&#34;&gt;// 5. 反序列化为结构体&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;config&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;try_deserialize&lt;/span&gt;::&lt;span class=&#34;o&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;AppConfig&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;()&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id=&#34;24-环境变量覆盖&#34;&gt;2.4 环境变量覆盖 &lt;a href=&#34;#24-%e7%8e%af%e5%a2%83%e5%8f%98%e9%87%8f%e8%a6%86%e7%9b%96&#34; class=&#34;anchor&#34;&gt;🔗&lt;/a&gt;&lt;/h3&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-rust&#34; data-lang=&#34;rust&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;// 环境变量命名规则&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;// ZEROCLAW_&amp;lt;SECTION&amp;gt;_&amp;lt;KEY&amp;gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;&lt;/span&gt;&lt;span class=&#34;c1&#34;&gt;// 示例：&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;&lt;/span&gt;&lt;span class=&#34;no&#34;&gt;ZEROCLAW_API_KEY&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;sk&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;xxx&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;&lt;/span&gt;&lt;span class=&#34;no&#34;&gt;ZEROCLAW_DEFAULT_PROVIDER&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;openai&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;&lt;/span&gt;&lt;span class=&#34;no&#34;&gt;ZEROCLAW_MEMORY_BACKEND&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;postgres&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;&lt;/span&gt;&lt;span class=&#34;no&#34;&gt;ZEROCLAW_GATEWAY_HOST&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;mf&#34;&gt;0.0.0.0&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;&lt;/span&gt;&lt;span class=&#34;no&#34;&gt;ZEROCLAW_GATEWAY_PORT&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;8080&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;&lt;/span&gt;&lt;span class=&#34;c1&#34;&gt;// 数组使用逗号分隔&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;&lt;/span&gt;&lt;span class=&#34;no&#34;&gt;ZEROCLAW_AUTONOMY_ALLOWED_COMMANDS&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;git&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;ls&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;cat&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;grep&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;strong&gt;为什么支持环境变量？&lt;/strong&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>ZeroClaw-07-Provider生态与选型深度解析</title>
      <link>https://blog.dengqi.org/posts/zerocraw-07-provider%E7%94%9F%E6%80%81%E4%B8%8E%E9%80%89%E5%9E%8B/</link>
      <pubDate>Thu, 19 Feb 2026 12:00:00 +0800</pubDate>
      <guid>https://blog.dengqi.org/posts/zerocraw-07-provider%E7%94%9F%E6%80%81%E4%B8%8E%E9%80%89%E5%9E%8B/</guid>
      <description>&lt;h1 id=&#34;zeroclaw-07-provider生态与选型深度解析&#34;&gt;ZeroClaw-07-Provider生态与选型深度解析 &lt;a href=&#34;#zeroclaw-07-provider%e7%94%9f%e6%80%81%e4%b8%8e%e9%80%89%e5%9e%8b%e6%b7%b1%e5%ba%a6%e8%a7%a3%e6%9e%90&#34; class=&#34;anchor&#34;&gt;🔗&lt;/a&gt;&lt;/h1&gt;&lt;blockquote&gt;&#xA;&lt;p&gt;深入解析 ZeroClaw 支持的 AI 模型提供商生态，从设计原理到代码实现，理解如何在成本、质量、速度之间做出最优选择。&lt;/p&gt;&#xA;&lt;p&gt;适合阅读人群：技术决策者、架构师、成本控制人员&lt;/p&gt;</description>
    </item>
    <item>
      <title>ZeroClaw-08-项目代码组织结构深度解析</title>
      <link>https://blog.dengqi.org/posts/zerocraw-08-%E9%A1%B9%E7%9B%AE%E4%BB%A3%E7%A0%81%E7%BB%84%E7%BB%87%E7%BB%93%E6%9E%84/</link>
      <pubDate>Thu, 19 Feb 2026 12:00:00 +0800</pubDate>
      <guid>https://blog.dengqi.org/posts/zerocraw-08-%E9%A1%B9%E7%9B%AE%E4%BB%A3%E7%A0%81%E7%BB%84%E7%BB%87%E7%BB%93%E6%9E%84/</guid>
      <description>&lt;h1 id=&#34;zeroclaw-08-项目代码组织结构深度解析&#34;&gt;ZeroClaw-08-项目代码组织结构深度解析 &lt;a href=&#34;#zeroclaw-08-%e9%a1%b9%e7%9b%ae%e4%bb%a3%e7%a0%81%e7%bb%84%e7%bb%87%e7%bb%93%e6%9e%84%e6%b7%b1%e5%ba%a6%e8%a7%a3%e6%9e%90&#34; class=&#34;anchor&#34;&gt;🔗&lt;/a&gt;&lt;/h1&gt;&lt;blockquote&gt;&#xA;&lt;p&gt;本文档深入剖析 ZeroClaw 的代码库组织方式，解释每一个设计决策背后的思考，帮助开发者理解&amp;quot;为什么这样组织&amp;quot;而不仅是&amp;quot;怎样组织&amp;quot;。&lt;/p&gt;</description>
    </item>
    <item>
      <title>ZeroClaw-09-Rust模块与Trait架构深度解析</title>
      <link>https://blog.dengqi.org/posts/zerocraw-09-rust%E6%A8%A1%E5%9D%97%E4%B8%8Etrait%E6%9E%B6%E6%9E%84/</link>
      <pubDate>Thu, 19 Feb 2026 12:00:00 +0800</pubDate>
      <guid>https://blog.dengqi.org/posts/zerocraw-09-rust%E6%A8%A1%E5%9D%97%E4%B8%8Etrait%E6%9E%B6%E6%9E%84/</guid>
      <description>&lt;h1 id=&#34;zeroclaw-09-rust模块与trait架构深度解析&#34;&gt;ZeroClaw-09-Rust模块与Trait架构深度解析 &lt;a href=&#34;#zeroclaw-09-rust%e6%a8%a1%e5%9d%97%e4%b8%8etrait%e6%9e%b6%e6%9e%84%e6%b7%b1%e5%ba%a6%e8%a7%a3%e6%9e%90&#34; class=&#34;anchor&#34;&gt;🔗&lt;/a&gt;&lt;/h1&gt;&lt;blockquote&gt;&#xA;&lt;p&gt;深入解析 ZeroClaw 如何使用 Rust 的类型系统和 Trait 构建可扩展架构，理解每一个设计决策背后的权衡。&lt;/p&gt;&#xA;&lt;p&gt;适合阅读人群：Rust 开发者、架构师、想深入理解 ZeroClaw 核心设计的工程师&lt;/p&gt;</description>
    </item>
    <item>
      <title>ZeroClaw-10-构建系统深度解析</title>
      <link>https://blog.dengqi.org/posts/zerocraw-10-%E6%9E%84%E5%BB%BA%E7%B3%BB%E7%BB%9F%E8%AF%A6%E8%A7%A3/</link>
      <pubDate>Thu, 19 Feb 2026 12:00:00 +0800</pubDate>
      <guid>https://blog.dengqi.org/posts/zerocraw-10-%E6%9E%84%E5%BB%BA%E7%B3%BB%E7%BB%9F%E8%AF%A6%E8%A7%A3/</guid>
      <description>&lt;h1 id=&#34;zeroclaw-10-构建系统深度解析&#34;&gt;ZeroClaw-10-构建系统深度解析 &lt;a href=&#34;#zeroclaw-10-%e6%9e%84%e5%bb%ba%e7%b3%bb%e7%bb%9f%e6%b7%b1%e5%ba%a6%e8%a7%a3%e6%9e%90&#34; class=&#34;anchor&#34;&gt;🔗&lt;/a&gt;&lt;/h1&gt;&lt;blockquote&gt;&#xA;&lt;p&gt;深入解析 ZeroClaw 的 Cargo 配置、优化策略、交叉编译和 CI/CD，理解每一个编译参数背后的取舍。&lt;/p&gt;&#xA;&lt;p&gt;适合阅读人群：Rust 开发者、DevOps 工程师、需要优化构建流程的工程师&lt;/p&gt;</description>
    </item>
    <item>
      <title>ZeroClaw-11-开发工作流与测试深度解析</title>
      <link>https://blog.dengqi.org/posts/zerocraw-11-%E5%BC%80%E5%8F%91%E5%B7%A5%E4%BD%9C%E6%B5%81%E4%B8%8E%E6%B5%8B%E8%AF%95/</link>
      <pubDate>Thu, 19 Feb 2026 12:00:00 +0800</pubDate>
      <guid>https://blog.dengqi.org/posts/zerocraw-11-%E5%BC%80%E5%8F%91%E5%B7%A5%E4%BD%9C%E6%B5%81%E4%B8%8E%E6%B5%8B%E8%AF%95/</guid>
      <description>&lt;h1 id=&#34;zeroclaw-11-开发工作流与测试深度解析&#34;&gt;ZeroClaw-11-开发工作流与测试深度解析 &lt;a href=&#34;#zeroclaw-11-%e5%bc%80%e5%8f%91%e5%b7%a5%e4%bd%9c%e6%b5%81%e4%b8%8e%e6%b5%8b%e8%af%95%e6%b7%b1%e5%ba%a6%e8%a7%a3%e6%9e%90&#34; class=&#34;anchor&#34;&gt;🔗&lt;/a&gt;&lt;/h1&gt;&lt;blockquote&gt;&#xA;&lt;p&gt;深入解析 ZeroClaw 的 Git 工作流、代码标准、测试策略，理解每一个流程设计的背后考量。&lt;/p&gt;&#xA;&lt;p&gt;适合阅读人群：ZeroClaw 贡献者、DevOps 工程师、关注代码质量的工程师&lt;/p&gt;</description>
    </item>
    <item>
      <title>ZeroClaw-12-源码级依赖分析深度解析</title>
      <link>https://blog.dengqi.org/posts/zerocraw-12-%E6%BA%90%E7%A0%81%E7%BA%A7%E4%BE%9D%E8%B5%96%E5%88%86%E6%9E%90/</link>
      <pubDate>Thu, 19 Feb 2026 12:00:00 +0800</pubDate>
      <guid>https://blog.dengqi.org/posts/zerocraw-12-%E6%BA%90%E7%A0%81%E7%BA%A7%E4%BE%9D%E8%B5%96%E5%88%86%E6%9E%90/</guid>
      <description>&lt;h1 id=&#34;zeroclaw-12-源码级依赖分析深度解析&#34;&gt;ZeroClaw-12-源码级依赖分析深度解析 &lt;a href=&#34;#zeroclaw-12-%e6%ba%90%e7%a0%81%e7%ba%a7%e4%be%9d%e8%b5%96%e5%88%86%e6%9e%90%e6%b7%b1%e5%ba%a6%e8%a7%a3%e6%9e%90&#34; class=&#34;anchor&#34;&gt;🔗&lt;/a&gt;&lt;/h1&gt;&lt;blockquote&gt;&#xA;&lt;p&gt;深入解析 Cargo.toml 中的每一个依赖，理解为什么选它、替代方案是什么、取舍分析。&lt;/p&gt;&#xA;&lt;p&gt;适合阅读人群：想了解 ZeroClaw 技术选型的工程师、需要优化依赖的开发者&lt;/p&gt;&lt;/blockquote&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;引言依赖选择的重要性&#34;&gt;引言：依赖选择的重要性 &lt;a href=&#34;#%e5%bc%95%e8%a8%80%e4%be%9d%e8%b5%96%e9%80%89%e6%8b%a9%e7%9a%84%e9%87%8d%e8%a6%81%e6%80%a7&#34; class=&#34;anchor&#34;&gt;🔗&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;&lt;strong&gt;依赖是技术债务的一种形式&lt;/strong&gt;。&lt;/p&gt;&#xA;&lt;p&gt;每一个依赖都意味着：&lt;/p&gt;</description>
    </item>
    <item>
      <title>ZeroClaw-13-bootstrap与安装系统源码分析深度解析</title>
      <link>https://blog.dengqi.org/posts/zerocraw-13-bootstrap%E4%B8%8E%E5%AE%89%E8%A3%85%E7%B3%BB%E7%BB%9F%E6%BA%90%E7%A0%81%E5%88%86%E6%9E%90/</link>
      <pubDate>Thu, 19 Feb 2026 12:00:00 +0800</pubDate>
      <guid>https://blog.dengqi.org/posts/zerocraw-13-bootstrap%E4%B8%8E%E5%AE%89%E8%A3%85%E7%B3%BB%E7%BB%9F%E6%BA%90%E7%A0%81%E5%88%86%E6%9E%90/</guid>
      <description>&lt;h1 id=&#34;zeroclaw-13-bootstrap与安装系统源码分析深度解析&#34;&gt;ZeroClaw-13-bootstrap与安装系统源码分析深度解析 &lt;a href=&#34;#zeroclaw-13-bootstrap%e4%b8%8e%e5%ae%89%e8%a3%85%e7%b3%bb%e7%bb%9f%e6%ba%90%e7%a0%81%e5%88%86%e6%9e%90%e6%b7%b1%e5%ba%a6%e8%a7%a3%e6%9e%90&#34; class=&#34;anchor&#34;&gt;🔗&lt;/a&gt;&lt;/h1&gt;&lt;blockquote&gt;&#xA;&lt;p&gt;深入解析 bootstrap.sh 安装脚本的每一行代码，理解错误处理、安全考虑、跨平台兼容的设计决策。&lt;/p&gt;&#xA;&lt;p&gt;适合阅读人群：想了解 ZeroClaw 安装流程的开发者、需要编写类似脚本的 DevOps 工程师&lt;/p&gt;</description>
    </item>
    <item>
      <title>ZeroClaw-14-核心模块源码走读深度解析</title>
      <link>https://blog.dengqi.org/posts/zerocraw-14-%E6%A0%B8%E5%BF%83%E6%A8%A1%E5%9D%97%E6%BA%90%E7%A0%81%E8%B5%B0%E8%AF%BB/</link>
      <pubDate>Thu, 19 Feb 2026 12:00:00 +0800</pubDate>
      <guid>https://blog.dengqi.org/posts/zerocraw-14-%E6%A0%B8%E5%BF%83%E6%A8%A1%E5%9D%97%E6%BA%90%E7%A0%81%E8%B5%B0%E8%AF%BB/</guid>
      <description>&lt;h1 id=&#34;zeroclaw-14-核心模块源码走读深度解析&#34;&gt;ZeroClaw-14-核心模块源码走读深度解析 &lt;a href=&#34;#zeroclaw-14-%e6%a0%b8%e5%bf%83%e6%a8%a1%e5%9d%97%e6%ba%90%e7%a0%81%e8%b5%b0%e8%af%bb%e6%b7%b1%e5%ba%a6%e8%a7%a3%e6%9e%90&#34; class=&#34;anchor&#34;&gt;🔗&lt;/a&gt;&lt;/h1&gt;&lt;blockquote&gt;&#xA;&lt;p&gt;深入阅读 main.rs、lib.rs 和核心模块源码，理解入口点、模块结构和执行流程。&lt;/p&gt;&#xA;&lt;p&gt;适合阅读人群：想深入了解 ZeroClaw 内部实现的开发者、需要调试或扩展代码的工程师&lt;/p&gt;</description>
    </item>
    <item>
      <title>消失的入场券：在被透支的世界里，全球青年为何集体拒绝“接盘”？</title>
      <link>https://blog.dengqi.org/posts/%E6%B6%88%E5%A4%B1%E7%9A%84%E5%85%A5%E5%9C%BA%E5%88%B8%E5%9C%A8%E8%A2%AB%E9%80%8F%E6%94%AF%E7%9A%84%E4%B8%96%E7%95%8C%E9%87%8C%E5%85%A8%E7%90%83%E9%9D%92%E5%B9%B4%E4%B8%BA%E4%BD%95%E9%9B%86%E4%BD%93%E6%8B%92%E7%BB%9D%E6%8E%A5%E7%9B%98/</link>
      <pubDate>Wed, 24 Dec 2025 00:00:00 +0000</pubDate>
      <guid>https://blog.dengqi.org/posts/%E6%B6%88%E5%A4%B1%E7%9A%84%E5%85%A5%E5%9C%BA%E5%88%B8%E5%9C%A8%E8%A2%AB%E9%80%8F%E6%94%AF%E7%9A%84%E4%B8%96%E7%95%8C%E9%87%8C%E5%85%A8%E7%90%83%E9%9D%92%E5%B9%B4%E4%B8%BA%E4%BD%95%E9%9B%86%E4%BD%93%E6%8B%92%E7%BB%9D%E6%8E%A5%E7%9B%98/</guid>
      <description>&lt;p&gt;从东京街头只身一人的“草食男”（Herbivore Men），到纽约外卖快餐中的“白人饭”（White People Meal），再到东亚社交媒体上广泛流传的“躺平”自嘲，一种无色无味的“低欲望”迷雾正在全球年轻一代中蔓延。这并非某个国家的特殊病灶，而是一场跨越国界的集体共振。我们曾以为这仅仅是意志的消沉或竞争的逃避，但当我们深入剖析当前资本体系的底层架构时，会发现这背后隐藏着一个令人心碎的真相：对于当下的年轻人来说，传统意义上的“努力”正逐渐沦为一场回报率为负的虚无游戏。&lt;/p&gt;</description>
    </item>
    <item>
      <title>🌱 Spec Kit: A Specification-Driven Development Framework</title>
      <link>https://blog.dengqi.org/posts/spec-kit-readme/</link>
      <pubDate>Mon, 22 Sep 2025 00:00:00 +0000</pubDate>
      <guid>https://blog.dengqi.org/posts/spec-kit-readme/</guid>
      <description>&lt;div align=&#34;center&#34;&gt;&#xA;    &lt;img src=&#34;https://raw.githubusercontent.com/github/spec-kit/refs/heads/main/media/logo_small.webp&#34;/&gt;&#xA;    &lt;h1&gt;🌱 Spec Kit&lt;/h1&gt;&#xA;    &lt;h3&gt;&lt;em&gt;Build high-quality software faster.&lt;/em&gt;&lt;/h3&gt;&#xA;&lt;/div&gt;&#xA;&lt;p align=&#34;center&#34;&gt;  &#xA;    &lt;strong&gt;借助 Spec-Driven Development，让组织能够专注于产品场景，而不是编写无差异化的代码。&lt;/strong&gt;  &#xA;&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://github.com/github/spec-kit/actions/workflows/release.yml&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;&lt;p class=&#34;markdown-image&#34;&gt;&#xA;  &lt;img src=&#34;https://github.com/github/spec-kit/actions/workflows/release.yml/badge.svg&#34; alt=&#34;Release&#34;  /&gt;&#xA;&lt;/p&gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;!-- ## 目录&#xA;&#xA;[TOC] --&gt;&#xA;&lt;h2 id=&#34;-什么是-spec-driven-development&#34;&gt;🤔 什么是 Spec-Driven Development？ &lt;a href=&#34;#-%e4%bb%80%e4%b9%88%e6%98%af-spec-driven-development&#34; class=&#34;anchor&#34;&gt;🔗&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;Spec-Driven Development &lt;strong&gt;颠覆了传统的软件开发方式&lt;/strong&gt;。在过去的几十年里，代码一直是核心——规范只是辅助的脚手架，一旦“真正的工作”开始，规范便被丢弃。Spec-Driven Development 改变了这一点：&lt;strong&gt;规范变为可执行的&lt;/strong&gt;，它们直接生成可工作的实现，而不仅仅是指导实现。&lt;/p&gt;</description>
    </item>
    <item>
      <title>ClaudeCode Hook 中文文档</title>
      <link>https://blog.dengqi.org/posts/claudecode%E7%9A%84hook%E6%96%87%E6%A1%A3/</link>
      <pubDate>Mon, 22 Sep 2025 06:02:34 +0800</pubDate>
      <guid>https://blog.dengqi.org/posts/claudecode%E7%9A%84hook%E6%96%87%E6%A1%A3/</guid>
      <description>&lt;p&gt;这份文档详细介绍了 &lt;strong&gt;Claude Code Hooks&lt;/strong&gt; 的配置与使用方法。Hooks 提供了一种灵活的机制，让你能够在 Claude Code 的不同事件触发点（如工具调用前后、会话开始或结束、用户提交提示时等）自动执行自定义脚本或命令。通过合理配置钩子，你可以扩展 Claude Code 的能力，实现工作流自动化、代码质量检查、安全策略执行以及项目环境定制化等功能。文档同时涵盖了输入输出规范、安全注意事项、调试方法以及与 MCP 工具的集成方式，帮助你在保证安全和稳定的前提下，充分发挥 Claude Code 的可扩展性。&lt;/p&gt;</description>
    </item>
    <item>
      <title>ClaudeCode Subagents 中文文档</title>
      <link>https://blog.dengqi.org/posts/claudecode%E7%9A%84subagents%E6%96%87%E6%A1%A3/</link>
      <pubDate>Mon, 22 Sep 2025 06:02:34 +0800</pubDate>
      <guid>https://blog.dengqi.org/posts/claudecode%E7%9A%84subagents%E6%96%87%E6%A1%A3/</guid>
      <description>&lt;pre class=&#34;mermaid&#34;&gt;mindmap&#xA;  root((Claude Code 子代理指南))&#xA;    什么是子代理&#xA;      子代理的定义&#xA;      特点&#xA;        特定用途和专业领域&#xA;        独立上下文窗口&#xA;        可配置工具&#xA;        自定义系统提示&#xA;      委派任务&#xA;    关键优势&#xA;    快速开始&#xA;    子代理配置&#xA;      文件位置&#xA;        项目子代理&#xA;        用户子代理&#xA;      文件格式&#xA;      配置字段&#xA;        name&#xA;        description&#xA;        tools&#xA;        model&#xA;      模型选择&#xA;      可用工具&#xA;    管理子代理&#xA;      使用 /agents 命令&#xA;      直接文件管理&#xA;    有效使用子代理&#xA;      自动委派&#xA;      显式调用&#xA;      示例子代理&#xA;        代码审查员&#xA;        调试器&#xA;        数据科学家&#xA;    最佳实践&#xA;      从 Claude 生成的子代理开始&#xA;      设计专注的子代理&#xA;      编写详细提示&#xA;      限制工具访问&#xA;      版本控制&#xA;    高级用法&#xA;      子代理链式调用&#xA;      动态子代理选择&#xA;    性能考量&#xA;      上下文效率&#xA;      延迟&#xA;    更多资源&#xA;      斜杠命令&#xA;      设置&#xA;      Hooks&#xA;&lt;/pre&gt;&#xA;&#xA;&#xA;&#xA;&lt;div class=&#34;markmap&#34;&gt;&#xA;  &lt;script type=&#34;text/template&#34;&gt;# Claude Code 子代理指南&#xA;## 什么是子代理&#xA;- 子代理的定义&#xA;- 特点&#xA;  - 特定用途和专业领域&#xA;  - 独立上下文窗口&#xA;  - 可配置工具&#xA;  - 自定义系统提示&#xA;- 委派任务&#xA;## 关键优势&#xA;## 快速开始&#xA;## 子代理配置&#xA;- 文件位置&#xA;  - 项目子代理&#xA;  - 用户子代理&#xA;- 文件格式&#xA;- 配置字段&#xA;  - name&#xA;  - description&#xA;  - tools&#xA;  - model&#xA;- 模型选择&#xA;- 可用工具&#xA;## 管理子代理&#xA;- 使用 /agents 命令&#xA;- 直接文件管理&#xA;## 有效使用子代理&#xA;- 自动委派&#xA;- 显式调用&#xA;- 示例子代理&#xA;  - 代码审查员&#xA;  - 调试器&#xA;  - 数据科学家&#xA;## 最佳实践&#xA;- 从 Claude 生成的子代理开始&#xA;- 设计专注的子代理&#xA;- 编写详细提示&#xA;- 限制工具访问&#xA;- 版本控制&#xA;## 高级用法&#xA;- 子代理链式调用&#xA;- 动态子代理选择&#xA;## 性能考量&#xA;- 上下文效率&#xA;- 延迟&#xA;## 更多资源&#xA;- 斜杠命令&#xA;- 设置&#xA;- Hooks&lt;/script&gt;&#xA;&lt;/div&gt;&lt;p&gt;Claude Code 中的自定义子代理（Custom subagents）是专门的 AI 助手，可以被调用来处理特定类型的任务。它们通过提供针对任务的定制化系统提示（system prompts）、工具以及独立的上下文窗口，从而实现更高效的问题解决。&lt;/p&gt;</description>
    </item>
    <item>
      <title>规范驱动开发（SDD）全解：从理念到实践</title>
      <link>https://blog.dengqi.org/posts/%E8%A7%84%E8%8C%83%E9%A9%B1%E5%8A%A8%E5%BC%80%E5%8F%91sdd%E5%85%A8%E8%A7%A3%E4%BB%8E%E7%90%86%E5%BF%B5%E5%88%B0%E5%AE%9E%E8%B7%B5%E7%BF%BB%E8%AF%91/</link>
      <pubDate>Sun, 21 Sep 2025 00:00:00 +0000</pubDate>
      <guid>https://blog.dengqi.org/posts/%E8%A7%84%E8%8C%83%E9%A9%B1%E5%8A%A8%E5%BC%80%E5%8F%91sdd%E5%85%A8%E8%A7%A3%E4%BB%8E%E7%90%86%E5%BF%B5%E5%88%B0%E5%AE%9E%E8%B7%B5%E7%BF%BB%E8%AF%91/</guid>
      <description>&lt;pre class=&#34;mermaid&#34;&gt;mindmap&#xA;  root((规范驱动开发 SDD))&#xA;    (&#34;权力的反转&#34;)&#xA;      (&#34;代码曾为王，规范附庸&#34;)&#xA;      (&#34;SDD 反转：代码服务于规范&#34;)&#xA;      (&#34;消除规范与实现的鸿沟&#34;)&#xA;      (&#34;AI 让规范可执行&#34;)&#xA;    (&#34;SDD 工作流实践&#34;)&#xA;      (&#34;从模糊想法到完整 PRD&#34;)&#xA;      (&#34;AI 提问澄清 → 定义验收标准&#34;)&#xA;      (&#34;研究代理收集上下文&#34;)&#xA;      (&#34;生成实现计划：技术决策可追溯&#34;)&#xA;      (&#34;规范驱动测试与代码生成&#34;)&#xA;      (&#34;生产反馈 → 更新规范&#34;)&#xA;    (&#34;为什么 SDD 恰逢其时&#34;)&#xA;      (&#34;AI 已能可靠生成代码&#34;)&#xA;      (&#34;软件复杂性指数级增长&#34;)&#xA;      (&#34;需求变化更频繁&#34;)&#xA;      (&#34;SDD 将变更转化为系统性再生成&#34;)&#xA;    (&#34;核心原则&#34;)&#xA;      (&#34;规范是通用语言&#34;)&#xA;      (&#34;规范可执行&#34;)&#xA;      (&#34;持续精炼&#34;)&#xA;      (&#34;研究驱动上下文&#34;)&#xA;      (&#34;双向反馈&#34;)&#xA;      (&#34;分支探索优化目标&#34;)&#xA;    (&#34;实施途径&#34;)&#xA;      (&#34;AI 助手：迭代规范&#34;)&#xA;      (&#34;研究代理：收集上下文&#34;)&#xA;      (&#34;代码生成工具&#34;)&#xA;      (&#34;版本控制：规范优先&#34;)&#xA;      (&#34;AI 一致性检查&#34;)&#xA;    (&#34;命令简化 SDD&#34;)&#xA;      (&#34;/specify → 生成规范&#34;)&#xA;      (&#34;/plan → 实现计划&#34;)&#xA;      (&#34;/tasks → 可执行任务清单&#34;)&#xA;      (&#34;示例：聊天功能开发&#34;)&#xA;    (&#34;结构化自动化&#34;)&#xA;      (&#34;模板保障完整性与一致性&#34;)&#xA;      (&#34;避免过早实现细节&#34;)&#xA;      (&#34;强制标记不确定性&#34;)&#xA;      (&#34;清单驱动结构化思考&#34;)&#xA;      (&#34;架构关卡：简洁/反抽象/集成优先&#34;)&#xA;      (&#34;分层信息架构&#34;)&#xA;      (&#34;测试优先顺序&#34;)&#xA;      (&#34;避免推测性功能&#34;)&#xA;    (&#34;复合效应&#34;)&#xA;      (&#34;规范完整、无歧义、可测试、可维护、可实现&#34;)&#xA;      (&#34;LLM 从写手 → 规范工程师&#34;)&#xA;    (&#34;宪法基础&#34;)&#xA;      (&#34;九条原则&#34;)&#xA;        (&#34;库优先&#34;)&#xA;        (&#34;CLI 强制&#34;)&#xA;        (&#34;测试优先&#34;)&#xA;        (&#34;简洁 &amp; 反抽象&#34;)&#xA;        (&#34;集成优先测试&#34;)&#xA;      (&#34;模板执行：关卡检查&#34;)&#xA;      (&#34;不可变原则：保持一致与质量保障&#34;)&#xA;      (&#34;宪法演化：修订流程&#34;)&#xA;      (&#34;开发哲学：可观测、简洁、集成、模块化&#34;)&#xA;    (&#34;转变&#34;)&#xA;      (&#34;不是取代开发者，而是增强能力&#34;)&#xA;      (&#34;通过可执行规范保持意图与实现的对齐&#34;)&#xA;&lt;/pre&gt;&#xA;&#xA;&#xA;&#xA;&lt;div class=&#34;markmap&#34;&gt;&#xA;  &lt;script type=&#34;text/template&#34;&gt;# 规范驱动开发 SDD&#xA;&#xA;## 权力的反转&#xA;- 代码曾为王，规范附庸&#xA;- SDD 反转：代码服务于规范&#xA;- 消除规范与实现的鸿沟&#xA;- AI 让规范可执行&#xA;&#xA;## SDD 工作流实践&#xA;- 从模糊想法到完整 PRD&#xA;- AI 提问澄清 → 定义验收标准&#xA;- 研究代理收集上下文&#xA;- 生成实现计划：技术决策可追溯&#xA;- 规范驱动测试与代码生成&#xA;- 生产反馈 → 更新规范&#xA;&#xA;## 为什么 SDD 恰逢其时&#xA;- AI 已能可靠生成代码&#xA;- 软件复杂性指数级增长&#xA;- 需求变化更频繁&#xA;- SDD 将变更转化为系统性再生成&#xA;&#xA;## 核心原则&#xA;- 规范是通用语言&#xA;- 规范可执行&#xA;- 持续精炼&#xA;- 研究驱动上下文&#xA;- 双向反馈&#xA;- 分支探索优化目标&#xA;&#xA;## 实施途径&#xA;- AI 助手：迭代规范&#xA;- 研究代理：收集上下文&#xA;- 代码生成工具&#xA;- 版本控制：规范优先&#xA;- AI 一致性检查&#xA;&#xA;## 命令简化 SDD&#xA;- /specify → 生成规范&#xA;- /plan → 实现计划&#xA;- /tasks → 可执行任务清单&#xA;- 示例：聊天功能开发&#xA;&#xA;## 结构化自动化&#xA;- 模板保障完整性与一致性&#xA;- 避免过早实现细节&#xA;- 强制标记不确定性&#xA;- 清单驱动结构化思考&#xA;- 架构关卡：简洁 / 反抽象 / 集成优先&#xA;- 分层信息架构&#xA;- 测试优先顺序&#xA;- 避免推测性功能&#xA;&#xA;## 复合效应&#xA;- 规范完整、无歧义、可测试、可维护、可实现&#xA;- LLM 从写手 → 规范工程师&#xA;&#xA;## 宪法基础&#xA;- 九条原则&#xA;  - 库优先&#xA;  - CLI 强制&#xA;  - 测试优先&#xA;  - 简洁 &amp; 反抽象&#xA;  - 集成优先测试&#xA;- 模板执行：关卡检查&#xA;- 不可变原则：保持一致与质量保障&#xA;- 宪法演化：修订流程&#xA;- 开发哲学：可观测、简洁、集成、模块化&#xA;&#xA;## 转变&#xA;- 不是取代开发者，而是增强能力&#xA;- 通过可执行规范保持意图与实现的对齐&lt;/script&gt;&#xA;&lt;/div&gt;&lt;h2 id=&#34;权力的反转&#34;&gt;权力的反转 &lt;a href=&#34;#%e6%9d%83%e5%8a%9b%e7%9a%84%e5%8f%8d%e8%bd%ac&#34; class=&#34;anchor&#34;&gt;🔗&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;几十年来，代码一直是王者。规范服务于代码——它们是我们搭建的脚手架，而一旦“真正的工作”——写代码——开始了，规范就被丢弃。我们写 PRD（产品需求文档）来指导开发，写设计文档来辅助实现，画架构图来帮助可视化。但这些始终从属于代码本身。代码才是事实真相，其它最多只是“美好意图”。代码是唯一的真理来源，而当代码不断演进时，规范几乎从来跟不上。由于资产（代码）和实现是同一个东西，没有直接基于代码去构建，就很难做到并行实现。&lt;/p&gt;</description>
    </item>
    <item>
      <title>Docker部署cloudflared并且用sing-box 添加前置代理</title>
      <link>https://blog.dengqi.org/posts/docker%E9%83%A8%E7%BD%B2cloudflared%E5%B9%B6%E4%B8%94%E7%94%A8sing-box%E6%B7%BB%E5%8A%A0%E5%89%8D%E7%BD%AE%E4%BB%A3%E7%90%86/</link>
      <pubDate>Wed, 01 May 2024 00:00:00 +0000</pubDate>
      <guid>https://blog.dengqi.org/posts/docker%E9%83%A8%E7%BD%B2cloudflared%E5%B9%B6%E4%B8%94%E7%94%A8sing-box%E6%B7%BB%E5%8A%A0%E5%89%8D%E7%BD%AE%E4%BB%A3%E7%90%86/</guid>
      <description>&lt;h2 id=&#34;singbox-安装使用&#34;&gt;SingBox 安装使用 &lt;a href=&#34;#singbox-%e5%ae%89%e8%a3%85%e4%bd%bf%e7%94%a8&#34; class=&#34;anchor&#34;&gt;🔗&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;建议使用 docker-compose 部署， 先看 &lt;a href=&#34;https://blog.xmgspace.me/archives/cloudflare-tunnel-via-proxy.html&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Cloudflare Tunnel 速度慢？尝试给它加个前置代理提高速度 - Xiaomage&amp;rsquo;s Blog&lt;/a&gt; 和 &lt;a href=&#34;https://sing-box.sagernet.org/zh/configuration/inbound/tun/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;https://sing-box.sagernet.org/zh/configuration/inbound/tun/&lt;/a&gt; 来学习哪些需要走透明代理，怎么搞透明代理。&lt;/p&gt;&#xA;&lt;h3 id=&#34;docker-compose-部署-singbox&#34;&gt;docker-compose 部署 singbox &lt;a href=&#34;#docker-compose-%e9%83%a8%e7%bd%b2-singbox&#34; class=&#34;anchor&#34;&gt;🔗&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;给一个例子:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-yaml&#34; data-lang=&#34;yaml&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nt&#34;&gt;version&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;3&amp;#34;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;&lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;networks&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;  &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;proxy&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;external&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;kc&#34;&gt;true&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;&lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;services&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;  &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;sing-box&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;image&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;l&#34;&gt;ghcr.io/sagernet/sing-box&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;container_name&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;l&#34;&gt;sing-box&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;restart&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;l&#34;&gt;always&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;network_mode&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;l&#34;&gt;host&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;privileged&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;kc&#34;&gt;true&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;cap_add&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;      &lt;/span&gt;- &lt;span class=&#34;l&#34;&gt;NET_ADMIN&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;volumes&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;      &lt;/span&gt;- &lt;span class=&#34;l&#34;&gt;./singbox:/etc/sing-box/&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;command&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;-&lt;span class=&#34;l&#34;&gt;D /var/lib/sing-box -C /etc/sing-box/ run&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;配置文件例子，注意按需添加自己的服务器。&lt;/p&gt;</description>
    </item>
    <item>
      <title>使用 Windows 自带 ssh 的 X11转发功能并配置 ssh 和 VSCode</title>
      <link>https://blog.dengqi.org/posts/%E4%BD%BF%E7%94%A8-windows-%E8%87%AA%E5%B8%A6ssh%E7%9A%84x11%E8%BD%AC%E5%8F%91%E5%8A%9F%E8%83%BD%E5%B9%B6%E9%85%8D%E7%BD%AEssh%E5%92%8Cvscode/</link>
      <pubDate>Sun, 09 Jul 2023 00:00:00 +0000</pubDate>
      <guid>https://blog.dengqi.org/posts/%E4%BD%BF%E7%94%A8-windows-%E8%87%AA%E5%B8%A6ssh%E7%9A%84x11%E8%BD%AC%E5%8F%91%E5%8A%9F%E8%83%BD%E5%B9%B6%E9%85%8D%E7%BD%AEssh%E5%92%8Cvscode/</guid>
      <description>&lt;blockquote&gt;&#xA;&lt;p&gt;注意本教程也适用于 MacOS 和 Linux 哦。&lt;/p&gt;&lt;/blockquote&gt;&#xA;&lt;h2 id=&#34;1-确认自带的-ssh-支持-x11-forwarding&#34;&gt;1. 确认自带的 ssh 支持 X11 forwarding &lt;a href=&#34;#1-%e7%a1%ae%e8%ae%a4%e8%87%aa%e5%b8%a6%e7%9a%84-ssh-%e6%94%af%e6%8c%81-x11-forwarding&#34; class=&#34;anchor&#34;&gt;🔗&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;一般来说 Windows 10 version 1809 及之后的 Windows 版本都内置了 &lt;code&gt;ssh&lt;/code&gt; 客户端，这个客户端是带有 &lt;code&gt;X11&lt;/code&gt; 功能的。但是，直到 &lt;code&gt;ssh&lt;/code&gt; 客户端到 &lt;code&gt;version 8.1p1&lt;/code&gt; 时才完整的实现了对 &lt;code&gt;X11 forwarding&lt;/code&gt; 的支持。&lt;/p&gt;</description>
    </item>
    <item>
      <title>Eigen 库学习指南1-稠密矩阵和数组的运算(一)</title>
      <link>https://blog.dengqi.org/posts/eigen%E5%BA%93%E5%AD%A6%E4%B9%A0%E6%8C%87%E5%8D%971-%E7%A8%A0%E5%AF%86%E7%9F%A9%E9%98%B5%E5%92%8C%E6%95%B0%E7%BB%84%E7%9A%84%E8%BF%90%E7%AE%97%E4%B8%80/</link>
      <pubDate>Wed, 18 Jan 2023 00:00:00 +0000</pubDate>
      <guid>https://blog.dengqi.org/posts/eigen%E5%BA%93%E5%AD%A6%E4%B9%A0%E6%8C%87%E5%8D%971-%E7%A8%A0%E5%AF%86%E7%9F%A9%E9%98%B5%E5%92%8C%E6%95%B0%E7%BB%84%E7%9A%84%E8%BF%90%E7%AE%97%E4%B8%80/</guid>
      <description>&lt;p&gt;翻译: Qi Deng&lt;/p&gt;&#xA;&lt;h2 id=&#34;简介&#34;&gt;简介 &lt;a href=&#34;#%e7%ae%80%e4%bb%8b&#34; class=&#34;anchor&#34;&gt;🔗&lt;/a&gt;&lt;/h2&gt;&lt;h3 id=&#34;eigen-的介绍&#34;&gt;Eigen 的介绍 &lt;a href=&#34;#eigen-%e7%9a%84%e4%bb%8b%e7%bb%8d&#34; class=&#34;anchor&#34;&gt;🔗&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;Eigen 是一个高级 C++ 库，包含用于线性代数、矩阵和向量运算、几何变换、数值求解器和相关算法的模板头文件。 Eigen 是自 3.1.1 版起根据 Mozilla Public License 2.0 许可的开源软件。早期版本是根据 GNU 宽松通用公共许可证获得许可的。 [2] 1.0 版于 2006 年 12 月发布&lt;/p&gt;</description>
    </item>
    <item>
      <title>Eigen 库学习指南2-稠密矩阵和数组的运算(二)</title>
      <link>https://blog.dengqi.org/posts/eigen%E5%BA%93%E5%AD%A6%E4%B9%A0%E6%8C%87%E5%8D%972-%E7%A8%A0%E5%AF%86%E7%9F%A9%E9%98%B5%E5%92%8C%E6%95%B0%E7%BB%84%E7%9A%84%E8%BF%90%E7%AE%97%E4%BA%8C/</link>
      <pubDate>Wed, 18 Jan 2023 00:00:00 +0000</pubDate>
      <guid>https://blog.dengqi.org/posts/eigen%E5%BA%93%E5%AD%A6%E4%B9%A0%E6%8C%87%E5%8D%972-%E7%A8%A0%E5%AF%86%E7%9F%A9%E9%98%B5%E5%92%8C%E6%95%B0%E7%BB%84%E7%9A%84%E8%BF%90%E7%AE%97%E4%BA%8C/</guid>
      <description>&lt;p&gt;翻译: Qi Deng&lt;/p&gt;&#xA;&lt;h2 id=&#34;切片和索引&#34;&gt;切片和索引 &lt;a href=&#34;#%e5%88%87%e7%89%87%e5%92%8c%e7%b4%a2%e5%bc%95&#34; class=&#34;anchor&#34;&gt;🔗&lt;/a&gt;&lt;/h2&gt;&lt;h2 id=&#34;高级初始化&#34;&gt;高级初始化 &lt;a href=&#34;#%e9%ab%98%e7%ba%a7%e5%88%9d%e5%a7%8b%e5%8c%96&#34; class=&#34;anchor&#34;&gt;🔗&lt;/a&gt;&lt;/h2&gt;&lt;h3 id=&#34;逗号表达式---之前已经提过了&#34;&gt;逗号表达式 -&amp;gt; 之前已经提过了 &lt;a href=&#34;#%e9%80%97%e5%8f%b7%e8%a1%a8%e8%be%be%e5%bc%8f---%e4%b9%8b%e5%89%8d%e5%b7%b2%e7%bb%8f%e6%8f%90%e8%bf%87%e4%ba%86&#34; class=&#34;anchor&#34;&gt;🔗&lt;/a&gt;&lt;/h3&gt;&lt;h3 id=&#34;特殊矩阵和数组&#34;&gt;特殊矩阵和数组 &lt;a href=&#34;#%e7%89%b9%e6%ae%8a%e7%9f%a9%e9%98%b5%e5%92%8c%e6%95%b0%e7%bb%84&#34; class=&#34;anchor&#34;&gt;🔗&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;Matrix 和 Array 类有像 Zero() 这样的静态方法，可用于将所有系数初始化为零。共有三种变体。第一个变体不带参数，只能用于固定大小的对象。如果要将动态大小的对象初始化为零，则需要指定大小。因此，第二个变体需要一个参数，可用于一维动态大小的对象，而第三个变体需要两个参数，可用于二维对象。以下示例说明了所有三种变体：&lt;/p&gt;</description>
    </item>
    <item>
      <title>Markdown Syntax Guide</title>
      <link>https://blog.dengqi.org/posts/markdown-syntax/</link>
      <pubDate>Sun, 11 Mar 2018 00:00:00 +0000</pubDate>
      <guid>https://blog.dengqi.org/posts/markdown-syntax/</guid>
      <description>&lt;p&gt;This article offers a sample of basic Markdown syntax that can be used in Hugo content files, also it shows whether basic HTML elements are decorated with CSS in a Hugo theme.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Rich Content</title>
      <link>https://blog.dengqi.org/posts/rich-content/</link>
      <pubDate>Sat, 10 Mar 2018 00:00:00 +0000</pubDate>
      <guid>https://blog.dengqi.org/posts/rich-content/</guid>
      <description>&lt;p&gt;Hugo ships with several &lt;a href=&#34;https://gohugo.io/content-management/shortcodes/#use-hugos-built-in-shortcodes&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Built-in Shortcodes&lt;/a&gt; for rich content, along with a &lt;a href=&#34;https://gohugo.io/about/hugo-and-gdpr/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Privacy Config&lt;/a&gt; and a set of Simple Shortcodes that enable static and no-JS versions of various social media embeds.&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
