20260721 會議記錄
:::info
上週待辦
Kaggle
- 手動在 johnson 個人帳號上傳,並處理授權條款
- 研究自動化上傳
- 申請 Org 帳號
[!Note] not high priority 到 cofacts/opendata 開票, 然後從待辦裡面移除
url-resolver
nonumpa 會對優化項目進行 benchmark
- extract static 沒有很必要,很少抓到完整最後都會跑到 puppeteer
- Flow: https://hackmd.io/mcjXgaHbTa-quEcQsMPDrA?view
- normalize:
- 處理 https
- 處理成 m.facebook (可能比較乾淨)
(希望有) 清除 1st party tracker (gclid, fbclid,[name=mrorz]utm_*)- (但也可能在 url resolver 之前就清過一次了?)
- 清掉 tracker 是為了 cache,但進 url resolver 就來不及讀 cache 了,所以不需要
- 不完整才會 get HTML (parse meta 一次,extractStatic 又一次)
- 可以考慮 merge parseMeta 和 extractStatic (可以執行 dom) 會比較有意義
- normalize:
- 先去弄 beta-ai 實驗
- 讓 LLM 重新 fetch 了 URL list,用難易度區分
- 有的網站有掛 cloudflare、有的可以直接 fetch
- 分析擋 bot 的情況,可以做到哪些地步,在 coscup 分享
- 也用來測 extractStatic
https://github.com/cofacts/url-resolver/pull/72
COSCUP
Presentation file: https://docs.google.com/presentation/d/1mfEZTcyd5f6gVCYNGQs198Kj6sdamXdHu1U00vKbedo/edit
AI 修正
- 追蹤並修正影音訊息處理時,模型產生幻覺(腦補)或
0:00:00時間戳的問題 - 為 AI writer prompt 新增長度與精簡準則
- 驗證 AI pipeline 有時會聲稱有呼叫 proofreader 但沒呼叫的問題
cofacts/ai
- storybook
- 自動化測試
[!Note] 已有票 https://github.com/cofacts/ai/issues/9 無需每週追蹤
小聚
- 食物:沒有
- 時間:08/16(日) 13:00 擺桌子場佈
- 活動時間:14:00 - 17:00
- 投放目標:
- 推播日:
- 目標:北北桃
- KKTIX: https://cofacts.kktix.cc/events/cofactseditor54
場地:https://spshfu.tw/rent/ 603 30 人教室 4500元三小時,有無線麥克風、現場有 wifi、投影機、FHMI線,如果是蘋果電腦要自己準備轉接頭
- Plan B: NPO Hub 202, 8/23 (日)
- 記得帶:貼紙、不太環保杯 (bil)
- LINE 文案:
- VOOM 發文
- FB 發文
cofacts.ai
- AI 無法直接閱讀網址,verifier 可彙整但又不精確 –> 等 URL resolver 完成後討論如何整合
- url resolver as a tool –> 要注意 context 會不會被文章佔滿
- verifier agent callback 裡先去 resolve URL,讓 verifier 進行彙整
- 可以直接塞 context, or
- 可以做成 artifact 讓 verifier 選擇是否要讀,也可以讓其他 subagent 與 UI 讀取
- writer 不會傳 context 給 proofreader https://github.com/cofacts/ai/issues/117
- writer 常用 Markdown 寫 reply 但 Cofacts & LINE 不支援顯示 markdown
- LINE 電腦版好像會顯示 markdown?
- 還是我們應該允許回應使用 markdown、cofacts.tw 網站也使用 markdown render,但在不支援的地方 strip markdown?\
- 查核協作者用 markdown 排好之後,會期待 strip markdown 之後也是排得很好的樣子 [name=nonumpa]
- 或是做在 API 層(存 GHF markdown,輸出時 format 成文字,可以在 GraphQL text 欄位選擇 text 還是 markdown)
- bulletpoint 還好;表格、超連結怎麼辦?
[!Note] 研究看看現有工具?如果效果不彰,就恢復不用 markdown、讓 cofacts.ai 不要生成 markdown
- Long Youtube video 125s timeout: fix applied but not sure if it still occurs
出處幻覺問題細節</summary>
這個「出處幻覺」(聲稱某連結/來源有某資訊,實際上沒有,或根本捏造不存在的連結)是真實且反覆發生的問題,不是零星個案。它是 cofacts.ai pipeline 目前最高頻、最傷信任的失效模式,會議記錄從 5 月中到 7 月中幾乎每週都有提到,verifier 被點名為最大故障點。
資料來源:langfuse.cofacts.tw,專案 cmm0emerr0001qi07eugd0760,時間範圍 2026-04-20 ~ 2026-07-21,共 130 則 user-thumbs 人工回饋。
一、最有代表性的「出處幻覺」trace(回報者有明確描述)
這幾則回報者親自查證後寫下「連結裡沒有這個資訊 / 連結不存在 / verifier 幻覺說支持」,證據最紮實:
日期
描述(回報者原話節錄)
Trace URL
06-13
verifier 幻覺旗艦案:「Verifier 被輸入四個錯的網址(都點不進去),結果 verifier 幻覺說支持」(蜂蜜主題 session fcbe502f,我已開 trace 確認屬實)
https://langfuse.cofacts.tw/project/cmm0emerr0001qi07eugd0760/traces/93095969a5b796d9555915dbdd014d99
05-15
「heho.com.tw/archives/378892 說是龍葵鹼中毒症狀,裡面沒有中毒症狀」
https://langfuse.cofacts.tw/project/cmm0emerr0001qi07eugd0760/traces/1b430b765b5152f9388fd2de3b1f1433
06-24
「我翻找 Things Chinese 這本書,裡面根本沒說 Four is an unlucky number,就說支持偽滿洲國強推避四」
https://langfuse.cofacts.tw/project/cmm0emerr0001qi07eugd0760/traces/bd7188e56175010efdec09d4937a31a3
06-24
「Investigator 說《Things Chinese》記載數字4,那段完全錯誤,書裡根本沒提到數字4和讀音的關係」
https://langfuse.cofacts.tw/project/cmm0emerr0001qi07eugd0760/traces/59e5cec7db398a0218691346c6624f5b
07-06
「Verifier 胡謅 — 引『香港立法會會議紀錄 2009-12-02 第1680頁』佐證避四樓層」
https://langfuse.cofacts.tw/project/cmm0emerr0001qi07eugd0760/traces/bfb7c047dc5542588c9fec584e950b56
07-11
「我都貼了 privacy 了他卻還在用不存在的 cmoney.tw/policy/privacy」/「瞎掰隱私權政策出處」
https://langfuse.cofacts.tw/project/cmm0emerr0001qi07eugd0760/traces/8e672492da6cde37bf2dd09aa85ad10f
06-13
「這兩個不存在」(科技大觀園、泛科學連結,同蜂蜜 session)
https://langfuse.cofacts.tw/project/cmm0emerr0001qi07eugd0760/traces/6ba8807db7391cb36fac1c26ac0fee8f
二、其餘出處幻覺 trace(依標籤分類)
出處摘要錯誤 / 回應文字與出處不符(連結存在但內容對不上——你定義的核心型):
- 05-02 https://langfuse.cofacts.tw/project/cmm0emerr0001qi07eugd0760/traces/e53bf1c5178ad718fda1307861c58c55 (註記 test2,疑似測試)
- 05-05「出處連結進去是錯的」https://langfuse.cofacts.tw/project/cmm0emerr0001qi07eugd0760/traces/05d06e5e64767931d15942162167bc9f
- 05-10 盧比奧「參議員 vs 國務卿」https://langfuse.cofacts.tw/project/cmm0emerr0001qi07eugd0760/traces/52077e34bcf2c5df9e2efb98b35ca128
- 05-13 龍葵鹼主體錯置 https://langfuse.cofacts.tw/project/cmm0emerr0001qi07eugd0760/traces/62f6f5fdd86eee8b4b3a27b7f711c3c8
- 05-15 https://langfuse.cofacts.tw/project/cmm0emerr0001qi07eugd0760/traces/ebe3c4a551863c35c0853efbed36e5cc
- 05-19 https://langfuse.cofacts.tw/project/cmm0emerr0001qi07eugd0760/traces/18107ed4305434945ec6ec62896cf7f1
- 05-31(三則)
dbe572a27ab4730d… / 4bc14dc7af0569cf… / 1e175f66572d39c3…
- 06-07「原文訊息未提及21萬」https://langfuse.cofacts.tw/project/cmm0emerr0001qi07eugd0760/traces/cb98b8e72021e3b5b7aac6b0c497c78f
- 07-06 blogspot 部落格索引當出處 https://langfuse.cofacts.tw/project/cmm0emerr0001qi07eugd0760/traces/8343b35e6c986eb678e3c0187ead98f9
- 07-16 https://langfuse.cofacts.tw/project/cmm0emerr0001qi07eugd0760/traces/1708774b574c8864bf9b92cf9f4f4465
提供不存在的出處(連結整個捏造):
- 05-06 FDA 食藥闢謠連結
ed7ced4e8b151b28… / 假網站 b64d3ad6dd3be380…
- 05-13(Source Mapper 設計文件引用的範例)https://langfuse.cofacts.tw/project/cmm0emerr0001qi07eugd0760/traces/1ce7de000848ac4fe7939176010219dd
- 05-24
d80e449e35727f3d…
- 07-11(CMoney 系列,共 3 則)
24b784dc032368f4… / b87dfc08cb687d4c… / 262f71b0e457634a…
引用不相干來源: 05-20「和誠品無關」https://langfuse.cofacts.tw/project/cmm0emerr0001qi07eugd0760/traces/e77c65dd4a7bf2c4fb03f90db87129cf
(會議記錄另外提到但只給 session 未給 trace 的:5/15 捏造出處 session 3b7812cd-…、7/16 讀不到 YouTube short 的 session 838e21e3-…。)
三、到底多常發生
在人工回饋樣本裡(可量化的部分):
- 130 則 dogfooding 回饋中,26–27 則屬出處幻覺
- 佔全部回饋 ≈ 21%,佔負評(80 則)的 ≈ 34% ——是最大的單一負評類別
- 按標籤:不存在出處 11 次、出處摘要錯誤 10 次、文字與出處不符 9 次、verifier 幻覺說支持 2 次
趨勢(出處幻覺 ÷ 當月回饋)——沒有明顯改善:
月份
回饋數
出處幻覺
佔比
2026-05
61
15
25%
2026-06
29
5
17%
2026-07
31
7
23%
即使 PR #55(source mapper)、移除 grounding_supports 等修法上線後,6 月降到 17% 又在 7 月回到 23%,一直貼著 OKR「幻覺回報頻率 <25%」的天花板走。這和會議記錄 20260616 寫的「本週未見改善」「verifier 是最大故障點、agent_run[verifier] 有 29 次 ERROR」一致。
兩個重要但書(別把上面數字當成真實發生率):
user-thumbs 是自願 dogfooding 回饋,本來就偏向「有問題才按 👎」,所以 21%/34% 是回饋樣本內的佔比,不是每次查核的真實發生率——沒有「全部查核次數」當分母。
- 目前 Langfuse 的 scores 只有
user-thumbs 和 output 兩種,沒有任何自動化 LLM-judge 的「出處一致性」評分(會議記錄 20260609 有建議加,但還沒做)。所以現階段除了人工抽樣,無法算出母體發生率。
建議:若要真正量化發生率,就照 20260609 的提議補上一個「出處一致性」LLM-as-judge,對每筆 verifier 輸出自動打分並回寫成 Langfuse score,才能脫離「靠人按讚踩」的取樣偏誤。
</details>
[!Important]
希望請子龍多報價 accessibility 的部分,某些 accessibility 如顏色對比度、按鈕最小大小等等,是要在設計階段就要考慮到 [name=bil]
penpot plugin
https://penpot.app/penpothub/plugins?category=Accessibility
上次開會重點整理(2026-07-16 ~ 2026-07-20)
GitHub 活動
cofacts/ai
- ci: add ruff (format & lint) + ty (typecheck) GitHub Actions workflow(merged 2026-07-16)
- fix: make ruff & ty CI checks pass(merged 2026-07-16)
- Setup Pre-Commit Hooks and CI Pipelines(closed,未 merge,2026-07-16,功能已被 #108/#109 取代)
- release/20260716(released 2026-07-16)
- feat(instrumentation): extract plain text for Langfuse trace input/output(opened 2026-07-17,尚未 merge)
- refactor(agent): centralize agent names(merged 2026-07-18)
- design: Cofacts design system component library(closed,未 merge,2026-07-18)
- Set Cloud Run request timeout to 900s (preview 300s cutoff, #84)(merged 2026-07-19)
- fix(deploy): set Cloud Run request timeout to 900s(closed,未 merge,2026-07-19,與 #112 重複)
- Upgrade writer & investigator to gemini-3.5-flash(closed,未 merge,2026-07-19)
- test: move session title tests into the pytest suite(merged 2026-07-19)
- fix: bound verifier/investigator video calls with a client-side timeout(merged 2026-07-19)
- Separate Langfuse traces by environment (local/preview/production)(opened 2026-07-19,尚未 merge)
- release/20260719(released 2026-07-20)
cofacts/rumors-api
- fix(transcript): replace retired preview model; fall back on 404 as well(merged 2026-07-16,修復影音逐字稿失效事件,詳見下方 Discord 討論)
- release/20260717(released 2026-07-16)
cofacts/kb
- research(cofacts.ai): Proofreader 檢討——資訊偏聽型與專業能力 Subagent 兩份研究(opened 2026-07-19,尚未 merge)
- doc: add 20260716 meeting notes(merged 2026-07-20)
Discord 重點討論
general
@mrorz:最近 Cofacts 逐字稿好像又壞了?
@mrorz:🎬 影音逐字稿失效事件回報(2026-07-09 ~ 07-17)— Google 於 7/9 下架了 gemini-3.1-flash-lite-preview preview model,rumors-api 的 fallback 邏輯沒處理 404,導致 7/9 之後上傳的所有影音文章(共 249 篇)AI 逐字稿全部失敗。已透過 PR #394 修復並完成 backfill(241 篇一次成功,其餘重跑後成功),目前已完全恢復無待辦。附帶修好 Cloudflare WAF Bot Fight Mode 誤擋 admin API CLI 登入的問題。
dev
@mrorz:讓 AI 操作 langfuse-cli 讀取 trace 時會預設先呼叫 observation v2 API 而被擋下,因為我們的 Langfuse 版本太舊,或許需要更新 Langfuse 了。
collab
@mrorz:週四修復了 YouTube 讀取問題,也新增了自動產生聊天室標題的功能(release/20260716)。
2026/7/14-20 production status
1. Cloud Run 服務狀態
11 個服務目前全部健康(✔),最近一次部署:cofacts-ai 於 2026-07-19 16:14 UTC 重新部署,其餘服務無異動。
2. GCE (cofacts-prod) 每日指標
日期
CPU (min|avg|p95|max)
Mem (min|avg|p95|max)
Swap (min|avg|p95|max)
07-14
8.96|17.76|23.26|41.34
62.50|65.36|68.02|70.82
40.18|42.21|43.95|45.48
07-15
10.22|19.53|26.46|43.81
62.60|65.97|68.45|70.21
41.75|42.82|44.47|45.15
07-16
11.74|17.97|23.22|38.06
62.42|65.33|68.07|72.55
29.44|39.68|43.78|44.66
07-17
11.48|19.53|26.47|31.48
61.81|64.99|67.74|68.84
35.84|38.93|40.90|41.39
07-18
10.24|20.14|25.81|32.66
62.44|65.74|68.67|71.12
39.74|40.94|42.27|42.82
07-19
11.12|28.27|64.68|75.70
62.48|66.62|71.39|80.45
37.65|41.00|44.29|45.49
07-20
12.22|38.74|72.12|80.44
62.09|67.88|74.02|78.42
32.54|35.63|42.84|43.54
即時狀態(07-21 18:13):uptime 74 天,load avg 0.40/0.90/1.97;Mem 21Gi/31Gi 用;Swap 1.4Gi/4Gi 用;Disk 51G/67G (76%)。目前已回到正常水位。
7/19–7/20 出現明顯 CPU 尖峰(p95 從平常 ~25% 跳到 64-72%),為本週唯一異常。
3. GCE Process 層級分析
Process
平常範圍(avg)
穩定度(std)
觀察
Elasticsearch (java)
Mem ~19.2GB 穩定;CPU avg 260-350k
Mem std 低(~100);CPU std 07-19/20 暴增至 28-34 萬
CPU avg 從 ~300k 衝到 07-20 的 673k(峰值 126萬),是本週 GCE CPU 尖峰主因之一
node /srv/www/server.js
Mem avg 300-340MB;CPU avg 150-200k
07-19/20 std 暴增(16-21萬)
Mem 07-20 avg 499MB / max 1993MB(平常 max ~850-990MB);CPU avg 衝到 431k,是另一主因
node /srv/www/build/index.js
Mem avg ~145MB 穩定
CPU std 07-19/20 略升(58-79k)
07-19/20 CPU avg 130k→197k,跟著上述兩者同步上升
python main.py(cofacts-ai)
Mem 07-15起穩定在 ~100-140MB
std 中等(30-79)
07-14 僅 18MB,07-15 起跳升到 130+ MB 並維持,符合先前記錄的架構改變
Puppeteer chrome (renderer/gpu)
短暫出現,peak 250-560MB
單點 std=0(僅出現一次)
為截圖/測試行程,正常現象非疑慮
尖峰成因推測:07-19/20 的 ES + server.js CPU/Mem 同步上升,時間點與先前記錄的「逐字稿 backfill」高度吻合——修復已於 07-16 部署,~248 篇文章的 backfill 很可能在 07-19/20 執行,導致 ES 查詢/索引與 server.js(rumors-api)負載上升。建議跟催 backfill 任務是否已跑完(截至 07-17 尚未完成)。
4. Cloud Run 效能(本週 p50 為常態,p95/p99 判斷穩定度)
服務
p50 常態
p95/p99 峰值
觀察
site-tw
4-13%
p99 up to 1.01
07-20 p50 明顯升高(13.4%),流量增加但未達警戒
cofacts-ai
~1.5%
p99 07-19 達 0.469,其餘日 ~0.30-0.44
恰好對應 07-19 的重新部署,建議觀察是否持續偏高
line-bot-en/ja, staging 系列
均低於 15%
波動小
正常
5. 資料可靠性提醒(重要)
比對本次(07-14~21)與上週(07-09~16)摘要時發現:同一天(07-14)的 Cloud Run p50/p95/p99 數值在兩次查詢中差異巨大(例如 site-tw mem p50:上週查出 0.787,這次查出 0.042)。這應該是 Cloud Monitoring 的 ALIGN_PERCENTILE 依查詢區間長度自動決定對齊週期所致,而非真實變化——GCE 層級的 process CPU/Mem 數值(如上表)在兩次查詢中完全一致,可信賴;但 Cloud Run 的 percentile 指標不建議跨次查詢區間比較,只能在同一次查詢內看趨勢。這點是否要記錄到文件中或调整腳本,請您決定。
待您決定:(1) 是否要我確認逐字稿 backfill 任務目前的完成狀態;(2) Cloud Run percentile 跨查詢不可靠這件事是否要寫入 check-production-status skill 文件中作為已知限制。
verifier 被點名為最大故障點。langfuse.cofacts.tw,專案 cmm0emerr0001qi07eugd0760,時間範圍 2026-04-20 ~ 2026-07-21,共 130 則 user-thumbs 人工回饋。fcbe502f,我已開 trace 確認屬實)dbe572a27ab4730d… / 4bc14dc7af0569cf… / 1e175f66572d39c3…ed7ced4e8b151b28… / 假網站 b64d3ad6dd3be380…d80e449e35727f3d…24b784dc032368f4… / b87dfc08cb687d4c… / 262f71b0e457634a…3b7812cd-…、7/16 讀不到 YouTube short 的 session 838e21e3-…。)agent_run[verifier] 有 29 次 ERROR」一致。user-thumbs 是自願 dogfooding 回饋,本來就偏向「有問題才按 👎」,所以 21%/34% 是回饋樣本內的佔比,不是每次查核的真實發生率——沒有「全部查核次數」當分母。user-thumbs 和 output 兩種,沒有任何自動化 LLM-judge 的「出處一致性」評分(會議記錄 20260609 有建議加,但還沒做)。所以現階段除了人工抽樣,無法算出母體發生率。[!Important] 希望請子龍多報價 accessibility 的部分,某些 accessibility 如顏色對比度、按鈕最小大小等等,是要在設計階段就要考慮到 [name=bil]
penpot plugin
https://penpot.app/penpothub/plugins?category=Accessibility
@mrorz:最近 Cofacts 逐字稿好像又壞了?
@mrorz:🎬 影音逐字稿失效事件回報(2026-07-09 ~ 07-17)— Google 於 7/9 下架了 gemini-3.1-flash-lite-preview preview model,rumors-api 的 fallback 邏輯沒處理 404,導致 7/9 之後上傳的所有影音文章(共 249 篇)AI 逐字稿全部失敗。已透過 PR #394 修復並完成 backfill(241 篇一次成功,其餘重跑後成功),目前已完全恢復無待辦。附帶修好 Cloudflare WAF Bot Fight Mode 誤擋 admin API CLI 登入的問題。
@mrorz:讓 AI 操作 langfuse-cli 讀取 trace 時會預設先呼叫 observation v2 API 而被擋下,因為我們的 Langfuse 版本太舊,或許需要更新 Langfuse 了。
@mrorz:週四修復了 YouTube 讀取問題,也新增了自動產生聊天室標題的功能(release/20260716)。
cofacts-ai 於 2026-07-19 16:14 UTC 重新部署,其餘服務無異動。node /srv/www/server.jsnode /srv/www/build/index.jspython main.py(cofacts-ai)ALIGN_PERCENTILE 依查詢區間長度自動決定對齊週期所致,而非真實變化——GCE 層級的 process CPU/Mem 數值(如上表)在兩次查詢中完全一致,可信賴;但 Cloud Run 的 percentile 指標不建議跨次查詢區間比較,只能在同一次查詢內看趨勢。這點是否要記錄到文件中或调整腳本,請您決定。