AI 是如何改你的檔案的
AI 回傳的文字,如何透過終端機、工具與作業系統,變成真正修改檔案的動作?
我們今天稍微來談一下,AI 是怎麼改動你的檔案的。
你不覺得很奇怪嗎?你跟 ChatGPT 聊天,你打文字,它回你文字。可是換成 Codex、Claude Code 這類 AI Agent,為什麼它就可以改你電腦裡的檔案?
明明模型產生的,也只是文字。
要理解這件事情,可以先把聊天視窗放在旁邊,想一下:我們平常是怎麼叫電腦做事的?
電腦本來就可以用文字操作
大家可能在電影裡看過,一個黑色畫面,上面都是文字。以前接觸過 DOS 的人,應該也對這種畫面很熟悉。
看起來沒有按鈕,也沒有什麼東西可以用滑鼠點,但不代表你不能操作。
你可以輸入指令,按下 Enter,讓電腦列出檔案、開啟程式,或把內容寫進檔案。
所以,文字本來就可以拿來操作電腦。
只是這裡有一個前提:要有程式接收這些文字,按照約定好的規則解讀,再請作業系統執行動作。
你在記事本裡寫「把檔案刪掉」,檔案不會自己消失。因為記事本只是把這句話存起來,沒有把它當成操作指令。
同樣的文字,交給不同的程式處理,結果就不一樣。
終端機就是其中一個入口
在 Windows、macOS 裡面,都有可以輸入指令的環境。你可能聽過終端機,也就是 Terminal,或是命令提示字元。
這些名稱不完全是同一件事,不過我們先抓住一個概念:你可以透過這種介面,用文字叫電腦做事。
再講細一點,終端機負責讓你輸入、顯示結果;解讀指令的程式,通常叫做 Shell。
你輸入文字,Shell 看懂指令的結構,再執行對應的動作。當然,如果你隨便打一段它不認識的文字,它也可能只會回你錯誤訊息。
所以這中間其實已經有一套接好的機制。你不用自己處理硬碟怎麼寫入,也不用知道電腦裡的線路怎麼連。
你只要用它懂的方式下指令。
先不用 AI,也可以用文字改檔案
我們先看一個很簡單的指令,叫做 echo。
下面都是假設示範,使用的是 macOS 或 Linux 常見 Shell 的寫法,沒有在你的電腦上執行。
echo 123
這個指令會把 123 顯示出來。
你給它什麼文字,它就把文字輸出。先不用管它能做多少事情,我們只看這個最基本的用法。
接著,如果寫成這樣:
echo 123 > example.txt
結果就不只是顯示在畫面上了。
這裡的 >,會讓 Shell 把前面指令的輸出,寫進 example.txt。假設這個檔案原本不存在,而且目前的位置允許寫入,就會建立檔案,內容是 123,後面帶一個換行。
如果同名檔案已經存在,這個寫法通常會覆蓋它原本的內容。
你看,這裡完全沒有 AI,檔案就已經可以被改動了。
因為這串文字被交給會執行指令的程式,而那個程式有權限寫入檔案。
把指令接起來,就可以做更多事情
那如果你有很多個步驟呢?
例如,先輸出 123,再輸出 456,最後輸出 789。
echo 123
echo 456
echo 789
這樣會依序顯示三行內容,不會自動黏成同一行的 123456789。
你可以把這幾行存成一個檔案,再交給 Shell 執行。這就是一個很簡單的 Script,也就是腳本。
原本要自己一行一行輸入的操作,就可以整理成一段執行順序。
除了按照順序執行,Shell 也有把程式接起來的功能。其中一個叫做 Pipe,通常寫成 |。
它會把前面程式的標準輸出,接到後面程式的標準輸入。
這句話聽起來有點抽象,我們看個例子:
echo 123 | cat
前面的 echo 輸出 123,後面的 cat 讀取傳過來的內容,再把它輸出。
所以你還是會看到 123。
不過,後面的程式必須會讀取這份輸入。你不能以為隨便接一個 echo 456,它就會自動把前面的內容加上去。
Pipe 負責傳資料,資料怎麼處理,要看接收的程式。
同樣地,一段文字被傳給下一個程式,也不代表它一定會被當成指令執行。如果交給的是 Shell 這類能解讀指令的程式,才有可能進一步變成操作。
AI 產生的文字,就是這樣接上工具的
回到一開始的問題:AI 為什麼可以改你的檔案?
假設我們有一個可以執行 Shell 指令的 AI Agent,你請它:「幫我建立一個 example.txt,內容寫 123。」
模型可以產生剛剛那段指令:
echo 123 > example.txt
如果它只是把這段內容貼在聊天視窗裡,那你看到的就只是一段文字。
但如果外面的程式有接上執行工具,它就可以把這段指令送進 Shell。Shell 再透過作業系統,把內容寫進檔案。
這中間多了一個真正執行動作的環節。
不過,修改檔案也不一定都要繞過終端機。
有些工具可以直接讀檔、寫檔,或套用一份修改內容。模型提供檔案位置和要修改的文字,外面的程式再呼叫工具,完成寫入。
所以,把 AI Agent 理解成「會幫你下終端機指令的程式」,可以先理解其中一種常見做法。但它能使用的工具,也可能包含檔案編輯、搜尋或瀏覽器操作。
模型負責決定下一步,工具負責執行,執行結果再交回模型。這也是 Anthropic 在介紹 AI Agent 的文章裡,說明這類系統運作方式時的核心概念。
為什麼你講一次,它可以連續做很多步?
因為外面的程式,可以把執行結果再送回去給模型看。
假設你要它修改一篇文章,它可能先讀取檔案,取得原文,再決定要改哪一段,接著呼叫工具寫入,最後重新讀取,確認內容。
如果工具回報找不到檔案,模型就能根據這個結果,決定要不要先查詢檔案位置。
這樣就形成一個循環:決定動作、呼叫工具、取得結果,再決定下一步。
所以你只交代一次,它可以接著做幾個步驟。至於什麼時候停下來,會受到任務狀態、程式設定和工具限制影響。
它不是把一大串文字吐完,就代表事情全部完成了。工具有沒有成功執行,會直接影響後面的動作。
能改哪些檔案,還是要看權限
那它是不是什麼都能改?
這就要看執行工具的環境,開放了哪些能力。
例如,工具可能只允許讀取某個資料夾,或只允許在工作目錄裡寫入。模型就算產生了修改其他檔案的指令,執行時也可能被擋下來。
如果執行程式的帳號有更高權限,它能影響的範圍通常也會更大。
不過,就算是超級使用者,仍然可能受到沙箱、作業系統保護或其他限制。不能直接理解成,開了最高權限,就一定能操作電腦裡所有的東西。
下次你看到 AI 說「檔案已修改」,可以去看它的工具紀錄:它讀了哪個檔案、送出了什麼修改、工具回報了什麼結果。
如果它只是回傳一段改好的內容,還需要有人或程式把內容存進去。如果它已經呼叫寫入工具,而且工具回報成功,那才有實際寫入檔案的依據。

