<?xml version="1.0" encoding="utf-8" standalone="yes"?><?xml-stylesheet type="text/xsl" href="/rss.xsl"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>07 Build Your Own - Cygnus Tech Blog</title><link>https://cygnusyang.github.io/posts/01-ai-%E5%B7%A5%E5%85%B7%E4%B8%8E%E6%99%BA%E8%83%BD%E4%BD%93/07-harness/07-build-your-own/</link><description>技术 × 产品 × 机器人</description><generator>Hugo 0.160.1 & FixIt v0.4.6-20260517062719-ed8ec5c2</generator><language>zh-CN</language><managingEditor>ruohuyang@163.com (Cygnus Yang)</managingEditor><webMaster>ruohuyang@163.com (Cygnus Yang)</webMaster><lastBuildDate>Sat, 23 May 2026 00:00:00 +0800</lastBuildDate><atom:link href="https://cygnusyang.github.io/posts/01-ai-%E5%B7%A5%E5%85%B7%E4%B8%8E%E6%99%BA%E8%83%BD%E4%BD%93/07-harness/07-build-your-own/index.xml" rel="self" type="application/rss+xml"/><item><title>第22章 从零构建 Mini-Harness —— Agent Loop 的最小实现</title><link>https://cygnusyang.github.io/posts/01-ai-%E5%B7%A5%E5%85%B7%E4%B8%8E%E6%99%BA%E8%83%BD%E4%BD%93/07-harness/07-build-your-own/22-build-mini-harness/</link><pubDate>Sat, 23 May 2026 00:00:00 +0800</pubDate><author>ruohuyang@163.com (Cygnus Yang)</author><guid>https://cygnusyang.github.io/posts/01-ai-%E5%B7%A5%E5%85%B7%E4%B8%8E%E6%99%BA%E8%83%BD%E4%BD%93/07-harness/07-build-your-own/22-build-mini-harness/</guid><description>&lt;p&gt;上一篇我们了解了 Agent 间通信协议。本章我们从零构建一个 Mini-Harness——Agent Loop 的最小实现。&lt;/p&gt;
&lt;h2 class="heading-element" id="mini-harness-是什么"&gt;&lt;span&gt;Mini-Harness 是什么&lt;/span&gt;
 &lt;a href="#mini-harness-%e6%98%af%e4%bb%80%e4%b9%88" class="heading-mark"&gt;
 &lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"&gt;&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"&gt;&lt;/path&gt;&lt;/svg&gt;
 &lt;/a&gt;
&lt;/h2&gt;&lt;p&gt;&lt;strong&gt;一句话定义&lt;/strong&gt;：Agent Loop 的最小实现——observe→think→act→feedback 的核心循环。&lt;/p&gt;</description></item><item><title>第23章 添加工具系统与权限控制 —— Mini-Harness 的安全升级</title><link>https://cygnusyang.github.io/posts/01-ai-%E5%B7%A5%E5%85%B7%E4%B8%8E%E6%99%BA%E8%83%BD%E4%BD%93/07-harness/07-build-your-own/23-add-tools-permissions/</link><pubDate>Sat, 23 May 2026 00:00:00 +0800</pubDate><author>ruohuyang@163.com (Cygnus Yang)</author><guid>https://cygnusyang.github.io/posts/01-ai-%E5%B7%A5%E5%85%B7%E4%B8%8E%E6%99%BA%E8%83%BD%E4%BD%93/07-harness/07-build-your-own/23-add-tools-permissions/</guid><description>&lt;p&gt;上一篇我们从零构建了 Mini-Harness。本章我们添加工具系统与权限控制——提升安全性。&lt;/p&gt;
&lt;h2 class="heading-element" id="为什么需要权限控制"&gt;&lt;span&gt;为什么需要权限控制&lt;/span&gt;
 &lt;a href="#%e4%b8%ba%e4%bb%80%e4%b9%88%e9%9c%80%e8%a6%81%e6%9d%83%e9%99%90%e6%8e%a7%e5%88%b6" class="heading-mark"&gt;
 &lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"&gt;&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"&gt;&lt;/path&gt;&lt;/svg&gt;
 &lt;/a&gt;
&lt;/h2&gt;&lt;h3 class="heading-element" id="mini-harness-的安全风险"&gt;&lt;span&gt;Mini-Harness 的安全风险&lt;/span&gt;
 &lt;a href="#mini-harness-%e7%9a%84%e5%ae%89%e5%85%a8%e9%a3%8e%e9%99%a9" class="heading-mark"&gt;
 &lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"&gt;&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"&gt;&lt;/path&gt;&lt;/svg&gt;
 &lt;/a&gt;
&lt;/h3&gt;&lt;pre&gt;&lt;code&gt;graph TB
 subgraph SecurityRisks[&amp;#34;Mini-Harness 安全风险&amp;#34;]
 R1[无权限检查&amp;lt;br/&amp;gt;所有操作自动执行]
 R2[危险命令执行&amp;lt;br/&amp;gt;Bash可执行任意命令]
 R3[文件覆盖风险&amp;lt;br/&amp;gt;Write可覆盖任意文件]
 R4[系统文件删除&amp;lt;br/&amp;gt;可能删除关键文件]
 end
 
 style SecurityRisks fill:#FFE0E0&lt;/code&gt;&lt;/pre&gt;&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;风险&lt;/th&gt;
 &lt;th&gt;说明&lt;/th&gt;
 &lt;th&gt;示例&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;无权限检查&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;所有操作自动执行&lt;/td&gt;
 &lt;td&gt;无需用户确认&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;危险命令执行&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;Bash 可执行 rm -rf /&lt;/td&gt;
 &lt;td&gt;系统崩溃&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;文件覆盖风险&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;Write 可覆盖任意文件&lt;/td&gt;
 &lt;td&gt;覆盖 .env 文件&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;系统文件删除&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;可能删除关键系统文件&lt;/td&gt;
 &lt;td&gt;删除 /bin/bash&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 class="heading-element" id="权限控制的好处"&gt;&lt;span&gt;权限控制的好处&lt;/span&gt;
 &lt;a href="#%e6%9d%83%e9%99%90%e6%8e%a7%e5%88%b6%e7%9a%84%e5%a5%bd%e5%a4%84" class="heading-mark"&gt;
 &lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"&gt;&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"&gt;&lt;/path&gt;&lt;/svg&gt;
 &lt;/a&gt;
&lt;/h3&gt;&lt;pre&gt;&lt;code&gt;graph TB
 subgraph PermissionBenefits[&amp;#34;权限控制的好处&amp;#34;]
 B1[安全保护&amp;lt;br/&amp;gt;危险操作需审批]
 B2[用户控制&amp;lt;br/&amp;gt;用户决定是否执行]
 B3[风险降低&amp;lt;br/&amp;gt;防止误操作]
 B4[信任建立&amp;lt;br/&amp;gt;用户信任Agent]
 end
 
 style PermissionBenefits fill:#E0FFE0&lt;/code&gt;&lt;/pre&gt;&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;好处&lt;/th&gt;
 &lt;th&gt;说明&lt;/th&gt;
 &lt;th&gt;价值&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;安全保护&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;危险操作需用户审批&lt;/td&gt;
 &lt;td&gt;系统安全&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;用户控制&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;用户决定是否执行&lt;/td&gt;
 &lt;td&gt;用户主导&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;风险降低&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;防止误操作&lt;/td&gt;
 &lt;td&gt;防止损失&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;信任建立&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;用户信任 Agent&lt;/td&gt;
 &lt;td&gt;期使用&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 class="heading-element" id="权限系统设计"&gt;&lt;span&gt;权限系统设计&lt;/span&gt;
 &lt;a href="#%e6%9d%83%e9%99%90%e7%b3%bb%e7%bb%9f%e8%ae%be%e8%ae%a1" class="heading-mark"&gt;
 &lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"&gt;&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"&gt;&lt;/path&gt;&lt;/svg&gt;
 &lt;/a&gt;
&lt;/h2&gt;&lt;h3 class="heading-element" id="三级权限模式"&gt;&lt;span&gt;三级权限模式&lt;/span&gt;
 &lt;a href="#%e4%b8%89%e7%ba%a7%e6%9d%83%e9%99%90%e6%a8%a1%e5%bc%8f" class="heading-mark"&gt;
 &lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"&gt;&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"&gt;&lt;/path&gt;&lt;/svg&gt;
 &lt;/a&gt;
&lt;/h3&gt;&lt;pre&gt;&lt;code&gt;graph LR
 A[工具调用请求] --&amp;gt; B{权限检查}
 B --&amp;gt;|deny| C[❌ 禁止执行]
 B --&amp;gt;|ask| D[⚠️ 请求审批]
 B --&amp;gt;|allow| E[✅ 自动执行]
 
 D --&amp;gt;|批准| E
 D --&amp;gt;|拒绝| C&lt;/code&gt;&lt;/pre&gt;&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;权限模式&lt;/th&gt;
 &lt;th&gt;行为&lt;/th&gt;
 &lt;th&gt;适用场景&lt;/th&gt;
 &lt;th&gt;示例&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;deny&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;禁止执行，返回错误&lt;/td&gt;
 &lt;td&gt;极危险操作&lt;/td&gt;
 &lt;td&gt;rm -rf /&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;ask&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;请求用户审批，等待确认&lt;/td&gt;
 &lt;td&gt;中等风险&lt;/td&gt;
 &lt;td&gt;git push&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;allow&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;自动执行，无需用户干预&lt;/td&gt;
 &lt;td&gt;安全操作&lt;/td&gt;
 &lt;td&gt;Read 文件&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 class="heading-element" id="权限规则配置"&gt;&lt;span&gt;权限规则配置&lt;/span&gt;
 &lt;a href="#%e6%9d%83%e9%99%90%e8%a7%84%e5%88%99%e9%85%8d%e7%bd%ae" class="heading-mark"&gt;
 &lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"&gt;&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"&gt;&lt;/path&gt;&lt;/svg&gt;
 &lt;/a&gt;
&lt;/h3&gt;&lt;pre&gt;&lt;code&gt;{
 &amp;#34;permissions&amp;#34;: {
 &amp;#34;deny&amp;#34;: [
 {&amp;#34;tool&amp;#34;: &amp;#34;Bash&amp;#34;, &amp;#34;command&amp;#34;: &amp;#34;rm -rf /&amp;#34;},
 {&amp;#34;tool&amp;#34;: &amp;#34;Bash&amp;#34;, &amp;#34;command&amp;#34;: &amp;#34;sudo&amp;#34;},
 {&amp;#34;tool&amp;#34;: &amp;#34;Read&amp;#34;, &amp;#34;file_path&amp;#34;: &amp;#34;.env&amp;#34;}
 ],
 &amp;#34;ask&amp;#34;: [
 {&amp;#34;tool&amp;#34;: &amp;#34;Bash&amp;#34;, &amp;#34;command&amp;#34;: &amp;#34;git push&amp;#34;},
 {&amp;#34;tool&amp;#34;: &amp;#34;Bash&amp;#34;, &amp;#34;command&amp;#34;: &amp;#34;npm install&amp;#34;},
 {&amp;#34;tool&amp;#34;: &amp;#34;Write&amp;#34;},
 {&amp;#34;tool&amp;#34;: &amp;#34;Edit&amp;#34;}
 ],
 &amp;#34;allow&amp;#34;: [
 {&amp;#34;tool&amp;#34;: &amp;#34;Read&amp;#34;},
 {&amp;#34;tool&amp;#34;: &amp;#34;Glob&amp;#34;},
 {&amp;#34;tool&amp;#34;: &amp;#34;Grep&amp;#34;}
 ]
 }
}&lt;/code&gt;&lt;/pre&gt;&lt;h2 class="heading-element" id="step-1权限检查模块"&gt;&lt;span&gt;Step 1：权限检查模块&lt;/span&gt;
 &lt;a href="#step-1%e6%9d%83%e9%99%90%e6%a3%80%e6%9f%a5%e6%a8%a1%e5%9d%97" class="heading-mark"&gt;
 &lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"&gt;&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"&gt;&lt;/path&gt;&lt;/svg&gt;
 &lt;/a&gt;
&lt;/h2&gt;&lt;h3 class="heading-element" id="实现目标"&gt;&lt;span&gt;实现目标&lt;/span&gt;
 &lt;a href="#%e5%ae%9e%e7%8e%b0%e7%9b%ae%e6%a0%87" class="heading-mark"&gt;
 &lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"&gt;&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"&gt;&lt;/path&gt;&lt;/svg&gt;
 &lt;/a&gt;
&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;一句话定义&lt;/strong&gt;：检查工具调用是否匹配 deny/ask/allow 规则。&lt;/p&gt;</description></item><item><title>第24章 添加 MCP 与多智能体支持 —— Mini-Harness 的能力扩展</title><link>https://cygnusyang.github.io/posts/01-ai-%E5%B7%A5%E5%85%B7%E4%B8%8E%E6%99%BA%E8%83%BD%E4%BD%93/07-harness/07-build-your-own/24-add-mcp-multi-agent/</link><pubDate>Sat, 23 May 2026 00:00:00 +0800</pubDate><author>ruohuyang@163.com (Cygnus Yang)</author><guid>https://cygnusyang.github.io/posts/01-ai-%E5%B7%A5%E5%85%B7%E4%B8%8E%E6%99%BA%E8%83%BD%E4%BD%93/07-harness/07-build-your-own/24-add-mcp-multi-agent/</guid><description>&lt;p&gt;上一篇我们添加了工具系统与权限控制。本章我们添加 MCP 与多智能体支持——扩展能力边界。&lt;/p&gt;
&lt;h2 class="heading-element" id="mcp-集成是什么"&gt;&lt;span&gt;MCP 集成是什么&lt;/span&gt;
 &lt;a href="#mcp-%e9%9b%86%e6%88%90%e6%98%af%e4%bb%80%e4%b9%88" class="heading-mark"&gt;
 &lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"&gt;&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"&gt;&lt;/path&gt;&lt;/svg&gt;
 &lt;/a&gt;
&lt;/h2&gt;&lt;p&gt;&lt;strong&gt;一句话定义&lt;/strong&gt;：通过 MCP 协议连接外部系统——数据库、云服务、企业 API。&lt;/p&gt;</description></item></channel></rss>