TechMoon 科技月球
WordPress、SEO 與 AI 工具實測指南
TechMoon 科技月球
WordPress、SEO 與 AI 工具實測指南

writing-helper 是可自架的開源 AI 寫作工作台,把寫作風格拆成八個維度的表單,搭配自備的模型金鑰使用,從安裝實測到金鑰與文稿的資料路徑,一次看清它適合誰。
用 AI 摘要這篇文章:
打開 ChatGPT 就能叫模型寫一篇八百字的文章,那為什麼還有人要另外裝一個寫作工具?我把 writing-helper 的原始碼整份 clone 下來讀完、在自己電腦上裝起來跑過一輪之後,答案變得具體:這個工具賣的從來就不是生成能力,模型本來就會寫字。它真正做的事情有兩件,把你的寫作風格從聊天視窗裡的口頭描述,變成一份存得起來、改得動的結構化表單;還有讓你用自己的模型金鑰、自己的部署,組出一張屬於自己的寫作工作台。
它是 GitHub 上的開源專案(GeekyWizKid/writing-helper,MIT 授權,645 顆星),用 Next.js 寫成,可以完全免費自架。
用聊天視窗寫稿的人都遇過同一件事:每次開新對話,你要嘛重新描述一次「請用有點口語但專業的口氣、句子長短交錯、多用台灣慣用說法」,要嘛去翻上一次的對話紀錄複製貼上。這段描述本身沒有地方放,它活在你的記事本或記憶裡。
writing-helper 把這段描述做成了表單。點開編輯器左側的風格設定,會看到九個折疊區塊:第一區填風格概述,後面八區是語言、結構、敘述、情感、思維、獨特性、文化、節奏。每一區再往下拆:語言底下有句式偏好、用字的正式程度(1 到 5 的量表)、偏好詞與迴避詞清單;情感與思考深度用的是 1 到 10 的量表,情感另有基調;獨特性可以登錄你的標誌性短語跟慣用意象;文化底下能指定你常引用的典故與知識領域;節奏管句子長短的分佈與停頓習慣。填完一次,它就是一份檔案,下次直接沿用或微調。
拿一個具體的填法來看這份表單長什麼樣。假設你寫的是台灣的科技專欄:正式程度落在 4、情感強度 6、敘事視角選第一人稱帶判斷;標誌性短語登錄你慣用的收尾句;意象系統填你常打的比方;文化典故指向三國與棒球;迴避詞清單就把你看了會皺眉的字放進去。這些欄位個別看都平凡,組合起來就是「你的腔調」,而它第一次變成了一份可以版本管理的檔案。
這套機制沒有魔術。送出生成請求時,程式把整份風格表單用 JSON 序列化成一段結構化文字,放在提示詞最前面,後面接一句產出指令,大意是「遵循以上風格,為我寫一篇多少字、主題是什麼的文章」。換句話說,它的本體是一個把提示詞工程產品化的編輯器,模型讀到的就是那份結構化描述。這意味著兩件事:風格控制的成色取決於你接的模型,表單填得再細,弱模型一樣吐出平庸的稿;反過來說,表單是透明的,你隨時看得到送出去的到底是什麼,比藏在產品背後的黑箱提示詞踏實。已經在累積自己提示詞庫的人,可以把它想成提示詞管理之外另一條更結構化的路。
我把專案 clone 到本機實測,過程比想像中平順。三個指令:git clone、npm install、npm run dev。安裝在 Node 26.7.0 的環境下一次成功,Next.js 15.4.10(Turbopack 模式)2.8 秒就回報 Ready,打開瀏覽器大約再 3 秒頁面完整可用,介面跟線上版一模一樣。
有一個文件陷阱要先講。README 上寫的環境需求是 Node.js 16.20.0 以上,但這個數字是過時的:它依賴的 Next.js 15 系列實際要求 18.18 以上的 Node。我在 26 上跑當然沒問題,但Node 16 已經超出它依賴套件的支援範圍,照 README 的舊數字裝環境只會自找麻煩,直接抓新版 Node 再裝。
部署到正式環境還有一個小取捨。代理路徑的等待上限在程式碼裡有兩個數字:內建的超時是十分鐘,但平台設定壓到 60 秒,原因是 Vercel 的函式執行限制。把專案部署在自己的伺服器上就不吃這層限制,長文生成自然用得到完整的十分鐘。另外倉庫附的安全整備文件提醒自架者要設好允許的來源網域清單,這份清單預設只有本機,部署到對外網址時記得把你的網域加進去,不然介面會連不上自己的代理。
不想先自架的人有兩個現成的線上版可以試:與專案同名的 writing-helper.vercel.app,以及 repo 首頁現在指向的 writing.chixitown.com,我測的當天兩個都活著,內容一致,供應商選單與介面完全相同。先到線上版把玩風格表單,覺得順手再回來自架,是合理的順序。
編輯器本身走極簡路線,官方說明裡表明是向 Typora 看齊的設計:乾淨的白底、輸入斜線喚出命令選單、選取一段文字可以直接叫 AI 改寫。生成結果直接落在編輯器裡接著改,改完一鍵匯出 Markdown。對寫稿流程來說,這比「生成、複製、貼去別的編輯器」少繞兩步。

導覽列總共四個模組:寫作助手、履歷產生器、文字優化器、公眾號排版。履歷產生器走問答式訪談,逐步問出經歷再排版成履歷,可以直接匯出 PDF;公眾號排版是替微信文章做的格式轉換器,台灣讀者用不上,但它有個旁證價值:這個專案的主要受眾原本就是對岸的內容工作者,這解釋了介面語言與部分預設的出發點。倉庫裡其實還藏了一個沒掛上導覽列的文字摘要頁,算是半成品。
這是最值得慢慢讀的一段,因為它決定你該用線上版還是自架版。
生成請求走的完整路徑是這樣:瀏覽器並沒有直接呼叫模型 API。程式先把你的金鑰(放在 Authorization 標頭)連同整份提示詞,送到部署端的伺服器代理,再由伺服器轉發給 OpenAI 或 DeepSeek 這些模型端點。這是後端轉發的設計,好處是瀏覽器不受跨域限制、可以拉長等待時間(程式碼裡為長稿預留了最長十分鐘),代價是:你用誰部署的站,金鑰與全文就經過誰的伺服器。
非串流的那條代理路徑有個更值得注意的行為:會把整個請求內容寫進伺服器端的執行紀錄,金鑰那行有做遮罩,文稿內容沒有。這在自家的部署裡拿來除錯很好用,在別人的部署裡就是你稿件的落地點之一。想把它當機密稿件工作台的人,這一行字就是該自架的最直接理由。
預設的行為比文件寫的更保守:不勾記住我,金鑰只留在頁面記憶體,關掉分頁就消失,根本不落地;勾了記住我才會寫進瀏覽器儲存,7 天後自動過期。落地前會用 XOR 編碼加上瀏覽器指紋當鑰匙,程式自己在註解裡寫明這不是軍用等級的加密,我的讀法一致:它能防的是同一台電腦上的順手翻看,防不了有心的提取。
最後是遙測。線上版載入了 Vercel Insights 的瀏覽統計腳本,線上版實測時抓到這個腳本;自架版整輪跑下來沒有任何資料回傳,因為回傳通道掛在 Vercel 平台的專屬路徑上,離開 Vercel 就不存在。所以隱私帳要分兩本記:線上版有基本的瀏覽遙測,自架版實測沒有回傳。
| 部署方式 | 金鑰與文稿路徑 | 遙測實測 | 適合誰 |
|---|---|---|---|
| 線上版(vercel.app 或 chixitown) | 經過部署端伺服器轉發 | 有瀏覽統計 | 先試用、寫不敏感的稿 |
| 自架(本機或自家伺服器) | 只經過你自己的機器 | 實測無資料回傳 | 長期使用、機密稿件 |
還有一條全離線的路。供應商選單裡的 Ollama 模式接的是本機模型服務,模型也搬進自己機器後,從風格表單到生成結果整條鏈都不出門,而且按一下重新整理模型列表,就會去本機服務撈已安裝的模型讓你挑,不用手抄模型名稱。想要絕對不連網的寫作環境,這是它開的後門。
關於它支援哪些模型,流傳的說法比實際的清單長。本機與線上版的供應商選單一致,實際的選項是六個:OpenAI、Grok(xAI)、Ollama、DeepSeek、Cherry Studio、自訂。沒有原生的 Claude、Gemini、Groq 選項。
| 選單選項 | 預設端點 | 金鑰需求 |
|---|---|---|
| OpenAI | api.openai.com | 要 |
| Grok(xAI) | api.x.ai | 要 |
| DeepSeek | api.deepseek.com | 要 |
| Ollama | 本機 11434 埠 | 免(本機服務) |
| Cherry Studio | 本機 Cherry Studio 服務 | 視伺服器設定 |
| 自訂 | 自己填 | 看端點 |
這件事往原始碼裡追更有意思。程式判斷供應商的方式是看 API 網址裡的字串:含 deepseek 按 DeepSeek、含 11434 埠按本機 Ollama,其他一律按 OpenAI 相容格式處理。程式碼裡雖然有 Grok 的專屬分支,但它比對的字串反而抓不到自家的預設端點,所以實際上 Grok 也是照 OpenAI 相容格式送出,這個分支形同備而不用。也就是說,它天生就吃任何 OpenAI 相容端點,想用 Claude 或 Gemini 的人可以透過 OpenRouter 這類相容層自訂接入,只是沒有官方預設。專案的開發藍圖上,Claude 與 Gemini 的支援至今列在待辦清單,issue 區也有人開題要 Gemini 支援,到我所查的這天仍是未結案狀態。
用自己金鑰按量計費的人,別忘了帳單會隨稿件量成長,搭配一個API 用量監控工具盯住消耗,是自備金鑰工作流的基本衛生習慣。
有個藏在細節裡的設計:它能偵測自己是不是被嵌在 Cherry Studio 這套開源桌面 AI 客戶端裡執行,偵測到就自動調整介面,倉庫裡還附了打包成獨立發行檔的腳本。已經用 Cherry Studio 管理模型的人,等於多一條現成的安裝路。
另一個主功能是 AI 文字優化器,用途是把已經寫好的稿改得更像人寫的,降低被 AI 偵測器抓出來的機率。介面上提供幾種預設:針對學術論文的人類化、針對文學散文的深度優化、先分析再改寫的兩階段模式,也開放自訂指令。幾種預設的策略取向讀起來各有道理:學術那套走的是降低可預測性的方向,散文那套則標榜保留原文的比喻與情感、只動表達方式,兩階段模式會先產出一份分析與建議再動手改。這些取向本身合理,但它們是寫在提示詞裡的策略說明,換模型、換稿件,結果都會浮動,把它們理解成「作者的建議文案」比「規格保證」準確。

這個模組的行銷話術跟工程現實之間有一條縫。預設的提示詞原文裡寫著:改寫後應通過 Turnitin 的 AI 偵測(信心度低於 12%)、GPTZero 的突發性指標應高於 85,還引用了一份未具名的卡內基美隆大學 2025 年偵測報告當依據;線上版頁面則宣稱針對騰訊朱雀與 GPTZero 等 2026 年最新偵測器做了深度優化。這些全部是寫在提示詞裡的目標文字,是作者對模型的期望,不是任何一方實測過的保證。整個倉庫裡沒有檢測報告、沒有基準數字,成效完全取決於你接的模型當下的狀態。
把它當「讓文字去掉機器腔」的改稿工具用,跟把它當「保證通過偵測」的護身符用,是兩個非常不同的期待,後者目前沒有證據支持。而如果用途涉及學術場景,該守的規範不會因為工具存在就改變,這筆帳不在工具身上。
介面是簡體中文。選單、按鈕、提示文字全部是,沒有語言切換。看得懂簡體的人操作無礙,但對簡字介面過敏的人要有心理準備。附帶的公眾號排版模組是微信生態專用,台灣讀者基本用不上;履歷產生器與文字摘要則是一般的附加功能,能用,不是主角。
維護節奏要有認知。專案 2025 年 3 月開張,最後一次程式碼更新停在 2026 年 2 月 6 日,之後沒有新的 commit;issue 區到 2026 年還有人留言互動,作者沒有棄坑宣言,但也不在快速迭代期。回顧 2025 年 9 月有一則抱怨生成結果不能編輯、每次重新生成會蓋掉舊文,這條拖到 2026 年 2 月的收尾改版才解掉,間隔四個多月,談不上及時,但看得到作者停更前仍在還債。好消息是它是 MIT 授權的完整開源,就算從此凍結,你手上的這份照樣能裝能改,這是閉源服務永遠給不了的保險。安全面倒是比一般個人專案用心,倉庫裡留了一份安全整備文件,記錄了收緊跨域設定、升級 Next.js 修漏洞、把金鑰管理搬進瀏覽器端的完整過程。
字數與預設主題有兩個細節要自己把關。生成時指定的字數是提示詞層的承諾,模型不一定精準命中,長稿要自己驗;預設的示範主題與範例文章都帶著簡體中文的語境,台灣讀者套用時記得先把風格表單裡的用語偏好改成自己的。
授權是 MIT,商用、修改、再散布都可以,六百多顆星、一百多個 fork 的社群規模對這類個人專案來說算健康。兩個線上版同時活著、自架一次成功、程式碼可讀性好,整體是「想用就能用」的狀態。
我的判斷是這樣:長期寫同一種稿的人(專欄、品牌內容、連載),值得為了那份風格表單自架一份,它解決的是「每次都要重新交代風格」這件真正重複的苦工;已經有模型金鑰、在意稿件隱私的人,自架版把金鑰與文稿的路徑整條收回到自己機器上,線上版只適合拿來試手感。反過來,如果你要的是開箱即用、零設定、客服找得到人的一鍵生成服務,這個工具的每一步都要自己來,它不適合你,去用現成的寫作服務會快得多。
想開始的人,順序很簡單:先去線上版填一份風格表單生成一次,感受模型吃不吃你填的風格;順手了,回 GitHub clone 一份,npm install 之後 npm run dev,十分鐘內你就有一張自己的寫作工作台。