一開始,我想知道世界正在發生什麼事
小海豹來信一開始不叫這個名字。最早的原型是放在自己電腦上的新聞工具,追蹤沙烏地阿拉伯、胡賽、葉門和摩卡港等議題,用中文整理找到的新聞。
但在看過原型後,我重新說明了想做的事情:我想理解世界每天發生什麼事,知道同一件事有哪些不同說法。新聞是可以回頭核對的依據,有疑惑時再點進去讀原文。
這個目的後來也影響了首頁。我曾要求呈現事件、不同立場、時間軸和背景,接著又覺得內容太詳細,要求把首頁縮回簡短摘要,下方直接列出相關新聞。即時性和正確性才是我希望優先處理的事,不需要每則消息都附一大篇分析或延伸許多問題。
它最早的樣子:世界近況
目前保留下來的早期網頁版本叫「世界近況」。它是米白色背景、深綠色文字與按鈕,左上角用簡單的同心圓符號做識別,新聞放在有圓角和細框線的卡片裡,下面列媒體、新聞標題與時間。
當時選單是 Today、Events、Resource:Today 看當天與保存的歷史摘要,Events 搜尋,Resource 用條列和世界地圖查看來源。更新設定放在頁尾。它還沒有抱著信的小海豹,也沒有現在的加入 LINE、Discord 首頁。
| 部分 | 早期「世界近況」 | 後來的「小海豹來信」 |
|---|---|---|
| 視覺 | 米白、深綠、同心圓識別 | 冰白、霧藍、海藍與抱信海豹 |
| 首頁 | 直接進入新聞閱讀 | 介紹來信與加入方式,另有新聞入口 |
| 導覽 | Today/Events/Resource | 新聞/媒體來源/關於 |
| 接收方式 | 到本機網站查看 | 網站公開閱讀,並提供 LINE/Discord 訂閱 |
| 執行位置 | 自己的電腦 | Cloudflare 雲端服務 |
這裡的初期外觀依保存的前端版本整理,並不是開發第一天的截圖。9 月的版本也只有有限來源與一天的摘要,還不能當成完整的全球新聞服務。
從到網站看新聞,變成每天收到來信
10 月 2 日晚上,我重新啟動這個專案。這次希望每天整理全球政治與經濟的重大新聞,也關注美伊、胡賽、巴以和烏俄等事件;摘要要整合不同角度,附上原文,並透過 LINE 和 Discord 收到。
我也希望電腦關機後,它仍然能執行,所以改用 Cloudflare 和 Gemini API。服務搬到雲端後,還要接上新聞收集、摘要、保存與發送,才能完成每天接收的流程。
串接需要的帳號資訊不少。Agent 把 Gemini、網站密碼、LINE 和 Discord 的欄位集中在一個本機設定頁,我填好資料,再由它完成接線。我當時的回覆是:「你好棒,給我這個網頁去做設定,簡潔明瞭。」

這一步讓我能用看得懂的介面提供資料,但後面仍然要逐項確認服務是否真的能運作。第一輪 Discord 已送出摘要,LINE 卻因權杖失敗;換上正確權杖後,才完成實際接收確認。
改名,也把入口改成來信的樣子
後來我確定名稱為「小海豹來信」,標語是「為你捎來世界的消息」。視覺也從米白、墨綠,改成冰白、霧藍與海藍。
最先加入的是抱信海豹插圖、頁首識別與網站小圖示。接著為 LINE 和 Discord 製作共用頭像、封面與「今日新聞」圖文選單,再把手繪海豹去背,讓網站首頁、頁首和平台頭像使用同一個角色。
這些圖片還需要依使用位置修改。例如頭像被圓形裁切後,小海豹的腳會被切掉,就要縮小角色並增加留白;LINE 封面也重新調成橫式。圖文選單最後只留下「今日新聞」,移除多餘的副標與品牌字。
首頁改成簡短介紹與加入入口,閱讀和管理則逐步分開。我也調整了導覽用字,避免讓「訂閱」看起來像付費入口。後來新聞、歷史、搜尋和來源開放閱讀,只有管理與設定需要登入。
Discord 的接收方式也從頻道 Webhook 改成個人私訊。我希望加入後就能訂閱,不需要再輸入指令;但接上平台設定、收到授權事件和真正收到私訊,是需要分開驗證的步驟。
新聞來源增加了,摘要為什麼還是不完整?
介面之外,我也追問:AI 怎麼知道哪些新聞重要?為什麼有些來源收集到了,最後卻沒有出現在摘要裡?
來源後來擴充到百家以上,並增加不同國家與語言的媒體。不過,收集的文章數量和 AI 實際讀到的內容並不相同。早期流程只從各來源取少量文章,再把固定數量送進模型,選讀本身就可能漏掉消息。
其中一次,資料裡最近二十四小時有兩千多篇文章,最後卻只有一則摘要。查核後發現,台北午夜切換日期,只剩五十篇進入候選目錄,第一階段又只挑了一個事件,實際送入的內容只有一篇、一百多個字。問題不是多收幾家來源就能解決。
後來改成以最近二十四小時整理,先用新聞目錄安排優先選讀,再讀取得到的正文或摘錄,並讓優先事件之外的來源也有補讀機會。網站也標示本輪候選與選讀範圍,保留引用來源和媒體所在地分布。
媒體在不同國家,並不直接代表它們有不同觀點;同一供稿內容也可能被多家刊載。這些差異必須放進整理方式,不能只看媒體家數。
最麻煩的問題,出現在摘要的內容裡
摘要有連結,仍然可能引用錯誤。實際流程曾把巴西選舉的重要性,連到衣索比亞戰事的報導,導致整輪整理失敗。也曾出現金額從 56.3 萬變成 563 萬,以及沒有充分事件依據卻被歸進摘要的報導。
修改因此逐步進到每句摘要的證據:摘要、重要性與不同說法,要對應到這一輪真正取得的原文段落;數字還要核對單位、對象和日期,不能只確認原文裡出現相似的數字。無法支持的事件或說法要移除,不能為了湊滿摘要而留下。
同時也要分清楚「文章存在」和「正文讀到了」。有些來源只能取得 RSS 摘錄,部分正文則抓不到;只有標題的文章可以參與事件歸類,卻不能因此被當成支持摘要句子的證據。
這些修改仍不等於完成事實查核。多語內容、有限的文字片段和模型的理解,都還可能造成遺漏或誤判。草稿寫到這裡,也不能把程式檢查通過寫成新聞一定正確。
按下按鈕之後,還有一整段看不見的流程
另一類困難是等待。按下整理摘要後,工作可能已排入雲端,但模型還沒完成;畫面顯示成功呼叫,也不代表最後產生了可以公開的摘要。
曾有一次,模型呼叫完成後,摘要仍因引用驗證失敗而被拒收,卻被工作狀態誤標成成功。後來修正成以實際產文與驗證結果為準,失敗就明確顯示失敗,不把收到工作或完成請求當成完成整理。
也遇過完整流程等正文補取,等待超過半小時;還有執行中的摘要被另一個排程誤判為中斷。這些問題需要調整工作交接、等待方式和執行狀態,不能只改畫面上的提示。
管理操作最後拆成收集、整理摘要、推播與全部流程。只想重送已有摘要時,不應再收集一次或重新呼叫 AI。新聞訊息也改成最後附一個完整摘要連結,減少逐則連結造成的干擾。
雲端還有自己的限制。Gemini 曾拒絕執行地區,錯誤提示一開始卻被寫成模型設定問題;資料庫也需要減少重複查詢、重寫與補正文,才能控制用量。免費方案並不代表可以不看使用量,來源越多,越要檢查整個流程的成本。
成品介紹與製作心得,也要分清楚
把小海豹來信放到自己的網站時,我希望讀者先看到大圖、標題、簡短說明和直接開啟網站的按鈕。大圖則進入專案說明頁,讀完能返回 AI 專案列表。
我一度同意把說明放進 AI 筆記,後來改成把介紹獨立放在 AI 專案資料夾。這個修改又被誤解成新舊網址轉向問題,我再次說明:大圖應直接連到專案說明,AI 筆記裡那個說明網址要刪掉。
現在另外寫這篇心得,兩者的用途就分開了:專案說明介紹現在能做什麼;AI 筆記留下為什麼這樣做、改過哪些地方,以及過程裡的問題。這篇先存成草稿,等我看過、補充自己的感受後,再決定是否公開。
這篇先記到這裡
截至 10 月 5 日,已經有成功產生摘要、公開閱讀與平台接受推播的紀錄,也有後續的失敗。當晚自動流程完成選題與補讀,進入撰寫後卻收到 Gemini 的 503 回應,沒有產生新摘要或每日推播。
因此,這篇記錄的是一路修改到現在的過程,並不是整個服務已經穩定完成的宣告。
從最早的地區新聞工具,到小海豹來信,我提出的要求逐步從「做出一個網站」,延伸到摘要怎麼選、引用是否正確、失敗如何呈現,以及消息是否真的送到。我原本想達到的目的仍然是:每天收到簡短、可以追查來源,也能看到不同說法的世界消息。接下來還需要用實際閱讀和接收的結果,繼續確認它離這個目的有多近。