隊長 AI 秘書 — 架構分析與下一步規劃

← 返回摘要

基本資訊

日期
2026-05-05
分析參與者
Claude Opus + Codex (GPT-5.4)
資料來源
v1 codebase、plan-todo.md(386行)、4/30 會議紀錄、SPEC v0.5、INSIGHT 筆記
目的
為隊長 AI 秘書 v2 升級定出架構方向

專案現況快照

v1 LINE bot 方向調整

  • FastAPI + 7 種 intent router + Gemini 分類 + SQLite
  • 已部署在 Hetzner VPS(46.225.179.123)
  • 問題:intent 互斥、無連續對話記憶、FSM 太 rigid

v2 DC bot 已部署

  • Claude Code instance,systemd service active since 4/30
  • 跑在 /home/captain/,獨立 user + 獨立記憶 repo
  • CLAUDE.md 已設定(語音轉譯、基本互動規則)
  • 記憶還是空的 — 隊長尚未正式使用

4/30 會議後的新需求(A~H 模組)待規劃

  • A. 投資人管理(簽約/增資/部位/配息/資金來源)
  • B. 專員管理(旗下投資人/獎金/績效)
  • C. 上課/會議記錄(五種課程/不同成員/快速撈背景)
  • D. 自由潛水教學(學生/進度/AIDA 證照/裝備)
  • E. 社群媒體(發文/互動追蹤)
  • F. 暫存區/靈感備忘
  • G. 新人培訓 SOP(六大軸心)
  • H. 新人個人化 AI 簡報助手

核心問題(WT 提出)

「應該要把一些有規則的東西變成制度,而需要變化的地方留給 AI,不然全部都是 AI 會太花錢,也會太不穩定。」

「現在用的方式還是很不穩定,要做成產品還有很長一段路要走。」

這兩句話是整個架構設計的核心指引:規則確定的地方用程式碼(零 AI 成本),需要理解和判斷的地方才用 AI

Claude + Codex 架構分析共識

結論採用方向 C(混合架構):確定性邏輯用腳本,語意理解用 AI,兩層分工互補。

三個方向對比

項目 方向 A(獨立系統) 方向 B(純 Claude Code) 方向 C(混合)✅
開發成本 8-12 週 2-3 週 3-5 週
Token/次 2,000-5,000 10,000-50,000 3,000-8,000
穩定性 低(記憶漏、context 斷) 中高
擴展性
使用體驗 受限 最自然 自然

設計原則:規則用程式碼,判斷用 AI

隊長傳訊息 → Claude 判斷意圖(AI,~500 tokens)
           → 呼叫對應 Python 腳本(確定性,0 AI 成本)
           → 拿到結果 → Claude 格式化回覆(AI,~300 tokens)

兩層架構詳解

制度層(確定性,零 AI 成本)

  • 配息計算公式(固定邏輯)
  • 輔導獎金計算規則
  • 到期提醒觸發(cron job)
  • 課程排程自動提醒
  • AIDA/CMAS 證照到期檢查
  • 每月績效報表自動彙總
  • 資料驗證(金額不能負數、日期格式)
  • SQLite 結構化查詢

AI 層(只處理需要理解的部分)

  • 語音/文字意圖解析
  • 非結構化內容摘要(會議→重點)
  • 跨模組複雜查詢
  • 靈感分類
  • 個人化建議

模組對應 Skill 設計

Skill 名稱 對應模組 制度層(腳本做) AI 層(Claude 做)
investor-query A. 投資人 SQL 查詢 + 配息計算 理解問句、格式化回覆
agent-report B. 專員 績效彙總腳本 格式化報告
meeting-log C. 會議 Whisper 轉譯 + 存檔 摘要整理
freediving D. 潛水 學員 CRUD + 進度表 建議下一步
idea-capture F. 備忘 直接存 DB 分類建議
gcal-event 行事曆 GCal API 操作 解析時間
training-sop G. 培訓 SOP 文件查詢 個人化調整
onboarding-ppt H. 簡報 模板套用 內容生成

資料庫設計建議

核心 SQLite schema,覆蓋 A~F 模組:

-- 投資人
CREATE TABLE investors (
  id INTEGER PRIMARY KEY,
  name TEXT NOT NULL,
  agent_id INTEGER REFERENCES agents(id),
  signed_at DATE,
  contract_count INTEGER DEFAULT 0,
  total_invested REAL DEFAULT 0,
  is_deleted BOOLEAN DEFAULT 0
);

CREATE TABLE investments (
  id INTEGER PRIMARY KEY,
  investor_id INTEGER REFERENCES investors(id),
  amount REAL,
  source TEXT,
  invested_at DATE
);

CREATE TABLE dividends (
  id INTEGER PRIMARY KEY,
  investor_id INTEGER REFERENCES investors(id),
  amount REAL,
  paid_at DATE,
  group_type TEXT  -- 'A組' / 'B組'
);

-- 專員
CREATE TABLE agents (
  id INTEGER PRIMARY KEY,
  name TEXT NOT NULL
);

-- 課程/會議
CREATE TABLE meetings (
  id INTEGER PRIMARY KEY,
  type TEXT,
  held_at DATETIME,
  attendees TEXT,
  content TEXT,
  created_at DATETIME DEFAULT CURRENT_TIMESTAMP
);

-- 潛水學員
CREATE TABLE students (
  id INTEGER PRIMARY KEY,
  name TEXT NOT NULL,
  contact TEXT,
  cert_level TEXT,
  cert_expiry DATE,
  current_progress TEXT,
  is_deleted BOOLEAN DEFAULT 0
);

-- 備忘
CREATE TABLE notes (
  id INTEGER PRIMARY KEY,
  raw_text TEXT,
  status TEXT DEFAULT 'pending',
  tags TEXT,
  created_at DATETIME DEFAULT CURRENT_TIMESTAMP
);

資安考量

投資人金額是敏感資料,不能進 AI context。

腳本查詢後只回傳摘要/脫敏結果。

CLAUDE.md 明寫「不要把完整金額放進回覆」。

SQLite 靠檔案權限保護(captain user chmod 700)。

現有 v1 已有的安全架構(獨立 Linux user、資料隔離)可沿用。

Codex 特別提醒的三個雷

雷 1:AI 解析金額可能搞錯含稅/不含稅

寫入前一定要確認。金額欄位不能直接讓 AI 轉換,應由程式碼做嚴格驗證。

雷 2:絕對不能用 DELETE

所有 table 加 is_deleted 欄位,一律做軟刪除。這在 DB schema 已全部加入。

雷 3:雙入口(DC + LINE)要綁同一個身份

未來如果 LINE bot 也存活,兩個入口要指向同一個 DB 和同一個用戶身份,避免資料分裂。

與現有 plan-todo.md 的關係

本機 plan-todo.md 是一份 386 行的完整 v2 升級計畫(三方辯論收斂),覆蓋階段 0~4。今天的架構分析是在這份計畫的基礎上,針對 4/30 會議新需求(A~H 模組)做的延伸。

兩者的上下層關係

  • plan-todo.md 的階段 0-2(agent loop + DC bot + 基本 tool)= v2 的基礎設施
  • 今天的架構分析 = 在 v2 基礎上加入結構化數據模組的規劃
  • 兩者不衝突,是上下層的關係

建議的執行順序

  • Phase 0(現在) 隊長先開始用 DC bot(已部署)→ 收集真實需求,讓記憶庫自然累積
  • Phase 1(第 1-2 週) 基礎 skill:行事曆 + 靈感備忘 + 語音轉譯增強
  • Phase 2(第 3-4 週) 投資人模組 — 設計 schema + CRUD 腳本 + investor-query skill
  • Phase 3(第 5-6 週) 專員模組(agent-report)+ 潛水學員模組(freediving)
  • Phase 4(第 7-8 週) 會議記錄(meeting-log)+ 新人培訓 SOP(training-sop)
  • Phase 5(第 4 週 sunset gate) Review — 根據實際使用狀況,決定是否做 LINE 版;評估哪些模組值得繼續投資

待決議事項(需要 WT 確認)

  • 隊長什麼時候開始正式使用 DC bot?
  • 投資人模組的資料來源?(手動輸入 / 匯入 Excel / 其他系統?)
  • 敏感資料的防護等級?(脫敏夠嗎?還是需要加密?)
  • 是否要做 PIN 驗證才能查詢完整金額?
  • Phase 1 要先做哪個 skill?(行事曆 / 靈感備忘 / 語音轉譯)
  • 4 週 sunset gate 的具體判準?(以什麼指標決定 go/no-go?)