<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Data-Boundary on Tarragon</title><link>https://tarrragon.github.io/blog/tags/data-boundary/</link><description>Recent content in Data-Boundary on Tarragon</description><generator>Hugo -- gohugo.io</generator><language>zh-TW</language><copyright>Tarragon (CC BY 4.0)</copyright><lastBuildDate>Tue, 12 May 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://tarrragon.github.io/blog/tags/data-boundary/index.xml" rel="self" type="application/rss+xml"/><item><title>6.4 跨雲端 / 本地的資料邊界</title><link>https://tarrragon.github.io/blog/llm/06-security/cross-cloud-local-data-boundary/</link><pubDate>Tue, 12 May 2026 00:00:00 +0000</pubDate><guid>https://tarrragon.github.io/blog/llm/06-security/cross-cloud-local-data-boundary/</guid><description>&lt;p>寫 code 工作流常混用本地 LLM 跟雲端 LLM、混用的好處是組合兩邊優勢、代價是 prompt 在不同信任邊界之間流動。本章把「哪些 prompt 該留本機、哪些可以送雲端、怎麼配置才不會誤送」整理成可操作的分流判讀。本章是 &lt;a href="https://tarrragon.github.io/blog/llm/00-foundations/privacy-data-flow/" data-link-title="0.7 隱私 / 資安的資料流原理" data-link-desc="從「位置」到「資料流」的思考升級：信任邊界、合約模型、零信任原則套用到 LLM 工作流">0.7 隱私資料流原理&lt;/a>「資料流 thinking + 信任邊界」的具體落地、跟 &lt;a href="https://tarrragon.github.io/blog/llm/01-local-llm-services/vscode-continue-integration/" data-link-title="1.3 VS Code &amp;#43; Continue.dev 整合" data-link-desc="安裝 Continue 擴充套件、config.json 設定、Cmd&amp;#43;L 對話 / Cmd&amp;#43;I 行內編輯快捷鍵">1.3 VS Code + Continue.dev 整合&lt;/a> 的 multi-provider 配置直接對應。信任邊界詞彙見 backend &lt;a href="https://tarrragon.github.io/blog/backend/knowledge-cards/trust-boundary/" data-link-title="Trust Boundary" data-link-desc="說明系統哪些位置開始不能沿用原本的信任假設">trust-boundary&lt;/a> 卡、PII 跟資料分類見 backend &lt;a href="https://tarrragon.github.io/blog/backend/knowledge-cards/pii/" data-link-title="PII" data-link-desc="說明可識別個人的資料如何影響權限、遮罩、保留與稽核">pii&lt;/a> / &lt;a href="https://tarrragon.github.io/blog/backend/knowledge-cards/data-classification/" data-link-title="Data Classification" data-link-desc="說明資料分級如何決定保護、存取、保留與匯出規則">data-classification&lt;/a> 卡、API key 管理見 backend &lt;a href="https://tarrragon.github.io/blog/backend/knowledge-cards/secret-management/" data-link-title="Secret Management" data-link-desc="說明 token、key、password 與憑證如何保存、輪替與撤銷">secret-management&lt;/a> 卡。本章 framing 是個人 dev 視角；production 場景的 log / PII 治理見 &lt;a href="https://tarrragon.github.io/blog/backend/07-security-data-protection/llm-log-and-pii-governance/" data-link-title="LLM Log 與 PII 治理" data-link-desc="production LLM 服務的 prompt log 累積、PII 偵測與過濾、保留期限與合規對齊">backend/07 LLM log 與 PII 治理&lt;/a>。&lt;/p>
&lt;p>讀完本章後、你應該能對自己的 IDE 工作流回答：每個 LLM provider 收到什麼 prompt、雲端服務的資料政策大致長怎樣、哪些任務該分到本地、哪些可以送雲端、配置誤送的常見路徑跟對應防護。&lt;/p>
&lt;h2 id="本章目標">本章目標&lt;/h2>
&lt;ol>
&lt;li>認識「prompt 邊界」在多 provider 工作流的位置。&lt;/li>
&lt;li>區分本地 LLM 跟雲端 LLM 在資料流上的差異。&lt;/li>
&lt;li>認識主流雲端 LLM 服務的資料政策大致分類。&lt;/li>
&lt;li>用「敏感度 × 任務類型」軸把工作流分流到本地或雲端。&lt;/li>
&lt;li>認識多 provider 設定下、prompt 誤送的常見路徑跟對應防護。&lt;/li>
&lt;/ol>
&lt;h2 id="prompt-邊界在哪">prompt 邊界在哪&lt;/h2>
&lt;p>在多 provider 工作流下、prompt 邊界長這樣：&lt;/p>





&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-text" data-lang="text">&lt;span class="line">&lt;span class="ln"> 1&lt;/span>&lt;span class="cl"> ┌───────────────────────────┐
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="ln"> 2&lt;/span>&lt;span class="cl"> │ 使用者 + 本機 codebase │ ← trust zone A：完全本地
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="ln"> 3&lt;/span>&lt;span class="cl"> └───────────────────────────┘
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="ln"> 4&lt;/span>&lt;span class="cl"> ↓ prompt
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="ln"> 5&lt;/span>&lt;span class="cl"> ┌─────────────────────────────────────────┐
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="ln"> 6&lt;/span>&lt;span class="cl"> │ IDE LLM client（Continue.dev） │
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="ln"> 7&lt;/span>&lt;span class="cl"> │ ↓ route by config │
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="ln"> 8&lt;/span>&lt;span class="cl"> │ ├── 本地 model（Ollama / llama-server）│ ← trust zone B：仍在本機
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="ln"> 9&lt;/span>&lt;span class="cl"> │ ├── 商業雲端（Anthropic / OpenAI） │ ← trust zone C：雲端 vendor
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="ln">10&lt;/span>&lt;span class="cl"> │ └── 第三方 LLM 聚合（OpenRouter etc.） │ ← trust zone D：聚合層 + 上游 vendor
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="ln">11&lt;/span>&lt;span class="cl"> └─────────────────────────────────────────┘&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>每跨一條邊界、prompt 都會被另一個主體看到。trust zone B 是本機 process（包括其他可能 dump 流量的工具）、C 是商業 LLM vendor、D 是聚合層加上游 vendor、複雜度跟洩漏面隨層數增加。&lt;/p></description><content:encoded><![CDATA[<p>寫 code 工作流常混用本地 LLM 跟雲端 LLM、混用的好處是組合兩邊優勢、代價是 prompt 在不同信任邊界之間流動。本章把「哪些 prompt 該留本機、哪些可以送雲端、怎麼配置才不會誤送」整理成可操作的分流判讀。本章是 <a href="/blog/llm/00-foundations/privacy-data-flow/" data-link-title="0.7 隱私 / 資安的資料流原理" data-link-desc="從「位置」到「資料流」的思考升級：信任邊界、合約模型、零信任原則套用到 LLM 工作流">0.7 隱私資料流原理</a>「資料流 thinking + 信任邊界」的具體落地、跟 <a href="/blog/llm/01-local-llm-services/vscode-continue-integration/" data-link-title="1.3 VS Code &#43; Continue.dev 整合" data-link-desc="安裝 Continue 擴充套件、config.json 設定、Cmd&#43;L 對話 / Cmd&#43;I 行內編輯快捷鍵">1.3 VS Code + Continue.dev 整合</a> 的 multi-provider 配置直接對應。信任邊界詞彙見 backend <a href="/blog/backend/knowledge-cards/trust-boundary/" data-link-title="Trust Boundary" data-link-desc="說明系統哪些位置開始不能沿用原本的信任假設">trust-boundary</a> 卡、PII 跟資料分類見 backend <a href="/blog/backend/knowledge-cards/pii/" data-link-title="PII" data-link-desc="說明可識別個人的資料如何影響權限、遮罩、保留與稽核">pii</a> / <a href="/blog/backend/knowledge-cards/data-classification/" data-link-title="Data Classification" data-link-desc="說明資料分級如何決定保護、存取、保留與匯出規則">data-classification</a> 卡、API key 管理見 backend <a href="/blog/backend/knowledge-cards/secret-management/" data-link-title="Secret Management" data-link-desc="說明 token、key、password 與憑證如何保存、輪替與撤銷">secret-management</a> 卡。本章 framing 是個人 dev 視角；production 場景的 log / PII 治理見 <a href="/blog/backend/07-security-data-protection/llm-log-and-pii-governance/" data-link-title="LLM Log 與 PII 治理" data-link-desc="production LLM 服務的 prompt log 累積、PII 偵測與過濾、保留期限與合規對齊">backend/07 LLM log 與 PII 治理</a>。</p>
<p>讀完本章後、你應該能對自己的 IDE 工作流回答：每個 LLM provider 收到什麼 prompt、雲端服務的資料政策大致長怎樣、哪些任務該分到本地、哪些可以送雲端、配置誤送的常見路徑跟對應防護。</p>
<h2 id="本章目標">本章目標</h2>
<ol>
<li>認識「prompt 邊界」在多 provider 工作流的位置。</li>
<li>區分本地 LLM 跟雲端 LLM 在資料流上的差異。</li>
<li>認識主流雲端 LLM 服務的資料政策大致分類。</li>
<li>用「敏感度 × 任務類型」軸把工作流分流到本地或雲端。</li>
<li>認識多 provider 設定下、prompt 誤送的常見路徑跟對應防護。</li>
</ol>
<h2 id="prompt-邊界在哪">prompt 邊界在哪</h2>
<p>在多 provider 工作流下、prompt 邊界長這樣：</p>





<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-text" data-lang="text"><span class="line"><span class="ln"> 1</span><span class="cl">                ┌───────────────────────────┐
</span></span><span class="line"><span class="ln"> 2</span><span class="cl">                │  使用者 + 本機 codebase   │ ← trust zone A：完全本地
</span></span><span class="line"><span class="ln"> 3</span><span class="cl">                └───────────────────────────┘
</span></span><span class="line"><span class="ln"> 4</span><span class="cl">                            ↓ prompt
</span></span><span class="line"><span class="ln"> 5</span><span class="cl">        ┌─────────────────────────────────────────┐
</span></span><span class="line"><span class="ln"> 6</span><span class="cl">        │  IDE LLM client（Continue.dev）         │
</span></span><span class="line"><span class="ln"> 7</span><span class="cl">        │   ↓ route by config                     │
</span></span><span class="line"><span class="ln"> 8</span><span class="cl">        │   ├── 本地 model（Ollama / llama-server）│ ← trust zone B：仍在本機
</span></span><span class="line"><span class="ln"> 9</span><span class="cl">        │   ├── 商業雲端（Anthropic / OpenAI）     │ ← trust zone C：雲端 vendor
</span></span><span class="line"><span class="ln">10</span><span class="cl">        │   └── 第三方 LLM 聚合（OpenRouter etc.） │ ← trust zone D：聚合層 + 上游 vendor
</span></span><span class="line"><span class="ln">11</span><span class="cl">        └─────────────────────────────────────────┘</span></span></code></pre></div><p>每跨一條邊界、prompt 都會被另一個主體看到。trust zone B 是本機 process（包括其他可能 dump 流量的工具）、C 是商業 LLM vendor、D 是聚合層加上游 vendor、複雜度跟洩漏面隨層數增加。</p>
<h2 id="本地-llm-vs-雲端-llm-在資料流上的差異">本地 LLM vs 雲端 LLM 在資料流上的差異</h2>
<table>
  <thead>
      <tr>
          <th>維度</th>
          <th>本地 LLM</th>
          <th>雲端 LLM</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td>prompt 走向</td>
          <td>留本機</td>
          <td>送到 vendor、依政策可能 log / 訓練用</td>
      </tr>
      <tr>
          <td>模型權重</td>
          <td>在本機</td>
          <td>在 vendor</td>
      </tr>
      <tr>
          <td>帳號需求</td>
          <td>無</td>
          <td>需註冊、有 API key</td>
      </tr>
      <tr>
          <td>監管 / 合規</td>
          <td>跟本機資料保護一致</td>
          <td>跟 vendor 政策（GDPR、HIPAA 等）對齊</td>
      </tr>
      <tr>
          <td>商業機密內容</td>
          <td>較適合</td>
          <td>看 vendor 政策、enterprise plan 通常承諾不訓練</td>
      </tr>
      <tr>
          <td>大模型能力</td>
          <td>視本機硬體</td>
          <td>較高（GPT-5、Claude 等旗艦）</td>
      </tr>
      <tr>
          <td>反應速度</td>
          <td>視本機硬體</td>
          <td>視網路 + vendor</td>
      </tr>
      <tr>
          <td>持續成本</td>
          <td>一次硬體投入</td>
          <td>按 token / call 收費</td>
      </tr>
  </tbody>
</table>
<p>混用的好處：</p>
<ol>
<li><strong>敏感任務留本地</strong>：機密 codebase、PII、合約等不送雲端。</li>
<li><strong>能力受限任務送雲端</strong>：跨檔案重構、複雜推理用旗艦雲端模型。</li>
<li><strong>離線可用</strong>：本地當 fallback、雲端不可用時仍能基本運作。</li>
</ol>
<p>混用的風險：<strong>配置稍微錯一步、原本想留本地的 prompt 被誤送到雲端</strong>。</p>
<h2 id="主流雲端-llm-服務的資料政策大致分類">主流雲端 LLM 服務的資料政策（大致分類）</h2>
<p>各家雲端 LLM 服務的資料政策依方案跟版本變化、大致可以分成幾類：</p>
<table>
  <thead>
      <tr>
          <th>政策類別</th>
          <th>典型描述</th>
          <th>個人 dev 視角</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td>Enterprise / API 預設不訓練</td>
          <td>透過 API 送的內容不用於訓練、僅依條款保留</td>
          <td>商業 API 的常見預設、個人 dev 用 API key 通常套用</td>
      </tr>
      <tr>
          <td>Consumer 預設可能用於訓練</td>
          <td>ChatGPT.com、Claude.ai 等網頁版、預設可能用於訓練</td>
          <td>看清楚當前條款跟 opt-out 開關</td>
      </tr>
      <tr>
          <td>30 天 abuse log 保留</td>
          <td>為了 abuse detection 保留 30 天、之後刪除</td>
          <td>多數商業 API 的常見做法</td>
      </tr>
      <tr>
          <td>Zero retention（特殊方案）</td>
          <td>enterprise 或特殊申請、不保留任何內容</td>
          <td>個人 dev 通常用不到</td>
      </tr>
  </tbody>
</table>
<blockquote>
<p><strong>事實查核註</strong>：上面是 2026 年 5 月主流商業 LLM 服務的常見政策分類、具體條款依 vendor、地區、方案、版本快速變化、且各家詞彙不一致（如「training」「improve our services」「abuse review」可能指不同範圍）。引用前以對應 vendor 的當前官方<a href="https://www.anthropic.com/legal/privacy">資料政策頁面</a>、<a href="https://openai.com/policies/">OpenAI Data Policy</a> 等為準。</p></blockquote>
<p>判讀重點不是「哪家最嚴」、是「我送進去的內容、貼合我的預期嗎」。</p>
<h2 id="按敏感度--任務類型分流">按敏感度 × 任務類型分流</h2>
<p>把工作流分流到本地或雲端的兩軸：</p>





<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-text" data-lang="text"><span class="line"><span class="ln">1</span><span class="cl">敏感度軸：
</span></span><span class="line"><span class="ln">2</span><span class="cl">  公開 / 一般 / 機密 / 高機密（PII、合約、未公開 codebase）
</span></span><span class="line"><span class="ln">3</span><span class="cl">
</span></span><span class="line"><span class="ln">4</span><span class="cl">任務類型軸：
</span></span><span class="line"><span class="ln">5</span><span class="cl">  補完 / 解釋 / 重構 / 設計討論 / 端到端 agent</span></span></code></pre></div><p>對應的分流建議：</p>
<table>
  <thead>
      <tr>
          <th>任務 \ 敏感度</th>
          <th>公開 / 一般</th>
          <th>機密</th>
          <th>高機密（PII、合約、未公開核心）</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td>補完</td>
          <td>雲端或本地皆可、看速度</td>
          <td>本地優先</td>
          <td>本地、且 disable codebase RAG</td>
      </tr>
      <tr>
          <td>解釋程式碼</td>
          <td>雲端較流暢</td>
          <td>本地、視內容</td>
          <td>本地、避免送整檔</td>
      </tr>
      <tr>
          <td>跨檔案重構</td>
          <td>雲端旗艦能力較強</td>
          <td>看 enterprise plan 的政策</td>
          <td>本地、或人工切片送雲端</td>
      </tr>
      <tr>
          <td>設計討論</td>
          <td>雲端較流暢</td>
          <td>enterprise plan 或本地</td>
          <td>本地、且過濾掉具體 entity 名稱</td>
      </tr>
      <tr>
          <td>端到端 agent</td>
          <td>雲端旗艦</td>
          <td>本地、且降低 tool 副作用範圍</td>
          <td>不適合 agent、改用 chat-only 本地</td>
      </tr>
  </tbody>
</table>
<p>實務上的常見模式：</p>
<ol>
<li><strong>預設本地、特定任務開雲端</strong>：日常工作走本地、需要旗艦能力時手動切。</li>
<li><strong>預設雲端、敏感任務切本地</strong>：日常走雲端旗艦、開機密 repo 時切本地。</li>
<li><strong>依 repo 切</strong>：用 Continue.dev / IDE 工具的「per-workspace config」、每個 repo 自己決定。</li>
</ol>
<p>選哪種模式取決於工作流的敏感度分布。多數寫 code 個人 dev 屬於「一般 / 機密混合」、值得用模式 1 或模式 3。「哪個任務適合本地、哪個適合雲端」的任務面判讀見 <a href="/blog/llm/01-local-llm-services/expectation-management/" data-link-title="1.5 期望管理：本地 LLM 的擅長領域與分工" data-link-desc="本地 LLM 是免費的初階 pair programmer：辨識它的擅長領域、跟雲端旗艦做結構性分工">1.5 期望管理</a>、本章補上「分流之後的資料邊界」面。</p>
<h2 id="continuedev-多-provider-配置範例">Continue.dev 多 provider 配置範例</h2>
<p>Continue.dev 基礎安裝跟單一 provider config 見 <a href="/blog/llm/01-local-llm-services/vscode-continue-integration/" data-link-title="1.3 VS Code &#43; Continue.dev 整合" data-link-desc="安裝 Continue 擴充套件、config.json 設定、Cmd&#43;L 對話 / Cmd&#43;I 行內編輯快捷鍵">1.3 VS Code + Continue.dev 整合</a>、本節聚焦多 provider 共存下的安全性設計。下面是一個合理的 Continue.dev 配置範例、把本地 + 雲端混用、清楚標出每個 model 的走向：</p>





<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-json" data-lang="json"><span class="line"><span class="ln"> 1</span><span class="cl"><span class="p">{</span>
</span></span><span class="line"><span class="ln"> 2</span><span class="cl">  <span class="nt">&#34;models&#34;</span><span class="p">:</span> <span class="p">[</span>
</span></span><span class="line"><span class="ln"> 3</span><span class="cl">    <span class="p">{</span>
</span></span><span class="line"><span class="ln"> 4</span><span class="cl">      <span class="nt">&#34;title&#34;</span><span class="p">:</span> <span class="s2">&#34;Local 30B MoE (default)&#34;</span><span class="p">,</span>
</span></span><span class="line"><span class="ln"> 5</span><span class="cl">      <span class="nt">&#34;provider&#34;</span><span class="p">:</span> <span class="s2">&#34;ollama&#34;</span><span class="p">,</span>
</span></span><span class="line"><span class="ln"> 6</span><span class="cl">      <span class="nt">&#34;model&#34;</span><span class="p">:</span> <span class="s2">&#34;qwen3-30b-a3b&#34;</span><span class="p">,</span>
</span></span><span class="line"><span class="ln"> 7</span><span class="cl">      <span class="nt">&#34;apiBase&#34;</span><span class="p">:</span> <span class="s2">&#34;http://localhost:11434&#34;</span>
</span></span><span class="line"><span class="ln"> 8</span><span class="cl">    <span class="p">},</span>
</span></span><span class="line"><span class="ln"> 9</span><span class="cl">    <span class="p">{</span>
</span></span><span class="line"><span class="ln">10</span><span class="cl">      <span class="nt">&#34;title&#34;</span><span class="p">:</span> <span class="s2">&#34;Local 14B (fast)&#34;</span><span class="p">,</span>
</span></span><span class="line"><span class="ln">11</span><span class="cl">      <span class="nt">&#34;provider&#34;</span><span class="p">:</span> <span class="s2">&#34;ollama&#34;</span><span class="p">,</span>
</span></span><span class="line"><span class="ln">12</span><span class="cl">      <span class="nt">&#34;model&#34;</span><span class="p">:</span> <span class="s2">&#34;qwen3-14b&#34;</span><span class="p">,</span>
</span></span><span class="line"><span class="ln">13</span><span class="cl">      <span class="nt">&#34;apiBase&#34;</span><span class="p">:</span> <span class="s2">&#34;http://localhost:11434&#34;</span>
</span></span><span class="line"><span class="ln">14</span><span class="cl">    <span class="p">},</span>
</span></span><span class="line"><span class="ln">15</span><span class="cl">    <span class="p">{</span>
</span></span><span class="line"><span class="ln">16</span><span class="cl">      <span class="nt">&#34;title&#34;</span><span class="p">:</span> <span class="s2">&#34;Cloud Claude (premium only)&#34;</span><span class="p">,</span>
</span></span><span class="line"><span class="ln">17</span><span class="cl">      <span class="nt">&#34;provider&#34;</span><span class="p">:</span> <span class="s2">&#34;anthropic&#34;</span><span class="p">,</span>
</span></span><span class="line"><span class="ln">18</span><span class="cl">      <span class="nt">&#34;model&#34;</span><span class="p">:</span> <span class="s2">&#34;claude-sonnet-4-6&#34;</span><span class="p">,</span>
</span></span><span class="line"><span class="ln">19</span><span class="cl">      <span class="nt">&#34;apiKey&#34;</span><span class="p">:</span> <span class="s2">&#34;${env:ANTHROPIC_API_KEY}&#34;</span>
</span></span><span class="line"><span class="ln">20</span><span class="cl">    <span class="p">}</span>
</span></span><span class="line"><span class="ln">21</span><span class="cl">  <span class="p">],</span>
</span></span><span class="line"><span class="ln">22</span><span class="cl">  <span class="nt">&#34;tabAutocompleteModel&#34;</span><span class="p">:</span> <span class="p">{</span>
</span></span><span class="line"><span class="ln">23</span><span class="cl">    <span class="nt">&#34;title&#34;</span><span class="p">:</span> <span class="s2">&#34;Local autocomplete&#34;</span><span class="p">,</span>
</span></span><span class="line"><span class="ln">24</span><span class="cl">    <span class="nt">&#34;provider&#34;</span><span class="p">:</span> <span class="s2">&#34;ollama&#34;</span><span class="p">,</span>
</span></span><span class="line"><span class="ln">25</span><span class="cl">    <span class="nt">&#34;model&#34;</span><span class="p">:</span> <span class="s2">&#34;qwen3-14b&#34;</span>
</span></span><span class="line"><span class="ln">26</span><span class="cl">  <span class="p">}</span>
</span></span><span class="line"><span class="ln">27</span><span class="cl"><span class="p">}</span></span></span></code></pre></div><p>關鍵設計：</p>
<ol>
<li><strong>預設模型是本地</strong>：list 第一個是 local、tabAutocomplete 也是 local。</li>
<li><strong>雲端模型 title 明確標記</strong>：「Cloud Claude」開頭、避免選錯。</li>
<li><strong>autocomplete 永遠本地</strong>：補完的 prompt 流量大、autocomplete 屬於高頻、留本地。</li>
<li><strong>API key 從環境變數</strong>：不寫死在 config 裡、避免 commit 進 git。</li>
</ol>
<blockquote>
<p><strong>事實查核註</strong>：Continue.dev 的 config 格式跟 provider 支援度依版本變化、本範例為示意、實際引用以當前 Continue.dev 官方文件為準。</p></blockquote>
<h2 id="prompt-誤送的常見路徑">prompt 誤送的常見路徑</h2>
<p>個人 dev 場景下常見的 prompt 誤送路徑：</p>
<ol>
<li><strong>預設 model 設成雲端、按了 hotkey 沒看到當前 model</strong>：把寫到一半的機密 prompt 送到雲端。對應防護：預設改本地、雲端 model 用名稱前綴明確。</li>
<li><strong>autocomplete 設成雲端</strong>：補完每幾秒就觸發、prompt 包含當前游標附近 code、流量大且持續。對應防護：autocomplete 必定本地。</li>
<li><strong>codebase RAG 索引到 <code>.env</code> / secrets</strong>：RAG 把 secret 加進 prompt、再送雲端。對應防護：IDE search exclude 加上 <code>.env</code>、<code>*.key</code>、<code>secrets/</code>、<code>.aws/</code>。RAG 把外部內容引入 prompt 的整體機制與失敗模式見 <a href="/blog/llm/04-applications/rag-principles/" data-link-title="4.1 RAG 原理：retrieval &#43; augmentation 模式" data-link-desc="為什麼模型需要外掛知識、語意相似 vs 字面相似、chunking 的本質取捨、retrieval 失敗的根本原因">4.1 RAG 原理</a>。</li>
<li><strong>多 client 同時跑、key 共用</strong>：Cursor / Continue.dev / Claude Code 等多 client 共用 API key、難追是哪個 client 的流量。對應防護：給每個 client 各自的 API key、有問題能追溯。</li>
<li><strong>聚合服務不知道實際送到哪</strong>：用 OpenRouter / together.ai 等聚合層、prompt 經過聚合層後送到上游 vendor、上游可能是不同 region 不同政策。對應防護：個人 dev 場景傾向不用聚合、直接接 vendor。</li>
<li><strong>forgot prompt history 含 sensitive content</strong>：某次貼了機密內容後、後續同 conversation 都帶著、不知不覺重複送。對應防護：機密 prompt 用獨立 conversation、用完清空。</li>
</ol>
<h2 id="個人-dev-場景的最低防護建議">個人 dev 場景的最低防護建議</h2>
<ol>
<li><strong>預設模型設成本地</strong>：避免誤觸發雲端。</li>
<li><strong>autocomplete 必定本地</strong>：流量大、持續、適合本機處理。</li>
<li><strong>API key 從環境變數讀、不寫死 config</strong>：dotfile commit 不會洩漏。</li>
<li><strong>codebase search exclude <code>.env</code> / secrets 路徑</strong>：避免 RAG 索引到 secret。</li>
<li><strong>看完 prompt 內容再送雲端</strong>：對重要任務、value 不大但風險高時 prefer 本地。</li>
<li><strong>不同 client 用不同 API key</strong>：流量追溯。</li>
<li><strong>機密 prompt 用獨立 conversation</strong>：用完清空、不污染後續。</li>
</ol>
<h2 id="雲端-vendor-的-enterprise-plan-選擇">雲端 vendor 的 enterprise plan 選擇</h2>
<p>當個人 dev 工作流穩定後、若要把雲端 LLM 用得更深、可以評估 enterprise plan：</p>
<table>
  <thead>
      <tr>
          <th>Plan 類型</th>
          <th>典型差異</th>
          <th>個人 dev 適用性</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td>Consumer / Free</td>
          <td>預設可能用於訓練、有 opt-out</td>
          <td>不適合機密內容</td>
      </tr>
      <tr>
          <td>API key（pay-as-you-go）</td>
          <td>通常預設不訓練、保留 30 天 abuse log</td>
          <td>多數個人 dev 用這個</td>
      </tr>
      <tr>
          <td>Team / Pro 訂閱</td>
          <td>多人共用、可能有額外 data control</td>
          <td>個人或小團隊適用</td>
      </tr>
      <tr>
          <td>Enterprise</td>
          <td>zero retention、SLA、客製合約</td>
          <td>個人 dev 通常用不到</td>
      </tr>
  </tbody>
</table>
<p>選擇判讀：個人 dev 主要看「API key 預設政策」、若不夠用、再評估升級。</p>
<h2 id="給讀者的跨邊界判讀流程">給讀者的跨邊界判讀流程</h2>
<p>每次設新工作流 / 換 LLM client / 加新 model 時的判讀流程：</p>
<ol>
<li><strong>盤點 model 列表</strong>：每個 model 是本地還是雲端、走哪家 vendor。</li>
<li><strong>看 vendor 的當前政策</strong>：別憑印象、看當前官方文件。</li>
<li><strong>設定 default model + autocomplete model</strong>：default 跟 autocomplete 是高頻路徑、優先本地。</li>
<li><strong>加 codebase RAG exclude</strong>：把 secret / sensitive path 排除。</li>
<li><strong>跑簡單測試</strong>：開個假機密 prompt（如「我的 SSH key 是 fake-key-test」）、觀察 client log 跟 vendor dashboard、確認流量去向符合預期。</li>
</ol>
<h2 id="下一章">下一章</h2>
<p><strong>靜態網站 / 沒 backend 場景的 prompt 邊界</strong>（API key 暴露、CORS、SaaS 信任、client-side abuse）見 <a href="/blog/llm/04-applications/static-and-serverless-rag-deployment/" data-link-title="4.16 靜態 / serverless RAG deployment：架構選擇與資安取捨" data-link-desc="沒 backend 的場景怎麼做 RAG：四種 deployment 方案、API key 暴露問題、CORS / abuse / 第三方信任、跟模組六的 routing">4.16 靜態 / serverless RAG deployment</a> 的資安段。</p>
<p>下一章：<a href="/blog/llm/06-security/routing-to-production-security/" data-link-title="6.5 跨進 production 的 routing 中樞" data-link-desc="個人 dev → 團隊 → production LLM 服務的三層演化、跟 backend/07 對應卡片的 routing 清單">6.5 跨進 production 的 routing 中樞</a>、整合本模組到 backend/07 production 場景的路由。</p>
]]></content:encoded></item></channel></rss>