AI Agent 時代來臨:用 GitHub Copilot 實戰 LINE 翻譯機器人
Hello 大家好,相信隨著 Vibe Coding 的熱潮,許多人終於能用自然語言來「說」出程式碼,跨出了過去難以逾越的那一步。
再加上近幾個月來,AI Agent、Model Context Protocol(MCP)、n8n 等結合 AI 相關的技術如雨後春筍般冒出,速度之快,幾乎是一覺醒來世界都變了樣。而這波大混戰中,Google 更在這幾天大方釋出 Gemini CLI 供大家免費使用,瞬間讓整個圈子都熱鬧了起來。但身為一個正被 AI 迫害的碼農 😜,怎麼能不親身體驗一下「用嘴巴寫程式」的威力呢?
先說結論
你終究還是要學會寫程式,只是寫程式將不再是一項專業技能。未來需要的,是一個具備優秀表達能力,並且擅長與 AI 合作的軟體工程師。
在不久的將來,那些只會寫程式的設計師終將被 AI 取代,留下來的會是那些擅長帶領 AI 團隊(我稱之為 LLM Coding),並協助 AI 找出問題的 AI 軟體架構師。所以從今天起,開始改變吧。
因此,今天就是要跟大家分享如何使用 GitHub Copilot 來寫程式。一開始我也蠻好奇的,覺得寫完之後可能還是要改吧?但你相信它只花了五分鐘就完成了嗎?相信你一看完,一定會震撼感十足!這也是我第一篇不寫程式的程式分享文章,下圖是最終實作出來的結果。
![]() |
AI Agent 協助完成的 LINE 翻譯機器人 |
但在開始之前,先前情提要一下,之前我有一個系列文章,分享了如何使用生成式 AI 技術實作屬於自己的 LLM 知識庫,其中某篇文章的範例提到了如何運用 Prompt 提示工程來幫助我們完成多國語系翻譯的功能,今天我就是要延續這個專案,來完成一個專屬的 LINE 翻譯機器人。
啟動 GitHub AI Agent
在開始使用 GitHub AI Agent 之前,我已在相同的專案內新增了一個名為 TranslateLineBotDemo 的 WebAPI 空白專案。接下來,直接看看我們的 Prompt 要怎麼下
需求說明
我正在幫一個製造業的工廠寫一個多國語言的 LINE Bot 機器人,而本次預計的需求目標如下
1. 需支援中文、英文、日文、越南、菲律賓等五國的多語系翻譯。
2. LINE Bot 僅能處理文字對話,當使用者送出文字以外的訊息,則回傳 "我現在只會翻譯文字喔" 的訊息。
3. 收到訊息後,請透過 LLM 進行翻譯,並依序將五個國家的翻譯結果參照 ### 內的格式(各語系須間格一行)回傳給 LINE Bot。
###
這是LLM翻譯的內容
This is the content translated by LLM
###
方案說明
1. #codebase 內的 TranslateLineBotDemo 專案是一個 NET8 Web API Application。
2. LLM 多語系翻譯的功能使用 `Microsoft.SemanticKernel`,使用範例請參考 #codebase 內的 PromptFunction 專案,但請使用 KaohsiungPlugin 的樣板,同時必須將 Plugins 內的相關內容複製到此專案內,不要直接參考該專案內的檔案。
3. LINE Bot 的套件請使用 `LineBotSDK`,請務必先讀取 LineBotSDK_Readme.txt 相關使用說明。
4. 各套件已事先安裝好在此專案內。
5. 我希望結合上述兩個功能,幫我實作出一個 LineBotWebHookController API。
開發規範
1. 務必遵守 SOLID 原則,同時程式碼不要都寫在 Controller 內。
2. Model 類別,統一放置 Models 資料夾內。
3. SemanticKernel 用 LlmUtility 類別封裝,並放置到 Utilities 資料夾內。
3. LINE Bot 用 LineBotUtility 類別封裝,並放置到 Utilities 資料夾內。
重要要求
任何改變後,使用 dotnet build 建置 `TranslateLineBotDemo/TranslateLineBotDemo.csproj` 專案來驗證任何變更,
同時也請一併解決所有 #problems,過程中不要問我任何問題,僅須提供新增或改變了那些代碼。
最後,請將重要的設定和重要參考說明寫在 Readme.md 檔案。
補充一下提供給 Github Chat 的 Prompt 中有兩個關鍵字,說明如下:
- #codebase:這個變數會把整個專案的程式碼索引進上下文,因此 Agent 可以根據這些索引來回答問題或生成程式碼。
- #problems:要求 Agent 修復目前檔案中偵測到的所有問題。
完成 Prompt 描述後,送出我們的請求,接下來就換 AI Agent 接手工作囉。
Vibe Coding vs. LLM Coding
這邊先回頭討論一個 Prompt 層面的問題,從上面的 Prompt 可以看出,我們清楚地交代了預計請 AI 協助的需求、技術背景、開發規範和希望的要求。看到這裡,你應該發現一個重要的事情對吧?「技術背景、開發規範」這件事情,可能還是需要有經驗的工程師才做得到。
這時候,就要來說說 Vibe Coding 和 LLM Coding(我不確定這名詞是否正確,若有錯誤也請留言告訴我)本質上的差異了。
在開始說明之前,先讓我插播一張從網路上看到的梗圖,當時看的這張圖的時候,我笑到眼淚都飆出來了,但我還是得強調一下,我真的沒有排斥使用 Vibe Coding 來協助快速開發小工具拉。
Vibe Coding
網路上查到的定義是「是一種新型的 AI 輔助程式設計方法,它強調透過自然語言描述需求,讓 AI 產生程式碼,而非傳統的編寫程式碼。這種方式降低了程式設計門檻,讓非技術人員也能夠參與軟體開發。」而它的理念是完全不需要碰觸到程式語言,就能實現「全民皆可 Coding」的概念。但真的是這樣嗎?
這裡我回頭舉兩個實際的例子:
- 如果你恰巧跟我年紀差不多,你可能用過 FrontPage,或者 .NET WebForms。這些工具可以透過拖拉的方式來設計程式(至少學校都這樣教),而且你也真的很快地就完成了第一個版本的功能。例如,我記得在學生時期,用拖拉的方式搭配 .NET 的 DataSource,很快地就完成了一個記帳軟體的 CRUD 功能。但有沒有想過,這些低程式碼開發的軟體都怎麼了?
- 你有沒有遇過,需要接手別人寫得亂七八糟的程式碼維護,連加一個需求都舉步維艱?
從上面兩個例子來看,Vibe Coding 就是在不需要考慮技術架構的情況下,讓你很快速地完成一個功能,如果這是一個一次性的展場活動,或者 POC 專案,我覺得很棒,但如果它是一個需要長期維運的系統呢?後續恐怕是一場災難吧。
LLM Coding
現行的 Claude CLI、Gemini CLI、GitHub Copilot 甚至今天的文章主題 GitHub Copilot Coding Agent,都被我歸類在這個部分,它雖然也能像 Vibe Coding 一樣大量使用自然語言的方式來產生程式碼,但它其實更專注於在有技術背景的情況下,提供它所需的技術知識甚至開發規範,來協助我們產生一個有架構且後續能維護的程式碼,因此如同一開始提到的,你可能需要「具備優秀表達能力」,才能提供 AI 「必須」要知道的技術規格。
接著這個影片,就是我和 GitHub Copilot Coding Agent 協力合作寫出程式碼的過程
未來的程式設計師:AI 協作者與架構師
如果你是一位開發者,你有沒有覺得「天啊,我要失業了」,開玩笑的啦~
看到這邊我真心覺得這真是令人感到興奮的年代啊!如果你是一位菜鳥,你剛好可以看看 AI 都怎麼寫程式的,應該會看到蠻多有趣的寫法,而且這能加速你拉近與資深工程師的距離,但前提是「你願意看懂它在寫什麼」。
那如果你已經是一位資深工程師,恭喜你,生命可以不用浪費在這種簡單的 Coding 上面了。你已經擁有一個資深團隊在幫你寫程式了,現在你只需專注地做好你的 Code Review 和系統分析或是企業架構的工作,把多出來的時間做更有意義的事情吧。
所以不要再等囉,卡拿起來馬上刷下去,加入 LLM Coding 吧 💳
好了,今天的簡單分享就到這邊 🎉🎉
寫在後面
其實用 AI 來寫程式目前還是有一些問題需要我們人工介入或協助 DEBUG 的,如果你本身不具備任何技術背景,可能會來來回回地花費時間再請 AI 協助找出一些明顯的 BUG,其實挺蠻浪費時間的。不過這也是未來工程師價值所在的地方吧(寫程式真的不難,難的通常是找出問題,並有效地解決,至少現在還是 XD)。
本文範例:使用 .NET Core 8,本範例代碼 99% 由 AI 完成,1% 人工修改,參考範例請至 TranslateLineBotDemo 下載。
留言
張貼留言
您好,我是 Lawrence,這裡是我的開發筆記的網誌,如果你對我的文章有任何疑問或者有錯誤的話,歡迎留言讓我知道。