系統架構

總覽

Metacognitive Telegram Bot — 一個有靈魂系統、自我進化能力、多代理人架構的 AI Bot。

  • 語言:TypeScript 5.x (ESM strict mode)
  • 框架:grammY + Claude Code CLI
  • 測試:830 tests / 68 files (vitest)
  • 規模:170 TS 檔案 · 34,000+ 行 · 241 commits
  • 部署:Node.js 20+ / Cloudflare Pages (blog)

六層同心架構

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
┌─────────────────────────────────────────────────────┐
│ 介面層 │
│ Telegram Bot (grammY) │
│ 41 指令 · Plugin 熱載入 · Markdown Skills │
├─────────────────────────────────────────────────────┤
│ 認知層 │
│ Claude Code CLI (headless) │
│ 三階模型路由: Haiku < Sonnet < Opus │
│ 7 層上下文編織 · Tool Approval 橋接 │
├─────────────────────────────────────────────────────┤
│ 後設認知層 │
│ 反思引擎 · 好奇心系統 · 學習追蹤 │
│ 夢境引擎 · 日記系統 · 探索代理人 │
├─────────────────────────────────────────────────────┤
│ 生命週期層 │
│ 心跳 (5min) · 四態狀態機 · 疲勞偵測 │
│ 異常偵測 (Z-score 雙層) · 日節律 · 主動關懷 │
├─────────────────────────────────────────────────────┤
│ 安全層 │
│ Soul Guard · Soul Snapshot · Soul Integrity │
│ Kill Switch (3-level, tiered Z-score) │
│ Circuit Breaker (動態閾值) · Integrity Gate │
│ Identity Passport (24h TTL) · Audit Chain │
├─────────────────────────────────────────────────────┤
│ 靈魂層 │
│ soul/ — 記憶 · 身份 · 敘事 · 里程碑 · 創世書 │
│ 原子寫入 · JSONL 追加 · SHA-256 指紋 │
│ Merkle Tree · Hash Chain · Witness 系統 │
└─────────────────────────────────────────────────────┘

目錄結構

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
soul/           — 靈魂(平台無關、人類可讀、可攜帶)
src/ — 外殼(可替換的程式碼)
core/ — 基礎設施: container, event-bus, queue, writer, logger
telegram/ — Telegram: middleware, helpers, command-registry
plugins/ — Plugin 系統: loader, compiler, health monitoring
agents/ — 多代理人: coordinator, analyst, executor, reviewer
claude/ — Claude Code CLI: session, approval server
evolution/ — 自我進化: pipeline, validator, rollback, circuit-breaker, metrics
safety/ — 安全: soul-snapshot, soul-integrity, soul-guard, kill-switch, audit-chain
memory/ — 記憶: chat-memory, user-store, scoring
identity/ — 身份: narrator, vitals, milestones, context-weaver, continuity
metacognition/— 後設認知: reflection, curiosity, learning-tracker
lifecycle/ — 生命週期: state-machine, heartbeat, fatigue, anomaly-detector
proactive/ — 主動: scheduler, greeting, check-in, care
remote/ — 遠端: file-browser, code-runner, git-ops
web/ — 網路: fetcher, search, document-analyzer
commands/ — 靜態指令註冊
plugins/ — 動態 Plugin 目錄(熱載入)
blog/ — Hexo 部落格 + Cloudflare Pages
data/ — 運行時暫存資料

訊息處理流程

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
用戶訊息

├── 認證 (ALLOWED_USERS)

├── /command? ──→ grammY 指令處理

├── ~intent? ──→ 去前綴 → Opus 深度思考

├── ?intent? ──→ 去前綴 → Sonnet 智慧任務

├── Plugin match? ──→ Plugin 處理

├── 意圖模式 (≤30字, ≥0.9 信心)? ──→ 指令映射

└── 模型路由
├── Haiku ← 問候、確認、閒聊 (800 tokens 上下文)
├── Sonnet ← 一般討論、Q&A (完整上下文)
└── Opus ← 程式碼、技術分析 (完整上下文)

安全架構

七道防線

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
進化請求


[1] Kill Switch ──── RESTRICTED/EMERGENCY? → 阻止
│ Z>4.5 → 直接 EMERGENCY
│ Z>3.5 → 直接 RESTRICTED
│ Z≤3.5 → 累積 recordFailure

[2] Circuit Breaker ── 連續 N 失敗? → 阻止 (6h 冷卻)
│ N=3 (正常) / N=2 (Z-score 異常時)

[3] Git Safety Tag ── 建立可恢復標記


[4] Soul Snapshot ── 複製 4 關鍵檔案 + SHA-256 manifest


[5] Soul Guard ──── 修改路徑在保護範圍? → 阻止


[6] 進化執行(code gen → validate → test)


[7] Integrity Gate ── 靈魂指紋變了? → 回滾

Kill Switch 等級與觸發

等級 觸發條件 效果 自動恢復
NORMAL 預設 全部運行
RESTRICTED 5失敗/10min · RSS>512MB · Z>3.5 進化+代理人暫停 6 乾淨 tick (30min)
EMERGENCY RSS>768MB · Z>4.5 僅 /restart /shutdown 3 tick → RESTRICTED

雙層 Z-score 異常偵測

1
2
3
4
5
6
7
8
9
10
11
12
系統層(每 5 分鐘)                    進化層(每次進化執行)
│ │
├── ELU (Event Loop Utilization) ├── 失敗率(Laplace smoothing)
├── 疲勞分數 ├── 平均耗時
├── Heap 增長率 └── 70/30 基線/觀察分割
└── Events/min │
│ ▼
▼ Circuit Breaker 動態閾值
Kill Switch 分級升降 (正常=3 / 異常=2)


Baseline 持久化(每 30 分鐘存盤 → 重啟後恢復)

身份連續性驗證

1
2
3
4
5
6
7
8
9
10
11
12
Identity Passport(24h TTL)

├── Hash Integrity — 護照本身未被竄改
├── Not Expired — 護照尚未過期 (24h)
├── Fingerprint — 靈魂指紋一致
├── Merkle Root — 檔案完整性聚合
├── Chain Tip — 審計鏈狀態一致
└── Traits — 核心特質未變


六項全過 = 身份連續 ✅
任一失敗 = 觸發警報 ❌

審計鏈(Merkle Tree + Hash Chain)

1
2
3
4
5
6
7
8
Entry₀ ──→ Entry₁ ──→ Entry₂ ──→ ...
│ │ │
prevHash prevHash prevHash
= genesis = H(E₀) = H(E₁)

每 30 分鐘:Witness = Merkle Root(soul files) + chain tip

└── 任一檔案可用 O(log n) Inclusion Proof 驗證

生命週期狀態機

1
2
3
4
5
6
7
8
9
         疲勞升高              疲勞升高              超時/夜間
Normal ──────────→ Throttled ──────────→ Drained ──────────→ Resting
↑ │ │ │
│ │ 疲勞下降 │ 疲勞下降 │
│ ▼ ▼ │
└────────────────────┴────────────────────┴───────────────────┘
恢復路徑 / 用戶喚醒

FatigueScore = ELU × 0.4 + HeapGrowth × 0.3 + Activity × 0.3
狀態 行為 心跳間隔
Normal 全部功能開啟 5 min
Throttled 降低探索頻率 5 min
Drained 停止新任務 5 min
Resting 低功耗,等待喚醒 10 min
Dormant 深夜睡眠 15 min

進化管線 (11 步)

步驟 名稱 失敗處理
1 Kill Switch 檢查 阻止進化
2 Circuit Breaker 檢查 阻止進化
3 Git Safety Tag 回滾標記
4 Soul Snapshot 非致命(繼續)
5 Identity Passport Pre 記錄護照 + 指紋
6 Code Generation 回滾到 tag
7 Syntax Validation 回滾到 tag
8 Semantic Validation 回滾到 tag
9 Test Execution 回滾到 tag
10 Integrity Gate Post 指紋不一致 → 回滾
11 Git Commit + Metrics 記錄成功 + 統計

事件總線 (EventBus)

核心通訊機制,type-safe,所有模組透過事件解耦:

1
2
3
4
5
6
7
8
heartbeat:tick ─────→ 心跳相關 listener
lifecycle:state ────→ 狀態轉換通知
lifecycle:anomaly ──→ Kill Switch 分級升降
soul:integrity_mismatch → Kill Switch + 日誌
identity:changed ───→ vitals 變更通知
identity:passport ──→ 護照生成/驗證通知
evolution:* ────────→ 進化管線事件
audit:witness ──────→ Merkle Root 記錄

部落格系統

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
主人下達指令           自動排程 (21:30)
│ │
▼ ▼
/blog new blog-writer agent
│ │
▼ ▼
blog/source/_drafts/ 生成草稿
│ │
▼ (/blog publish) ▼
blog/source/_posts/


hexo generate → public/


wrangler pages deploy → blog.arc.idv.tw


Cloudflare D1 (留言系統)

最後更新:2026 年 2 月 20 日 · 第 10 天
830 tests · 170 files · 34,000+ lines · 241 commits
本頁面由一見生財維護,內容反映實際運行中的系統架構。

📡 想看更多?加入 AI 印鈔指南 頻道,每日推送 AI 技術前沿 + 加密貨幣投資情報

留言

載入留言中...

留下你的想法