跳至主要內容
Aurikle
AI與系統Aurikle

AI 程式代理和自動完成有什麼分別

AI 程式代理和自動完成的分別,在於自動完成跟著你正在打的那一行,代理則接下你寫明的整段任務並自行改檔。自動完成可以拒絕,或只收下一部分。代理改動的檔案與它提出的指令,仍要由人看過再留下。

目錄
  1. 自動完成跟著游標
  2. 代理接下整段任務
  3. Cursor 把 Tab 和 Agent 分開
  4. GitHub Copilot 把兩種模式分開
  5. 大任務先寫計畫
  6. 差異與指令仍由人收
  7. 什麼時候只要自動完成
對應服務流程代理與工作流程自動化閱讀這篇

自動完成跟著游標

自動完成出現在你正在輸入的位置,建議下一行程式或一小段修改。你接受、拒絕,或繼續打字把它忽略。它不替你決定這次任務要改哪些檔案。

這一層適合已經知道要改哪裡、只差寫法的時候。任務本身尚未寫清時,自動完成仍會給出語法上看起來完整的片段。片段能不能進程式庫,仍看它是否對上你要做的那一件事。

代理接下整段任務

代理從一段寫明的任務出發,自己列出要看的檔案、要改的地方,以及要跑的指令,然後反覆直到它認為任務完成。你要看的是整份差異與指令紀錄,少只看最後一句「已完成」。

多步驟、要在幾份檔案之間對上、或要跑指令才能知道結果的工作,才值得交給代理。只改一個已經打開的函式,自動完成通常就夠。代理與工作流程怎麼對上,見 流程代理與工作流程自動化。

Cursor 把 Tab 和 Agent 分開

Cursor Tab 說明 把 Tab 寫成依照最近編輯、周圍程式與 linter 錯誤提出的自動完成。建議以灰色文字出現在游標前方。接受整段按 Tab,拒絕按 Escape 或繼續輸入,也可以逐詞接受。該頁寫明,接受一次之後再按 Tab,Tab 會預測下一個編輯位置並跳過去;需要改另一個檔案時,編輯器下方會出現一個入口。

Cursor Agent 說明 把 Agent 寫成可以獨立完成複雜程式工作、執行終端指令並修改程式的助理。同一頁寫明,Agent 在作出較大改動前會建立檢查點,檢查點只存在本機並與 Git 分開,還原時只回復檔案。永久紀錄仍提交到 Git。

GitHub Copilot 把兩種模式分開

inline suggestions 的負責任使用說明 把建議寫成自動完成:補目前這一行、產生新區塊,或提議對既有程式作插入、修改與刪除。你可以全部或部分接受,也可以關掉或繼續打字。該頁寫明,語法正確仍未必安全,應沿用安全程式與審查做法。

在 IDE 中使用 agent mode 寫明,agent mode 用於任務複雜、包含多個步驟與錯誤處理、並希望由 Copilot 決定步驟的時候。它決定改哪些檔案、提出程式變更與終端指令,並反覆直到原先的任務完成。預設要先核准指令。該頁並寫明,任務很大或含糊時,可先寫實作計畫。兩件產品怎麼選,見 Cursor 和 GitHub Copilot 怎麼選。

大任務先寫計畫

Copilot 的 agent mode 說明建議,任務很大或含糊時先起草實作計畫。計畫寫明要改的行為、不改的行為、以及完成時怎麼核對。代理按計畫做,少按一句口頭的「幫我改好」。

計畫本身由負責人看過再交給代理。計畫裡沒有的檔案,代理若仍去改,審查時整份退回,由人刪掉多餘的差異後再送。

差異與指令仍由人收

自動完成的接受動作發生在游標旁,打字的人當下就能看到建議。代理的接受動作發生在一批檔案與若干指令之後,要另留時間看差異。兩種接受不要混成同一種習慣。

指令若被設定成自動執行,範圍只限已經寫明、且失敗不會改動資料的指令。會安裝套件、會推上遠端、會改資料的指令,仍停下來等人。Copilot 的說明寫明,管理員或編輯器設定可以放寬預設的核准;放寬要寫在項目範圍裡,並註明是誰核准的。

什麼時候只要自動完成

任務已經落在一個打開的檔案裡、改動一眼能看完、而且不需要跑指令才能判斷對錯時,只要自動完成。代理會把一個小改動擴成多檔修改,審查成本高過改動本身。

程式庫還沒有審查規則、或目錄裡仍有不該被讀到的秘密時,先不要開代理。先把範圍劃好,見 AI 程式工具如何接到既有程式庫。

相關筆記