內部分享 · 2026 年 9 月

從一支記帳程式,
到一個可以對話的 Agent

同事常問「Agent 到底是什麼」。與其講定義,不如看同一支程式的前後對照 —— 我沒有重寫它,只是在外面包了一層。這份文件講那一層是什麼,以及做它的時候, 哪幾步真正決定成敗。

專案 簡易記帳本 語言 Python 3.12 流程 Phase 1–9 原專案改動 0 行
11
個函數包成 AI 可呼叫的工具
9
個 Phase,每一步都能單獨停下來
96
項自動化測試,全數通過
0
行既有程式碼被改動
圖表 1Agent 前 / Agent 後

同一個資料庫,多了一個「用講的」入口

左邊這些欄位、下拉選單、按鈕都還在,沒有被拿掉。差別是:原本要點六個地方才記得起來的一筆帳, 現在可以直接說「今天午餐 150」。

桌面版記帳程式:上方是日期、類型、分類、金額、備註的輸入欄位,中間是收支明細表格,右側統計面板,下方是支出分類長條圖。 瀏覽器中的對話式記帳介面:左側是對話清單與工具數量,右側是 AI 依照提問整理出的收支明細與財務摘要。 Agent 前 · 桌面 GUI

點上方按鈕切換。兩張畫面讀的是同一個 SQLite 檔案 —— 在網頁記一筆,打開桌面程式立刻看得到。

輸入方式

從「填六個欄位」變成「講一句話」。欄位沒有消失,是多了一條路徑。

誰在做判斷

「這筆算飲食還是娛樂」原本由人決定,現在 AI 先提議,人確認。

在哪裡用

桌面程式只能在這台電腦;網頁介面同樣跑在本機,但換成瀏覽器就能開。

圖表 2GUI / AI + Agent + GUI

Agent 的本體不是 AI,是中間那一層工具與規則

這是最常被誤解的一點。把 AI 接上去不等於做出 Agent —— AI 只負責「決定要呼叫哪一個工具」, 真正決定它能做什麼、不能做什麼的,是你自己寫的那一層。

傳統 GUI 人 GUI 介面 資料庫 每一個動作都要人親手點。 程式只會做「被點到」的事。 AI + AGENT + GUI 這層是你寫的 ↓ 人 說一句話 AI 模型 只決定叫哪個工具 Agent 工具層 11 個可呼叫的函數 資料夾權限檢查 寫入前先預覽確認 說謊自動偵測 同一個資料庫 原本的 GUI 仍然存在 AI 不直接碰資料庫,只能透過工具層。 工具層沒給的能力,它就做不到。
你自己寫的、決定邊界的部分 外部 AI 模型 原有系統,原封不動
一句話的說法

AI 是「會判斷的大腦」,Agent 是「手腳加上規矩」。只有大腦沒有手腳,它只能跟你聊天; 有手腳卻沒有規矩,它會把你的資料改壞。

圖表 3Phase 1 – 9 · 每一步最重要的事

前四步讓它會動,第五到第七步才讓它能放心用

九個步驟裡,前四步做完就有一個會動的 Demo —— 很多人做到這裡就停了。 但真正讓它敢接上自己每天在用的資料的,是中間那三步。

PHASE 1

分析專案

先看清楚這支程式哪一層可以被機器呼叫。

最重要既有專案就是種子,不是打掉重練。
PHASE 2

挑工具候選

從既有函數挑出 11 個值得開放給 AI 的。

最重要一個工具只做一件事,輸入輸出講清楚。
PHASE 3

接上模型

用免費的 Gemini,但留著五家可以換。

最重要別把專案綁死在單一家廠商。
PHASE 4

對話核心

收訊息、決定呼叫工具、把結果餵回去。

最重要每個對話各自獨立,不共用記憶。
PHASE 5 · 關鍵

兩段式寫入

先預覽,等人說「好」,才真的寫進資料庫。

最重要會改變世界的動作,一律先給人看過。
PHASE 6 · 關鍵

說謊偵測

用程式比對「它說做了」跟「它真的做了」。

最重要模型說完成不算數,要有證據。
PHASE 7 · 關鍵

資料夾權限

明確列出可讀可寫的資料夾,其餘一律拒絕。

最重要預設拒絕,而不是預設允許。
PHASE 8

對話介面

本機網頁,不經過任何聊天中繼伺服器。

最重要選介面就是在選「資料會流到哪」。
PHASE 9

動態提示

每一輪把今天日期重新告訴模型。

最重要會變的東西不要寫死在設定裡。
往下捲動 · 橫向瀏覽九個步驟

為什麼「說謊偵測」不是多慮 —— 這是我自己踩到的

我請 AI 整理一份近期收支明細,總金額它算對了,但表格裡的每一筆交易都是它自己編的。 它確實呼叫了查詢工具、拿到了真實資料,卻在寫回答時改用自己「想像中比較合理」的內容。 模型講得越有條理,越不容易看出這種錯。

資料庫裡真正的紀錄
日期備註金額
09-05滷肉飯185
09-05燒烤705
09-04手搖飲110
09-04捷運30
AI 寫在回答裡的「明細」
日期備註金額
09-20晚餐便當120
09-19早餐三明治85
09-18診所掛號費720
09-15捷運儲值170

沒有一筆對得上。這就是為什麼 Phase 6 要用程式去驗證模型的說法, 而不是相信它的文字。

圖表 4結論

Agent 化的成本不在模型,在你願意劃多清楚的邊界

01

不用重寫,從既有的東西長出來

原本的程式一行都沒改。Agent 是直接呼叫它既有的函數, 所以之後那支程式怎麼改,Agent 會自動跟上。

02

AI 只是其中一塊,而且是可以換掉的那塊

決定它能做什麼的是工具層與權限設定。換成別家模型, 規矩不用重寫。

03

能不能上線,取決於出錯時會怎樣

預覽確認、說謊偵測、資料夾白名單 —— 這三層決定了它是一個 Demo 還是一個敢每天用的工具。

會講話的程式不難做。
難的是讓人敢把真的資料交給它。