# VS Code Copilot Chat vs Nanobot 記憶與對話壓縮機制比較報告
> 研究日期:2026-07-23
> 比較範圍:Context 管理、對話壓縮、記憶系統、Prompt 組裝
---
## 目錄
1. [架構總覽比較](#1-架構總覽比較)
2. [Context 組裝比較](#2-context-組裝比較)
3. [對話壓縮機制比較](#3-對話壓縮機制比較)
4. [記憶系統比較](#4-記憶系統比較)
5. [壓縮觸發策略比較](#5-壓縮觸發策略比較)
6. [摘要品質與保留策略比較](#6-摘要品質與保留策略比較)
7. [Fallback 與容錯比較](#7-fallback-與容錯比較)
8. [效能與延遲比較](#8-效能與延遲比較)
9. [可觀測性比較](#9-可觀測性比較)
10. [設定與控制比較](#10-設定與控制比較)
11. [交叉啟示與改善建議](#11-交叉啟示與改善建議)
12. [附錄:源碼對照](#12-附錄源碼對照)
---
## 1. 架構總覽比較
```mermaid
graph LR
subgraph "VS Code Copilot Chat"
V1["7 層 Context 組裝"]
V2["Context Compaction<br/>(自動 + /compact 手動)"]
V3["3-scope 記憶系統<br/>User/Session/Repo"]
V4["Prompt Caching<br/>(供應商端)"]
V5["Transcript 保留"]
end
subgraph "Nanobot"
N1["ContextBuilder 組裝"]
N2["Consolidator + AutoCompact<br/>(Token 驅動 + TTL 驅動)"]
N3["Dream 兩階段記憶整併"]
N4["GitStore 版控記憶"]
N5["history.jsonl 持久化"]
end
```
| 維度 | VS Code Copilot Chat | Nanobot |
| ----------------------- | -------------------------------------------- | -------------------------------------------------------- |
| **定位** | IDE 內嵌 AI 助手 | 獨立自託管 Agent 框架 |
| **開發者** | Microsoft | HKUDS (開源) |
| **語言** | TypeScript (Node.js) | Python |
| **Context 管理** | 7 層固定組裝 | ContextBuilder 模組化組裝 |
| **壓縮核心** | `SummarizedConversationHistory` (TSX 元件) | `Consolidator` + `AutoCompact` (Python class) |
| **記憶持久化** | Transcript (.jsonl) + Memory files | history.jsonl + MEMORY.md + SOUL.md + USER.md + GitStore |
| **壓縮模型** | 可用 Prism 專用 endpoint / 同對話模型 | 同 provider 的同一模型 |
| **摘要 Fallback** | Simple mode(文字化歷史) | raw_archive(原始 dump) |
---
## 2. Context 組裝比較
### VS Code — 7 層固定架構
```mermaid
graph TB
subgraph "VS Code Context 組裝"
A["① System Instructions"]
B["② Customizations<br/>AGENTS.md / .instructions.md / Skills"]
C["③ User Message"]
D["④ Conversation History"]
E["⑤ Implicit Context<br/>活動檔案、選取、錯誤"]
F["⑥ Explicit References<br/>#file / #codebase"]
G["⑦ Tool Outputs"]
end
```
### Nanobot — ContextBuilder 模組化架構
```mermaid
graph TB
subgraph "Nanobot Context 組裝"
N1["Identity<br/>agent/identity.md + platform_policy"]
N2["Bootstrap Files<br/>AGENTS.md + SOUL.md + USER.md"]
N3["Tool Contract<br/>agent/tool_contract.md"]
N4["Memory Context<br/>MEMORY.md (長期記憶)"]
N5["Active Skills<br/>always-on skills 全文 + 其他摘要"]
N6["Recent History<br/>history.jsonl 最近 50 條<br/>(8K token cap)"]
N7["Archived Summary<br/>前次壓縮摘要"]
N8["Conversation History<br/>session.get_history()<br/>(max 120 msgs + token cap)"]
N9["Runtime Context<br/>時間、channel、chat_id、goal state"]
N10["User Message + Media"]
end
```
### 詳細對照
| 組裝層 | VS Code | Nanobot | 差異 |
| ------------------------ | ------------------------------------- | ------------------------------------------------------------ | -------------------------------------------------------------- |
| **系統指令** | 內建 System Instructions | `agent/identity.md` + `platform_policy.md` | Nanobot 用 Jinja2 模板可自訂 |
| **自訂指令** | AGENTS.md / .instructions.md / Skills | AGENTS.md / SOUL.md / USER.md | Nanobot 多了 SOUL(行為規則)和 USER(使用者屬性)的 MECE 分離 |
| **記憶注入** | User Memory 前 200 行自動載入 | MEMORY.md + Recent History(50 條 / 8K token cap) | VS Code 全量注入;Nanobot 有 token cap 和條數上限 |
| **歷史回放** | 完整歷史(直到 token 極限) | `session.get_history(max_messages=120, max_tokens=budget)` | Nanobot 同時限制條數和 token 數;VS Code 只看 token |
| **工具定義** | 隨請求帶上(Full mode) | `tool_contract.md` 摘要 + 實際 tool registry | VS Code 全量帶 tool schema;Nanobot 帶合約摘要 |
| **Runtime 元資料** | 不明確區分 | `[Runtime Context]` 標籤包裹 | Nanobot 明確標記非指令元資料,避免模型誤解為指令 |
| **摘要注入** | Summary 取代舊歷史 | `[Archived Context Summary]` 區段 | 兩者做法類似,但 Nanobot 保留原始標籤 |
| **圖片處理** | 壓縮時替換為 placeholder | `[image: path]` breadcrumb | 類似策略,保持上下文可追溯 |
---
## 3. 對話壓縮機制比較
### VS Code Compaction 流程
```mermaid
sequenceDiagram
participant User as 使用者
participant VSCode as VS Code
participant LLM as LLM (摘要)
participant Transcript as Transcript (.jsonl)
User->>VSCode: 送出訊息
VSCode->>VSCode: 組裝 prompt,計算 token
alt Context Window 已滿
VSCode->>Transcript: 儲存完整對話
VSCode->>LLM: 摘要請求(Full/Simple mode)
LLM-->>VSCode: 摘要
VSCode->>VSCode: 用摘要取代舊歷史
end
VSCode->>LLM: 精簡後 prompt
LLM-->>VSCode: 回應
```
### Nanobot Consolidation 流程
```mermaid
sequenceDiagram
participant User as 使用者/Channel
participant Agent as AgentLoop
participant Cons as Consolidator
participant LLM as LLM (摘要)
participant Hist as history.jsonl
User->>Agent: 送出訊息
Agent->>Agent: RESTORE → COMPACT
Agent->>Cons: maybe_consolidate_by_tokens()
Cons->>Cons: 估算 session prompt tokens
alt Token 超出預算
Cons->>Cons: pick_consolidation_boundary()
Cons->>LLM: 摘要請求
LLM-->>Cons: 摘要文字
Cons->>Hist: append_history(摘要)
Cons->>Cons: 更新 last_consolidated cursor
end
Agent->>Agent: BUILD → RUN
Agent->>LLM: 完整 prompt
LLM-->>Agent: 回應
```
### 核心差異對照
| 維度 | VS Code | Nanobot |
| ------------------ | ----------------------------------- | --------------------------------------------------------- |
| **壓縮粒度** | 以 tool call round 為單位 | 以 user-turn boundary 為單位 |
| **壓縮判斷** | 歷史超出可用 token 預算即觸發 | 估算整個 prompt 是否超出`context_window_tokens * ratio` |
| **壓縮策略** | 一次性:整段舊歷史 → 摘要 | 迭代式:最多 5 輪,每輪移除一段直到低於目標 |
| **壓縮目標** | 騰出空間讓當前請求通過 | 降至`budget * consolidation_ratio`(預設 50%) |
| **摘要模型** | 可走 Prism 專用 compaction endpoint | 同一 provider 同一模型 |
| **壓縮位置** | 在 render prompt 時(前端組裝階段) | 在 agent loop 的 BUILD 階段(後端處理階段) |
| **摘要保留** | 直接取代歷史 + Transcript hint | 摘要存入 history.jsonl +`_last_summary` metadata |
| **多輪壓縮** | 每次壓縮產生一個 summary | 迭代壓縮,每輪獨立摘要,最後一輪的摘要存入 metadata |
---
## 4. 記憶系統比較
### VS Code — 3-scope 檔案式記憶
```mermaid
graph TB
subgraph "VS Code 記憶系統"
VU["User Memory<br/>/memories/<br/>前 200 行自動載入<br/>⚠️ 持續佔用 context"]
VS["Session Memory<br/>/memories/session/<br/>僅列目錄"]
VR["Repo Memory<br/>/memories/repo/<br/>僅列目錄"]
end
```
### Nanobot — Dream 兩階段記憶整併
```mermaid
graph TB
subgraph "Nanobot 記憶系統"
N1["SOUL.md<br/>Agent 行為規則、guardrails<br/>工具使用策略"]
N2["USER.md<br/>使用者屬性:偏好、習慣、溝通風格"]
N3["MEMORY.md<br/>專案 context:架構、決策、基礎設施"]
N4["history.jsonl<br/>對話歷史(append-only)"]
N5["skills/NAME/SKILL.md<br/>可重用工作流模板"]
end
N1 --> D["Dream 整併引擎"]
N2 --> D
N3 --> D
N4 --> D
D --> N1
D --> N2
D --> N3
D --> N5
```
### 詳細對照
| 維度 | VS Code | Nanobot |
| ---------------------- | ----------------------------------------------------- | ---------------------------------------------------------------------------- |
| **Scope 數量** | 3 (User / Session / Repo) | 4+ (SOUL / USER / MEMORY / Skills / history) |
| **分類原則** | 以「生命週期」分:跨 workspace / 單 session / 單 repo | 以「內容性質」分:行為 / 個人 / 專案 / 技能 (MECE) |
| **持久化格式** | Markdown 檔案 | Markdown 檔案 + JSONL 歷史 |
| **自動載入** | User memory 前 200 行 | MEMORY.md 全文 + Recent History (50 條/8K cap) |
| **記憶品質控制** | 無自動整理,依賴使用者手動維護 | **Dream 引擎**:LLM 驅動的自動 MECE 整併 |
| **去重機制** | 無 | Dream 跨檔案去重,保留最特定副本 |
| **衰變規則** | 無 | Sprint 目標保留 30 天、架構決策永久、ephemeral 活躍時保留 |
| **版控** | 無 | GitStore(SOUL.md / USER.md / MEMORY.md) |
| **摘要標記** | 無 | SNIP 標記系統:[permanent] / [durable] / [ephemeral] / [correction] / [skip] |
### Dream 引擎 — Nanobot 獨有的記憶整併
Dream 是 Nanobot 最獨特的記憶機制,VS Code 沒有對應功能:
```mermaid
sequenceDiagram
participant Cron as Cron 排程
participant Dream as Dream 引擎
participant LLM as LLM
participant Memory as SOUL/USER/MEMORY.md
participant History as history.jsonl
Cron->>Dream: 觸發 Dream run
Dream->>History: 讀取上次 dream_cursor 後的新條目
Dream->>LLM: 送出 SNIP 分類請求
LLM-->>Dream: 每條標記 [permanent/durable/ephemeral/correction/skip]
Dream->>LLM: 送出記憶整併請求
Note over LLM: 分析全部記憶檔<br/>執行 MECE 分類<br/>去重、刪除、遷移、新增
LLM-->>Dream: 更新後的記憶檔內容
Dream->>Memory: 更新 SOUL.md / USER.md / MEMORY.md
Dream->>History: 更新 .dream_cursor
Dream->>Dream: GitStore auto-commit
```
**Dream 的兩個階段**:
1. **Consolidator(對話壓縮)**:壓縮時用 SNIP 標記分類歷史條目
2. **Dream Run(記憶整併)**:排程觸發,LLM 驅動的跨檔案 MECE 重整
---
## 5. 壓縮觸發策略比較
### VS Code — 單一觸發點
```mermaid
graph TD
A[組裝 prompt] --> B{Token 超出可用預算?}
B -->|是| C[觸發 Compaction]
B -->|否| D[直接送出]
C --> E[產生摘要]
E --> F[用摘要取代舊歷史]
F --> D
```
### Nanobot — 雙路徑觸發
```mermaid
graph TD
A[處理訊息] --> B[RESTORE 階段]
B --> C[COMPACT 階段<br/>AutoCompact.prepare_session]
C --> D[BUILD 階段<br/>Consolidator.maybe_consolidate_by_tokens]
D --> E{估算 prompt tokens<br/>超出 input_token_budget?}
E -->|是| F[迭代壓縮<br/>最多 5 輪]
E -->|否| G[跳過壓縮]
F --> H{降至 target 預算?}
H -->|是| G
H -->|否 / 無法再切| G
subgraph "TTL 路徑(非同步)"
I[AutoCompact.check_expired] --> J{Session 閒置<br/>超過 TTL?}
J -->|是| K[compact_idle_session<br/>保留最近 8 則]
J -->|否| L[跳過]
end
```
| 維度 | VS Code | Nanobot |
| ------------------ | ---------------------- | --------------------------------------------------- |
| **觸發時機** | 組裝 prompt 時(同步) | Agent loop BUILD 階段(同步)+ 閒置 TTL(非同步) |
| **觸發條件** | Token 預算溢出 | Token 估算超出預算**或** Session 閒置超過 TTL |
| **閒置壓縮** | ❌ 無 | ✅ AutoCompact TTL-based |
| **手動觸發** | `/compact` 命令 | 無顯式命令,但可透過 session TTL 設定 |
| **壓縮鎖** | 無(前端同步處理) | asyncio.Lock 保護並發壓縮 |
| **目標預算** | 騰出足夠空間 | 降至`budget × consolidation_ratio`(預設 50%) |
---
## 6. 摘要品質與保留策略比較
### VS Code 摘要策略
```mermaid
graph TB
subgraph "Full Mode"
F1[帶上 tools schema]
F2[tool_choice: 'none']
F3[佔用 90% modelMaxPromptTokens - toolTokens]
F4[用 ConversationHistory 元件渲染完整歷史]
end
subgraph "Simple Mode(Fallback)"
S1[不帶 tools]
S2[用 SimpleSummarizedHistory 文字化]
S3[優先保留第一個 user message]
S4[截斷過大的工具結果和參數]
end
```
### Nanobot 摘要策略
```mermaid
graph TB
subgraph "Consolidator.archive"
C1[格式化訊息為文字]
C2[截斷至 input_token_budget]
C3[送 LLM 產生摘要]
C4[摘要存入 history.jsonl]
C5[SNIP 標記分類]
end
subgraph "raw_archive(Fallback)"
R1[格式化訊息為文字]
R2[截斷至 _RAW_ARCHIVE_MAX_CHARS]
R3["直接寫入 history.jsonl<br/>附 RAW 標記"]
R4["⚠️ WARNING: degraded"]
end
```
| 維度 | VS Code | Nanobot |
| ----------------------- | --------------------------------------------------- | ------------------------------------------------------- |
| **摘要 prompt** | 複雜:要求精確度、完整性、逐字準確性等 6 項品質指引 | 簡潔:SNIP 四準則 (Signal/Novel/Important/Persistent) |
| **歷史渲染** | 原始 message 格式(含 tool calls / reasoning) | 文字化格式(`[timestamp] ROLE [tools: x]: content`) |
| **工具結果處理** | Full mode 保留;Simple mode 截斷 | 全部文字化,截斷至 token budget |
| **保留策略** | 最近 N 個 tool call rounds | 最近 N 個 user-turn boundary 之後的訊息 |
| **Fallback 品質** | Simple mode 仍是 LLM 產出 | raw_archive 只是原始 dump,無摘要 |
| **保留最近訊息** | 保留摘要後的所有新對話 | TTL 壓縮保留最近 8 則;Token 壓縮保留 boundary 後的訊息 |
| **SNIP 分類** | ❌ 無 | ✅ [permanent/durable/ephemeral/correction/skip] |
---
## 7. Fallback 與容錯比較
| 故障情境 | VS Code | Nanobot |
| ----------------------------- | ------------------------------------------- | -------------------------------------------------------------------- |
| **摘要 LLM 失敗** | Simple mode fallback(仍用 LLM) | raw_archive fallback(直接 dump,不經 LLM) |
| **模型切換** | 可能觸發 Simple mode(context window 變小) | Consolidator.set_provider() 更新參數,下次壓縮自動適配 |
| **Token 估算不準** | 90% 預留作安全邊際 | 1024 token safety buffer + consolidation_ratio |
| **壓縮中斷** | Transcript 已完整儲存,下次重啟可恢復 | 已 archive 的部分寫入 history.jsonl,last_consolidated cursor 已更新 |
| **Concurrent 壓縮** | 不適用(前端單線程) | asyncio.Lock 防止同一 session 並發壓縮 |
| **Prism endpoint 失敗** | 自動 fallback 到 agent endpoint | 不適用(無獨立 compaction endpoint) |
---
## 8. 效能與延遲比較
| 維度 | VS Code | Nanobot |
| ---------------------- | ------------------------------ | ----------------------------------------------- |
| **壓縮延遲感知** | 使用者可感知(等待摘要生成) | 使用者較不感知(BUILD 階段背景處理) |
| **閒時壓縮** | ❌ 僅在請求時壓縮 | ✅ AutoCompact TTL-based 閒時壓縮 |
| **Prompt Cache** | 壓縮會打破 prefix cache | 不特別管理 cache(由 provider 端處理) |
| **壓縮模型** | Prism 可用便宜模型 | 使用同模型(成本較高) |
| **估算方式** | 精確計算 token(provider API) | estimate_message_tokens 估算(字元/4 或更精確) |
---
## 9. 可觀測性比較
| 維度 | VS Code | Nanobot |
| ------------------------- | ---------------------------------------------- | ----------------------------------------- |
| **Token 使用監控** | ✅ Context Window 控制項(填充條、數字、分類) | ❌ 無 UI,僅 loguru 日誌 |
| **壓縮事件通知** | ✅ 明確通知使用者壓縮發生 | ❌ 僅 debug/info 日誌 |
| **Cache 分析** | ✅ Cache Explorer 工具 | ❌ 無 |
| **Transcript 查詢** | ✅ Agent 可用 read_file 讀取 | ✅ history.jsonl 可查詢(cursor-based) |
| **壓縮後回溯** | ✅ Transcript hint 指引 agent 回查 | ✅ history.jsonl 保留原始內容 + SNIP 標記 |
---
## 10. 設定與控制比較
| 設定 | VS Code | Nanobot |
| ----------------------------- | -------------------------------------------------- | ----------------------------------------------------------------- |
| **啟用/停用壓縮** | `chat.summarizeAgentConversationHistory.enabled` | `session_ttl_minutes`(設 0 停用 TTL 壓縮;token 壓縮不可停用) |
| **Context Window 大小** | 自動偵測模型上限 | `context_window_tokens`(設定檔) |
| **壓縮比例** | 90% of modelMaxPromptTokens | `consolidation_ratio`(預設 0.5) |
| **歷史回放上限** | 依 token budget 動態調整 | `max_messages`(預設 120) |
| **歷史 token 上限** | 動態計算 | `_replay_token_budget()` |
| **記憶注入上限** | 前 200 行 | 50 條 / 8K token cap |
| **閒置 TTL** | ❌ 無 | `session_ttl_minutes` |
| **壓縮迭代上限** | 一次壓縮 | `_MAX_CONSOLIDATION_ROUNDS = 5` |
| **檔案訊息上限** | 無 | `FILE_MAX_MESSAGES = 2000` |
---
## 11. 交叉啟示與改善建議
### Nanobot 可借鑑 VS Code 的設計
```mermaid
graph LR
subgraph "VS Code 優勢 → Nanobot 改善方向"
A["Transcript Hint 機制"] --> A1["讓 agent 壓縮後<br/>能回查完整原始對話"]
B["Context Window 控制項"] --> B1["mecui 加入<br/>token 使用量視覺化"]
C["專用 Compaction Endpoint"] --> C1["Consolidator 可選用<br/>便宜/快速模型做摘要"]
D["手動 /compact"] --> D1["WebUI 加入<br/>手動壓縮按鈕"]
E["Prompt Cache 友善"] --> E1["壓縮時考慮<br/>prefix 穩定性"]
end
```
| VS Code 特性 | Nanobot 可如何採用 |
| ----------------------------- | ---------------------------------------------------------------- |
| **Transcript Hint** | 壓縮摘要後附加歷史檔路徑 hint,讓 agent 知道可`read_file` 回查 |
| **Context Window UI** | mecui 加 token 使用量填充條,讓使用者知道何時即將觸發壓縮 |
| **Compaction Endpoint** | Consolidator 支援`summarization_model` 設定,用便宜模型做摘要 |
| **手動 /compact** | WebUI 加 "壓縮對話" 按鈕,讓使用者主動控制 |
| **Prompt Cache 意識** | 壓縮時保留 system prompt prefix 穩定性,減少 cache miss |
### VS Code 可借鑑 Nanobot 的設計
```mermaid
graph LR
subgraph "Nanobot 優勢 → VS Code 改善方向"
A["Dream 記憶整併"] --> A1["自動去重、分類、<br/>衰變管理記憶"]
B["MECE 分類"] --> B1["SOUL/USER/MEMORY<br/>性質分離"]
C["SNIP 標記"] --> C1["摘要附帶<br/>保留優先順序標記"]
D["TTL 閒時壓縮"] --> D1["長閒置 session<br/>自動瘦身"]
E["GitStore 版控"] --> E1["記憶變更可追溯"]
end
```
| Nanobot 特性 | VS Code 可如何採用 |
| ---------------------- | ------------------------------------------------------------- |
| **Dream 引擎** | 加入定期記憶整併,自動去重、刪除過時內容 |
| **MECE 分類** | 將 copilot-instructions.md 拆分為「行為規則」和「使用者偏好」 |
| **SNIP 標記** | 摘要產生時附帶 [durable/ephemeral] 標記,影響保留優先順序 |
| **TTL 閒時壓縮** | 長時間未使用的 session 自動壓縮,節省重新開啟時的 token 消耗 |
| **GitStore** | 記憶檔案版本控制,可追溯修改歷史 |
### 兩者共同可改善
| 改善方向 | 說明 |
| ------------------------- | ------------------------------------------------------------------------------------- |
| **壓縮感知度** | 兩者都缺乏「壓縮前 vs 壓縮後」的資訊品質量化比較 |
| **多模型適配** | 兩者在模型切換時的壓縮策略調整都較粗糙 |
| **摘要品質驗證** | 兩者都缺乏自動化的摘要品質檢查(如:摘要是否遺漏關鍵決策) |
| **跨 session 記憶** | VS Code 的 memory 系統偏靜態;Nanobot 的 Dream 偏單一 workspace;都缺乏跨專案記憶整合 |
---
## 12. 附錄:源碼對照
| 功能 | VS Code (TypeScript) | Nanobot (Python) |
| ----------------------------- | ---------------------------------------- | ----------------------------------------------------- |
| **Context 組裝** | `summarizedConversationHistory.tsx` | `nanobot/agent/context.py` (ContextBuilder) |
| **壓縮核心** | `ConversationHistorySummarizer` (同上) | `nanobot/agent/memory.py` (Consolidator) |
| **自動壓縮** | Prompt render 時自動觸發 | `nanobot/agent/autocompact.py` (AutoCompact) |
| **閒時壓縮** | ❌ 無 | `AutoCompact.check_expired()` |
| **手動壓縮** | `/compact` 命令 | ❌ 無顯式命令 |
| **摘要 fallback** | `simpleSummarizedHistoryPrompt.tsx` | `Consolidator.raw_archive()` |
| **Compaction endpoint** | `compactionEndpoint.ts` | ❌ 無(用同模型) |
| **記憶整併** | ❌ 無 | `MemoryStore.build_dream_prompt()` + Dream template |
| **歷史持久化** | Transcript (.jsonl) | `history.jsonl` + session JSON |
| **Session 管理** | VS Code session | `nanobot/session/manager.py` (SessionManager) |
| **Token 估算** | Provider API 精確計算 | `estimate_message_tokens()` 估算 |
| **摘要 prompt 模板** | 內嵌於 TSX | `templates/agent/consolidator_archive.md` |
| **記憶分類模板** | ❌ 無 | `templates/agent/dream.md` |
---
## 總結
| 維度 | 勝出 | 原因 |
| ---------------------------- | ------- | ---------------------------------------------------------------------- |
| **Context 組裝靈活性** | Nanobot | 模組化 + Jinja2 模板可自訂;VS Code 7 層固定 |
| **壓縮策略成熟度** | VS Code | Full/Simple 雙模式 + Prism + Transcript Hint;Nanobot 僅有單一模式 |
| **壓縮策略完備性** | Nanobot | Token 驅動 + TTL 驅動雙路徑 + 迭代式壓縮;VS Code 僅 Token 驅動 |
| **記憶系統深度** | Nanobot | Dream 引擎 + MECE 分類 + SNIP 標記 + GitStore;VS Code 僅 3-scope 檔案 |
| **可觀測性** | VS Code | Context Window 控制項 + Cache Explorer;Nanobot 僅日誌 |
| **使用者控制** | VS Code | `/compact` 手動觸發 + 設定開關;Nanobot 缺乏手動控制 |
| **Fallback 品質** | VS Code | Simple mode 仍經 LLM;Nanobot raw_archive 只是原始 dump |
| **成本效率** | VS Code | Prism 可用便宜模型做摘要;Nanobot 用同模型 |
> **核心差異**:VS Code 的設計哲學是「**客戶端即時壓縮,讓使用者隨時能繼續對話**」,因此重視壓縮的可靠性和可觀測性;Nanobot 的設計哲學是「**服務端持續運行的自主 Agent**」,因此重視記憶的長期品質(Dream)和閒時自動瘦身(AutoCompact)。兩者各有擅場,交叉借鑑可讓雙方都更完善。
Comments...
No Comments Yet...