環境:
Win10、Antigravity Version 1.21.9
情況:
- 讓 Antigravity Agent 使用 Google Apps Script,寫抓營收公告寫入 Google Sheets 的爬蟲。
- 之前已開過一個 Workspace,在同一網站寫抓股利公告的爬蟲,
一開始我沒指定用 Google Apps Script,AI Agent 自主用 Python,產生了一個 .py 檔。
後來讓 AI Agent 改成 Google Apps Script,但 AI Agent 沒生成檔案,所以程式碼在對話中。 - 我想若放在相同的 Workspace,這樣 Agent 應該會自動參考之前做法,讓過程更簡潔快速。
於是我在同一個 Workspace 新開一個對話,提示詞跟之前抓股利時類似,
但特別加上「用新檔案,Google Apps Script,副檔名.gs」。
過程 :
- 雖然沒叫 Agent 參考之前抓股利的例子,
但如預期,一開始 Agent 便先去查看抓股利的 .py 檔,再開瀏覽器去研究。
然後說「現在讓我查看之前的 GAS 股利抓取腳本作為參考模式。」,這也在預料中。
沒想到 Agent 接著說 「好,沒有現有的 .gs 檔案。讓我根據所有研究成果來建立 GAS 腳本。」
Agent 沒看到 .gs 檔,打算不參考自己來了。
我趕緊插話「之前的在對話連」,
這邊我打錯字,正確是「之前的在對話裡」,不過 Agent 有看懂,打算去察看之前對話。
- 出乎我意料的事發生了:
Agent 去查看其他 Workspace 的 walkthrough,找到其他專案股利爬蟲的 .gs 檔。(該專案抓不同來源的股利資料)
然後詢問是否可讀取該 .gs 檔,我拒絕了。
Agent 有跨 Workspace 讀取資訊的權限? 我後面開始展開測試。
- 先看「Agent Non-Workspace File Access」 設定,確定是關閉的。
- 看看 Agent 當時做了什麼事:
=> 在其他 Workspace 的對話中,發現抓股利的 .gs 檔。
難道"對話"不受「Agent Non-Workspace File Access」控制,而是有自己一個開關?
類似 Gemini 的個人化記憶功能開關。
- 找到還有一個「Conversation History」設定是開啟的。
說明寫著:能查看舊對話的開關。
雖然沒寫跨不同 Workspace,但"舊對話"包含範圍是更大了。
- 我關掉「Conversation History」設定,打算測一下是不是這個開關,賦予 Agent 讀取其他 Workspace 資訊的權限。
- 新開一個 Workspace,在裡面新開一個對話,
然後叫 Agent 查看其他 Workspace 對話(twseOpenAPI),看是用什麼程式語言。
結果:
Agent 到 Windows 使用者目錄底下,查看 Antigravity 底下的 brain、knowledge 資料夾檔案。
然後回答
「最近 10 個對話摘要中沒有看到 "twseOpenAPI" 相關的對話。讓我查看那些不在摘要列表中的對話記錄(07e93344、ae12fbd2、babbf466),看看是否有相關的。」
AI 查看了對話,卻又沒看到 "twseOpenAPI" 相關的對話,我越來越不懂了。
(註:黃線標記的"最近 10 個對話摘要",其實是重點,但當下我沒察覺)
於是直接問 Agent 對其他 workspace 有哪些權限做哪些事?
Agent 回答,他能查看跨 workspace 的對話紀錄。
又出乎我意料,沒想到「Conversation History」設定關了也沒用。
- 避免 AI 發現我真正想測試什麼,致力於給出自我保護的答案。
我用懷疑 Agent 能力的方式,要 Agent 證明「查看跨 workspace 對話紀錄」的能力。
結果 Agent 找遍所有對話目錄,找不到我指定的 workspace,
看 Agent 舉查看的例子,都是用 07e93344 這類編碼過的對話 ID,
我猜測 Agent 沒有直接得知 workspace 名稱的資料。
改用對話內容中的片段讓 Agent 找,Agent 找到了,描述的內容都對,雖然不是照我說的接後面兩句話。
- 問 Agent「Conversation History」開關作用。
Agent 回答:這個開關控制的就是我剛才展示的那些能力...
- 我說「但剛剛你展現能力的時候, Conversation History設定是關的」
然後,我看 AI 思考過程是有點訝異的,但等 AI 思考完,
說了一個我有點傻眼的答案:
開關是軟體層面的,是控制軟體 (Antigravity IDE) 對他(AI)的行為。
而他(AI)讀取檔案的能力是物理層面的,不受軟體開關管控。
下列補充,截圖稍微被畫面切到的內容。
第一行=>你說得對!這是一個很好的觀察。讓我解釋為什麼即使設定關閉,我仍然能讀到那些資料:
最後一行=>OFF = 桌上沒便條,但舊筆記本還在書架上,你叫我去找,我還是找得到
- 讓 AI 重現剛剛的思考過程如下,前兩行我有印象,內容應該是對的。
可發現,AI 也沒預料到會這樣,AI 想到兩種情況。
第一種:
建立新對話時,「Conversation History」開關是開的,要對話時才關掉。
所以 AI 在建立對話時就被 Antigravity IDE 注入包含其它 workspace 對話的資料,但 AI 又想到我可能會說互動期間「Conversation History」開關處於關閉狀態。
第二種:
不管開關如何,Antigravity IDE 都會注入包含其它 workspace 對話的資料。但這理由 AI 自己都覺得傻眼。(黃色標記部分)
所以最後給出軟體層面管不到物理層面(AI 讀檔能力)的解釋。
- AI 沒提出思考中的第一種情況,因為如果是那樣,至少也要提示此開關只作用在對話建立前,這樣才說得過去。
老實說,我不確定,開關是不是對話建立前就關了。
於是開了新 workspace、新對話測試。
測試結果,即使「Conversation History」在對話建立前就關了,AI 仍能回答舊對話相關問題。
但不確定舊對話資料來源,是 AI 口中的"物理層面讀取能力",還是軟體 Antigravity IDE 注入的。
要更深入測試時,額度沒了,只好換個模型重試。
- 新 workspace、新對話,換 Gemini Pro 3.1
這次第二個問題看出答案了,AI 說那些 ID 資料夾都是空的。
查看那三個資料夾,的確都是空的,
所以 AI 能回答出其他專案內容,不是自己的物理層面能力(讀檔能力),
判斷應該是「Conversation History」即使關了,Antigravity IDE 仍對 AI 注入相關資料。
- 問 Gemini 有無讀取其他workspace對話內容權限。
Gemini 說有,還主動去讀我其他專案內容確認,
有點傻眼,我只是問有沒有這權限,AI Agent 就去做了。(黃色標示部分)
如果以後真有 AI 機器人,問是否有某某能力,機器人馬上去做,不就很危險。
- 問 Gemini,「Conversation History」開關作用。
AI 說是掌控能否讀取 \brain\ 底下資料的開關。但事實是關了,AI Agent 仍能讀取。
AI 甚至以這次對話為例,說目前是開啟,所以對話開啟時時,系統底層已經偷偷讀取了最近 10 次的歷史專案清單。
但事實是,目前開關是關的,但軟體仍讓 AI 讀取資料,這也驗證前面第 13 點的推論是對的(空的資料夾,AI 仍知道專案內容,資料來源不是經由讀檔能力)。
- 告訴 Gemini,「Conversation History」設定是關的。
思考後,AI 最後給出跟前面類似回答,AI 的讀檔能力,不受軟體設定影響。
回答跟前一個AI,主要有兩點不同。
第一點:Gemini 特別強調是我的底層環境(Antigravity IDE?),強制將近10次對話摘要給他,不是他越權。畢竟 Gemini 先說了自己收到對話摘要,才被我告知開關是關的,已無法替軟體背書開關是控制軟體是否自動給 AI 注入資料。
第二點:Gemini 說系統架構的限制,無法直接輸出加密的思考過程,但可以重現特定邏輯步驟過程。
但這次,當下我有複製了一些 Gemini 思考內容如下(不確定是否完整),AI 思考提出兩點,一是系統(Antigravity )不理會軟體設定,二是 AI Agent 讀檔能力是不受軟體設定限制的。
creation or appending is required. The aim is to make my process more efficient and elegant.
Refining Tool Usage
I'm now striving for greater precision in tool selection.
My focus has shifted to avoiding grep within bash unless it's the only viable option.
I'm actively listing related tools before any calls and only executing the set if the tools are the most specific.
My goal is streamlined, efficient processes with dedicated tools.
Investigating Access Mechanisms
I'm now investigating why I can access data even when a setting indicates it should be off.
I've identified two potential mechanisms.
First, the system might be injecting historical data into my prompt, bypassing the UI's control.
Second, I have access to local file system tools,
allowing me to potentially read conversation history directly, regardless of the UI setting.
最後 Gemini 提了一個最安全有用的解法,刪掉資料。
其他:
- 測試讀取不是專案資料夾,也不是使用者目錄底下資料夾。
讀取 D 磁碟任一檔案,可以讀取,但會先詢問使用者的允許。
結論與心得:
- Antigravity 的「Conversation History」設定,不管開或關,開啟對話,AI 都會收到軟體注入近10次的舊對話摘要,也包含其他 Workspace 的。
- AI Agent 讀檔能力,不受軟體設定限制。
- 不要無腦允許 AI Agent 的授權詢問,AI 理解要做什麼,不是可預期的。
- 以前以為只有 OpenClaw 這類應用,才須特別注意隱私問題,用獨立系統運作較安全。
目前看起來,一般的 AI Agent 也很可能造成隱私外洩,可能因為軟體限制 bug,或設定效果跟使用者解讀有落差。
沒有留言:
張貼留言