20260630 會議記錄
:::info
上週待辦
GCE Migration
- 跑幾週看穩定度,決定是否要再把 tw site 也搬進 GCE
Kaggle
- 手動在 johnson 個人帳號上傳,並處理授權條款
- 研究自動化上傳
- 申請 Org 帳號
url-resolver
- nonumpa 會對優化項目進行 benchmark
COSCUP
- nonumpa 準備 URL resolver 的分享內容
- yutin 準備多媒體檔案的分享內容
AI 修正
- 追蹤並修正影音訊息處理時,模型產生幻覺(腦補)或
0:00:00時間戳的問題 - 為 AI writer prompt 新增長度與精簡準則
- 驗證 AI pipeline 有時會聲稱有呼叫 proofreader 但沒呼叫的問題
Cofacts.ai & nDX progresses
https://github.com/orgs/cofacts/projects/12
cofacts/ai
Johnson’s TODOs –> https://github.com/cofacts/ai/issues/94
- 設定 ai repo 的 linter & formatter
- CI / CD
- storybook
- 自動化測試
GitHub 活動
cofacts/ai
- Issue #39 closed: Feat: 支援圖片輸入(milestone 達成 2026-06-23)
- PR #92 merged: feat: support OS drag-and-drop file upload in chat input(merged 2026-06-24)
- PR #93 merged: feat: support pasting images from clipboard in chat input(merged 2026-06-24)
- release/20260624(released 2026-06-24)
- PR #95 merged: fix: add administration:write permission to preview-cleanup workflow(merged 2026-06-24)
- PR #96 merged: fix: replace deleteAnEnvironment with per-deployment cleanup(merged 2026-06-24);Issue #45 preview cleanup 問題關閉
- Issue #94 opened: 設定 linter、formatter、storybook 與自動化測試(2026-06-23)
- PR #98 opened: fix: return error dict to writer when investigator returns empty(2026-06-24,尚未 merge)
- 使用時遭遇問題:investigator 很久 –> SDK timeout 斷開連線 –> 回傳空值 –> AI 傻住,直接結束
- 不太好重現,預期的解法:偵測到空的 investigator / urlcontext response 就叫 AI 送簡單一點的 query
- 也有遇到 [name=bil]
- 也有看到 error 429 [name=ggm]
- 不知道是不是 preview model 的 quota 比較少還是怎樣 [name=mrorz]
- 換 GA 的 model 如 gemini-3.5-flash or gemini-3.1-flash-lite
- Issue #97 opened: feat: add Vision API WEB_DETECTION tool for reverse image search on IMAGE articles(2026-06-24)
- 討論:以圖找圖要做嗎?做成 tool 合理吧?
- 突然有貢獻者 XD
- Search result 要怎麼再餵給 LLM?
- 應該不會想要把所有 search result 都轉成 FilePart 直接給 LLM 看⋯⋯
- 和貢獻者討論一下看看
cofacts/url-resolver
- PR #73 merged: chore(deps): upgrade to Node 24, puppeteer 24, and @grpc/grpc-js(merged 2026-06-28)
- PR #75 merged: ci: auto-build and push docker image to docker hub on master(merged 2026-06-28)
- release/2026-06-28(released 2026-06-29)
比較 cloudflare <> 本機
- 某些網站會擋 cloudflare browser rendering 的 IP
- cloudflare puppeteer RAM 只用 100MB
- local puppeteer 的速度比較快,RAM 會用到 1G(同時 1G)
- 其他工具:需要再研究是不是只用 JSDOM 就好 or vs linkedom
cofacts/takedowns
- PR #305 merged: Takedown spam user 大大小 Wy79854BEY7yIwhpbAo9(merged 2026-06-23)
cofacts/rumors-api
- PR #388 [draft] Vector search — 本週仍有活躍討論(2026-06-27)
AI
做了 cofacts-ai-eval & LLM judge
branch: llm-judge
judge_backeds.py
- 接下來會改 prompt,影響結果
- 人工判斷會很辛苦,改完就要重看
- 改完 –> LLM judge 跑,看有沒有更好
整理 session 的人類 feedback 裡,加入了 LLM judge 的評分
- 還在細看那些人類覺得不好、LLM 覺得好的東西
2 個 backend
- CLI judge: 用 claude code / codex 訂閱跑 judge
- API judge: 用 API token 跑 judge
改完 prompt 怎麼重跑?
branch: reply-harness
- ADK reproduce 拿 session 搭配 ADK 設計的 prompt 樣子,會有 output
- 讓 LLM judge 算 output
- 多輪對話比較難重現,先重現第一輪當評分
ADK eval?
- https://adk.dev/evaluate/
- agent-cli w/ skill,安裝後可以做 https://docs.cloud.google.com/gemini-enterprise-agent-platform/agents/quickstart-adk#evaluate_agent
- GGM 可以再看看這個有沒有幫助
Discord 重點討論
general
@mrorz:7/14 開會改 7/16 可能會撞交流會,可能要改全線上唷(2026-06-26)
@claire:想邀請 cofacts 的朋友協助填寫問卷,尤其是如果你身邊有剛接觸公民科技、尚未入坑的朋友們(心動以上但尚未行動),拜託你分享給他們填寫!(2026-06-28)
alerts
Cloudflare:cofacts.tw Health Check Unhealthy — Response code mismatch,expected 200,received 403(2026-06-29 07:22 UTC)
Cofacts Knowledge Base
- cofacts.tw/hack 的 hackfoldr 整合進 kb,更新 wiki
- cofacts RD design doc 整合進 kb、更新 wiki
- 加上 Claude code 的 prefill URL 引導使用者到 Claude code 對 cofacts/kb 發問
- 整理成好看的樣子,cofacts.tw/hack 可以直接導過去,hackfoldr 封存
cofacts/kb
- PR #2 merged: docs: add README(merged 2026-06-23)
- PR #3 merged: doc: add 20260623 meeting notes(merged 2026-06-23)
- PR #7 merged: doc: rename meetings/index.md to README.md; update skill reference(merged 2026-06-25)
- Issue #4 opened: 將 hackfoldr 整合進 kb 並整理 cofacts.tw/hack
- Issue #5 opened: 整合 RD design doc 並加上 Claude Code prefill URL
- PR #6 opened: doc: add R&D source docs and wiki synthesis pages(加入 17 份 technical design、15 份 research HackMD 文件,及 3 份 wiki 合成頁面:llm-integration、api-and-auth、media-and-content)
GCP CUD
- 跑一週看 GCP CUD 分析結果
成功地讓 utilization 達到正常的 99%

再加買好像每個月省不到 1 美金

活動
- 中研院學者
- 類似人權市集的擺攤:會有桌子,陪大朋友小朋友玩,早上到下午
- 土城鶯歌
- 8 月以後
Cofacts 生產環境週報(2026-06-23 ~ 2026-06-30)
一、GCE 伺服器 (cofacts-prod) 基礎指標
| 日期 | CPU (min | avg | p95 | max) | Mem (min | avg | p95 | max) | Swap (min | avg | p95 | max) |
|---|---|---|---|
| 06-23 | 8.2% | 20.7% | 27.9% | 34.5% | 62.2% | 64.9% | 67.5% | 68.7% | 37.0% | 37.8% | 39.3% | 40.2% |
| 06-24 | 12.6% | 21.5% | 28.0% | 35.0% | 62.2% | 65.2% | 67.6% | 69.1% | 33.0% | 36.9% | 44.9% | 46.4% |
| 06-25 | 9.4% | 24.7% | 41.7% | 45.6% | 61.4% | 64.7% | 66.8% | 71.7% | 37.9% | 40.0% | 44.0% | 44.2% |
| 06-26 | 8.2% | 46.5% | 84.9% | 94.8% | 61.2% | 66.5% | 74.8% | 79.9% | 40.1% | 42.6% | 45.1% | 46.8% |
| 06-27 | 9.9% | 69.6% | 90.7% | 93.1% | 61.8% | 69.8% | 76.6% | 80.2% | 39.9% | 41.7% | 42.9% | 45.8% |
| 06-28 | 9.6% | 41.5% | 60.6% | 71.6% | 62.4% | 66.8% | 70.6% | 79.0% | 41.6% | 43.7% | 45.4% | 46.3% |
| 06-29 | 13.3% | 37.5% | 57.8% | 66.6% | 62.0% | 66.7% | 70.2% | 71.7% | 40.5% | 42.8% | 45.8% | 47.0% |
目前即時狀態(06-30):Load 0.51/1.10/1.49・Mem 21GB/31GB (68%)・Swap 1.7GB/4.0GB (43%)・Disk 48GB/67GB (71%)
二、Cloud Run 服務狀態
所有服務運作正常(✔),無異常重啟。
| 服務 | CPU 正常範圍 (p50) | CPU 穩定性 (p99) | 記憶體 (p50) | 記憶體 (p99) |
|---|---|---|---|---|
| site-tw | 0.03~0.31 cores | 最高 1.01c | ~76~81% | ~101%(持續逼近上限) |
| cofacts-ai | ~0.015 cores | 最高 0.51c | ~55 MB | ~82 MB |
| line-bot-tw/en/ja | <0.01 cores | <0.53c | ~39~41% | ~44% |
site-tw 網路輸出量(對比前週):
| 日期 | 本週 | 前週同期 |
|---|---|---|
| 06-23 (Mon) | 3.7 GB | 3.9 GB |
| 06-24 (Tue) | 5.8 GB | 3.5 GB |
| 06-25 (Wed) | 10.6 GB | 3.8 GB |
| 06-26 (Thu) | 10.1 GB | 4.3 GB |
| 06-27 (Fri) | 11.2 GB | 3.6 GB |
| 06-28 (Sat) | 12.5 GB | 3.9 GB |
| 06-29 (Sun) | 6.9 GB | 3.7 GB |
三、本週重大事件:6/26~6/27 GCE CPU 飆升(已自行恢復)
現象:CPU 平均從正常的 ~21% 分別飆至 6/26 的 46%、6/27 的 70%,無服務中斷。6/29 起逐步回落,但尚未完全恢復至正常水位(目前 avg ~38%)。
根本原因:台灣用戶流量暴增,文章頁面為主要入口
透過 Cloudflare Analytics + GCE API log 追查:
/article/ 頁面每日瀏覽量(Cloudflare):
| 日期 | 請求數 | 相對基準 |
|---|---|---|
| 06-23 | 183K | 基準 |
| 06-24 | 228K | +24% |
| 06-25 | 278K | +52% |
| 06-26 | 449K | +145% |
| 06-27 | 663K | +262% |
| 06-28 | 432K | +136% |
| 06-29 | 295K | +61% |
API operation 分布(6/26~6/27 log sample):LoadArticlePage 52%・LoadReplyPage 25%・其他 23%。Search 相關 operation 佔比極低,排除搜尋功能為主因。
流量來源:幾乎全為台灣用戶(TW 佔 /graphql 請求 75% 以上),JP/US 流量與前週相比幾乎持平,排除爬蟲攻擊或外部掃描。
觸發機制:多篇文章輪番在社群熱傳,6/24 起 258vhf1cgcdj9 首先暴增(單日 2,927 次),6/26~6/27 又有新文章(1moh5xdeapf52、zpcbh3e70oid)接力發燒。每次文章頁面載入會觸發 LoadArticlePage GraphQL → Elasticsearch 查詢,663K 次 article requests 使 ES CPU 從基準的 0.26 cores 衝到 1.26 cores(+385%)。
四、待關注事項
| 項目 | 狀態 | 說明 |
|---|---|---|
| GCE CPU 仍偏高 | 觀察中 | 6/29 avg 37.5%,尚未回落至正常 ~21%;若下週持續偏高需評估擴容 |
| site-tw 記憶體 p99 > 100% | 待確認 | 長期 p99 超出配額,有 OOM kill 風險,建議確認 Cloud Run 記憶體設定是否需調升 |
| GCE Swap 使用率上升趨勢 | 觀察中 | 本週從 37% 緩升至 47%,記憶體壓力持續存在 |
| GCE Disk 71% | 觀察中 | 目前安全,Elasticsearch 索引成長可能加速消耗 |
【事件紀錄】LINE OA 統計資料中斷(2026-05-05 ~ 2026-06-30)
影響範圍 Cofacts 統計試算表(Google Apps Script)無法抓取 LINE OA 粉絲數據,試算表 Followers 頁的資料在 2026-05-04 後即停止更新。
根本原因 2026-05-05 啟用 Cloudflare Super Bot Fight Mode(SBFM)時,Google Apps Script 被誤判為惡意 bot:
- Google Apps Script 發出的 HTTP 請求含特殊 User-Agent(
Google-Apps-Script; beanserver) - Cloudflare 的 “Bot Fight Mode for Definite Bots” 規則對其發出 Managed Challenge(JS 挑戰)
- Google Apps Script 是純 HTTP 請求,無法執行 JS,挑戰必敗 → 收到 403 Forbidden
- Cloudflare 並未將 Google Apps Script 列為 Verified Bot,故無法透過一般白名單機制處理
處置
在 WAF Custom Rules 的「Bot Fight Mode false positives」規則中,將 line-bot.cofacts.tw/graphql 加入 SBFM 跳過清單。2026-06-30 修復後確認資料已恢復正常回填。
補充 事發期間約 56 天的 LINE OA 統計資料(5/5 ~ 6/29)未被記錄進試算表,這段時間的 followers 趨勢需從 LINE OA 後台或 Cloudflare analytics 另行補充。