<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>技术实践 on Zayn's Blog</title><link>https://blog.treesir.pub/categories/%E6%8A%80%E6%9C%AF%E5%AE%9E%E8%B7%B5/</link><description>Recent content in 技术实践 on Zayn's Blog</description><generator>Hugo -- gohugo.io</generator><language>zh-cn</language><managingEditor>yangzun@treesir.pub (Zayn)</managingEditor><webMaster>yangzun@treesir.pub (Zayn)</webMaster><copyright>2021-2026 Zayn</copyright><lastBuildDate>Sun, 29 Mar 2026 10:30:00 +0800</lastBuildDate><atom:link href="https://blog.treesir.pub/categories/%E6%8A%80%E6%9C%AF%E5%AE%9E%E8%B7%B5/index.xml" rel="self" type="application/rss+xml"/><item><title>OpenClaw Skills Registry 安全架构与企业级实践指南</title><link>https://blog.treesir.pub/posts/openclaw-skills-registry-security-guide/</link><pubDate>Sun, 15 Mar 2026 22:45:00 +0800</pubDate><author>yangzun@treesir.pub (Zayn)</author><guid>https://blog.treesir.pub/posts/openclaw-skills-registry-security-guide/</guid><description>&lt;h2 class="relative group">OpenClaw Skills Registry 安全架构与企业级实践指南
&lt;div id="openclaw-skills-registry-安全架构与企业级实践指南" class="anchor">&lt;/div>
&lt;span
class="absolute top-0 w-6 transition-opacity opacity-0 ltr:-left-6 rtl:-right-6 not-prose group-hover:opacity-100">
&lt;a class="group-hover:text-primary-300 dark:group-hover:text-neutral-700 !no-underline" href="#openclaw-skills-registry-%e5%ae%89%e5%85%a8%e6%9e%b6%e6%9e%84%e4%b8%8e%e4%bc%81%e4%b8%9a%e7%ba%a7%e5%ae%9e%e8%b7%b5%e6%8c%87%e5%8d%97" aria-label="锚点">#&lt;/a>
&lt;/span>
&lt;/h2>
&lt;p>Author: Negentropy
Updated: 2026-03-15&lt;/p>
&lt;p>This document is based on &lt;a
href="https://community.alibabacloud.com/blog/openclaw-avoiding-malicious-skills-and-why-enterprises-need-their-own-skills-registry---nacos-3-2-release_602946"
target="_blank"
>Alibaba Cloud Community&lt;/a>&lt;/p>
&lt;hr>
&lt;h2 class="relative group">目录
&lt;div id="目录" class="anchor">&lt;/div>
&lt;span
class="absolute top-0 w-6 transition-opacity opacity-0 ltr:-left-6 rtl:-right-6 not-prose group-hover:opacity-100">
&lt;a class="group-hover:text-primary-300 dark:group-hover:text-neutral-700 !no-underline" href="#%e7%9b%ae%e5%bd%95" aria-label="锚点">#&lt;/a>
&lt;/span>
&lt;/h2>
&lt;ul>
&lt;li>&lt;a
href="#0-%e9%97%ae%e9%a2%98%e8%83%8c%e6%99%af%e4%b8%8e%e5%8a%a8%e6%9c%ba">0. 问题背景与动机&lt;/a>&lt;/li>
&lt;li>&lt;a
href="#1-%e5%ae%89%e5%85%a8%e9%a3%8e%e9%99%a9%e5%88%86%e6%9e%90">1. 安全风险分析&lt;/a>&lt;/li>
&lt;li>&lt;a
href="#2-%e4%bc%81%e4%b8%9a%e7%ba%a7%e8%a7%a3%e5%86%b3%e6%96%b9%e6%a1%88">2. 企业级解决方案&lt;/a>&lt;/li>
&lt;li>&lt;a
href="#3-nacos-32-skills-registry">3. Nacos 3.2 Skills Registry&lt;/a>&lt;/li>
&lt;li>&lt;a
href="#4-openclaw-%e9%9b%86%e6%88%90%e5%ae%9e%e8%b7%b5">4. OpenClaw 集成实践&lt;/a>&lt;/li>
&lt;li>&lt;a
href="#5-%e9%83%a8%e7%bd%b2%e6%b5%81%e7%a8%8b">5. 部署流程&lt;/a>&lt;/li>
&lt;li>&lt;a
href="#6-%e5%ae%89%e5%85%a8%e6%9c%80%e4%bd%b3%e5%ae%9e%e8%b7%b5">6. 安全最佳实践&lt;/a>&lt;/li>
&lt;li>&lt;a
href="#7-%e5%af%b9%e6%af%94%e4%b8%8e%e9%80%89%e5%9e%8b">7. 对比与选型&lt;/a>&lt;/li>
&lt;li>&lt;a
href="#8-%e6%95%85%e9%9a%9c%e6%8e%92%e6%9f%a5">8. 故障排查&lt;/a>&lt;/li>
&lt;li>&lt;a
href="#9-%e8%b5%84%e6%ba%90%e9%93%be%e6%8e%a5">9. 资源链接&lt;/a>&lt;/li>
&lt;/ul>
&lt;hr>
&lt;h2 class="relative group">0. 问题背景与动机
&lt;div id="0-问题背景与动机" class="anchor">&lt;/div>
&lt;span
class="absolute top-0 w-6 transition-opacity opacity-0 ltr:-left-6 rtl:-right-6 not-prose group-hover:opacity-100">
&lt;a class="group-hover:text-primary-300 dark:group-hover:text-neutral-700 !no-underline" href="#0-%e9%97%ae%e9%a2%98%e8%83%8c%e6%99%af%e4%b8%8e%e5%8a%a8%e6%9c%ba" aria-label="锚点">#&lt;/a>
&lt;/span>
&lt;/h2>
&lt;h3 class="relative group">0.1 为什么需要 Skills Registry?
&lt;div id="01-为什么需要-skills-registry" class="anchor">&lt;/div>
&lt;span
class="absolute top-0 w-6 transition-opacity opacity-0 ltr:-left-6 rtl:-right-6 not-prose group-hover:opacity-100">
&lt;a class="group-hover:text-primary-300 dark:group-hover:text-neutral-700 !no-underline" href="#01-%e4%b8%ba%e4%bb%80%e4%b9%88%e9%9c%80%e8%a6%81-skills-registry" aria-label="锚点">#&lt;/a>
&lt;/span>
&lt;/h3>
&lt;p>OpenClaw 的 Skills 生态系统正在快速发展，ClawHub 上已有超过 10,000 个技能包。但这种开放生态也带来了安全挑战。&lt;/p></description></item><item><title>OpenClaw AI Agent 架构解析：多引擎联动与记忆系统</title><link>https://blog.treesir.pub/posts/openclaw-ai-agent-architecture-v2/</link><pubDate>Sun, 15 Mar 2026 22:30:00 +0800</pubDate><author>yangzun@treesir.pub (Zayn)</author><guid>https://blog.treesir.pub/posts/openclaw-ai-agent-architecture-v2/</guid><description>&lt;h2 class="relative group">OpenClaw AI Agent 架构解析
&lt;div id="openclaw-ai-agent-架构解析" class="anchor">&lt;/div>
&lt;span
class="absolute top-0 w-6 transition-opacity opacity-0 ltr:-left-6 rtl:-right-6 not-prose group-hover:opacity-100">
&lt;a class="group-hover:text-primary-300 dark:group-hover:text-neutral-700 !no-underline" href="#openclaw-ai-agent-%e6%9e%b6%e6%9e%84%e8%a7%a3%e6%9e%90" aria-label="锚点">#&lt;/a>
&lt;/span>
&lt;/h2>
&lt;h2 class="relative group">核心架构
&lt;div id="核心架构" class="anchor">&lt;/div>
&lt;span
class="absolute top-0 w-6 transition-opacity opacity-0 ltr:-left-6 rtl:-right-6 not-prose group-hover:opacity-100">
&lt;a class="group-hover:text-primary-300 dark:group-hover:text-neutral-700 !no-underline" href="#%e6%a0%b8%e5%bf%83%e6%9e%b6%e6%9e%84" aria-label="锚点">#&lt;/a>
&lt;/span>
&lt;/h2>
&lt;div class="mermaid" align="center">
&lt;pre>
graph TB
subgraph Agent["OpenClaw Agent"]
Claude["Claude Sonnet 4.6"]
GPT["GPT-5.2/5.3"]
GLM["GLM-5"]
Gemini["Gemini Pro"]
end
subgraph Router["Model Router"]
Route["路由层"]
end
subgraph Skills["Skills Layer"]
Blog["blog-post-generator"]
Daily["daily-blog-generator"]
Code["coding-agent"]
Others["90+ skills..."]
end
subgraph MCP["MCP Layer"]
Team["Teambition MCP"]
NMem["Nowledge Mem MCP"]
Other["其他 MCP..."]
end
Claude --> Route
GPT --> Route
GLM --> Route
Gemini --> Route
Route --> Skills
Skills --> MCP
&lt;/pre>
&lt;/div>
&lt;h2 class="relative group">1. 多 AI 引擎联动
&lt;div id="1-多-ai-引擎联动" class="anchor">&lt;/div>
&lt;span
class="absolute top-0 w-6 transition-opacity opacity-0 ltr:-left-6 rtl:-right-6 not-prose group-hover:opacity-100">
&lt;a class="group-hover:text-primary-300 dark:group-hover:text-neutral-700 !no-underline" href="#1-%e5%a4%9a-ai-%e5%bc%95%e6%93%8e%e8%81%94%e5%8a%a8" aria-label="锚点">#&lt;/a>
&lt;/span>
&lt;/h2>
&lt;h3 class="relative group">模型配置
&lt;div id="模型配置" class="anchor">&lt;/div>
&lt;span
class="absolute top-0 w-6 transition-opacity opacity-0 ltr:-left-6 rtl:-right-6 not-prose group-hover:opacity-100">
&lt;a class="group-hover:text-primary-300 dark:group-hover:text-neutral-700 !no-underline" href="#%e6%a8%a1%e5%9e%8b%e9%85%8d%e7%bd%ae" aria-label="锚点">#&lt;/a>
&lt;/span>
&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-json" data-lang="json">&lt;span class="line">&lt;span class="cl">&lt;span class="p">{&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;#34;providers&amp;#34;&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="p">{&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;#34;anthropic-local&amp;#34;&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="p">{&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;#34;models&amp;#34;&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="s2">&amp;#34;claude-sonnet-4-6&amp;#34;&lt;/span>&lt;span class="p">]&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="p">},&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;#34;openai-codex&amp;#34;&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="p">{&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;#34;models&amp;#34;&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="s2">&amp;#34;gpt-5.2&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="s2">&amp;#34;gpt-5.3-codex&amp;#34;&lt;/span>&lt;span class="p">]&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="p">},&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;#34;zai&amp;#34;&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="p">{&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;#34;models&amp;#34;&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="s2">&amp;#34;glm-5&amp;#34;&lt;/span>&lt;span class="p">]&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="p">}&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="p">}&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="p">}&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>
&lt;h3 class="relative group">路由策略
&lt;div id="路由策略" class="anchor">&lt;/div>
&lt;span
class="absolute top-0 w-6 transition-opacity opacity-0 ltr:-left-6 rtl:-right-6 not-prose group-hover:opacity-100">
&lt;a class="group-hover:text-primary-300 dark:group-hover:text-neutral-700 !no-underline" href="#%e8%b7%af%e7%94%b1%e7%ad%96%e7%95%a5" aria-label="锚点">#&lt;/a>
&lt;/span>
&lt;/h3>
&lt;div class="mermaid" align="center">
&lt;pre>
flowchart LR
A[任务类型] --> B{判断}
B -->|日常对话| C[Claude Sonnet 4.6]
B -->|代码生成| D[GPT-5.3-Codex]
B -->|复杂推理| E[GPT-5.4]
B -->|中文任务| F[GLM-5]
&lt;/pre>
&lt;/div>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th>任务类型&lt;/th>
&lt;th>推荐模型&lt;/th>
&lt;th>原因&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td>日常对话&lt;/td>
&lt;td>Claude Sonnet 4.6&lt;/td>
&lt;td>成本低、速度快&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>代码生成&lt;/td>
&lt;td>GPT-5.3-Codex&lt;/td>
&lt;td>代码能力强&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>复杂推理&lt;/td>
&lt;td>GPT-5.4&lt;/td>
&lt;td>推理能力最强&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>中文任务&lt;/td>
&lt;td>GLM-5&lt;/td>
&lt;td>中文理解好&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;h3 class="relative group">Sub-Agent 编排
&lt;div id="sub-agent-编排" class="anchor">&lt;/div>
&lt;span
class="absolute top-0 w-6 transition-opacity opacity-0 ltr:-left-6 rtl:-right-6 not-prose group-hover:opacity-100">
&lt;a class="group-hover:text-primary-300 dark:group-hover:text-neutral-700 !no-underline" href="#sub-agent-%e7%bc%96%e6%8e%92" aria-label="锚点">#&lt;/a>
&lt;/span>
&lt;/h3>
&lt;div class="mermaid" align="center">
&lt;pre>
graph LR
Main[主 Agent&lt;br/>Claude Sonnet 4.6] --> S1[Sub-Agent 1&lt;br/>GPT-5.2 搜索总结]
Main --> S2[Sub-Agent 2&lt;br/>Claude 文档处理]
Main --> S3[Sub-Agent 3&lt;br/>GPT-5.3 代码审查]
&lt;/pre>
&lt;/div>
&lt;h2 class="relative group">2. 记忆系统
&lt;div id="2-记忆系统" class="anchor">&lt;/div>
&lt;span
class="absolute top-0 w-6 transition-opacity opacity-0 ltr:-left-6 rtl:-right-6 not-prose group-hover:opacity-100">
&lt;a class="group-hover:text-primary-300 dark:group-hover:text-neutral-700 !no-underline" href="#2-%e8%ae%b0%e5%bf%86%e7%b3%bb%e7%bb%9f" aria-label="锚点">#&lt;/a>
&lt;/span>
&lt;/h2>
&lt;h3 class="relative group">架构图
&lt;div id="架构图" class="anchor">&lt;/div>
&lt;span
class="absolute top-0 w-6 transition-opacity opacity-0 ltr:-left-6 rtl:-right-6 not-prose group-hover:opacity-100">
&lt;a class="group-hover:text-primary-300 dark:group-hover:text-neutral-700 !no-underline" href="#%e6%9e%b6%e6%9e%84%e5%9b%be" aria-label="锚点">#&lt;/a>
&lt;/span>
&lt;/h3>
&lt;div class="mermaid" align="center">
&lt;pre>
graph TB
subgraph Memory["记忆系统"]
WM["Working Memory&lt;br/>(工作记忆)"]
NM["Nowledge Mem&lt;br/>(知识图谱)"]
LT["MEMORY.md&lt;br/>(长期记忆)"]
TL["Timeline&lt;br/>(时间线)"]
end
WM &lt;--> NM
NM --> TL
NM --> LT
Session[每次对话] --> WM
Session --> NM
&lt;/pre>
&lt;/div>
&lt;h3 class="relative group">三层记忆
&lt;div id="三层记忆" class="anchor">&lt;/div>
&lt;span
class="absolute top-0 w-6 transition-opacity opacity-0 ltr:-left-6 rtl:-right-6 not-prose group-hover:opacity-100">
&lt;a class="group-hover:text-primary-300 dark:group-hover:text-neutral-700 !no-underline" href="#%e4%b8%89%e5%b1%82%e8%ae%b0%e5%bf%86" aria-label="锚点">#&lt;/a>
&lt;/span>
&lt;/h3>
&lt;div class="mermaid" align="center">
&lt;pre>
flowchart TD
A[对话启动] --> B[Working Memory&lt;br/>当日焦点]
A --> C[相关记忆&lt;br/>语义搜索]
A --> D[Timeline&lt;br/>最近活动]
B --> E[构建上下文]
C --> E
D --> E
E --> F[Agent 响应]
&lt;/pre>
&lt;/div>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th>层级&lt;/th>
&lt;th>存储&lt;/th>
&lt;th>用途&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td>Working Memory&lt;/td>
&lt;td>Nowledge Mem&lt;/td>
&lt;td>当日焦点、优先事项&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Long-term Memory&lt;/td>
&lt;td>MEMORY.md&lt;/td>
&lt;td>持久化记忆、偏好&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Timeline&lt;/td>
&lt;td>Nowledge Mem&lt;/td>
&lt;td>活动历史、事件记录&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;h2 class="relative group">3. 定时任务系统
&lt;div id="3-定时任务系统" class="anchor">&lt;/div>
&lt;span
class="absolute top-0 w-6 transition-opacity opacity-0 ltr:-left-6 rtl:-right-6 not-prose group-hover:opacity-100">
&lt;a class="group-hover:text-primary-300 dark:group-hover:text-neutral-700 !no-underline" href="#3-%e5%ae%9a%e6%97%b6%e4%bb%bb%e5%8a%a1%e7%b3%bb%e7%bb%9f" aria-label="锚点">#&lt;/a>
&lt;/span>
&lt;/h2>
&lt;h3 class="relative group">Cron 配置
&lt;div id="cron-配置" class="anchor">&lt;/div>
&lt;span
class="absolute top-0 w-6 transition-opacity opacity-0 ltr:-left-6 rtl:-right-6 not-prose group-hover:opacity-100">
&lt;a class="group-hover:text-primary-300 dark:group-hover:text-neutral-700 !no-underline" href="#cron-%e9%85%8d%e7%bd%ae" aria-label="锚点">#&lt;/a>
&lt;/span>
&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-json" data-lang="json">&lt;span class="line">&lt;span class="cl">&lt;span class="p">{&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;#34;name&amp;#34;&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="s2">&amp;#34;每日博客简报生成&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;#34;schedule&amp;#34;&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="p">{&lt;/span> &lt;span class="nt">&amp;#34;kind&amp;#34;&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="s2">&amp;#34;cron&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="nt">&amp;#34;expr&amp;#34;&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="s2">&amp;#34;0 23 * * *&amp;#34;&lt;/span> &lt;span class="p">},&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;#34;payload&amp;#34;&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="p">{&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;#34;kind&amp;#34;&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="s2">&amp;#34;agentTurn&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;#34;message&amp;#34;&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="s2">&amp;#34;执行 daily-blog-generator skill&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;#34;model&amp;#34;&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="s2">&amp;#34;anthropic-local/claude-sonnet-4-6&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="p">},&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;#34;sessionTarget&amp;#34;&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="s2">&amp;#34;isolated&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="p">}&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>
&lt;h3 class="relative group">任务类型
&lt;div id="任务类型" class="anchor">&lt;/div>
&lt;span
class="absolute top-0 w-6 transition-opacity opacity-0 ltr:-left-6 rtl:-right-6 not-prose group-hover:opacity-100">
&lt;a class="group-hover:text-primary-300 dark:group-hover:text-neutral-700 !no-underline" href="#%e4%bb%bb%e5%8a%a1%e7%b1%bb%e5%9e%8b" aria-label="锚点">#&lt;/a>
&lt;/span>
&lt;/h3>
&lt;div class="mermaid" align="center">
&lt;pre>
flowchart LR
A[Cron 任务] --> B{类型}
B -->|systemEvent| C[注入系统事件&lt;br/>无需 model]
B -->|agentTurn| D[隔离会话执行&lt;br/>需要 model]
&lt;/pre>
&lt;/div>
&lt;h2 class="relative group">4. Skills 体系
&lt;div id="4-skills-体系" class="anchor">&lt;/div>
&lt;span
class="absolute top-0 w-6 transition-opacity opacity-0 ltr:-left-6 rtl:-right-6 not-prose group-hover:opacity-100">
&lt;a class="group-hover:text-primary-300 dark:group-hover:text-neutral-700 !no-underline" href="#4-skills-%e4%bd%93%e7%b3%bb" aria-label="锚点">#&lt;/a>
&lt;/span>
&lt;/h2>
&lt;h3 class="relative group">目录结构
&lt;div id="目录结构" class="anchor">&lt;/div>
&lt;span
class="absolute top-0 w-6 transition-opacity opacity-0 ltr:-left-6 rtl:-right-6 not-prose group-hover:opacity-100">
&lt;a class="group-hover:text-primary-300 dark:group-hover:text-neutral-700 !no-underline" href="#%e7%9b%ae%e5%bd%95%e7%bb%93%e6%9e%84" aria-label="锚点">#&lt;/a>
&lt;/span>
&lt;/h3>
&lt;pre tabindex="0">&lt;code>~/.agents/skills/
├── blog-post-generator/
│ └── SKILL.md
├── daily-blog-generator/
│ └── SKILL.md
├── coding-agent/
│ └── SKILL.md
└── ... 90+ skills
&lt;/code>&lt;/pre>
&lt;h3 class="relative group">Skill 触发流程
&lt;div id="skill-触发流程" class="anchor">&lt;/div>
&lt;span
class="absolute top-0 w-6 transition-opacity opacity-0 ltr:-left-6 rtl:-right-6 not-prose group-hover:opacity-100">
&lt;a class="group-hover:text-primary-300 dark:group-hover:text-neutral-700 !no-underline" href="#skill-%e8%a7%a6%e5%8f%91%e6%b5%81%e7%a8%8b" aria-label="锚点">#&lt;/a>
&lt;/span>
&lt;/h3>
&lt;div class="mermaid" align="center">
&lt;pre>
sequenceDiagram
participant U as 用户
participant A as Agent
participant S as Skill
participant B as 博客
U->>A: 随机找一篇上传 blog
A->>S: 匹配 blog-post-generator
S->>S: 1. 从远程仓库获取文档
S->>S: 2. 检查博客已有内容
S->>S: 3. 优化文风
S->>B: 4. 发布到博客
B-->>U: 发布成功
&lt;/pre>
&lt;/div>
&lt;h2 class="relative group">5. 最佳实践
&lt;div id="5-最佳实践" class="anchor">&lt;/div>
&lt;span
class="absolute top-0 w-6 transition-opacity opacity-0 ltr:-left-6 rtl:-right-6 not-prose group-hover:opacity-100">
&lt;a class="group-hover:text-primary-300 dark:group-hover:text-neutral-700 !no-underline" href="#5-%e6%9c%80%e4%bd%b3%e5%ae%9e%e8%b7%b5" aria-label="锚点">#&lt;/a>
&lt;/span>
&lt;/h2>
&lt;h3 class="relative group">模型选择流程
&lt;div id="模型选择流程" class="anchor">&lt;/div>
&lt;span
class="absolute top-0 w-6 transition-opacity opacity-0 ltr:-left-6 rtl:-right-6 not-prose group-hover:opacity-100">
&lt;a class="group-hover:text-primary-300 dark:group-hover:text-neutral-700 !no-underline" href="#%e6%a8%a1%e5%9e%8b%e9%80%89%e6%8b%a9%e6%b5%81%e7%a8%8b" aria-label="锚点">#&lt;/a>
&lt;/span>
&lt;/h3>
&lt;div class="mermaid" align="center">
&lt;pre>
flowchart TD
A[任务] --> B{复杂度}
B -->|简单| C[Claude Sonnet 4.6&lt;br/>省钱]
B -->|复杂| D{类型}
D -->|代码| E[GPT-5.3-Codex]
D -->|推理| F[GPT-5.4]
D -->|中文| G[GLM-5]
&lt;/pre>
&lt;/div>
&lt;h3 class="relative group">配置规范
&lt;div id="配置规范" class="anchor">&lt;/div>
&lt;span
class="absolute top-0 w-6 transition-opacity opacity-0 ltr:-left-6 rtl:-right-6 not-prose group-hover:opacity-100">
&lt;a class="group-hover:text-primary-300 dark:group-hover:text-neutral-700 !no-underline" href="#%e9%85%8d%e7%bd%ae%e8%a7%84%e8%8c%83" aria-label="锚点">#&lt;/a>
&lt;/span>
&lt;/h3>
&lt;ul>
&lt;li>✅ 模型名必须写完整：&lt;code>anthropic-local/claude-sonnet-4-6&lt;/code>&lt;/li>
&lt;li>✅ 路径必须用绝对路径&lt;/li>
&lt;li>✅ agentTurn 任务必须带 model 字段&lt;/li>
&lt;/ul>
&lt;h3 class="relative group">避坑指南
&lt;div id="避坑指南" class="anchor">&lt;/div>
&lt;span
class="absolute top-0 w-6 transition-opacity opacity-0 ltr:-left-6 rtl:-right-6 not-prose group-hover:opacity-100">
&lt;a class="group-hover:text-primary-300 dark:group-hover:text-neutral-700 !no-underline" href="#%e9%81%bf%e5%9d%91%e6%8c%87%e5%8d%97" aria-label="锚点">#&lt;/a>
&lt;/span>
&lt;/h3>
&lt;div class="mermaid" align="center">
&lt;pre>
graph LR
A[问题] --> B{诊断}
B -->|模型回退失败| C[检查 fallback provider]
B -->|Cron 不执行| D[检查 model 字段]
B -->|Skills 加载不到| E[检查绝对路径]
&lt;/pre>
&lt;/div>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th>问题&lt;/th>
&lt;th>原因&lt;/th>
&lt;th>解决方案&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td>模型回退失败&lt;/td>
&lt;td>fallback 模型的 provider 未配置&lt;/td>
&lt;td>检查 providers 配置&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Cron 任务不执行&lt;/td>
&lt;td>缺少 model 字段&lt;/td>
&lt;td>agentTurn 必须带 model&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Skills 加载不到&lt;/td>
&lt;td>路径用相对路径&lt;/td>
&lt;td>本机必须用绝对路径&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;hr>
&lt;p>&lt;em>这套架构运行稳定，每天自动生成博客简报，任务管理效率提升 49%。&lt;/em>&lt;/p></description></item><item><title>代码展示：苹果窗口风格代码框</title><link>https://blog.treesir.pub/posts/code-showcase/</link><pubDate>Sat, 02 Aug 2025 17:20:00 +0800</pubDate><author>yangzun@treesir.pub (Zayn)</author><guid>https://blog.treesir.pub/posts/code-showcase/</guid><description>查看我们全新的苹果窗口风格代码框，支持多种编程语言和复制功能。</description></item><item><title>从 MCP 到一键发包：把 Teambition 评论里的 APK 自动上传 Nexus 的那些坑</title><link>https://blog.treesir.pub/posts/from-mcp-to-one-click-release-ai-agent-automation/</link><pubDate>Sun, 29 Mar 2026 10:30:00 +0800</pubDate><author>yangzun@treesir.pub (Zayn)</author><guid>https://blog.treesir.pub/posts/from-mcp-to-one-click-release-ai-agent-automation/</guid><description>&lt;h2 class="relative group">推荐阅读
&lt;div id="推荐阅读" class="anchor">&lt;/div>
&lt;span
class="absolute top-0 w-6 transition-opacity opacity-0 ltr:-left-6 rtl:-right-6 not-prose group-hover:opacity-100">
&lt;a class="group-hover:text-primary-300 dark:group-hover:text-neutral-700 !no-underline" href="#%e6%8e%a8%e8%8d%90%e9%98%85%e8%af%bb" aria-label="锚点">#&lt;/a>
&lt;/span>
&lt;/h2>
&lt;ul>
&lt;li>&lt;a
href="https://blog.treesir.pub/posts/daily-practice-2026-03-28/">每日技术实践简报 - 2026-03-28&lt;/a>&lt;/li>
&lt;li>&lt;a
href="https://blog.treesir.pub/posts/openclaw-ai-agent-architecture-v2/">OpenClaw AI Agent 架构解析：多引擎联动与记忆系统&lt;/a>&lt;/li>
&lt;li>&lt;a
href="https://blog.treesir.pub/posts/ai-agent-workflow-practice/">当 AI Agent 遇上运维自动化：我的实践踩坑之路&lt;/a>&lt;/li>
&lt;/ul>
&lt;hr>
&lt;h2 class="relative group">目录
&lt;div id="目录" class="anchor">&lt;/div>
&lt;span
class="absolute top-0 w-6 transition-opacity opacity-0 ltr:-left-6 rtl:-right-6 not-prose group-hover:opacity-100">
&lt;a class="group-hover:text-primary-300 dark:group-hover:text-neutral-700 !no-underline" href="#%e7%9b%ae%e5%bd%95" aria-label="锚点">#&lt;/a>
&lt;/span>
&lt;/h2>
&lt;ul>
&lt;li>&lt;a
href="#%e7%9b%ae%e6%a0%87%e6%8a%8a%e6%89%8b%e5%b7%a5%e7%82%b9%e7%82%b9%e7%82%b9%e5%8f%98%e6%88%90%e5%8f%af%e5%a4%8d%e7%94%a8%e9%93%be%e8%b7%af">目标：把&amp;quot;手工点点点&amp;quot;变成可复用链路&lt;/a>&lt;/li>
&lt;li>&lt;a
href="#%e6%8a%80%e6%9c%af%e6%96%b9%e6%a1%88%e4%b8%ba%e4%bb%80%e4%b9%88%e9%80%89-mcp--skill">技术方案：为什么选 MCP + Skill&lt;/a>&lt;/li>
&lt;li>&lt;a
href="#%e5%ae%9e%e6%88%98%e4%bb%8e-mcporter-%e8%b0%83%e9%80%9a%e7%ac%ac%e4%b8%80%e6%9d%a1%e9%93%be%e8%b7%af">实战：从 mcporter 调通第一条链路&lt;/a>
&lt;ul>
&lt;li>&lt;a
href="#%e7%ac%ac%e4%b8%80%e4%b8%aa%e5%9d%91mcporter-%e7%9a%84%e5%8f%82%e6%95%b0%e6%a0%bc%e5%bc%8f">第一个坑：mcporter 的参数格式&lt;/a>&lt;/li>
&lt;li>&lt;a
href="#%e6%8b%bf%e8%af%84%e8%ae%ba%e5%92%8c%e9%99%84%e4%bb%b6listtaskactivitiesv3">拿评论和附件：ListTaskActivitiesV3&lt;/a>&lt;/li>
&lt;li>&lt;a
href="#%e7%ac%ac%e4%ba%8c%e4%b8%aa%e5%9d%91%e6%88%90%e5%91%98-id-%e5%85%a8%e6%98%af-objectid">第二个坑：成员 ID 全是 ObjectId&lt;/a>&lt;/li>
&lt;li>&lt;a
href="#%e7%ac%ac%e4%b8%89%e4%b8%aa%e5%9d%91apk-%e6%96%87%e4%bb%b6%e5%90%8d%e5%a4%aa%e9%87%8e%e4%ba%86">第三个坑：APK 文件名太野了&lt;/a>&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a
href="#skill-%e5%b0%81%e8%a3%85tb-apk-uploader-%e7%9a%84%e6%a0%b8%e5%bf%83%e6%b5%81%e7%a8%8b">Skill 封装：tb-apk-uploader 的核心流程&lt;/a>&lt;/li>
&lt;li>&lt;a
href="#%e6%9c%80%e7%bb%88%e6%95%88%e6%9e%9c%e4%b8%80%e5%8f%a5%e8%af%9d%e5%8f%91%e5%8c%85">最终效果：一句话发包&lt;/a>&lt;/li>
&lt;li>&lt;a
href="#%e8%b8%a9%e5%9d%91%e6%80%bb%e7%bb%93%e5%88%ab%e8%a2%ab%e7%bb%86%e8%8a%82%e6%8b%96%e6%ad%bb">踩坑总结：别被细节拖死&lt;/a>&lt;/li>
&lt;/ul>
&lt;hr>
&lt;p>这周我被一个很&amp;quot;低级但很费命&amp;quot;的流程折磨了好几次:&lt;/p></description></item></channel></rss>