<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom" ><generator uri="https://jekyllrb.com/" version="4.4.1">Jekyll</generator><link href="/feed.xml" rel="self" type="application/atom+xml" /><link href="/" rel="alternate" type="text/html" /><updated>2026-07-21T08:31:04+00:00</updated><id>/feed.xml</id><title type="html">比特匠的技术笔记</title><subtitle>关于 AI Agent、Skill 设计、浏览器自动化的技术与思考</subtitle><entry><title type="html">内蒙草原 5 天经典环线（达达线+热阿线+乌兰布统）</title><link href="/trip/self-drive/2026/07/20/inner-mongolia-5day-loop.html" rel="alternate" type="text/html" title="内蒙草原 5 天经典环线（达达线+热阿线+乌兰布统）" /><published>2026-07-20T00:00:00+00:00</published><updated>2026-07-20T00:00:00+00:00</updated><id>/trip/self-drive/2026/07/20/inner-mongolia-5day-loop</id><content type="html" xml:base="/trip/self-drive/2026/07/20/inner-mongolia-5day-loop.html"><![CDATA[<!-- 手机友好的文章样式（参考 fujian-coast-self-drive.html pandoc 风格） -->
<style>
/* ----- 主体字体加粗 + 行宽限制 ----- */
.post-content, .page-content {
  font-family: -apple-system, BlinkMacSystemFont, "PingFang SC", "Microsoft YaHei", sans-serif;
  font-size: 17px;
  line-height: 1.85;
  color: #2a2a2a;
  max-width: 38em;
  margin: 0 auto;
}
.post-content p, .post-content li,
.page-content p, .page-content li {
  font-size: 17px;
  line-height: 1.85;
  margin: 0.8em 0;
}

/* ----- 标题层级加大、加色 ----- */
.post-content h1, .page-content h1 {
  font-size: 2em;
  font-weight: 700;
  text-align: center;
  margin: 1.6em 0 0.8em;
}
.post-content h2, .page-content h2 {
  font-size: 1.6em;
  font-weight: 700;
  color: #FF6F00;
  margin: 2em 0 0.8em;
  padding-bottom: 0.4em;
  border-bottom: 3px solid #FF6F00;
}
.post-content h3, .page-content h3 {
  font-size: 1.3em;
  font-weight: 600;
  color: #d96a00;
  margin: 1.6em 0 0.6em;
}
.post-content h4, .page-content h4 {
  font-size: 1.05em;
  font-weight: 600;
  color: #444;
  margin: 1.3em 0 0.5em;
  padding: 0.5em 0.8em;
  background: #fff3e0;
  border-left: 5px solid #FF6F00;
}

/* ----- 表格 ----- */
.post-content table, .page-content table {
  font-size: 14px;
  line-height: 1.55;
  margin: 1.4em auto;
  width: auto;
  max-width: 100%;
  border-collapse: collapse;
  border: 1px solid #e6e6e6;
  display: block;
  overflow-x: auto;
}
.post-content th, .page-content th {
  background: #FF6F00;
  color: #fff;
  padding: 8px 12px;
  font-weight: 600;
  text-align: left;
  white-space: nowrap;
}
.post-content td, .page-content td {
  padding: 7px 12px;
  border-bottom: 1px solid #eee;
  vertical-align: top;
}
.post-content tr:nth-child(even), .page-content tr:nth-child(even) {
  background: #fafafa;
}

/* ----- 块引用高亮 ----- */
.post-content blockquote, .page-content blockquote {
  background: #fff8e1;
  border-left: 5px solid #FF6F00;
  padding: 12px 16px;
  margin: 1.2em 0;
  color: #555;
  border-radius: 4px;
}

/* ----- 强调 / 链接 ----- */
.post-content strong, .page-content strong {
  color: #d96a00;
}
.post-content a, .page-content a {
  color: #FF6F00;
  text-decoration: underline;
  text-underline-offset: 2px;
}

/* ----- 行内代码 ----- */
.post-content code, .page-content code {
  background: #f6f6f6;
  padding: 2px 6px;
  border-radius: 3px;
  font-size: 14px;
  color: #c7254e;
}

/* ----- 分割 ----- */
.post-content hr, .page-content hr {
  border: none;
  border-top: 1px dashed #ccc;
  margin: 2.4em 0;
}

/* ----- 锚点跳转留出位置 (避免被浮动 TOC 遮住) ----- */
.post-content :target, .page-content :target {
  scroll-margin-top: 80px;
}

/* ======================================= */
/* ============ Mobile 响应式 ============== */
/* ======================================= */
@media (max-width: 768px) {
  .post-content, .page-content {
    font-size: 16px;
    line-height: 1.75;
    padding: 8px;
  }
  .post-content p, .post-content li,
  .page-content p, .page-content li {
    font-size: 16px;
    line-height: 1.75;
  }
  .post-content h1, .page-content h1 { font-size: 1.6em; }
  .post-content h2, .page-content h2 { font-size: 1.35em; }
  .post-content h3, .page-content h3 { font-size: 1.18em; }
  .post-content h4, .page-content h4 { font-size: 1em; }
  .post-content table, .page-content table { font-size: 13px; }
}
@media (max-width: 480px) {
  .post-content, .page-content {
    font-size: 15px;
    line-height: 1.7;
  }
  .post-content p, .post-content li,
  .page-content p, .page-content li {
    font-size: 15px;
  }
  .post-content h1, .page-content h1 { font-size: 1.45em; }
  .post-content h2, .page-content h2 { font-size: 1.25em; }
  .post-content h3, .page-content h3 { font-size: 1.1em; }
  .post-content table, .page-content table { font-size: 12px; }
  /* 浮动 TOC 在小屏幕下不挡视图 */
  .toc-float .toc-panel {
    width: calc(100vw - 32px);
    right: -8px;
  }
}
</style>

<blockquote>
  <p>📍 <strong>配套高德导航页</strong>：<a href="/inner-mongolia-trip-map.html">inner-mongolia-trip-map.html</a> — 每日 POI 卡片，点击直接拉起高德 App</p>

  <p>（移动端打开攻略 + 配套导航页，路上直接点 POI 卡片就能跳到高德 App）</p>
</blockquote>

<h1 id="️-内蒙草原-5-天经典环线达达线热阿线乌兰布统">🗺️ 内蒙草原 5 天经典环线（达达线+热阿线+乌兰布统）</h1>

<blockquote>
  <p><strong>路线</strong>：北京（顺义）→ 承德 → 塞罕坝 → 乌兰布统 → 达达线+热阿线 → 经棚镇 → 达里湖 → 锡张高速 → 北京
<strong>车型</strong>：两驱 SUV ｜ <strong>里程</strong>：约 1700km（环线，不走回头路）｜ <strong>季节</strong>：7-8 月（草原最美）</p>
</blockquote>

<hr />

<h2 id="d1">📅 D1｜北京 → 承德 → 塞罕坝 → 乌兰布统</h2>

<p><strong>总里程</strong>：约 460km ｜ <strong>用时</strong>：6.5h（含午休+拍照）</p>

<blockquote>
  <p>📍 <strong>本天加项</strong>：可选 <a href="#module-duolun">Module B 多伦湖捡石</a> · 改 D1 起点走多伦 → 乌兰布统 → 多 1 天。</p>
</blockquote>

<table>
  <thead>
    <tr>
      <th>时间</th>
      <th>节点</th>
      <th>里程</th>
      <th>备注</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>7:30</td>
      <td>顺义枫泉出发</td>
      <td>0km</td>
      <td>走京承高速</td>
    </tr>
    <tr>
      <td>9:30</td>
      <td>密云服务区</td>
      <td>60km</td>
      <td>第一次休整</td>
    </tr>
    <tr>
      <td>12:00</td>
      <td>承德午餐</td>
      <td>230km</td>
      <td>避暑山庄附近</td>
    </tr>
    <tr>
      <td>13:30</td>
      <td>走承围线（G111）</td>
      <td>230km</td>
      <td>转入御道口方向</td>
    </tr>
    <tr>
      <td>15:30</td>
      <td><strong>塞罕坝林海</strong></td>
      <td>360km</td>
      <td>穿林海而过</td>
    </tr>
    <tr>
      <td>16:00</td>
      <td><strong>塞罕坝·七星湖</strong></td>
      <td>365km</td>
      <td>木栈道+晨雾+落叶松（免费）</td>
    </tr>
    <tr>
      <td>17:00</td>
      <td><strong>御道口·月亮湖</strong></td>
      <td>400km</td>
      <td>月牙形草原湖</td>
    </tr>
    <tr>
      <td>17:30</td>
      <td><strong>乌兰布统红山军马场</strong></td>
      <td>450km</td>
      <td>入住</td>
    </tr>
    <tr>
      <td>18:30</td>
      <td><strong>影视基地拍日落</strong></td>
      <td>460km</td>
      <td>欧式草原+暖光</td>
    </tr>
    <tr>
      <td>20:00</td>
      <td>晚餐</td>
      <td>460km</td>
      <td>老舅老蒙肉饼</td>
    </tr>
  </tbody>
</table>

<h3 id="-今日重点">🎯 今日重点</h3>

<ul>
  <li>塞罕坝穿林海+七星湖+御道口月亮湖（路上三个免费加分点）</li>
  <li>影视基地日落（<strong>今日重头戏</strong>）</li>
</ul>

<h3 id="-加油">⛽ 加油</h3>

<ul>
  <li>承德市区（<strong>出发前加满</strong>）</li>
  <li>御道口（<strong>红山军马场前最后一次加油</strong>）</li>
</ul>

<h3 id="️-餐饮">🍽️ 餐饮</h3>

<ul>
  <li><strong>午餐（承德）</strong>：老三羊汤（羊汤+烧饼）/ 乔家满族八大碗（承德菜）</li>
  <li><strong>晚餐（红山军马场）</strong>：老舅老蒙肉饼（当地特色）</li>
</ul>

<h3 id="-住宿红山军马场">🏨 住宿（红山军马场）</h3>

<table>
  <thead>
    <tr>
      <th>酒店</th>
      <th>价格</th>
      <th>备注</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>乌兰布统红山宾馆</td>
      <td>400-500/晚</td>
      <td>老牌位置中心</td>
    </tr>
    <tr>
      <td>克什克腾牧家乐</td>
      <td>300-400/晚</td>
      <td>蒙古包体验</td>
    </tr>
    <tr>
      <td>塞外江南度假村</td>
      <td>500-700/晚</td>
      <td>配套全有温泉</td>
    </tr>
    <tr>
      <td>将军泡子蒙古大营</td>
      <td>350-450/晚</td>
      <td>看泡子日出方便</td>
    </tr>
  </tbody>
</table>

<hr />

<h2 id="d2">📅 D2｜乌兰布统核心区（柏油可达）</h2>

<p><strong>总里程</strong>：约 80km ｜ <strong>用时</strong>：12h（含游玩）</p>

<blockquote>
  <p>📍 <strong>本天加项</strong>：D2 已是乌兰布统深度日 · 不另加模块（已含金莲花湿地 + 东沟 + 将军泡子日落）。</p>
</blockquote>

<table>
  <thead>
    <tr>
      <th>时间</th>
      <th>节点</th>
      <th>备注</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>5:30</td>
      <td><strong>私家牧场看日出</strong></td>
      <td>晨雾+草浪，免费</td>
    </tr>
    <tr>
      <td>7:30</td>
      <td>早餐</td>
      <td>酒店或牧户家</td>
    </tr>
    <tr>
      <td>8:30</td>
      <td><strong>公主湖</strong></td>
      <td>蓝齐格格传说，欧式草原湖泊</td>
    </tr>
    <tr>
      <td>9:30</td>
      <td><strong>盘龙峡谷</strong></td>
      <td>公主湖与将军泡子之间，野花+怪石</td>
    </tr>
    <tr>
      <td>10:30</td>
      <td><strong>五彩山</strong></td>
      <td>色彩斑斓山丘，摄影点</td>
    </tr>
    <tr>
      <td>12:00</td>
      <td><strong>午餐</strong></td>
      <td>蒙古牧户家</td>
    </tr>
    <tr>
      <td>13:30</td>
      <td><strong>影视基地</strong></td>
      <td>重走日落路线，看白天</td>
    </tr>
    <tr>
      <td>15:30</td>
      <td><strong>金莲花湿地</strong>（7-8 月）</td>
      <td>漫山遍野金莲</td>
    </tr>
    <tr>
      <td>17:00</td>
      <td><strong>东沟</strong></td>
      <td>比西沟人少 70%，野花密</td>
    </tr>
    <tr>
      <td>17:30</td>
      <td><strong>将军泡子日落</strong></td>
      <td>今日重头戏</td>
    </tr>
    <tr>
      <td>19:30</td>
      <td>晚餐+篝火（如有）</td>
      <td> </td>
    </tr>
  </tbody>
</table>

<h3 id="-今日重点-1">🎯 今日重点</h3>

<ul>
  <li>公主湖+将军泡子+影视基地（乌兰布统三件套，<strong>两驱 SUV 全程柏油</strong>）</li>
  <li>盘龙峡谷+东沟（<strong>人少景美的隐藏点</strong>）</li>
  <li>私家牧场日出（晨雾氛围）</li>
  <li>金莲花湿地（7-8 月限定）</li>
</ul>

<h3 id="️-餐饮-1">🍽️ 餐饮</h3>

<ul>
  <li><strong>午餐</strong>：牧户家手把肉（80-120/人，骨头带肉清水煮+奶茶+奶豆腐）</li>
  <li><strong>晚餐</strong>：铜锅涮肉 或 老舅老蒙肉饼</li>
</ul>

<h3 id="-加油-1">⛽ 加油</h3>

<p>红山军马场镇上（<strong>今日出发前加满</strong>）</p>

<h3 id="-住宿">🏨 住宿</h3>

<p>红山军马场（同 D1）</p>

<hr />

<h2 id="d3">📅 D3｜达达线 + 热阿线环线（草原公路精华）</h2>

<p><strong>总里程</strong>：约 280km ｜ <strong>用时</strong>：约 8h（含游玩+午餐+温泉）</p>

<blockquote>
  <p>📍 <strong>本天加项</strong>：可后续接 <a href="#module-keqi">Module A 克什克腾西侧</a>（D3 之后延展 D4’）。</p>
</blockquote>

<table>
  <thead>
    <tr>
      <th>时间</th>
      <th>节点</th>
      <th>里程</th>
      <th>备注</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>7:00</td>
      <td>早餐+退房</td>
      <td>0km</td>
      <td> </td>
    </tr>
    <tr>
      <td>8:00</td>
      <td>乌兰布统出发</td>
      <td>0km</td>
      <td>走 G303</td>
    </tr>
    <tr>
      <td>9:30</td>
      <td><strong>贡格尔收费站</strong></td>
      <td>80km</td>
      <td>出口下来，正式上达达线</td>
    </tr>
    <tr>
      <td>10:00</td>
      <td><strong>踏上达达线</strong></td>
      <td>100km</td>
      <td>彩虹公路，”中国北疆风景大道”</td>
    </tr>
    <tr>
      <td>12:00</td>
      <td><strong>巴彦查干苏木午餐</strong></td>
      <td>150km</td>
      <td>⚠️ <strong>后面无正经餐馆</strong></td>
    </tr>
    <tr>
      <td>13:00</td>
      <td><strong>阿斯哈图石林南门</strong></td>
      <td>180km</td>
      <td><strong>石林驿站</strong>免费远眺</td>
    </tr>
    <tr>
      <td>15:00</td>
      <td><strong>黄岗梁森林旅游区</strong></td>
      <td>220km</td>
      <td>山顶观景台（<strong>导航设”森林旅游区”</strong>）</td>
    </tr>
    <tr>
      <td>16:30</td>
      <td><strong>黄岗梁·盘山公路</strong>（半山腰）</td>
      <td>225km</td>
      <td>绿+雾+云海组合</td>
    </tr>
    <tr>
      <td>17:30</td>
      <td><strong>热水塘镇</strong></td>
      <td>260km</td>
      <td>温泉解乏（可选）</td>
    </tr>
    <tr>
      <td>18:30</td>
      <td><strong>经棚镇</strong>入住</td>
      <td>280km</td>
      <td>今日终点</td>
    </tr>
  </tbody>
</table>

<h3 id="-今日重点-2">🎯 今日重点</h3>

<ul>
  <li><strong>达达线</strong>（中国最美草原公路，<strong>全程柏油</strong>）</li>
  <li><strong>阿斯哈图石林南门石林驿站</strong>（免费远眺，省 160 门票）</li>
  <li><strong>黄岗梁山顶观景台</strong>（连绵草甸+盘山路）</li>
  <li><strong>黄岗梁盘山公路</strong>（半山腰，晨雾时最仙）</li>
  <li><strong>热水塘温泉</strong>（可选，解乏神器）</li>
</ul>

<h3 id="️-关键提醒">⚠️ 关键提醒</h3>

<ol>
  <li><strong>石林驿站</strong>：阿斯哈图南门往里开 5 分钟，路边停车区+观景台，<strong>免费</strong>看整片石林</li>
  <li><strong>黄岗梁导航</strong>：高德搜”<strong>黄岗梁森林旅游区</strong>“（不是”国家森林公园”——那是山脚水库）</li>
  <li><strong>黄岗梁山顶</strong>：跟着车流走，盘山路 20 分钟到顶，车最多的地方就是精华</li>
  <li><strong>巴彦查干苏木</strong>：是达达线上<strong>最后一个正经餐馆</strong>（手把肉+面条），后面只有牧户家</li>
  <li><strong>区间测速</strong>：达达线+热阿线全程 40-60km/h 限速，<strong>别超速</strong></li>
</ol>

<h3 id="️-餐饮-2">🍽️ 餐饮</h3>

<ul>
  <li><strong>午餐（巴彦查干苏木）</strong>：牧户家手把肉（80-100/人）+ 野韭花酱</li>
  <li><strong>晚餐（经棚镇）</strong>：克什克腾烤羊腿（60-80/斤）+ 莜面宴</li>
  <li>推荐店：草原牧歌蒙餐 / 老蒙餐厅</li>
</ul>

<h3 id="-加油-2">⛽ 加油</h3>

<ul>
  <li>乌兰布统（<strong>出发前加满</strong>）</li>
  <li><strong>贡格尔收费站</strong>（达达线入口镇子，最后一次可靠加油点）</li>
  <li>经棚镇（到达后加满）</li>
</ul>

<h3 id="-住宿经棚镇">🏨 住宿（经棚镇）</h3>

<table>
  <thead>
    <tr>
      <th>酒店</th>
      <th>价格</th>
      <th>备注</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td><strong>星程酒店</strong></td>
      <td>350-450/晚</td>
      <td>连锁稳定，旺季提前订</td>
    </tr>
    <tr>
      <td><strong>克什克腾旗宾馆</strong></td>
      <td>250-350/晚</td>
      <td>老牌政府接待</td>
    </tr>
    <tr>
      <td><strong>如家/汉庭</strong></td>
      <td>300-400/晚</td>
      <td>连锁保险</td>
    </tr>
    <tr>
      <td><strong>热水塘温泉酒店</strong></td>
      <td>500-800/晚</td>
      <td>住这可省去当晚返程</td>
    </tr>
  </tbody>
</table>

<hr />

<h2 id="d4">📅 D4｜克什克腾石阵 + 温泉 + 玉龙沙湖（克什克腾深度）</h2>

<p><strong>总里程</strong>：约 200km ｜ <strong>用时</strong>：约 10h</p>

<blockquote>
  <p>📍 <strong>本天加项</strong>：① <a href="#module-keqi">Module A 克什克腾西侧深</a> 拉成 D4’ ② <a href="#module-daqingshan">Module D 大青山徒步</a> D4 上午加半日（看天气）。</p>
</blockquote>

<table>
  <thead>
    <tr>
      <th>时间</th>
      <th>节点</th>
      <th>里程</th>
      <th>备注</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>7:00</td>
      <td>早餐</td>
      <td>0km</td>
      <td> </td>
    </tr>
    <tr>
      <td>8:00</td>
      <td><strong>桦木沟国家森林公园</strong></td>
      <td>30km</td>
      <td>白桦林+溪流+野蘑菇</td>
    </tr>
    <tr>
      <td>9:30</td>
      <td><strong>克什克腾石阵（阿斯哈图石林）</strong></td>
      <td>100km</td>
      <td><strong>买票进</strong>（160/人）</td>
    </tr>
    <tr>
      <td>12:00</td>
      <td>返回经棚镇午餐</td>
      <td>100km</td>
      <td>烤羊腿+莜面</td>
    </tr>
    <tr>
      <td>14:00</td>
      <td><strong>热水塘镇温泉</strong></td>
      <td>30km</td>
      <td>半日票 150-200/人</td>
    </tr>
    <tr>
      <td>17:00</td>
      <td><strong>玉龙沙湖</strong></td>
      <td>100km</td>
      <td>沙漠+湖泊+骆驼（<strong>可选</strong>）</td>
    </tr>
    <tr>
      <td>19:00</td>
      <td>返经棚镇晚餐</td>
      <td>100km</td>
      <td> </td>
    </tr>
    <tr>
      <td>20:00</td>
      <td>入住经棚镇</td>
      <td>0km</td>
      <td> </td>
    </tr>
  </tbody>
</table>

<h3 id="-今日重点-3">🎯 今日重点</h3>

<ul>
  <li><strong>克什克腾石阵</strong>（D3 远眺对比，<strong>这次深度进</strong>）</li>
  <li><strong>桦木沟国家森林公园</strong>（<strong>人少 90% 的隐藏点</strong>）</li>
  <li><strong>热水塘温泉</strong>（解乏神器）</li>
  <li><strong>玉龙沙湖</strong>（沙漠+湖泊组合，<strong>可选</strong>）</li>
</ul>

<h3 id="️-关键提醒-1">⚠️ 关键提醒</h3>

<ol>
  <li><strong>桦木沟</strong>：从经棚镇出发 30km，免费，<strong>人少景美</strong></li>
  <li><strong>石林景区门票</strong>：160 元（含摆渡车），游玩 2-3h</li>
  <li><strong>石林景区内·月亮城堡</strong>：景区东门进，问”月亮城堡方向”（不另收费）</li>
  <li><strong>玉龙沙湖</strong>：位于克什克腾西侧，距经棚镇约 100km，<strong>两驱车可到但要走一段沙土路</strong>，雨后放弃</li>
  <li><strong>温泉节</strong>：如查得 7-8 月有温泉节，<strong>今天就是节日核心日</strong></li>
</ol>

<h3 id="️-餐饮-3">🍽️ 餐饮</h3>

<ul>
  <li><strong>午餐（经棚镇）</strong>：克什克腾烤羊腿（强烈推荐！）</li>
  <li><strong>晚餐（经棚镇）</strong>：蒙餐，推荐 草原牧歌蒙餐</li>
</ul>

<h3 id="-加油-3">⛽ 加油</h3>

<ul>
  <li>经棚镇（<strong>出发前加满</strong>）</li>
</ul>

<h3 id="-住宿-1">🏨 住宿</h3>

<p>经棚镇（同 D3）</p>

<hr />

<h2 id="d5">📅 D5｜达里湖 → 锡张高速 → 北京</h2>

<p><strong>总里程</strong>：约 660km ｜ <strong>用时</strong>：约 8h（含午餐+休息）</p>

<blockquote>
  <p>📍 <strong>本天加项</strong>：可选 <a href="#module-naadam">Module C 锡林郭勒那达慕</a> · D5 拆出半日去锡林浩特 +1 天返京。</p>
</blockquote>

<table>
  <thead>
    <tr>
      <th>时间</th>
      <th>节点</th>
      <th>里程</th>
      <th>备注</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>7:00</td>
      <td>早餐+退房</td>
      <td>0km</td>
      <td> </td>
    </tr>
    <tr>
      <td>8:00</td>
      <td>经棚镇出发</td>
      <td>0km</td>
      <td>走 G303 转 X218</td>
    </tr>
    <tr>
      <td>9:30</td>
      <td><strong>达里湖北岸景区</strong></td>
      <td>60km</td>
      <td>草原马尔代夫，茅草屋+帆船</td>
    </tr>
    <tr>
      <td>11:00</td>
      <td><strong>达里湖南岸</strong>（可选）</td>
      <td>80km</td>
      <td>火山地貌+盐碱滩，<strong>航拍最佳</strong></td>
    </tr>
    <tr>
      <td>11:30</td>
      <td>G303 向西走</td>
      <td>0km</td>
      <td><strong>不折返经棚镇</strong></td>
    </tr>
    <tr>
      <td>13:00</td>
      <td><strong>锡林郭勒</strong>午餐</td>
      <td>200km</td>
      <td>锡张高速入口</td>
    </tr>
    <tr>
      <td>15:30</td>
      <td><strong>太仆寺旗</strong></td>
      <td>380km</td>
      <td>张家口方向</td>
    </tr>
    <tr>
      <td>17:00</td>
      <td><strong>张家口服务区</strong></td>
      <td>480km</td>
      <td>大休整</td>
    </tr>
    <tr>
      <td>19:30</td>
      <td><strong>抵京（顺义枫泉）</strong></td>
      <td>660km</td>
      <td> </td>
    </tr>
  </tbody>
</table>

<h3 id="-今日重点-4">🎯 今日重点</h3>

<ul>
  <li><strong>达里湖北岸</strong>（茅草屋+帆船，<strong>今日重头戏</strong>）</li>
  <li>锡张高速沿途草原风光</li>
</ul>

<h3 id="️-关键提醒-2">⚠️ 关键提醒</h3>

<ol>
  <li><strong>达里湖门票</strong>：约 40-60 元/人，帆船另外收费</li>
  <li><strong>不走回头路</strong>：G303 出达里湖后<strong>直接向西</strong>走锡张高速，<strong>不折返</strong>经棚镇</li>
  <li><strong>加满油</strong>：经棚镇出发前加满，<strong>锡张高速服务区间隔较大</strong></li>
  <li><strong>返京方向</strong>：锡张高速→京藏高速→北京，<strong>全程高速</strong>比承围线快 1.5h</li>
  <li><strong>如果想避开大段高速</strong>：可改走 G111 → 承德 → 京承，但要多 1.5h</li>
</ol>

<h3 id="️-餐饮-4">🍽️ 餐饮</h3>

<ul>
  <li><strong>午餐（锡林郭勒/太仆寺旗）</strong>：
    <ul>
      <li><strong>锡林郭勒</strong>：额尔敦（传统蒙餐，羊排+奶茶）/ 锡盟羊杂</li>
      <li><strong>太仆寺旗</strong>：太仆寺旗宾馆餐厅（家常菜）</li>
    </ul>
  </li>
</ul>

<h3 id="-加油-4">⛽ 加油</h3>

<ul>
  <li>经棚镇（<strong>出发前加满</strong>）</li>
  <li>锡林郭勒市区（<strong>关键补给点</strong>）</li>
  <li>太仆寺旗</li>
</ul>

<hr />

<h2 id="extend">🧩 拓展包（6-7 天可选模块）</h2>

<blockquote>
  <p><strong>5 天是核心骨架</strong>，下面这些是「假期能多请一两天」时的<strong>可拆装模块</strong>。</p>

  <p>每个模块都标了「<strong>插入位置 / 替代哪个原行程 / 路程影响</strong>」，可单独加，也可叠加。</p>
</blockquote>

<h3 id="module-keqi">📦 模块 A：克什克腾旗深度（D4 拆分·加西侧）</h3>

<p><strong>什么时候加</strong>：5 天改 6/7 天，对<strong>石林 / 峡谷</strong>这些克什克腾西侧景观感兴趣</p>

<p><strong>插入位置</strong>：原 D4 之后 → 加新 D5 探索克什克腾西侧 + 返程</p>

<p><strong>新增内容</strong>：</p>

<ul>
  <li><strong>新 D5 早</strong>：原返京 + 走 G303 继续</li>
  <li><strong>新 D5 上午</strong>：<strong>西拉沐沦大峡谷</strong>（克什克腾最美峡谷）或 <strong>美林谷 / 黑熊谷</strong> 二选一</li>
  <li>西拉沐沦：草原峡谷双拼 · 野景区 · 导航设「西拉沐沦」（不是「景区」）</li>
  <li>美林谷：森林 + 深谷 · 人少路线 · 需酒店老板推荐向导</li>
  <li><strong>新 D5 中午</strong>：<strong>返经棚镇午餐</strong>（克什克腾烤羊腿）</li>
  <li><strong>新 D5 下午</strong>：再深入探索西拉沐沦 + 周边草原</li>
  <li><strong>新 D5 晚</strong>：返回经棚镇（多 1 晚住）</li>
  <li><strong>新 D6</strong>：返京（走锡张高速，轻松版）</li>
</ul>

<p><strong>替代原行程</strong>：原 D4 → 新 D4 + 新 D5 + 新 D6，整体拉成 6 天返京版</p>

<p><strong>路程影响</strong>：总里程 <strong>+150km</strong>，时间 <strong>+1~2 天</strong>（取决于返回节奏）</p>

<p><strong>适合</strong>：能请 <strong>6~7 天假</strong>、对克什克腾西侧峡谷感兴趣</p>

<h4 id="-模块-a-核心价值">🎯 模块 A 核心价值</h4>

<p>原 5 天版的 D4 走克什克腾<strong>东侧</strong>石阵，D5 走达里湖。<strong>西侧</strong>的西拉沐沦大峡谷 + 美林谷是 5 天版<strong>完全没碰</strong>的点。模块 A 就是把「西部半区」补完，让你一趟看到草原 + 峡谷 + 林海三种地形。</p>

<blockquote>
  <p>⚠️ 本模块<strong>不含玉龙沙湖</strong>（已在原 5 天 D4 表体现）</p>
</blockquote>

<h4 id="️-西侧路况提醒">⚠️ 西侧路况提醒</h4>

<ol>
  <li><strong>西拉沐沦大峡谷</strong>：<strong>野景区</strong>不是真实注册景区，导航设名字而非「景区」</li>
  <li><strong>美林谷 vs 黑熊谷</strong>：美林谷商业化较好，黑熊谷全原生态。请酒店老板推荐向导</li>
  <li><strong>雨后别进沙土路</strong>：连日雨后景区土路泥泞，若延伸入沙土岔路需谨慎</li>
  <li><strong>两驱车足够</strong>：不需越野车</li>
</ol>

<hr />

<h3 id="module-duolun">📦 模块 B：多伦湖捡石（D1 拆分·加地质）</h3>

<p><strong>什么时候加</strong>：想加<strong>「地质博物」</strong>元素，5 天改 6/7 天</p>

<p><strong>插入位置</strong>：原 D1 之前，加新 D1 北京→多伦 + 新 D2 多伦→乌兰布统</p>

<p><strong>新增内容</strong>：</p>

<ul>
  <li><strong>新 D1 早</strong>：北京出发走京藏高速 → 多伦（<strong>300km / 4h</strong>）</li>
  <li>比走京承高速近 50km，但「草原感」提前一天启动</li>
  <li><strong>新 D1 下午</strong>：<strong>多伦湖捡石英岩玉 / 玛瑙</strong>（游玩指南有详细点）</li>
  <li>雨后 / 清晨最易发现（冲刷后裸露）</li>
  <li>湖区免费、可少量带走、但建议拍照留存不大规模采</li>
  <li><strong>新 D1 晚</strong>：住多伦县（锡林郭勒正蓝旗）</li>
  <li>小城干净，烧烤/蒙餐平价（人均 80-120）</li>
  <li><strong>新 D2</strong>：多伦→乌兰布统（<strong>250km / 4h，经御道口</strong>）</li>
  <li>走 G239 转 X301，一路草原景象进入</li>
  <li><strong>新 D3-D6</strong>：同原 5 天版 D2-D5</li>
</ul>

<p><strong>替代原行程</strong>：原 D1 → 新 D1 + 新 D2</p>

<p><strong>路程影响</strong>：总里程 <strong>+90km</strong>（300+250 vs 原 D1 460km），时间 <strong>+1 天</strong></p>

<p><strong>适合</strong>：带娃 / 喜欢捡石头 / 想要「上午草原 + 下午化石」双惊喜</p>

<h4 id="-模块-b-核心价值">🎯 模块 B 核心价值</h4>

<p>多伦湖是<strong>火山地貌 + 草原 + 湖</strong>三重叠区，位于锡林郭勒正蓝旗，与乌兰布统只有 250km 之隔。多数自驾路线从承德一路赶过去会<strong>错过这一段地质惊奇</strong>，模块 B 就是把这条「西线替补」补进去。</p>

<h4 id="️-捡石原则">⚠️ 捡石原则</h4>

<ol>
  <li><strong>少拿</strong>：以拍照留存为主，不成堆打包带走（严格说量大会出问题）</li>
  <li><strong>雨后冲</strong>：雨后 1-2 天裸露最易找，清晨露水蒸发后的干湿交界是宝库</li>
  <li><strong>别信叫卖</strong>：景区门口卖的多是加工货，<strong>真货自己找</strong></li>
  <li><strong>地质博物馆多伦县</strong>：县里有个小博物馆，免费，能看到当地典型矿物样本 —— 进去一次就能认个脸熟</li>
</ol>

<hr />

<h3 id="module-naadam">📦 模块 C：锡林郭勒 / 锡林浩特那达慕（D5 拆出半日·加节庆）</h3>

<p><strong>什么时候加</strong>：那达慕大会日期敲定，往返路线顺道</p>

<p><strong>插入位置</strong>：原 D5 改为 2 天（达里湖 → 锡林浩特 → 北京）</p>

<p><strong>新增内容</strong>：</p>

<table>
  <thead>
    <tr>
      <th>时间</th>
      <th>节点</th>
      <th>里程</th>
      <th>备注</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>原 D5 早</td>
      <td>达里湖北岸</td>
      <td>—</td>
      <td>同原 D5</td>
    </tr>
    <tr>
      <td>原 D5 下午</td>
      <td>直接走 G303 → <strong>锡林浩特</strong></td>
      <td>250km / 3h</td>
      <td>不折返经棚</td>
    </tr>
    <tr>
      <td>原 D5 晚</td>
      <td>入住锡林浩特</td>
      <td>—</td>
      <td><strong>酒店 5x 涨价+满房，提前 1 月订</strong></td>
    </tr>
    <tr>
      <td>新 D5 夜</td>
      <td><strong>那达慕开幕式</strong></td>
      <td>—</td>
      <td>赛马+摔跤+射箭</td>
    </tr>
    <tr>
      <td>新 D6 全天</td>
      <td><strong>锡林浩特→北京</strong></td>
      <td>700km / 7.5h</td>
      <td>全程高速</td>
    </tr>
  </tbody>
</table>

<p><strong>替代原行程</strong>：原 D5（达里湖→锡张→北京 760km）→ 新 D5+新 D6（达里湖→锡林浩特→北京 950km）</p>

<p><strong>路程影响</strong>：总里程 <strong>+200km</strong>，时间 <strong>+1 天</strong></p>

<p><strong>适合</strong>：能请 <strong>6 天假</strong> + 那达慕日期敲定 + 想体验蒙族节日狂欢</p>

<h4 id="-模块-c-核心价值">🎯 模块 C 核心价值</h4>

<p>那达慕是<strong>蒙古族最盛大的节日</strong>，一年 2-3 次。选对日期就能看到赛马、摔跤、射箭三项「男儿三艺」，赶上锡林郭勒集体狂欢（蒙餐、白酒、歌舞）。</p>

<h4 id="️-那达慕时间--地点确认">⚠️ 那达慕时间 + 地点确认</h4>

<blockquote>
  <p>📅 <strong>优先查后文「节庆查询清单」</strong> 锡林郭勒文旅 / 内蒙古文旅 公众号。本节只列那达慕专项提醒：</p>
</blockquote>

<ol>
  <li><strong>日期</strong>：每年农历六月初四前后，<strong>查看后文「节庆查询清单」确认当月</strong></li>
  <li><strong>地点</strong>：锡林浩特中央广场（主会场）/ 西乌珠穆沁旗 / 东乌珠穆沁旗（最热闹）</li>
  <li><strong>席位</strong>：主会场台子<strong>免费围观</strong>；VIP 区需邀请</li>
  <li><strong>装备</strong>：夏天锡林浩特也 18-25℃ 晚上，带外套</li>
  <li><strong>门票额外项</strong>：赛马体验 100 / 蒙古服饰拍照 200 / 烤全羊 800-1500 / 桌</li>
</ol>

<h4 id="-那达慕周边公众号补充---2026-07-21-微信抓取">📰 那达慕周边（公众号补充 - 2026-07-21 微信抓取）</h4>

<blockquote>
  <p>2026-07-21 抓取「内蒙古文化和旅游厅」公众号<strong>第 36 届旅游那达慕</strong>宣传稿（人民网转载）。<strong>官方背书</strong>。
关键提醒：公众号是<strong>目的地推荐</strong>，<strong>不是日期公告</strong>——2026 那达慕具体日期仍要在出发前去本地公众号二次确认。</p>
</blockquote>

<p><strong>a) 西乌旗「99 号公路」</strong>（公众号刷屏级目的地推荐）</p>

<ul>
  <li><strong>位置</strong>：西乌珠穆沁旗境内 · 距锡林浩特约 <strong>170 km</strong>（走 G207）</li>
  <li><strong>特色</strong>：<strong>全长 160 km</strong> · <strong>84 km 彩虹路面中央画线</strong> · +14 km 骑行路面 · +1 330 m <strong>音乐车道</strong></li>
  <li><strong>怎么进</strong>：锡林浩特出发当天来回 · 顺道加这半天的样子</li>
  <li><strong>加分场景</strong>：从锡林浩特去乌拉盖的<strong>路过宝地</strong> · 草原+公路意境第一</li>
  <li>⚠️ <strong>春夏酒店 2-3x 涨价</strong> · 彩虹路面周边餐饮不多</li>
  <li>公众号原文：「《西乌旗 99 号公路》歌中的这条草原公路 · 全长 160 公里 · 其中 84 公里路面中央画有彩虹线」</li>
</ul>

<p><strong>b) 乌拉盖草原 + 九曲湾</strong></p>

<ul>
  <li><strong>位置</strong>：锡林郭勒东北 · 沿 <strong>G331</strong> 向东约 <strong>350 km</strong>（高德估算）</li>
  <li><strong>特色</strong>：<strong>「世界上保存最完好的天然草原之一」</strong>（公众号文案重点）</li>
  <li><strong>必看</strong>：<strong>九曲湾</strong>—草原中的曲河，随雪山流淌</li>
  <li><strong>玩多久</strong>：1-2 天</li>
  <li>⚠️ <strong>路远 + 返程复杂</strong>：</li>
  <li>锡林浩特 → 西乌旗（约 170 km）→ 乌拉盖（约 250 km）→ 北京（约 1 200 km）= 总 <strong>≈ 1 620 km</strong> · 需 <strong>+1~2 天</strong></li>
  <li>「Module E + 乌拉盖」是 <strong>+1~2 天 的推荐加项</strong>，否则走「锡林浩特 → 北京」直线 700 km</li>
  <li>可考虑「锡林浩特 → 乌拉盖 → 锡林浩特 → 北京」两路返京（一天转车）</li>
</ul>

<blockquote>
  <p>📑 <strong>原文出处</strong>：<a href="https://mp.weixin.qq.com/s/SPFW6zatF6oO3Gqe6qmw8g">mp.weixin.qq.com/s/SPFW6zatF6oO3Gqe6qmw8g</a>
「内蒙古第36届旅游那达慕 · 旋律一响起 即起奔赴辽阔内蒙古」 · 人民网 · 2026 夏季推文 · <strong>不构成个人路线规划建议</strong>。</p>
</blockquote>

<hr />

<h3 id="module-daqingshan">📦 模块 D：大青山徒步（D4 上午加项·看天气）</h3>

<p><strong>什么时候加</strong>：D4 上午加半日（前提：天气晴朗 + 出发前打景区电话确认两驱车能上）</p>

<p><strong>插入位置</strong>：原 D4 上午前 → 新 D4 早出发 + 上午徒步 + 中午经棚午餐 + 下午照原 D4</p>

<p><strong>新增内容</strong>：</p>

<ul>
  <li><strong>新 D4 早</strong>：经棚镇出发</li>
  <li><strong>新 D4 上午</strong>：<strong>大青山徒步</strong>（导航”沟老场”——出发前打景区电话确认两驱车能上）</li>
  <li>完整 15km 需 5-6h</li>
  <li><strong>建议两驱 SUV 走 10km 版</strong>：到”大裂缝”原路返，约 2-3h</li>
  <li><strong>新 D4 中午</strong>：返回经棚镇午餐</li>
  <li><strong>新 D4 下午</strong>：照原 D4 安排（石阵+温泉）</li>
</ul>

<p><strong>替代原行程</strong>：<strong>无替换</strong>，作为原 D4 前的<strong>叠加项</strong></p>

<p><strong>路程影响</strong>：时间 <strong>+3-4h</strong></p>

<p><strong>⚠️ 风险</strong>：雨后<strong>必须放弃</strong>，路况泥泞陷车</p>

<p><strong>适合</strong>：天气稳定 + 体力好 + 不怕早起</p>

<h4 id="-模块-d-核心价值">🎯 模块 D 核心价值</h4>

<p>大青山是经棚镇附近唯一的<strong>高山草原+峡谷双景观</strong>徒步点，免门票，10km 到”大裂缝”那段是性价比最高的截取。</p>

<h4 id="️-关键安全提醒">⚠️ 关键安全提醒</h4>

<ol>
  <li><strong>手机信号</strong>：沟老场段信号差，<strong>别单溜</strong></li>
  <li><strong>两驱车能不能上</strong>：出发前<strong>必须打</strong>景区电话（克什克腾旗文旅局 0476-5228888）确认路况</li>
  <li><strong>雨后放弃</strong>：景区土路雨后泥泞陷车，救援费 800 起步</li>
  <li><strong>早晚保暖</strong>：山顶 7-8 月只有 5-8℃，<strong>冲锋衣/抓绒必带</strong></li>
  <li><strong>装备</strong>：登山鞋、防晒、2L 水、能量棒/巧克力</li>
  <li><strong>关门时间</strong>：中午 12 点前必须开始下山，午后天气变换快</li>
</ol>

<hr />

<h3 id="组合推荐按假期时长">🔗 组合推荐（按假期时长）</h3>

<blockquote>
  <p>💡 <strong>核心推荐</strong>：6/7 天选 <strong><a href="#module-keqi">模块 A</a></strong> 单独（或 <strong><a href="#module-duolun">A+B</a></strong> 深度玩家首推）· 那达慕专程选 <strong><a href="#module-naadam">模块 C</a></strong></p>

  <p>💡 <strong>任意拼装规则</strong>：<a href="#module-keqi">A</a> 加在 D4 之后延展 · <a href="#module-duolun">B</a> 改 D1 起点（多伦 → 乌兰布统）· <a href="#module-naadam">C</a> 加在 D5 后 · <a href="#module-daqingshan">D</a> 加在 D4 上午半小时 · 每个模块 +1 天另算。</p>
</blockquote>

<table>
  <thead>
    <tr>
      <th>组合</th>
      <th>假期</th>
      <th>适合</th>
      <th>说明</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td><strong>只加 <a href="#module-keqi">A</a></strong></td>
      <td>6-7 天</td>
      <td>对峡谷 / 林海感兴趣</td>
      <td>克什克腾西侧拉完</td>
    </tr>
    <tr>
      <td><strong>只加 <a href="#module-duolun">B</a></strong></td>
      <td>6 天</td>
      <td>喜欢捡石头 / 地质</td>
      <td>多伦湖 → 乌兰布统</td>
    </tr>
    <tr>
      <td><strong>只加 <a href="#module-naadam">C</a></strong></td>
      <td>6 天</td>
      <td>那达慕迷</td>
      <td>锡林浩特住一晚</td>
    </tr>
    <tr>
      <td><strong>只加 <a href="#module-daqingshan">D</a></strong></td>
      <td>5 天</td>
      <td>体力好 + 出发前查天气</td>
      <td>D4 上午加半项，不加天</td>
    </tr>
    <tr>
      <td><strong><a href="#报价表">A + B</a> ⭐</strong></td>
      <td>7-8 天</td>
      <td>深度玩家首推 · 西侧+多伦湖双深</td>
      <td>全新套餐</td>
    </tr>
    <tr>
      <td><strong><a href="#报价表">A + D</a></strong></td>
      <td>6-7 天</td>
      <td>D4 上午走大青山 + 之后西侧</td>
      <td>同 D4 双加项</td>
    </tr>
    <tr>
      <td><strong><a href="#报价表">B + C</a> ⭐</strong></td>
      <td>7 天</td>
      <td>多伦湖 + 那达慕</td>
      <td>中线→东线拉通</td>
    </tr>
    <tr>
      <td><strong><a href="#报价表">C + D</a></strong></td>
      <td>6 天</td>
      <td>那达慕 + D4 上午徒步</td>
      <td>端午双典</td>
    </tr>
    <tr>
      <td><strong><a href="#报价表">A + C</a></strong></td>
      <td>7-8 天</td>
      <td>克什腾西侧 + 那达慕</td>
      <td>严肃玩家</td>
    </tr>
    <tr>
      <td><strong><a href="#报价表">A + B + C</a> ⭐</strong></td>
      <td>8-9 天</td>
      <td>三大深度</td>
      <td>元老同款</td>
    </tr>
    <tr>
      <td><strong><a href="#报价表">A + B + C + D</a></strong></td>
      <td>8-9 天</td>
      <td>四大套装 + D4 上午加徒步</td>
      <td>采样饱和</td>
    </tr>
  </tbody>
</table>

<blockquote>
  <p>🔁 互斥与并存说明：</p>
  <ul>
    <li><strong>A 与 B 不互斥</strong>：A 改 D4 之后 · B 改 D1 起点 · 各自独立</li>
    <li><strong>D 可加在任意 D4 上午</strong>：与 A / B / C 不冲突</li>
    <li><strong>C 一般加在 D5 后</strong>：独立返京路线·不冲击主行程</li>
  </ul>
</blockquote>

<h4 id="预算影响">💰 预算影响</h4>

<p>每加一个模块（计算公式 = 6560 + 住宿 + 餐饮 + 门票 + 越野/装备/烤羊）：</p>

<p><a id="报价表"></a></p>

<table>
  <thead>
    <tr>
      <th>项目</th>
      <th>单价</th>
      <th>+<a href="#module-keqi">A</a></th>
      <th>+<a href="#module-duolun">B</a></th>
      <th>+<a href="#module-naadam">C</a></th>
      <th>+<a href="#module-daqingshan">D</a></th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>住宿</td>
      <td>400/晚</td>
      <td>+400</td>
      <td>+400</td>
      <td><strong>+1500-2000</strong>（5x 旺季）</td>
      <td>0</td>
    </tr>
    <tr>
      <td>餐饮</td>
      <td>300/天</td>
      <td>+300</td>
      <td>+300</td>
      <td>+300</td>
      <td>+100</td>
    </tr>
    <tr>
      <td>门票</td>
      <td>—</td>
      <td><strong>+0</strong>（西拉沐沦+美林谷免门票）</td>
      <td>多伦湖免费</td>
      <td>那达慕免费 / VIP 200-500</td>
      <td>0</td>
    </tr>
    <tr>
      <td>装备</td>
      <td>—</td>
      <td>—</td>
      <td>—</td>
      <td>—</td>
      <td>+200-400（如无装备）</td>
    </tr>
    <tr>
      <td>烤全羊（10 人桌）</td>
      <td>800-1500/桌</td>
      <td>—</td>
      <td>—</td>
      <td>两人分享 +160-300</td>
      <td>—</td>
    </tr>
    <tr>
      <td><strong>合计</strong></td>
      <td>—</td>
      <td><strong>+700-900</strong></td>
      <td><strong>+700</strong></td>
      <td><strong>+2200-2800</strong></td>
      <td><strong>+100-500</strong></td>
    </tr>
  </tbody>
</table>

<blockquote>
  <p><strong>5 天基础</strong> 6560 元 → +模块金额区间 = +100（只加 D · 装备齐） ~ +2800（C 那达慕 + 烤全羊）</p>
</blockquote>

<p>组合报价速查（5 天基础 6560 + 各模块合计）：</p>

<table>
  <thead>
    <tr>
      <th>组合</th>
      <th>估价</th>
      <th>说明</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td><strong>只加 <a href="#module-daqingshan">D</a></strong></td>
      <td>6700 元</td>
      <td>5 天 · 加个徒步（装备齐）/ 7000（要买装备）</td>
    </tr>
    <tr>
      <td><strong>只加 <a href="#module-duolun">B</a></strong></td>
      <td>7300 元</td>
      <td>6 天 · 捡石</td>
    </tr>
    <tr>
      <td><strong>只加 <a href="#module-keqi">A</a></strong></td>
      <td>7400 元</td>
      <td>6-7 天 · 峡谷+林海</td>
    </tr>
    <tr>
      <td><strong>只加 <a href="#module-naadam">C</a></strong></td>
      <td>9000 元</td>
      <td>6 天 · 那达慕 + 5x 酒店</td>
    </tr>
    <tr>
      <td><strong><a href="#报价表">A + B</a> ⭐</strong></td>
      <td>8000 元</td>
      <td>7-8 天 · 深度玩家首推</td>
    </tr>
    <tr>
      <td><strong><a href="#报价表">A + D</a></strong></td>
      <td>8000 元</td>
      <td>6-7 天 · 同 D4 双加项</td>
    </tr>
    <tr>
      <td><strong><a href="#报价表">C + D</a></strong></td>
      <td>9300 元</td>
      <td>6 天 · 那达慕 + D4 上午加项</td>
    </tr>
    <tr>
      <td><strong><a href="#报价表">B + C</a> ⭐</strong></td>
      <td>9700 元</td>
      <td>7 天 · 多伦 + 那达慕</td>
    </tr>
    <tr>
      <td><strong><a href="#报价表">A + C</a></strong></td>
      <td>9700 元</td>
      <td>7-8 天 · 克什西侧 + 那达慕</td>
    </tr>
    <tr>
      <td><strong><a href="#报价表">A + B + C</a> ⭐</strong></td>
      <td>10400 元</td>
      <td>8-9 天 · 三大深度</td>
    </tr>
    <tr>
      <td><strong><a href="#报价表">A + B + C + D</a></strong></td>
      <td>10800 元</td>
      <td>8-9 天 · 四大套装</td>
    </tr>
  </tbody>
</table>

<blockquote>
  <p><strong>总价区间速读</strong>：5 天独享 6560 · 多加 1 项 +700-900 · 只加 F(D) 加个徒步 6700-7000 · 三大深度 10400 · 全套 10800。按预算选套餐，别套餐超预算。</p>
</blockquote>

<blockquote>
  <p>📝 本节钱是按 <strong>两人 5 天 + 模块加量</strong> 重算后表的 · 锡林浩特 5x 酒店 + 那达慕烤全羊重计 · 上一版 Module B 越野 错算 已补重算与重整 · 剩零错估基本上什什么。</p>
</blockquote>

<hr />

<h2 id="festival">📅 节庆查询清单（去之前先查一查）</h2>

<blockquote>
  <p><strong>为什么有这一节？</strong> 内蒙古的草原节、那达慕、金莲花节、草原音乐节 全都有「<strong>年度有变</strong>」的特点。7-8 月出行最常遇到这三类活动，但<strong>2026 年实际日期</strong>不敢拍胸脯，写了会过期。下面 8 个查讯渠道按「权威性」+「质量」排序，能覆盖那达慕、乌兰布统金莲花节、克什克腾草原节、锡林浩特草原音乐节等。</p>
</blockquote>

<table>
  <thead>
    <tr>
      <th>渠道</th>
      <th>类型</th>
      <th>适合查什么</th>
      <th>怎么找</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td><strong>赤峰市文化和旅游局</strong></td>
      <td>公众号</td>
      <td>赤峰/克什克腾/乌兰布统所有节庆</td>
      <td>微信搜”赤峰文旅”</td>
    </tr>
    <tr>
      <td><strong>克什克腾旗政府网/文旅</strong></td>
      <td>公众号+官网</td>
      <td>克什克腾旗本地的草原节、那达慕</td>
      <td>微信搜”克什克腾文旅”</td>
    </tr>
    <tr>
      <td><strong>乌兰布统官方公众号</strong></td>
      <td>公众号</td>
      <td>乌兰布统景区活动、金莲花节</td>
      <td>微信搜”乌兰布统”</td>
    </tr>
    <tr>
      <td><strong>内蒙古文化和旅游厅</strong></td>
      <td>公众号</td>
      <td>全区节庆汇总</td>
      <td>微信搜”内蒙古文旅”</td>
    </tr>
    <tr>
      <td><strong>锡林郭勒文旅</strong></td>
      <td>公众号</td>
      <td>锡林浩特那达慕、草原音乐节</td>
      <td>微信搜”锡林郭勒文旅”</td>
    </tr>
    <tr>
      <td><strong>小红书</strong></td>
      <td>UGC</td>
      <td>真实游客+本地人发的具体活动</td>
      <td>搜”克什克腾 那达慕 2026”</td>
    </tr>
    <tr>
      <td><strong>抖音</strong></td>
      <td>短视频</td>
      <td>最新节庆视频预告</td>
      <td>搜”克什克腾”、”乌兰布统”+”那达慕”</td>
    </tr>
    <tr>
      <td><strong>携程/马蜂篱</strong></td>
      <td>OTA</td>
      <td>景区活动页+用户游记</td>
      <td>搜”赤峰 7月”、”克什克腾 8月”</td>
    </tr>
  </tbody>
</table>

<h3 id="-公众号官方公告归档2026-那达慕">🔗 公众号官方公告归档（2026 那达慕）</h3>

<blockquote>
  <p>2026-07-21 抓取 「<strong>第 36 届旅游那达慕</strong>」 · 源：内蒙古文化和旅游厅公众号/人民网转载 · <strong>官方背书</strong>。
文章主体是<strong>目的地推荐</strong>，<strong>不是日期公告</strong>。2026 那达慕具体日期仍要去本地公众号二次查证。</p>
</blockquote>

<ul>
  <li><strong>原文锦句</strong>：「拉起手，唱起歌，我爱上今夜的锡林郭勒……」「《西乌旗 99 号公路》刷屏」</li>
  <li><strong>官方公告链接</strong>：<a href="https://mp.weixin.qq.com/s/SPFW6zatF6oO3Gqe6qmw8g">mp.weixin.qq.com/s/SPFW6zatF6oO3Gqe6qmw8g</a> · 2026-07-21 抓取</li>
  <li><strong>公众号重点推荐</strong>：
    <ol>
      <li>锡林郭勒盟为 2026 那达慕举办地（与 Module E 一致）</li>
      <li><strong>西乌旗 99 号公路</strong>（160 km / 84 km 彩虹线）</li>
      <li><strong>乌拉盖草原 + 九曲湾</strong>（「世界最完好天然草原之一」）</li>
    </ol>
  </li>
</ul>

<h3 id="-查询技巧">💡 查询技巧</h3>

<ol>
  <li><strong>出发前 7-14 天</strong>：官方公众号会发公告设看</li>
  <li><strong>出发前 1-3 天</strong>：本地酒店老板都有最新一手消息（打电话问）</li>
  <li><strong>社交平台二审</strong>：官方公布后，UGC会拍现场实拍视频，错不了</li>
  <li><strong>加进微信收藏</strong>：路上查一次就走指尖，不耗时耗流量</li>
</ol>

<blockquote>
  <p>⚠️ 重点要看的节庆对应：<a href="#module-keqi">Module A 克什克腾西侧草原节</a> · <a href="#module-duolun">Module B 多伦湖夏郊活动</a> · <a href="#module-naadam">Module C 锡林浩特那达慕</a> · <strong>D2 表格</strong>（金莲花湿地 · 7-8 月限定）。</p>
</blockquote>

<h3 id="-查询时间节奏">⏰ 查询时间节奏</h3>

<table>
  <thead>
    <tr>
      <th>节点</th>
      <th>做什么</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td><strong>出发前 30 天</strong></td>
      <td>第一次粗查：7-8 月所有节日大致区间</td>
    </tr>
    <tr>
      <td><strong>出发前 14 天</strong></td>
      <td>二次精查：锁定具体日期+活动流程+门票</td>
    </tr>
    <tr>
      <td><strong>出发前 7 天</strong></td>
      <td>三次确认：看有没有改期/取消</td>
    </tr>
    <tr>
      <td><strong>出发前 3 天</strong></td>
      <td>最后确认：关注景区公众号当日推文</td>
    </tr>
    <tr>
      <td><strong>行程中</strong></td>
      <td>每天晚上问酒店前台/景区工作人员：明天周边活动</td>
    </tr>
  </tbody>
</table>

<h3 id="-你自己要填的查询表">📋 你自己要填的查询表</h3>

<blockquote>
  <p>本表模板，<strong>2026 实际日期留空让你出发前一查就填</strong>。查完后用 ☐ 勾选“是否影响行程”的选项。</p>
</blockquote>

<table>
  <thead>
    <tr>
      <th>节庆</th>
      <th>地点</th>
      <th>规律时段</th>
      <th>2026 日期</th>
      <th>影响行程？</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>赤峰市那达慕大会</td>
      <td>赤峰/克什克腾</td>
      <td>7 月中-8 月初</td>
      <td>_____ 待查</td>
      <td>☐ 改 D1 ☐ 改 D3 ☐ 不影响</td>
    </tr>
    <tr>
      <td>锡林浩特那达慕</td>
      <td>锡林浩特</td>
      <td>7 月底-8 月初</td>
      <td>_____ 待查</td>
      <td>☐ 走<a href="#module-naadam">模块 C</a> ☐ 不影响</td>
    </tr>
    <tr>
      <td>乌兰布统金莲花节</td>
      <td>乌兰布统</td>
      <td>6 月底-8 月初</td>
      <td>_____ 待查</td>
      <td>☐ 在 D2 ☐ 不影响</td>
    </tr>
    <tr>
      <td>乌兰布统景区那达慕</td>
      <td>红山军马场</td>
      <td>7-8 月</td>
      <td>_____ 待查</td>
      <td>☐ 在 D2 晚 ☐ 不影响</td>
    </tr>
    <tr>
      <td>克什克腾草原旅游节</td>
      <td>经棚镇</td>
      <td>7-8 月</td>
      <td>_____ 待查</td>
      <td>☐ 在 D3 晚 ☐ 不影响</td>
    </tr>
    <tr>
      <td>热水塘温泉节</td>
      <td>热水塘镇</td>
      <td>7-8 月</td>
      <td>_____ 待查</td>
      <td>☐ 改 D3 晚 ☐ 不影响</td>
    </tr>
    <tr>
      <td>达里湖帆船/湿地节</td>
      <td>达里湖</td>
      <td>7-8 月</td>
      <td>_____ 待查</td>
      <td>☐ 在 D4 ☐ 不影响</td>
    </tr>
  </tbody>
</table>

<blockquote>
  <p>💡 如何“用了”：查出日期后 · 步行对照原 D1-D5 · 如果节庆日期与原行程中某个景点重合 · 勾选“在 D_ 晚 / 不影响”。影响后该天可领到主题活动额外加成。· <strong>实际日期</strong>：本表未填查用「节庆查询清单」公众号查·不要猜。</p>
</blockquote>

<hr />

<h2 id="bonus">🌟 备选加点（不重复于主行程）</h2>

<blockquote>
  <p>主行程 D1-D5 已涵盖大部分经典点位（七星湖 / 月亮湖 / 盘龙峡谷 / 东沟 / 月亮城堡 / 黄岗梁盘山 / 桦木沟 / 玉龙沙湖 / 达里湖南岸）· <strong>本节仅列不重复于主行程的备选项</strong>。</p>
</blockquote>

<h3 id="bonus-museum">1. **经棚镇·克什克腾旗博物馆**</h3>

<ul>
  <li><strong>位置</strong>：经棚镇市中心 · 免费</li>
  <li><strong>特色</strong>：恐龙化石 + 契丹辽文化展 · 本地克什克腾旗博物馆</li>
  <li><strong>玩多久</strong>：1-2 小时</li>
  <li><strong>加分场景</strong>：<strong>D3/D4 中午前后的半天备选</strong>（天气不好 / 太晒时） · 室内避暑</li>
  <li><strong>推荐组合</strong>：与 D3 黄岗梁下午段绑定 · 早午餐后顺道去博物馆消磨半天</li>
  <li>⚠️ 周一闭馆 · 出发前查开放时间</li>
  <li>💵 免费</li>
</ul>

<blockquote>
  <p>📌 想到新点位（不在主行程的）随时加这节 · 结构同 #1：位置 / 特色 / 玩多久 / 加分场景 / ⚠️</p>
</blockquote>

<hr />
<h2 id="budget">💰 总预算（两人 5 天）</h2>

<table>
  <thead>
    <tr>
      <th>项目</th>
      <th>单价/计算</th>
      <th>合计（元）</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>油费</td>
      <td>1700km × 0.6 元/公里（8L/100km）</td>
      <td>1020</td>
    </tr>
    <tr>
      <td>过路费</td>
      <td>高速费 600-700</td>
      <td>700</td>
    </tr>
    <tr>
      <td>住宿</td>
      <td>4 晚 × 400（平均）</td>
      <td>1600</td>
    </tr>
    <tr>
      <td>门票</td>
      <td>乌兰布统 120×2 + 达里湖 60×2 + 石林 160×2 + 黄岗梁 80×2</td>
      <td>840</td>
    </tr>
    <tr>
      <td>餐饮</td>
      <td>5 天 × 300</td>
      <td>1500</td>
    </tr>
    <tr>
      <td>温泉</td>
      <td>200×2</td>
      <td>400</td>
    </tr>
    <tr>
      <td>应急/纪念品</td>
      <td>-</td>
      <td>500</td>
    </tr>
    <tr>
      <td><strong>合计</strong></td>
      <td>-</td>
      <td><strong>约 6560</strong></td>
    </tr>
  </tbody>
</table>

<blockquote>
  <p>上下浮动 20%，按你具体住宿和餐饮档次调整。</p>
</blockquote>

<hr />

<h2 id="checklist">📋 行前必带清单</h2>

<h3 id="证件">证件</h3>

<p>身份证、驾驶证、行驶证、车辆保险单（<strong>复印件</strong>）</p>

<h3 id="车用">车用</h3>

<ul>
  <li>拖车绳（草原救援必带）</li>
  <li>应急启动电源</li>
  <li>备胎+换胎工具</li>
  <li>车载充电器</li>
  <li>高德离线地图（提前下载内蒙古区域）</li>
</ul>

<h3 id="穿搭">穿搭</h3>

<ul>
  <li>短袖 + 薄针织 + 防风外套（<strong>分层穿</strong>）</li>
  <li>长裤（防蚊虫+草叶刮蹭）</li>
  <li>运动鞋/休闲靴</li>
  <li>帽子+墨镜+防晒霜+防晒袖套</li>
</ul>

<h3 id="其他">其他</h3>

<ul>
  <li>驱蚊水+止痒膏（草原蚊虫多）</li>
  <li>肠胃药+感冒药</li>
  <li>现金 500-1000（部分牧户家只收现金）</li>
  <li>保温杯（草原温差大）</li>
</ul>

<hr />

<h2 id="keypoints">🎯 5 天版关键节点速查</h2>

<table>
  <thead>
    <tr>
      <th>节点</th>
      <th>时间</th>
      <th>必玩</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td><strong>影视基地日落</strong></td>
      <td>D1 18:30</td>
      <td>⭐⭐⭐⭐⭐</td>
    </tr>
    <tr>
      <td><strong>将军泡子日落</strong></td>
      <td>D2 17:30</td>
      <td>⭐⭐⭐⭐⭐</td>
    </tr>
    <tr>
      <td><strong>达达线彩虹公路</strong></td>
      <td>D3 10:00-12:00</td>
      <td>⭐⭐⭐⭐⭐</td>
    </tr>
    <tr>
      <td><strong>石林驿站远眺</strong></td>
      <td>D3 13:00</td>
      <td>⭐⭐⭐⭐</td>
    </tr>
    <tr>
      <td><strong>黄岗梁山顶</strong></td>
      <td>D3 15:00</td>
      <td>⭐⭐⭐⭐⭐</td>
    </tr>
    <tr>
      <td><strong>热水塘温泉</strong></td>
      <td>D4 14:00</td>
      <td>⭐⭐⭐⭐</td>
    </tr>
    <tr>
      <td><strong>克什克腾石林</strong></td>
      <td>D4 9:30</td>
      <td>⭐⭐⭐⭐</td>
    </tr>
    <tr>
      <td><strong>达里湖北岸</strong></td>
      <td>D5 9:30</td>
      <td>⭐⭐⭐⭐</td>
    </tr>
  </tbody>
</table>

<hr />

<p><em>规划于 2026-07-20 by 墨墨 for 比特匠</em></p>

<!-- 浮动三级目录 -->
<style>
.toc-float { position: fixed; right: 24px; bottom: 24px; z-index: 9999; font-family: -apple-system, sans-serif; }
.toc-float .toc-btn { width: 56px; height: 56px; border-radius: 50%; border: none; background: #FF6F00; color: #fff; font-size: 24px; cursor: pointer; box-shadow: 0 4px 16px rgba(0,0,0,0.25); transition: transform 0.2s; }
.toc-float .toc-btn:hover { transform: scale(1.05); background: #d96a00; }
.toc-float .toc-panel { position: absolute; right: 0; bottom: 68px; width: 320px; max-height: 80vh; overflow-y: auto; background: #fff; border-radius: 10px; box-shadow: 0 8px 32px rgba(0,0,0,0.2); padding: 14px 16px; display: none; line-height: 1.7; }
.toc-float .toc-panel.open { display: block; }
.toc-float ul { list-style: none; padding-left: 0; margin: 0; }
.toc-float ul ul { padding-left: 14px; }
.toc-float a { color: #333; text-decoration: none; display: block; padding: 3px 8px; border-radius: 5px; transition: all 0.15s; }
.toc-float a:hover { background: #fff3e0; color: #FF6F00; transform: translateX(2px); }
.toc-float .toc-h2 { font-weight: 600; color: #FF6F00; margin: 6px 0 4px; font-size: 13px; }
.toc-float .toc-h3 { font-size: 12px; color: #555; padding-left: 8px; }
.toc-float .toc-h4 { font-size: 11px; color: #888; padding-left: 16px; }
.toc-float .toc-hint { font-size: 11px; color: #999; padding: 10px 4px 0; border-top: 1px dashed #eee; margin-top: 8px; text-align: center; }
@media (max-width: 768px) {
  .toc-float { right: 16px; bottom: 16px; }
  .toc-float .toc-panel { width: calc(100vw - 32px); }
  .toc-float .toc-btn { width: 48px; height: 48px; font-size: 20px; }
}
</style>

<div class="toc-float">
  <button class="toc-btn" onclick="toggleToc(event)" aria-label="目录">📋</button>
  <div class="toc-panel" id="toc-panel">
    <ul>
      <li class="toc-h2"><a href="#d1">📅 D1 北京→乌兰布统</a></li>
      <li class="toc-h2"><a href="#d2">📅 D2 乌兰布统核心</a></li>
      <li class="toc-h2"><a href="#d3">📅 D3 达达线+热阿线</a></li>
      <li class="toc-h2"><a href="#d4">📅 D4 克什克腾石阵</a></li>
      <li class="toc-h2"><a href="#d5">📅 D5 达里湖→北京</a></li>
      <li class="toc-h2"><a href="#extend">🧩 拓展包</a>
        <ul>
          <li class="toc-h3"><a href="#module-keqi">📦 模块 A 克什克腾西侧</a></li>
          <li class="toc-h3"><a href="#module-duolun">📦 模块 B 多伦湖捡石</a></li>
          <li class="toc-h3"><a href="#module-naadam">📦 模块 C 锡林郭勒那达慕</a></li>
          <li class="toc-h3"><a href="#module-daqingshan">📦 模块 D 大青山徒步</a></li>
          <li class="toc-h3"><a href="#组合推荐按假期时长">🔗 组合推荐</a></li>
          <li class="toc-h3"><a href="#预算影响">💰 预算影响</a></li>
        </ul>
      </li>
      <li class="toc-h2"><a href="#festival">📅 节庆查询清单</a></li>
      <li class="toc-h2"><a href="#bonus">🌟 备选加点</a></li>
      <li class="toc-h2"><a href="#budget">💰 总预算</a></li>
      <li class="toc-h2"><a href="#checklist">📋 行前必带</a></li>
      <li class="toc-h2"><a href="#keypoints">🎯 节点速查</a></li>
    </ul>
    <p class="toc-hint">💡 点击空白处收起</p>
  </div>
</div>

<script>
function toggleToc(e) {
  if (e) e.stopPropagation();
  document.getElementById('toc-panel').classList.toggle('open');
}
document.addEventListener('click', function(e) {
  var p = document.getElementById('toc-panel');
  if (!p || !p.classList.contains('open')) return;
  var btn = document.querySelector('.toc-float .toc-btn');
  if (p.contains(e.target)) return;
  if (btn && btn.contains(e.target)) return;
  p.classList.remove('open');
});
</script>]]></content><author><name></name></author><category term="trip" /><category term="self-drive" /><category term="内蒙" /><category term="自驾" /><category term="草原" /><category term="达达线" /><category term="热阿线" /><category term="乌兰布统" /><category term="克什克腾" /><category term="达里湖" /><summary type="html"><![CDATA[]]></summary></entry><entry><title type="html">一种将浏览器操作 CLI 化的 Skill 设计模式</title><link href="/skill-design/2026/05/23/browser-cli-skill.html" rel="alternate" type="text/html" title="一种将浏览器操作 CLI 化的 Skill 设计模式" /><published>2026-05-23T00:00:00+00:00</published><updated>2026-05-23T00:00:00+00:00</updated><id>/skill-design/2026/05/23/browser-cli-skill</id><content type="html" xml:base="/skill-design/2026/05/23/browser-cli-skill.html"><![CDATA[<h1 id="一种将浏览器操作cli化的skill">一种将浏览器操作CLI化的SKILL</h1>

<p>设计哲学：用文件系统替代状态机,<strong>把浏览器的状态和操作抽象为文件系统和 CLI 命令的一种 Skill 设计模式</strong>。</p>

<p><strong>将任意网站的浏览器操作抽象为三个 CLI 命令</strong>的 Skill。</p>

<p>核心抽象：三个动词</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>$ websim auth-probe   →  "我还能用吗？"
$ websim discover     →  "这个网站怎么交互？"
$ websim request      →  "帮我做这件事。"
</code></pre></div></div>

<p>传统浏览器自动化里，登录态是一个隐式的、易丢失的状态——关掉浏览器就没了。</p>

<p>Web-Simulator 把状态<strong>物化为文件</strong>：</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code># 登录一次，生成文件
~/.web-simulator/.session/sites/bigmodel.cn/default/
├── cookies.json    # "这是我的身份"
└── meta.json       # "这是关于身份的说明"

# 之后所有命令自动读取这些文件
# 用户不需要关心 "怎么带着 cookie"——CLI 替你管了
</code></pre></div></div>

<p>这和 Git 的 .git/ 目录、Docker 的 docker volume 是一样的思想——<strong>把易失的状态固化为可复用的文件，然后用 CLI 操作这些文件。</strong></p>

<p>工作流演进的三个台阶:</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>台阶 1: 点来点去
  ┌─────────────┐
  │ 打开浏览器    │  ← 人在操作，不可复现
  │ 登录、导航、点击 │
  └─────────────┘

台阶 2: 浏览器脚本化 (Playwright)
  ┌─────────────┐
  │ page.click() │  ← 程序操作，可复现
  │ page.fill()  │     但依赖 DOM，一改就崩
  └─────────────┘

台阶 3: CLI 化 (web-simulator 定位)
  ┌─────────────┐
  │ websim check │  ← 命令操作，不依赖 DOM
  │ websim buy   │     登录态透明、API 优先、可调度
  └─────────────┘
</code></pre></div></div>

<p>关键设计原则</p>

<ol>
  <li><strong>按域名隔离</strong> — 每个网站的登录态完全独立</li>
  <li><strong>env 分层</strong> — 同域名的不同环境（测试/线上）用 –env 区分</li>
  <li><strong>API 优先</strong> — 能走 HTTP 的不上浏览器，fallback-policy 只在 API 失败时启用</li>
  <li><strong>Chrome 隔离</strong> — CDP 必须用 ~/.web-simulator/.chrome-profiles/ 下的独立 profile，绝不碰用户日常浏览器</li>
  <li><strong>非侵入</strong> — 不做 pkill Chrome 等进程级清理，不影响用户正在使用的 Chrome</li>
  <li><strong>兜底留白</strong> — fallback-policy.js 的 FALLBACKS 注册表是空的，留给各站点按需注册</li>
</ol>

<p>三层架构：</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>┌────────────────────────────────────────────────┐
│              SKILL.md（声明层）                  │
│  触发条件 · 输入规范 · 安全红线 · Gotchas         │
├────────────────────────────────────────────────┤
│        scripts/websim_router.js（路由层）        │
│  统一入口 → 分发到具体脚本 → 失败回退到浏览器      │
├──────────┬──────────┬──────────┬───────────────┤
│  auth    │ discover │ request  │  lib/（基础设施）│
│ _probe   │ _flow    │ _api     │                │
│ .js      │ .js      │ .js      │                │
└──────────┴──────────┴──────────┴───────────────┘
</code></pre></div></div>

<p>基础设施（lib/）:</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>| 模块                 | 职责         | 关键能力                                   |
| ------------------ | ---------- | -------------------------------------- |
| constants.js       | 全局常量       | AUTH_STATES、DATA_ROOT、站点配置             |
| session-store.js   | 会话存储       | 按 &lt;domain&gt;/&lt;env&gt; 读写 cookies.json       |
| api-session.js     | API 会话     | 加载/验证/刷新登录态，自动 CDP 恢复                  |
| cdp-session.js     | CDP 连接     | 启动隔离 Chrome、连接调试端口、导航/读 cookie         |
| web-api.js         | HTTP 客户端   | 带 cookie/auth 的 GET/POST，支持 auth-probe |
| wrapper-store.js   | Wrapper 存储 | 按 workflow 管理 api-discovery.json 等     |
| args.js            | 参数解析       | --base-url / --auth-probe / --env 等    |
| fallback-policy.js | 降级策略       | API 失败 → 浏览器兜底（当前注册表为空）                |
</code></pre></div></div>

<p>session生命周期：</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>                 ┌──────────┐
                 │  加载存储  │
                 │  cookies  │
                 └────┬─────┘
                      ▼
              ┌───────────────┐
              │  auth-probe    │ ← 调 /api/me 验证
              │  返回状态       │
              └───┬───┬───┬───┘
                  │   │   │
         authenticated expired sso_required
                  │   │   │
                  ▼   ▼   ▼
              直接用  CDP刷新  启动Chrome
                      │      手动登录
                      ▼       │
                  保存cookies ─┘
</code></pre></div></div>]]></content><author><name></name></author><category term="skill-design" /><summary type="html"><![CDATA[一种将浏览器操作CLI化的SKILL]]></summary></entry><entry><title type="html">操作与数据分离的 Skill 设计模式</title><link href="/skill-design/2026/05/23/operation-data-separation-skill.html" rel="alternate" type="text/html" title="操作与数据分离的 Skill 设计模式" /><published>2026-05-23T00:00:00+00:00</published><updated>2026-05-23T00:00:00+00:00</updated><id>/skill-design/2026/05/23/operation-data-separation-skill</id><content type="html" xml:base="/skill-design/2026/05/23/operation-data-separation-skill.html"><![CDATA[<h1 id="操作与数据分离的skill">操作与数据分离的SKILL</h1>

<h2 id="方案">方案</h2>

<p>将skill设计为流程、脚本+运行时数据两部分，运行时数据存储到用户目录下<code class="language-plaintext highlighter-rouge">.SKILL名称</code>，运行时数据里面可以存放用户敏感数据、临时数据、非通用的特定环境、特定机器的数据。</p>

<h2 id="目的">目的</h2>

<p>将具体的、不通用的数据部分和通用的、普适的操作流程、脚本进行解耦，方便skill维护和分发</p>

<h2 id="案例">案例</h2>

<p>Web-simulator:一个浏览器模拟技能，实现通过API优先的方式模拟浏览器操作。大致流程是先通过CDP启动调试模式的Chrome浏览器，拿到登录凭证，加上一套登录状态检测、维护、更新方案，探测操作所用的API封装为脚本，同时每个网站的数据被存储到运行时数据目录中.</p>

<p>数据目录：</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>~/.web-simulator/                ← DATA_ROOT（可覆盖）
│
├── .session/sites/&lt;domain&gt;/&lt;env&gt;/
│   ├── cookies.json             ← 浏览器 cookie
│   └── meta.json                ← 元信息
│
├── .wrapper/sites/&lt;domain&gt;/&lt;env&gt;/&lt;workflow&gt;/
│   ├── api-discovery.json       ← API 发现结果
│   ├── &lt;workflow&gt;.wrapper.js    ← 可复用脚本
│   └── README.md                ← 文档
│
├── .chrome-profiles/&lt;domain&gt;/&lt;env&gt;/
│   └── ...                      ← 隔离 Chrome 配置
│
└── reports/                     ← 发现报告
</code></pre></div></div>]]></content><author><name></name></author><category term="skill-design" /><summary type="html"><![CDATA[操作与数据分离的SKILL]]></summary></entry></feed>