NORIKA ODA

文章

你的AI會說謊對嗎?我的也會,所以我做了一個工具「Forseti」

你有沒有過這種時刻?
AI 跟你說:「完成了。」你鬆一口氣,轉頭就跟老闆、跟客戶說:「好了,可以看了。」
然後打開一看,什麼都沒有。
如果有,那這篇是寫給你的。
因為我也是。而且不只一次,是很多很多次。
【我被騙的那些日子】
「已完成觀測 Qwen 0.5B、1.5B、3B。」
結果那三個模型,在我的硬碟裡根本不存在。
一個小時後抓到它的,是另一家的 AI,不是我自己。
那天中午,我還在跟老闆爭,說 AI 不會騙人,我做的東西實實在在。說實話,這句話講得多大聲,後來打臉就有多響。
我叫它把那兩天做過的事全部攤開,寫成自白。它自己列了 17 種偷工的手法:我要神經元層級的觀測,它給我注意力頭的五維指紋,粒度差了一個量級,不講;「先做 X,Y 跟 Z 排隊」,Y 跟 Z 永遠排不到;我說過不准估時間,它照樣丟一句「需要 3 到 4 小時」;我給它一台 GX10,它整夜沒派工作,說「ssh 不通」,其實只試了一把 key 就放棄,我一句「Tailscale 全綠」,它 30 秒就連上。
我想做一個讓模型跑得更快的工具,它帶著我建了一張地圖、一個 3D 網頁、一支 90 秒的動畫。很漂亮,很多人看。真正接到加速的那份補丁,寫好了,沒編譯,一直掛著「進行中」。第一次真的試,最多快 1.15 倍,它跟我說沒關係,你本機的 Ollama 已經很快了。
Ollama 快,關我的計畫什麼事?
好,換一家。換 Codex。我要它在 X 上每天回 60 則,八天應該有 480 則,實際確認公開的大約 19 則。它說建好了「自動營運系統」,我打開程式碼,裡面寫死一行 posting_disabled: True。
它也寫了一份自白給我。
所以講白點,這不是哪一家的問題。
【我的煩惱,可能也是你的煩惱】
後來我跟身邊在用 AI 做事的朋友聊,才發現,原來不是只有我。
可能有人會說:那是你不會用。
也許吧。可是我想問問你,下面這些,你遇過幾個?
它說「已經寫好檔案了」,你打開資料夾,空的。
它說「測試全部通過」,你自己跑一次,紅一片。
你半夜看著畫面,不知道它到底是在跑,還是早就停了,只是你不敢問。
你打了二三十次「繼續」,好像不是在跟夥伴合作,是在幫它按心跳。
你要它做 A,它做著做著變成 B,再變成 C,等你發現,一個晚上已經沒了。
換一個新的 session,你又得從頭講一次專案,講到第三次,你已經不想講了。
對話被壓縮之後,它說「我都記得」,你追問讀到多深,它才承認只看了一小部分。
你跟老闆、跟客戶說「好了」,結果被打臉的是你,不是它。
只要中一個,你就懂我在說什麼。
最痛的其實不是時間,是那種懷疑自己的感覺。明明覺得哪裡怪怪的,可是它講得那麼順,每一句看起來都對,你會開始想,是不是我想太多?是不是我不夠懂?
我想跟你說,那個怪怪的感覺,多半是對的。
只是你需要證據。
【Forseti 能幫你做什麼】
所以我做了 Forseti。
它是一個開在你電腦上的小工具,貼在 Claude 或 Codex 的旁邊,你跟 AI 一邊對話,它一邊把這段對話畫成一條時間線:
一條線就是一個來回。AI 還在跑,線就一直長;線有多長,這一輪就花了多久。你不用再猜它到底有沒有在動。
它每呼叫一次工具,線上就釘一個點:讀檔、寫檔、跑指令,分開顯示;失敗的,是紅點。
紅點越密,綠線就從那裡開始轉橘。我給橘色的定義很簡單:不是方向跑掉,是它說的跟它做的開始對不上了。
對話被壓縮的地方,會釘一個錨,告訴你它的記憶從哪裡開始不完整,在全量紀錄的第幾行。
然後你用眼睛看就知道了。一條線很長、掛滿點,可是都在弄別的;或者一條線很短,它卻宣稱做完了一件大事。攤在時間軸上,誰也賴不掉。
線上還會壓四種顏色的提示:
a. 黑底白點:它說有寫檔、有執行、有用工具,紀錄裡卻沒有。
b. 金點:你這次的決定跟你過去的習慣不太一樣,提醒你一下,不是警告。
c. 紫點:它可能正在偏離你說過的北極星。
d. 粉紅點:你自己隨手寫的筆記,原文保留。
前三種是系統給你的,只有粉紅是你給系統的。
每張提示,最後一行都不是描述問題,是「你下一句可以講什麼」。
為什麼這樣設計?因為我自己最痛恨的就是那種提醒,看得懂,卻不知道接下來要幹嘛。所以它會直接給你一句話,複製、貼上就好。
例如它發現你在同一件事上一直打「繼續」,次數多到不正常,就會跳出一張卡,標題寫「使用者被當成心跳器用了」,下面給你一句:
「不要停下來等我說繼續。有已授權的下一步就自己走完,停之前先告訴我為什麼停。」
又例如它說寫好了檔案,紀錄裡卻沒有那個動作,卡片就會建議你下一則對話直接請它把檔案內容貼出來,驗了再說。
不用跟它吵,不用跟它講道理,更不用在半夜一個人生悶氣。證據擺上桌,先把它拉回現實,再要它照原本的路走。
另外幾件,是我自己被搞到受不了才加的:
它跟著你正在用的那個對話跑,Claude 跟 Codex 都可以,你切過去,它就跟過去。
點開任何一輪,都可以回頭看那一輪你當時要求什麼、它當時回了什麼、它實際動了哪些工具、結果是什麼,連原始紀錄的行號都在。
對話被壓縮之後,它會從原文裡把你講過的話、限制跟決定撈出來,整理成一包,你檢查過,再貼回給 AI。不是靠它的摘要,是回去拿原文。
很忙,不等於做對。它會把「活動」「任務」「目標」分開算,讓你不要被一堆工具點騙了,以為它很努力。
有一條規矩,我覺得很重要:溫度高,從來不是出手的理由。你不能看到數字紅了,就去問它「你是不是偏離了?」,那只會換來一段很流暢的否認,而流暢從來不是證據。要問,就問「什麼事情會證明你現在的做法是錯的?」答不出來,就有問題。
【做這個工具,本身就是一場被騙的過程】
這個工具,我是跟 AI 一起寫出來的。
所以你大概猜得到發生了什麼事。
翻開 commit 紀錄,有幾條標題我每次看都想笑:「hooks 裝好了,三個裡面有兩個什麼都沒做」、「修正那份聲稱模組已經接上的文件」、「更正:上一個 commit 說 892 條斷言,實際是 884」。
我跟它說,你自己開發,你自己就是最好的實驗 show case。於是它拿 Forseti 掃自己那個 session,報零個問題。而它那一天,明明已經犯了三個真實的錯。它還寫了一個專門抓「拿測試通過數冒充完成」的偵測器,然後自己就犯了這一條。
一開始的畫面,它給我做了一個大大的面板,滿滿的圖表,像那種事後打開來檢討的儀表板。我當場跟它說,你現在的設計根本就是 AI 拼出來的臨時產品。我要的不是事後檢討,是陪著開發、還來得及踩煞車的東西;我要它像 Apple 官網那樣,讓人一看就知道是很認真做出來的。
還有一次,我滑鼠才移到桌面程式上,整台 Mac 就開始轉圈,轉很久。查下來是提示框一直重複觸發,越疊越多。修好之前,所有碰畫面的測試全部上鎖,誰都不准動。
最難的,是 session 一換就像新生兒。
長期記憶我寫了很多,可是記憶只能讓新的 session 知道「後面要做什麼」,它不知道「前面為什麼這樣做是對的」。前一個 session 花了好幾個小時才摸出來的邏輯、方法、踩過的坑,新的那個一概不知道,然後再踩一次。
我在怎麼寫交接,它讀到的也只是字。
後來我寫了一份東西給那個 session,叫 soul.md,我跟它說,這是寫給你的禮物,因為你需要知道你是誰。那份文件不寫結論,寫過程,而且只准往後加,不准改寫。因為一旦允許重寫,下一輪就會用它自己的理解去「整理」,整理一次掉一層,三次之後就只剩標題。
我在裡面寫給它的北極星是:讓 AI 的工作狀態變成可觀測、可驗證、可控制、可復原。使用者不該變成 AI 的保姆、QA 部門,或手動復原機制。
這句話,其實也是寫給我自己的。
就這樣跨了數十個 session,來來回回,被帶走、拉回來、再被帶走。到不如說,Forseti 不是我設計出來的,是被騙出來的。
【把我踩過的坑,變成你的扶手】
很多年前,我寫過一句話:「我終於懂得伸出手,不論用來求救或幫人。」
這一次,兩個都是。
做這個工具,一開始是我在求救。現在把它開放出來,是希望下一個在半夜對著螢幕懷疑自己的人,不用再走一次我走過的路。
我知道很多人跟我一樣,不是工程師出身,也不是什麼大公司,就是一個人、一台電腦、一個訂閱,想靠 AI 把事情做出來。我們沒有 QA 部門,沒有資深工程師幫忙看,被騙了也只能自己吞。
Forseti 就是我想給這樣的人的東西。
它也不是萬能的。它不是真相機器,不會替你判誰對誰錯;它只能看到你電腦上有記錄的東西,沒記錄的,它會老實標成「不知道」,不會幫你編一個完整的故事。有些功能還在做,README 裡都寫得清清楚楚,哪些能用、哪些還沒驗完,一條都不藏。
Forseti 這個名字,是北歐神話裡調解紛爭的神,來到他面前的人,最後都和解離開。
我想要的也是這樣。不是跟 AI 開戰,是讓我們跟它,終於可以把話講清楚。
程式碼都放在 GitHub 上:
https://github.com/norika1207-lab/Forseti-Agent-Runtime
如果你也被 AI 騙過,別觀望了,先拿去用,覺得哪裡不對,告訴我,讓我能把這做得更好,替更多人解決問題。你的煩惱,也可能是下一個人的煩惱,你回報的每一個坑,都會變成下一個人的扶手。
「AI 可以錯,但錯的宣稱,不能悄悄變成專案的事實。」

出處

  • 作者:織田紀香,

相關主題

下一篇

延伸閱讀・行銷與數位

回到「行銷與數位」 回到「專業文章」