<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>OpenClaw on OHTLY Blog</title>
    <link>https://blog.ohtly.com/tags/openclaw/</link>
    <description>Recent content in OpenClaw on OHTLY Blog</description>
    <generator>Hugo</generator>
    <language>zh-cn</language>
    <lastBuildDate>Fri, 29 May 2026 19:10:00 +0800</lastBuildDate>
    <atom:link href="https://blog.ohtly.com/tags/openclaw/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>告警通知到飞书：Alertmanager → OpenClaw 中转方案</title>
      <link>https://blog.ohtly.com/posts/2026-05-29-alertmanager-feishu/</link>
      <pubDate>Fri, 29 May 2026 19:10:00 +0800</pubDate>
      <guid>https://blog.ohtly.com/posts/2026-05-29-alertmanager-feishu/</guid>
      <description>&lt;p&gt;前两篇介绍了用 Alloy + Loki Ruler 实现日志告警：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://blog.ohtly.com/posts/2026-05-29-couchdb-loki-monitoring/&#34; &gt;CouchDB 日志监控&lt;/a&gt;：文本日志的 LogQL 告警&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://blog.ohtly.com/posts/2026-05-29-windmill-loki-monitoring/&#34; &gt;Windmill 日志监控&lt;/a&gt;：JSON 日志的 LogQL 告警&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;两条链路最终都汇入 Alertmanager，由它统一分派到飞书。但 Alertmanager 原生没有飞书 receiver——它的 webhook 输出的是原始 JSON，飞书看不懂。中间需要一层适配器来转换格式。这个适配器就是 &lt;strong&gt;alert-transformer&lt;/strong&gt;。&lt;/p&gt;</description>
    </item>
    <item>
      <title>OpenClaw 异步通知：Agent Turn 与 Wake 选型指南</title>
      <link>https://blog.ohtly.com/posts/2026-05-27-openclaw-message-agent-turn-vs-wake/</link>
      <pubDate>Wed, 27 May 2026 19:20:00 +0800</pubDate>
      <guid>https://blog.ohtly.com/posts/2026-05-27-openclaw-message-agent-turn-vs-wake/</guid>
      <description>&lt;h2 id=&#34;为什么需要这个&#34;&gt;&#xA;  为什么需要这个&#xA;  &lt;a class=&#34;heading-link&#34; href=&#34;#%e4%b8%ba%e4%bb%80%e4%b9%88%e9%9c%80%e8%a6%81%e8%bf%99%e4%b8%aa&#34;&gt;&#xA;    &lt;i class=&#34;fa-solid fa-link&#34; aria-hidden=&#34;true&#34; title=&#34;链接到标题&#34;&gt;&lt;/i&gt;&#xA;    &lt;span class=&#34;sr-only&#34;&gt;链接到标题&lt;/span&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;AI Agent 经常需要执行耗时较长的异步任务（视频剪辑、字幕生成、模型推理等）。任务完成后，如何通知用户？&lt;/p&gt;&#xA;&lt;p&gt;有三种常见实现方式：&lt;/p&gt;&#xA;&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;优点&lt;/th&gt;&#xA;          &lt;th&gt;缺点&lt;/th&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;strong&gt;同步等待&lt;/strong&gt;&lt;/td&gt;&#xA;          &lt;td&gt;发起任务 → 一直等到完成 → 返回结果&lt;/td&gt;&#xA;          &lt;td&gt;实现简单&lt;/td&gt;&#xA;          &lt;td&gt;长时间阻塞，用户体验差&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;strong&gt;异步轮询&lt;/strong&gt;&lt;/td&gt;&#xA;          &lt;td&gt;发起任务 → 拿到 job_id → 不断查询 → 完成&lt;/td&gt;&#xA;          &lt;td&gt;不阻塞&lt;/td&gt;&#xA;          &lt;td&gt;对话不能断开，浪费 token&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;strong&gt;异步+通知&lt;/strong&gt;&lt;/td&gt;&#xA;          &lt;td&gt;发起任务 → 返回&amp;quot;已提交&amp;quot; → 完成后主动推送&lt;/td&gt;&#xA;          &lt;td&gt;体验最好，资源最优&lt;/td&gt;&#xA;          &lt;td&gt;需要服务端支持回调&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;p&gt;OpenClaw 的独特优势在于它拥有 &lt;strong&gt;Webhook/Hook 机制&lt;/strong&gt;，可以作为服务端接收外部回调，主动推送消息到飞书。&lt;/p&gt;&#xA;&lt;p&gt;对比其他 AI 工具：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;OpenCode / Claude Code&lt;/strong&gt;：纯 CLI 工具，只有&amp;quot;触发→等待→返回&amp;quot;的模式，没有回调机制&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;OpenClaw&lt;/strong&gt;：内置 Gateway 服务，支持 &lt;code&gt;/hooks/*&lt;/code&gt; 端点，天然适合异步回调&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;所以 &lt;strong&gt;&amp;ldquo;异步+通知&amp;rdquo;&lt;/strong&gt; 是 OpenClaw 的场景的最优解。&lt;/p&gt;&#xA;&lt;h2 id=&#34;整体架构&#34;&gt;&#xA;  整体架构&#xA;  &lt;a class=&#34;heading-link&#34; href=&#34;#%e6%95%b4%e4%bd%93%e6%9e%b6%e6%9e%84&#34;&gt;&#xA;    &lt;i class=&#34;fa-solid fa-link&#34; aria-hidden=&#34;true&#34; title=&#34;链接到标题&#34;&gt;&lt;/i&gt;&#xA;    &lt;span class=&#34;sr-only&#34;&gt;链接到标题&lt;/span&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h2&gt;&#xA;&lt;div class=&#34;mermaid&#34;&gt;&#xA;sequenceDiagram&#xA;    participant U as 用户（飞书）&#xA;    participant O as OpenClaw Agent&#xA;    participant W as Windmill / 外部系统&#xA;    participant H as OpenClaw Hook&#xA;&#xA;    U-&gt;&gt;O: 发消息处理这个视频&#xA;    O-&gt;&gt;W: API 调用（异步）&#xA;    O--&gt;&gt;U: 任务已提交&#xA;    Note over W: 几分钟后...&#xA;    W--&gt;&gt;H: POST /hooks/agent&#xA;    H-&gt;&gt;H: 创建 Agent Turn&#xA;    H-&gt;&gt;U: 飞书消息（带下载链接）&#xA;&#xA;&lt;/div&gt;&#xA;&#xA;&lt;h2 id=&#34;agent-turn-与-wake&#34;&gt;&#xA;  Agent Turn 与 Wake&#xA;  &lt;a class=&#34;heading-link&#34; href=&#34;#agent-turn-%e4%b8%8e-wake&#34;&gt;&#xA;    &lt;i class=&#34;fa-solid fa-link&#34; aria-hidden=&#34;true&#34; title=&#34;链接到标题&#34;&gt;&lt;/i&gt;&#xA;    &lt;span class=&#34;sr-only&#34;&gt;链接到标题&lt;/span&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;OpenClaw 提供了两种代码触发的消息通知方式，它们都通过 Gateway 的 &lt;code&gt;/hooks/*&lt;/code&gt; 端点实现。&lt;/p&gt;</description>
    </item>
    <item>
      <title>OpenClaw 飞书能力实战：踩坑、绕路、最终打通云文档/日历/任务</title>
      <link>https://blog.ohtly.com/posts/2026-05-27-openclaw-feishu-practice/</link>
      <pubDate>Wed, 27 May 2026 11:08:00 +0800</pubDate>
      <guid>https://blog.ohtly.com/posts/2026-05-27-openclaw-feishu-practice/</guid>
      <description>&lt;h2 id=&#34;为什么选飞书&#34;&gt;&#xA;  为什么选飞书&#xA;  &lt;a class=&#34;heading-link&#34; href=&#34;#%e4%b8%ba%e4%bb%80%e4%b9%88%e9%80%89%e9%a3%9e%e4%b9%a6&#34;&gt;&#xA;    &lt;i class=&#34;fa-solid fa-link&#34; aria-hidden=&#34;true&#34; title=&#34;链接到标题&#34;&gt;&lt;/i&gt;&#xA;    &lt;span class=&#34;sr-only&#34;&gt;链接到标题&lt;/span&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;OpenClaw 接入 IM 的几种方式里，飞书是目前最好的选择。Telegram、Discord 都是国外平台，国内访问不稳定；微信个人号方案有封号风险。飞书拥有开放的 API 生态、免公网 IP 的长连接方式，以及云文档、多维表格、日历、任务等一体化工作能力，天然适合作为 AI Agent 的操作界面。&lt;/p&gt;&#xA;&lt;h2 id=&#34;踩坑飞书官方插件&#34;&gt;&#xA;  踩坑：飞书官方插件&#xA;  &lt;a class=&#34;heading-link&#34; href=&#34;#%e8%b8%a9%e5%9d%91%e9%a3%9e%e4%b9%a6%e5%ae%98%e6%96%b9%e6%8f%92%e4%bb%b6&#34;&gt;&#xA;    &lt;i class=&#34;fa-solid fa-link&#34; aria-hidden=&#34;true&#34; title=&#34;链接到标题&#34;&gt;&lt;/i&gt;&#xA;    &lt;span class=&#34;sr-only&#34;&gt;链接到标题&lt;/span&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;飞书官方推出了 OpenClaw 插件 &lt;code&gt;@larksuite/openclaw-lark&lt;/code&gt;，号称可以让 Agent 以用户身份操作飞书资源：创建文档、管理任务、查看日历等。我按照官方文档在服务器上安装并启用后，对话正常，Agent 也能回复消息。&lt;/p&gt;&#xA;&lt;p&gt;但问题来了——让 Agent 创建一个飞书任务，它回复&amp;quot;已创建&amp;quot;；让创建云文档，也说&amp;quot;已创建&amp;quot;。然而打开飞书，&lt;strong&gt;任务列表里空空如也，云文档里也没有任何新文件&lt;/strong&gt;。&lt;/p&gt;&#xA;&lt;p&gt;查日志发现了关键错误：&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;[plugins] plugin must declare contracts.tools before registering agent tools&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;追到 OpenClaw 主仓库，发现这是 OpenClaw 核心框架的一个 bug（&lt;a href=&#34;https://github.com/openclaw/openclaw/issues/80621&#34;  class=&#34;external-link&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;issue #80621&lt;/a&gt;）：插件明明正确声明了 &lt;code&gt;contracts.tools: true&lt;/code&gt;，但运行时在注册工具时被拒绝。修复补丁（&lt;a href=&#34;https://github.com/openclaw/openclaw/pull/84512&#34;  class=&#34;external-link&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;PR #84512&lt;/a&gt;）已提交，但尚未合入。&lt;/p&gt;&#xA;&lt;p&gt;所以 openclaw-lark 本身没有 bug，是上游 OpenClaw 框架的 &lt;code&gt;registerTool&lt;/code&gt; 检查逻辑有问题，导致飞书官方插件的所有工具（任务、文档、日历等）都无法注册到 Agent。Agent 回退到用 &lt;code&gt;message&lt;/code&gt; 工具发送文本消息，所以&amp;quot;已创建&amp;quot;只是发了一条消息到飞书聊天里，实际什么都没创建。&lt;/p&gt;&#xA;&lt;h2 id=&#34;绕路内置-feishu-插件--飞书-cli&#34;&gt;&#xA;  绕路：内置 feishu 插件 + 飞书 CLI&#xA;  &lt;a class=&#34;heading-link&#34; href=&#34;#%e7%bb%95%e8%b7%af%e5%86%85%e7%bd%ae-feishu-%e6%8f%92%e4%bb%b6--%e9%a3%9e%e4%b9%a6-cli&#34;&gt;&#xA;    &lt;i class=&#34;fa-solid fa-link&#34; aria-hidden=&#34;true&#34; title=&#34;链接到标题&#34;&gt;&lt;/i&gt;&#xA;    &lt;span class=&#34;sr-only&#34;&gt;链接到标题&lt;/span&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;既然飞书官方插件暂时不可用，替代方案是：&lt;strong&gt;OpenClaw 自带的 &lt;code&gt;@openclaw/feishu&lt;/code&gt; 插件 + 飞书 CLI&lt;/strong&gt;。&lt;/p&gt;</description>
    </item>
    <item>
      <title>OpenClaw Tools：异步调用 Windmill Script</title>
      <link>https://blog.ohtly.com/posts/2026-05-26-openclaw-tools-windmill-async/</link>
      <pubDate>Tue, 26 May 2026 20:00:00 +0800</pubDate>
      <guid>https://blog.ohtly.com/posts/2026-05-26-openclaw-tools-windmill-async/</guid>
      <description>&lt;p&gt;Windmill 提供 MCP Server，可以将脚本/流程暴露给 AI Agent。但 MCP 的脚本调用能力无法同时满足「传参」和「异步执行」两个需求。本文将介绍如何通过编写 OpenClaw Tools Plugin 来绕过这些限制，实现灵活的异步调用。&lt;/p&gt;</description>
    </item>
    <item>
      <title>使用 OpenClaw 管理 Obsidian 笔记</title>
      <link>https://blog.ohtly.com/posts/2026-05-16-openclaw-obsidian/</link>
      <pubDate>Sat, 16 May 2026 20:00:00 +0800</pubDate>
      <guid>https://blog.ohtly.com/posts/2026-05-16-openclaw-obsidian/</guid>
      <description>&lt;h2 id=&#34;概述&#34;&gt;&#xA;  概述&#xA;  &lt;a class=&#34;heading-link&#34; href=&#34;#%e6%a6%82%e8%bf%b0&#34;&gt;&#xA;    &lt;i class=&#34;fa-solid fa-link&#34; aria-hidden=&#34;true&#34; title=&#34;链接到标题&#34;&gt;&lt;/i&gt;&#xA;    &lt;span class=&#34;sr-only&#34;&gt;链接到标题&lt;/span&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;本文介绍如何配置 OpenClaw AI Agent 来管理 Obsidian 笔记，实现多设备实时同步和 AI 辅助笔记管理。&lt;/p&gt;&#xA;&lt;h2 id=&#34;架构&#34;&gt;&#xA;  架构&#xA;  &lt;a class=&#34;heading-link&#34; href=&#34;#%e6%9e%b6%e6%9e%84&#34;&gt;&#xA;    &lt;i class=&#34;fa-solid fa-link&#34; aria-hidden=&#34;true&#34; title=&#34;链接到标题&#34;&gt;&lt;/i&gt;&#xA;    &lt;span class=&#34;sr-only&#34;&gt;链接到标题&lt;/span&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h2&gt;&#xA;&lt;div class=&#34;mermaid&#34;&gt;&#xA;flowchart TB&#xA;    subgraph &#34;本地设备 (Mac Mini)&#34;&#xA;        A[&#34;OpenClaw&lt;br/&gt;AI Agent&#34;] --&gt;|obsidian CLI| B[&#34;Obsidian CLI&lt;br/&gt;~/Documents/vault&#34;]&#xA;        A -.-&gt;|skills| C[&#34;obsidian-skills&#34;]&#xA;    end&#xA;&#xA;    B -.-&gt;|&#34;LiveSync&#34;| D[(&#34;CouchDB&lt;br/&gt;couchdb:5984&#34;)]&#xA;    E[&#34;其他设备&#34;] -.-&gt;|&#34;LiveSync&#34;| D&#xA;&#xA;    style A fill:#e3f2fd,stroke:#1565c0,stroke-width:2px&#xA;    style B fill:#f3e5f5,stroke:#6a1b9a,stroke-width:2px&#xA;    style C fill:#e8f5e9,stroke:#2e7d32,stroke-width:2px&#xA;    style D fill:#fff3e0,stroke:#e65100,stroke-width:2px&#xA;    style E fill:#fce4ec,stroke:#c62828,stroke-width:2px&#xA;&#xA;&lt;/div&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;架构说明&lt;/strong&gt;：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;OpenClaw&lt;/strong&gt;：AI Agent Gateway，通过自然语言管理笔记&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Obsidian CLI&lt;/strong&gt;：命令行工具，依赖 Obsidian 图形界面&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Vault&lt;/strong&gt;：~/Documents/&lt;vault-name&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;LiveSync + CouchDB&lt;/strong&gt;：多设备实时同步方案&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;obsidian-skills&lt;/strong&gt;：让 AI 理解如何正确使用 Obsidian 语法的技能包&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;准备工作&#34;&gt;&#xA;  准备工作&#xA;  &lt;a class=&#34;heading-link&#34; href=&#34;#%e5%87%86%e5%a4%87%e5%b7%a5%e4%bd%9c&#34;&gt;&#xA;    &lt;i class=&#34;fa-solid fa-link&#34; aria-hidden=&#34;true&#34; title=&#34;链接到标题&#34;&gt;&lt;/i&gt;&#xA;    &lt;span class=&#34;sr-only&#34;&gt;链接到标题&lt;/span&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h2&gt;&#xA;&lt;h3 id=&#34;obsidian-cli&#34;&gt;&#xA;  Obsidian CLI&#xA;  &lt;a class=&#34;heading-link&#34; href=&#34;#obsidian-cli&#34;&gt;&#xA;    &lt;i class=&#34;fa-solid fa-link&#34; aria-hidden=&#34;true&#34; title=&#34;链接到标题&#34;&gt;&lt;/i&gt;&#xA;    &lt;span class=&#34;sr-only&#34;&gt;链接到标题&lt;/span&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h3&gt;&#xA;&lt;p&gt;Obsidian 提供官方 CLI 工具，需要配合 Obsidian 图形界面使用。&lt;/p&gt;</description>
    </item>
    <item>
      <title>GPU 自动巡检与自愈：从掉卡到飞书通知的自动化链路</title>
      <link>https://blog.ohtly.com/posts/2026-05-06-gpu-auto-health-check/</link>
      <pubDate>Tue, 05 May 2026 22:30:00 +0800</pubDate>
      <guid>https://blog.ohtly.com/posts/2026-05-06-gpu-auto-health-check/</guid>
      <description>&lt;p&gt;GPU 在虚拟化直通（Passthrough）环境下运行时，偶尔会出现驱动丢失、NVML 报错等问题，导致容器内无法使用 GPU。本文介绍一个轻量级的自动巡检自愈方案，从检测到修复再到飞书通知，全自动闭环。&lt;/p&gt;&#xA;&lt;img src=&#34;https://blog.ohtly.com/images/飞书.png&#34; alt=&#34;飞书告警通知&#34; style=&#34;max-width: none !important; width: auto; height: auto; display: block; margin-left: 0; border: 1px solid #999;&#34;&gt;&#xA;&lt;h2 id=&#34;问题背景&#34;&gt;&#xA;  问题背景&#xA;  &lt;a class=&#34;heading-link&#34; href=&#34;#%e9%97%ae%e9%a2%98%e8%83%8c%e6%99%af&#34;&gt;&#xA;    &lt;i class=&#34;fa-solid fa-link&#34; aria-hidden=&#34;true&#34; title=&#34;链接到标题&#34;&gt;&lt;/i&gt;&#xA;    &lt;span class=&#34;sr-only&#34;&gt;链接到标题&lt;/span&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;在 PVE 虚拟机中通过 PCIe Passthrough 直通 NVIDIA GPU 时，容器内偶尔会出现：&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;Failed to initialize NVML: Unknown Error&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;重启容器后可短暂恢复，但一段时间后再次失效。这类问题在虚拟化环境中难以彻底根治（涉及 ASPM 电源管理、驱动状态等问题），需要一个主动巡检 + 自动修复的兜底机制。&lt;/p&gt;&#xA;&lt;h2 id=&#34;架构总览&#34;&gt;&#xA;  架构总览&#xA;  &lt;a class=&#34;heading-link&#34; href=&#34;#%e6%9e%b6%e6%9e%84%e6%80%bb%e8%a7%88&#34;&gt;&#xA;    &lt;i class=&#34;fa-solid fa-link&#34; aria-hidden=&#34;true&#34; title=&#34;链接到标题&#34;&gt;&lt;/i&gt;&#xA;    &lt;span class=&#34;sr-only&#34;&gt;链接到标题&lt;/span&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h2&gt;&#xA;&lt;div class=&#34;mermaid&#34;&gt;&#xA;graph LR&#xA;    GC[gpu-checker&lt;br/&gt;每 60s 巡检] --&gt;|docker exec nvidia-smi| OS[GPU 应用容器]&#xA;    GC --&gt;|异常| A[自动修复]&#xA;    A --&gt;|1.告警| AT[alert-transformer]&#xA;    A --&gt;|2.重启| OS&#xA;    A --&gt;|3.重检| B{恢复?}&#xA;    B --&gt;|是| AT&#xA;    B --&gt;|否| C[人工介入]&#xA;    AT --&gt;|hooks| OC[OpenClaw]&#xA;    OC --&gt;|飞书机器人| FS[飞书通知]&#xA;&#xA;&lt;/div&gt;&#xA;&#xA;&lt;h2 id=&#34;部署-gpu-checker&#34;&gt;&#xA;  部署 gpu-checker&#xA;  &lt;a class=&#34;heading-link&#34; href=&#34;#%e9%83%a8%e7%bd%b2-gpu-checker&#34;&gt;&#xA;    &lt;i class=&#34;fa-solid fa-link&#34; aria-hidden=&#34;true&#34; title=&#34;链接到标题&#34;&gt;&lt;/i&gt;&#xA;    &lt;span class=&#34;sr-only&#34;&gt;链接到标题&lt;/span&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;巡检容器是一个独立的 Docker 容器，使用 &lt;code&gt;docker:cli&lt;/code&gt; 镜像，通过挂载 docker.sock 来操作宿主机上的其他容器：&lt;/p&gt;</description>
    </item>
    <item>
      <title>使用 DCGM-Exporter 实现 GPU 智能告警</title>
      <link>https://blog.ohtly.com/posts/2026-05-06-dcgm-exporter-gpu-alert/</link>
      <pubDate>Tue, 05 May 2026 21:53:58 +0800</pubDate>
      <guid>https://blog.ohtly.com/posts/2026-05-06-dcgm-exporter-gpu-alert/</guid>
      <description>&lt;p&gt;GPU 是生产环境中重要的计算资源，温度过高、显存泄漏、硬件故障等问题如果不及时发现，可能影响线上服务。本文记录一套完整的 GPU 监控告警方案，从指标采集到飞书推送的全自动链路。&lt;/p&gt;&#xA;&lt;h2 id=&#34;监控目标&#34;&gt;&#xA;  监控目标&#xA;  &lt;a class=&#34;heading-link&#34; href=&#34;#%e7%9b%91%e6%8e%a7%e7%9b%ae%e6%a0%87&#34;&gt;&#xA;    &lt;i class=&#34;fa-solid fa-link&#34; aria-hidden=&#34;true&#34; title=&#34;链接到标题&#34;&gt;&lt;/i&gt;&#xA;    &lt;span class=&#34;sr-only&#34;&gt;链接到标题&lt;/span&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h2&gt;&#xA;&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;告警阈值&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;GPU 核心温度 / 显存温度&lt;/td&gt;&#xA;          &lt;td&gt;&amp;gt; 83°C / &amp;gt; 100°C&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;显存&lt;/td&gt;&#xA;          &lt;td&gt;VRAM 使用率&lt;/td&gt;&#xA;          &lt;td&gt;&amp;gt; 90%&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;功耗&lt;/td&gt;&#xA;          &lt;td&gt;GPU 功率&lt;/td&gt;&#xA;          &lt;td&gt;&amp;gt; 150W&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;硬件健康&lt;/td&gt;&#xA;          &lt;td&gt;PCIe 重连、行重映射错误&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;DCGM-Exporter 进程是否存活&lt;/td&gt;&#xA;          &lt;td&gt;宕机 1m&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;h2 id=&#34;架构总览&#34;&gt;&#xA;  架构总览&#xA;  &lt;a class=&#34;heading-link&#34; href=&#34;#%e6%9e%b6%e6%9e%84%e6%80%bb%e8%a7%88&#34;&gt;&#xA;    &lt;i class=&#34;fa-solid fa-link&#34; aria-hidden=&#34;true&#34; title=&#34;链接到标题&#34;&gt;&lt;/i&gt;&#xA;    &lt;span class=&#34;sr-only&#34;&gt;链接到标题&lt;/span&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h2&gt;&#xA;&lt;div class=&#34;mermaid&#34;&gt;&#xA;flowchart LR&#xA;    A[DCGM-Exporter&lt;br/&gt;monkey:9400] --&gt;|scrape| B[Prometheus&lt;br/&gt;robin:9090]&#xA;    B --&gt;|alert rules| C[Alertmanager&lt;br/&gt;robin:9093]&#xA;    C --&gt;|webhook| D[alert-transformer&lt;br/&gt;rivo:9091]&#xA;    D --&gt;|hooks| E[OpenClaw]&#xA;    E --&gt;|飞书机器人| F[飞书]&#xA;&#xA;&lt;/div&gt;&#xA;&#xA;&lt;h2 id=&#34;部署-dcgm-exporter&#34;&gt;&#xA;  部署 DCGM-Exporter&#xA;  &lt;a class=&#34;heading-link&#34; href=&#34;#%e9%83%a8%e7%bd%b2-dcgm-exporter&#34;&gt;&#xA;    &lt;i class=&#34;fa-solid fa-link&#34; aria-hidden=&#34;true&#34; title=&#34;链接到标题&#34;&gt;&lt;/i&gt;&#xA;    &lt;span class=&#34;sr-only&#34;&gt;链接到标题&lt;/span&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;在 GPU 节点上通过 Docker 部署 DCGM-Exporter。使用 DaoCloud 镜像加速国内拉取：&lt;/p&gt;</description>
    </item>
    <item>
      <title>智能监控技术方案：OpenClaw &#43; Prometheus &#43; Loki</title>
      <link>https://blog.ohtly.com/posts/2026-05-05-%E6%99%BA%E8%83%BD%E7%9B%91%E6%8E%A7%E6%8A%80%E6%9C%AF%E6%96%B9%E6%A1%88/</link>
      <pubDate>Tue, 05 May 2026 13:49:54 +0800</pubDate>
      <guid>https://blog.ohtly.com/posts/2026-05-05-%E6%99%BA%E8%83%BD%E7%9B%91%E6%8E%A7%E6%8A%80%E6%9C%AF%E6%96%B9%E6%A1%88/</guid>
      <description>&lt;h1 id=&#34;智能监控技术方案&#34;&gt;&#xA;  智能监控技术方案&#xA;  &lt;a class=&#34;heading-link&#34; href=&#34;#%e6%99%ba%e8%83%bd%e7%9b%91%e6%8e%a7%e6%8a%80%e6%9c%af%e6%96%b9%e6%a1%88&#34;&gt;&#xA;    &lt;i class=&#34;fa-solid fa-link&#34; aria-hidden=&#34;true&#34; title=&#34;链接到标题&#34;&gt;&lt;/i&gt;&#xA;    &lt;span class=&#34;sr-only&#34;&gt;链接到标题&lt;/span&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h1&gt;&#xA;&lt;h2 id=&#34;概述&#34;&gt;&#xA;  概述&#xA;  &lt;a class=&#34;heading-link&#34; href=&#34;#%e6%a6%82%e8%bf%b0&#34;&gt;&#xA;    &lt;i class=&#34;fa-solid fa-link&#34; aria-hidden=&#34;true&#34; title=&#34;链接到标题&#34;&gt;&lt;/i&gt;&#xA;    &lt;span class=&#34;sr-only&#34;&gt;链接到标题&lt;/span&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;本文档描述基于开源组件构建的智能监控告警体系，实现从指标采集到飞书通知的完整告警流程。&lt;/p&gt;&#xA;&lt;h3 id=&#34;架构概览&#34;&gt;&#xA;  架构概览&#xA;  &lt;a class=&#34;heading-link&#34; href=&#34;#%e6%9e%b6%e6%9e%84%e6%a6%82%e8%a7%88&#34;&gt;&#xA;    &lt;i class=&#34;fa-solid fa-link&#34; aria-hidden=&#34;true&#34; title=&#34;链接到标题&#34;&gt;&lt;/i&gt;&#xA;    &lt;span class=&#34;sr-only&#34;&gt;链接到标题&lt;/span&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h3&gt;&#xA;&lt;p&gt;&lt;strong&gt;告警处理流程&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;div class=&#34;mermaid&#34;&gt;&#xA;flowchart TD&#xA;    A[&#34;node-exporter&lt;br/&gt;:9100&#34;]&#xA;    B[&#34;Prometheus&lt;br/&gt;:9090&#34;]&#xA;    C[&#34;Alertmanager&lt;br/&gt;:9093&#34;]&#xA;    D[&#34;alert-transformer&lt;br/&gt;:9091&#34;]&#xA;    E[&#34;OpenClaw&lt;br/&gt;:18789&#34;]&#xA;    F[&#34;飞书 Webhook&#34;]&#xA;    G[&#34;告警规则&lt;br/&gt;alerts.yml&#34;]&#xA;&#xA;    A --&gt;|指标采集| B&#xA;    B --&gt;|告警评估| C&#xA;    B -.-&gt;|加载| G&#xA;    C --&gt;|Webhook| D&#xA;    D --&gt;|格式转换| E&#xA;    E --&gt;|飞书通知| F&#xA;&#xA;&lt;/div&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;指标采集流程&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;div class=&#34;mermaid&#34;&gt;&#xA;flowchart LR&#xA;    subgraph 指标&#xA;        H[&#34;node-exporter&lt;br/&gt;:9100&#34;]&#xA;        I[&#34;Prometheus&lt;br/&gt;:9090&#34;]&#xA;        H --&gt;|&#34;Prometheus 抓取 (15s)&#34;| I&#xA;    end&#xA;    subgraph 日志&#xA;        J[&#34;Docker 日志&#34;]&#xA;        K[&#34;Alloy&lt;br/&gt;:12345&#34;]&#xA;        L[&#34;Loki&lt;br/&gt;:3100&#34;]&#xA;        J --&gt;|采集| K&#xA;        K --&gt;|发送| L&#xA;    end&#xA;&#xA;&lt;/div&gt;&#xA;&#xA;&lt;h3 id=&#34;组件职责&#34;&gt;&#xA;  组件职责&#xA;  &lt;a class=&#34;heading-link&#34; href=&#34;#%e7%bb%84%e4%bb%b6%e8%81%8c%e8%b4%a3&#34;&gt;&#xA;    &lt;i class=&#34;fa-solid fa-link&#34; aria-hidden=&#34;true&#34; title=&#34;链接到标题&#34;&gt;&lt;/i&gt;&#xA;    &lt;span class=&#34;sr-only&#34;&gt;链接到标题&lt;/span&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h3&gt;&#xA;&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;端口&lt;/th&gt;&#xA;          &lt;th&gt;部署位置&lt;/th&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;node-exporter&lt;/td&gt;&#xA;          &lt;td&gt;系统指标采集 (CPU/内存/磁盘/网络)&lt;/td&gt;&#xA;          &lt;td&gt;9100&lt;/td&gt;&#xA;          &lt;td&gt;每台被监控主机&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;Prometheus&lt;/td&gt;&#xA;          &lt;td&gt;指标抓取、存储、告警规则评估&lt;/td&gt;&#xA;          &lt;td&gt;9090&lt;/td&gt;&#xA;          &lt;td&gt;监控服务器&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;Alertmanager&lt;/td&gt;&#xA;          &lt;td&gt;告警去重、分组、路由、抑制&lt;/td&gt;&#xA;          &lt;td&gt;9093&lt;/td&gt;&#xA;          &lt;td&gt;监控服务器&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;alert-transformer&lt;/td&gt;&#xA;          &lt;td&gt;告警格式转换为 OpenClaw API&lt;/td&gt;&#xA;          &lt;td&gt;9091&lt;/td&gt;&#xA;          &lt;td&gt;监控服务器&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;OpenClaw&lt;/td&gt;&#xA;          &lt;td&gt;AI 决策、自然语言处理、飞书通知&lt;/td&gt;&#xA;          &lt;td&gt;18789&lt;/td&gt;&#xA;          &lt;td&gt;OpenClaw 服务器&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;Loki&lt;/td&gt;&#xA;          &lt;td&gt;日志存储和查询&lt;/td&gt;&#xA;          &lt;td&gt;3100&lt;/td&gt;&#xA;          &lt;td&gt;监控服务器&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;Alloy&lt;/td&gt;&#xA;          &lt;td&gt;Docker 日志采集&lt;/td&gt;&#xA;          &lt;td&gt;12345&lt;/td&gt;&#xA;          &lt;td&gt;监控服务器&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;h2 id=&#34;部署配置&#34;&gt;&#xA;  部署配置&#xA;  &lt;a class=&#34;heading-link&#34; href=&#34;#%e9%83%a8%e7%bd%b2%e9%85%8d%e7%bd%ae&#34;&gt;&#xA;    &lt;i class=&#34;fa-solid fa-link&#34; aria-hidden=&#34;true&#34; title=&#34;链接到标题&#34;&gt;&lt;/i&gt;&#xA;    &lt;span class=&#34;sr-only&#34;&gt;链接到标题&lt;/span&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h2&gt;&#xA;&lt;h3 id=&#34;node-exporter-部署&#34;&gt;&#xA;  node-exporter 部署&#xA;  &lt;a class=&#34;heading-link&#34; href=&#34;#node-exporter-%e9%83%a8%e7%bd%b2&#34;&gt;&#xA;    &lt;i class=&#34;fa-solid fa-link&#34; aria-hidden=&#34;true&#34; title=&#34;链接到标题&#34;&gt;&lt;/i&gt;&#xA;    &lt;span class=&#34;sr-only&#34;&gt;链接到标题&lt;/span&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h3&gt;&#xA;&lt;p&gt;每台被监控主机部署 node-exporter，建议使用 Docker Compose：&lt;/p&gt;</description>
    </item>
    <item>
      <title>由 OpenClaw 驱动的自动化博客生产线</title>
      <link>https://blog.ohtly.com/posts/2026-04-03-%E7%94%B1openclaw%E9%A9%B1%E5%8A%A8%E7%9A%84%E8%87%AA%E5%8A%A8%E5%8D%9A%E5%AE%A2%E7%94%9F%E4%BA%A7%E7%BA%BF/</link>
      <pubDate>Fri, 03 Apr 2026 23:33:33 +0800</pubDate>
      <guid>https://blog.ohtly.com/posts/2026-04-03-%E7%94%B1openclaw%E9%A9%B1%E5%8A%A8%E7%9A%84%E8%87%AA%E5%8A%A8%E5%8D%9A%E5%AE%A2%E7%94%9F%E4%BA%A7%E7%BA%BF/</guid>
      <description>&lt;p&gt;笔记存在本地，由OpenClaw协助编写。如果再让它驱动 Hugo+GitHub+Cloudflare Pages，就可以再提炼出可分享可公开的博客日志。&lt;/p&gt;&#xA;&lt;h2 id=&#34;搭建步骤&#34;&gt;&#xA;  搭建步骤&#xA;  &lt;a class=&#34;heading-link&#34; href=&#34;#%e6%90%ad%e5%bb%ba%e6%ad%a5%e9%aa%a4&#34;&gt;&#xA;    &lt;i class=&#34;fa-solid fa-link&#34; aria-hidden=&#34;true&#34; title=&#34;链接到标题&#34;&gt;&lt;/i&gt;&#xA;    &lt;span class=&#34;sr-only&#34;&gt;链接到标题&lt;/span&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h2&gt;&#xA;&lt;h3 id=&#34;hugo-初始化&#34;&gt;&#xA;  Hugo 初始化&#xA;  &lt;a class=&#34;heading-link&#34; href=&#34;#hugo-%e5%88%9d%e5%a7%8b%e5%8c%96&#34;&gt;&#xA;    &lt;i class=&#34;fa-solid fa-link&#34; aria-hidden=&#34;true&#34; title=&#34;链接到标题&#34;&gt;&lt;/i&gt;&#xA;    &lt;span class=&#34;sr-only&#34;&gt;链接到标题&lt;/span&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h3&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;brew install hugo&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;hugo new site my-blog&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;cd my-blog&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;git init&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;选用 &lt;a href=&#34;https://github.com/luizdepra/hugo-coder&#34;  class=&#34;external-link&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;hugo-coder&lt;/a&gt; 主题，支持中文，排版干净。&lt;/p&gt;&#xA;&lt;h3 id=&#34;本地写作流程&#34;&gt;&#xA;  本地写作流程&#xA;  &lt;a class=&#34;heading-link&#34; href=&#34;#%e6%9c%ac%e5%9c%b0%e5%86%99%e4%bd%9c%e6%b5%81%e7%a8%8b&#34;&gt;&#xA;    &lt;i class=&#34;fa-solid fa-link&#34; aria-hidden=&#34;true&#34; title=&#34;链接到标题&#34;&gt;&lt;/i&gt;&#xA;    &lt;span class=&#34;sr-only&#34;&gt;链接到标题&lt;/span&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h3&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;hugo new content/posts/2026-04-03-my-first-post.md&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;# 编辑文件，将 draft = true 改为 false&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;hugo server -D  &lt;span style=&#34;color:#75715e&#34;&gt;# 本地预览 http://localhost:1313&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id=&#34;推送到-github&#34;&gt;&#xA;  推送到 GitHub&#xA;  &lt;a class=&#34;heading-link&#34; href=&#34;#%e6%8e%a8%e9%80%81%e5%88%b0-github&#34;&gt;&#xA;    &lt;i class=&#34;fa-solid fa-link&#34; aria-hidden=&#34;true&#34; title=&#34;链接到标题&#34;&gt;&lt;/i&gt;&#xA;    &lt;span class=&#34;sr-only&#34;&gt;链接到标题&lt;/span&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h3&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;git remote add origin git@github.com:你的用户名/my-blog.git&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;git add .&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;git commit -m &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;first post&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;git push&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id=&#34;cloudflare-pages-接入&#34;&gt;&#xA;  Cloudflare Pages 接入&#xA;  &lt;a class=&#34;heading-link&#34; href=&#34;#cloudflare-pages-%e6%8e%a5%e5%85%a5&#34;&gt;&#xA;    &lt;i class=&#34;fa-solid fa-link&#34; aria-hidden=&#34;true&#34; title=&#34;链接到标题&#34;&gt;&lt;/i&gt;&#xA;    &lt;span class=&#34;sr-only&#34;&gt;链接到标题&lt;/span&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h3&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;登录 Cloudflare Dashboard → Workers &amp;amp; Pages → Create application → Pages&lt;/li&gt;&#xA;&lt;li&gt;Connect to GitHub，选择仓库&lt;/li&gt;&#xA;&lt;li&gt;Build 设置：&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Build command: &lt;code&gt;hugo&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;Build output目录: &lt;code&gt;public&lt;/code&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;绑定自定义域名（如 blog.ohtly.com）&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;h3 id=&#34;自动化发布&#34;&gt;&#xA;  自动化发布&#xA;  &lt;a class=&#34;heading-link&#34; href=&#34;#%e8%87%aa%e5%8a%a8%e5%8c%96%e5%8f%91%e5%b8%83&#34;&gt;&#xA;    &lt;i class=&#34;fa-solid fa-link&#34; aria-hidden=&#34;true&#34; title=&#34;链接到标题&#34;&gt;&lt;/i&gt;&#xA;    &lt;span class=&#34;sr-only&#34;&gt;链接到标题&lt;/span&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h3&gt;&#xA;&lt;p&gt;以后只需：&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
