用 LangChain4j 做了一個自己的 Blog Agent

用 LangChain4j 做了一個自己的 Blog Agent

最近把一個放在腦中一陣子的小想法做出來了:幫自己的 blog 做一個可以聊天的 agent。

這個念頭其實是從很日常的困擾開始的。文章寫久了之後,自己有時候也會忘記以前到底寫過哪些東西。要找內容時,通常就是翻分類、看標籤、搜關鍵字;這些方式當然都能用,但總覺得少了一點「直接問它」的感覺。既然現在 AI 工具都已經這麼容易接了,那乾脆試試看,能不能讓自己的 blog 也變成一個可以對話的入口。

所以這次就用 LangChain4j 快速做了一個 Blog Agent。沒有一開始就想把它做成什麼很完整的產品,比較像是先把腦中的畫面做出來:後端有一個 server side 可以處理 agent 的互動,服務直接丟到 Cloud Run 上跑,然後再寫一個給 Hexo 用的聊天室窗插件,把它接回原本的 blog 頁面。

做的時候其實滿有那種「先讓它跑起來再說」的感覺。LangChain4j 這邊先把後端流程接起來,Cloud Run 負責讓服務可以被呼叫,Hexo 插件則處理畫面上的聊天入口。每一塊都不算特別巨大,但全部接在一起之後,看到自己的部落格右下角真的出現一個可以互動的聊天室,感覺還是滿微妙的。原本只是靜靜放文章的地方,突然多了一個可以被詢問的介面。

下面是這次做出來的 Blog Agent demo。

我覺得這次比較有趣的地方,不是技術上用了多厲害的東西,而是整個開發過程比想像中輕很多。以前如果要在自己的網站上加一個比較像 AI 助手的功能,直覺上會覺得要處理很多基礎建設、部署、前後端整合之類的事情。但這次實際做下來,反而比較像在把幾個已經熟悉或容易上手的工具拼起來,然後一步一步把它接到自己原本的內容系統裡。

Cloud Run 在這裡也滿符合我的需求。這種 Blog Agent 不一定會有很穩定或很大的流量,但我希望它需要被呼叫的時候就在那裡。把 server side 放上去之後,就不用一直想著主機要怎麼維護,也不用為了一個實驗性的小工具先搞一整套很重的部署環境。對這種想快速驗證想法的東西來說,負擔小很多。

Hexo 插件這邊則是另一個讓我覺得有趣的部分。因為 blog 本來就是靜態網站,所以以前比較自然的想像是:文章寫好,讀者進來看,然後離開。可是加上一個聊天室窗之後,它的感覺有一點變了。讀者不一定只能照著文章列表慢慢翻,也可以直接用提問的方式探索內容。雖然現在還只是第一版,但我滿喜歡這個方向。

目前這個 Blog Agent 當然還有很多可以調整的地方,例如回答方式、前端互動體驗,或是怎麼讓它更貼近文章內容本身。不過對我來說,這次最重要的不是一次做到多完整,而是確認這件事真的可以很快被做出來,而且能自然地放進自己原本就在使用的 blog 裡。

現在回頭看,這比較像是一個小小的生活工具實驗。它不一定會立刻改變什麼,但讓我開始覺得,自己的部落格不只能是文章倉庫,也可以慢慢變成一個可以互動、可以被重新探索的地方。這種感覺還滿不錯的。