tags: cofacts, —

20260515 會議記錄

:::info

上週待辦

GCE Migration

cofacts.ai tickets

rumors-api tickets

cofacts.ai

https://github.com/orgs/cofacts/projects/12

  • Hybrid search 問題:
    1. 原始計畫用到了 Enterprise 版 Elasticsearch 才有的功能 (184 USD/mo 起)
    2. Alternative: https://docs.google.com/document/d/1sZ4jOsrZPvbJv4QjlMxgbqFsh_pTZNBRs-NbG-HU0rM/edit?tab=t.idc4i49df995#heading=h.e11g9q4j7duq
    3. 會開 GCS 權限給 yutin
  • Applying Auth (PR#51)
    • server function 只能用 serializable things
    • catch auth error –> redirect to login page
    • Langfuse score 換成 server side,包 user id
  • Gemini Deep Research Agent? https://drive.google.com/drive/folders/1o9JPEcEptV87y6A7r-T794ZmkfisvMRp
    • https://ai.google.dev/gemini-api/docs/interactions/deep-research
    • 我覺得酷的地方
      • 有結構化的 annotations 列出所有參考資料
      • 偶爾會出現不錯的 infographic
      • API 開得相當友善,很好做成 ADK 的 Long Running Function Tool
    • 我覺得不酷的地方
      • 每跑一次大概要花 10min up,成本 USD 3~5
      • 中途發現不妙也停不下來
      • grounding annotation 有 bug,雖有原文的 start / end 好像是錯的
      • grounding annotation 不會呈現網址和內容,需要系統自己解析,而每次又有接近百個網址要自己解析
    • 先繼續處理出處問題 https://github.com/cofacts/ai/pull/55
  • 出處問題 https://github.com/cofacts/ai/pull/55
    • 問題:胡亂編造出處 https://langfuse.cofacts.tw/project/cmm0emerr0001qi07eugd0760/sessions/3b7812cd-5e6f-4b15-b7d7-ea904199ca44
    > ### 參考出處(請複製至 Cofacts 「出處」欄位):
    > 
    > 1. 衛生福利部食藥署:食品中污染物質及毒素衛生標準
    > https://law.moj.gov.tw/LawClass/LawAll.aspx?pcode=L0040137
    > 證實馬鈴薯總配醣生物鹼(龍葵鹼)限量標準向來為 200 mg/kg (200ppm)。
    > 
    > 2. 農業部:美國產加工用馬鈴薯輸入檢疫條件修正說明
    > https://www.moa.gov.tw/theme_data.php?theme=news&sub_theme=hot&id=9872
    > 說明新制僅限加工用,且要求發芽、腐爛者必須「整顆棄置」之管控流程。
    > 
    > 3. 台灣事實查核中心:關於馬鈴薯龍葵鹼與進口爭議之報告
    > https://tfc-taiwan.org.tw/articles/10543
    > 詳細釐清政策變更背景與 200ppm 標準之由來。
    > 
    > 4. 美國國家衛生研究院 (NIH) 毒理資料庫:Solanine Toxicity
    > https://www.ncbi.nlm.nih.gov/books/NBK580552/
    > 醫學實證龍葵鹼中毒症狀與致死劑量,並指出在現代醫療下致死案例極罕見。

- 如果要求 Gemini 直接「完全引述」出處,會撞到 recitation error (agents with google_search tool & url_context tool 都會有這問題)
- 只好要求 summary 以及判斷是否支持,摘個一句 + 從不同地方摘,好像能降低被判斷為 recitation error 的機率
- n 個 claim、m 個出處的 nxm source mapper 的想法:https://docs.google.com/document/d/1sZ4jOsrZPvbJv4QjlMxgbqFsh_pTZNBRs-NbG-HU0rM/edit?tab=t.a8qyopr6sp5
- 後來直接把 verifier 原地升級成 source mapper,做進 [PR#55](https://github.com/cofacts/ai/pull/55) 裡了
    - 效果好像滿好的 https://langfuse.cofacts.tw/project/cmm0emerr0001qi07eugd0760/traces/4f11af14f7758425cba14ff0653039ce?timestamp=2026-05-15T04:23:41.975Z
        - 有先 get article :+1: 
        - 有去問 proofreader 想法 :+1:
        - 有效使用 investigator :+1:
        - 針對不同 section 呼叫 verifier 確認出處 :+1: 
        - 最後每個出處都精準摘要 :+1: 
    - 可以再觀察 - Cost? [name=nonumpa]
- 換 flash model 之後好像都 0.1~0.2 元 [name=mrorz]

主機維運與資安事件

GitHub 活動摘要

cofacts/ai (AI 專案)

cofacts/takedowns (下架處理)

伺服器狀態

g0v summit

擺攤

下次開會

5/22 (五) 20:00

Communications

希望 UI 顯示明確地顯示是來自 cofacts 真的假的

Cofacts 伺服器週報 (2026/5/5 – 2026/5/14)

對比基準:上週 2026/4/29 – 2026/5/6


GCE (cofacts-prod) 主機指標

日期 CPU (min | avg | p95 | max) Mem (min | avg | p95 | max) Swap (min | avg | p95 | max) 備註
05-06 11.9% | 21.1% | 28.4% | 38.0% 56.4% | 64.6% | 67.3% | 71.5% 0.0% | 16.0% | 31.4% | 79.4% 磁碟升級前
05-07 11.2% | 20.8% | 25.9% | 37.1% 56.1% | 62.5% | 66.1% | 68.1% 0.0% | 28.9% | 55.5% | 73.7% 升級過渡期
05-08 11.7% | 21.4% | 26.8% | 43.2% 49.8% | 54.4% | 57.3% | 62.7% 71.6% | 91.0% | 99.3% | 100.0% Swap 驟增
05-09 16.6% | 29.7% | 48.1% | 73.0% 50.3% | 55.0% | 59.0% | 69.1% 86.8% | 96.2% | 99.9% | 100.0% CPU 明顯拉升
05-10 18.3% | 32.2% | 52.4% | 90.3% 50.1% | 55.3% | 59.0% | 78.0% 90.5% | 99.1% | 100.0% | 100.0% 當週 CPU 最高峰
05-11 17.0% | 27.2% | 35.7% | 55.8% 50.4% | 54.7% | 56.6% | 78.2% 96.1% | 98.8% | 99.9% | 100.0% 開始穩定
05-12 17.4% | 25.7% | 32.1% | 44.1% 50.9% | 54.7% | 57.4% | 59.2% 93.1% | 96.7% | 99.6% | 100.0%  
05-13 16.6% | 23.1% | 27.0% | 37.5% 50.8% | 54.7% | 56.5% | 76.6% 89.3% | 96.2% | 99.7% | 100.0%  
05-14 15.9% | 25.0% | 32.4% | 47.4% 51.5% | 54.0% | 55.6% | 57.3% 93.2% | 97.5% | 99.6% | 99.9%  

上週同期(4/29–5/6)平均值: CPU avg ~32–55% (受 5/4 防火牆相關影響飆高)、Mem avg ~62–64%、Swap avg 低 (<30%)


GCE 重點觀察

🔴 Swap 接近滿載(最關鍵問題)

磁碟升級(5/7–5/8)重開後,Swap 從 <30% 暴增至 91%+,目前維持在 97% 左右(3.7/4.0 GB 已用)。然而當前 RAM 仍有約 10GB free,不存在立即 OOM 風險。

可能成因:Elasticsearch 重啟後 JVM heap 佔用從 ~19 GB 降至 ~15.5 GB,釋出的 RAM 未主動回收 Swap 中被置換出的頁面(Linux 預設行為)。若未來記憶體壓力回升,Swap 無緩衝空間將是風險點。

建議:執行 swapoff -a && swapon -a 主動清空 Swap(在離峰時段),確認是否能回到正常水位。

🟡 CPU 5/9–5/10 明顯拉升

CPU avg 從 ~21% 升至 32%,max 達 90%。Elasticsearch 和 node /srv/www/server.js 同步上升,對應防火牆誤擋解除(5/6 後)流量回補以及 cofacts-ai 流量爆衝(見下方)。5/11 後已逐漸回落至 23–25% avg,屬正常範圍。

✅ 記憶體整體改善

Mem 使用率從上週 62–64% 下降至本週 54–55%,原因是 Elasticsearch 重啟後 RSS 由 ~19 GB 降至 ~15.5 GB。RAM 壓力明顯降低。


GCE 主要程序資源分析

程序 正常範圍 (avg CPU) 穩定性 觀察
Elasticsearch 322K–532K µs/s 中(std 29K–155K) 5/9–5/10 大幅拉升,之後回落至 ~373K
node server.js (API) 265K–427K µs/s 中(std 18K–157K) 同步於 ES;5/9–5/10 有尖峰
node build/index.js 131K–176K µs/s 穩定(std <32K) 正常
cloudflared 27K–36K µs/s 穩定 正常
adk api_server (cofacts-ai) 2.6K–3.5K µs/s 穩定(std <160) 5/6 起新出現,逐漸趨穩

上週同期 Elasticsearch avg: 450K–560K µs/s(偏高,受 5/3–5/4 影響)。本週整體 CPU 較正常,但 5/9–5/10 為例外。


Cloud Run 服務分析

CPU 使用率

服務 正常範圍 (p50) 穩定性 (p95/p99) 觀察
site-tw 0.06–0.12 cores p99 ~0.95 穩定,接近 1 core 上限
site-staging-tw 0.01–0.03 cores p99 最高 1.01 偶發尖峰
cofacts-ai ~0.015 cores p99 ~0.44 穩定
line-bot-en/ja ~0.005 cores p99 <0.37 低頻使用正常

記憶體使用率

服務 正常範圍 (p50) 穩定性 觀察
site-tw ~0.79 GB p99 ~1.01 GB 接近 1 GB 容器限制,持續滿載
site-staging-tw ~0.76–0.91 GB p99 ~1.01 GB 同上
cofacts-ai ~0.05 GB p99 ~0.07 GB 極低,非常健康
line-bot-en/ja ~0.33–0.34 GB p99 ~0.35–0.36 GB 穩定

site-tw 記憶體持續在容器限制 (1 GB) 邊緣,與上週相同,無改善。

網路流量(site-tw,每日輸出)

期間 日均流量
上週正常 (4/29–5/3) ~8.2–8.9 GB/天
防火牆誤擋期 (5/4–5/6) 8.2 → 7.3 → 3.1 GB (5/6 驟降)
升級恢復後 (5/7–5/13) ~6.6–7.2 GB/天

流量在防火牆修復後恢復,但仍低於上週水準約 15–20%,可能反映部分使用者行為改變或 Bot Fight Mode 仍在過濾部分請求。

cofacts-ai 異常流量

5/9–5/10 網路輸出驟增(22.9 MB → 39.5 MB),對應當天 GCE CPU 尖峰,疑與新功能測試或使用量爆衝有關。5/13 部署新版後已恢復正常(5/14 僅 0.22 MB)。


本週事件影響小結

事件 時間 影響 狀態
防火牆誤擋 (Super Bot Fight Mode) 5/4–5/6 site-tw 流量 5/6 驟降至 3.1 GB,合法 SSR 存取被封鎖 ✅ 已修復(WAF rule 加入)
Production Disk 升級 HDD→SSD 5/7 停機 ~10 分鐘;ES RSS 從 19 GB 降至 15.5 GB;Swap 異常升至 97% ⚠️ 待觀察(Swap 需主動清除)
CPU 尖峰 5/9–5/10 avg 32%, max 90%,與流量回補和 cofacts-ai 活躍有關 ✅ 已回落
cofacts-ai 部署 5/13 新版本上線,流量穩定 ✅ 正常

建議行動

  1. (高優先)清除 Swap:在離峰時段執行 swapoff -a && swapon -a,確認 Swap 能正常回收。若無法清除,需排查是否有 memory leak。
  2. (中優先)site-tw 記憶體:容器持續在 1 GB 邊緣,建議評估是否需調高 Cloud Run memory limit 或優化 SSR 記憶體用量。
  3. (持續追蹤)Cloudflare One token 導入:作為防火牆誤擋的根本解法,取代 Bot Fight Mode 作為 API 存取控制。