AI 撰寫的程式碼,能分辨是真人所寫還是 AI 所為?「程式碼來源證明」解答

以圖形視覺化方式,區分人類撰寫的程式碼與 AI 代理程式撰寫的程式碼逐行內容的圖示
AI Summary

在 AI 代理程式編輯程式碼的時代,「AI 程式碼來源證明」技術,能逐行記錄程式碼的作者,正成為維護資料可信度的關鍵鑰匙。

想像一下。一個忙碌的早晨,您對 AI 助理下達指令:「請修復我昨天正在處理的應用程式中,有關付款邏輯的錯誤。」AI 代理程式 (AI agent) 會在瞬間分析並修改數百行程式碼,然後回報任務已完成。但您是否曾閃過一個疑問:「這段程式碼中,有多少是我的想法和意圖的體現,又有多少是 AI 的自主判斷?」

近期,人工智慧不再僅限於回答問題,而是開創了「代理程式時代」,能直接修改、編輯程式碼並執行創意工作。在這令人驚嘆的發展浪潮中,開發者面臨了新的挑戰:AI 究竟修改了什麼、修改到何種程度,往往難以清晰得知。今天,我們將深入探討「AI 程式碼來源證明 (Provenance)」技術,以解決這種混亂,並讓人類與 AI 的協作更加透明。

這為何如此重要?

「誰寫了這段程式碼?」這個問題不僅是單純的好奇,更與軟體開發的信任度和責任感息息相關。許多開發者利用大型語言模型 (LLM: Large Language Model) 時,並非用於從頭開始建立新程式碼,而是更多地用於修改或改進現有程式碼 來源:EditLens: Quantifying the Extent of AI Editing in Text, [來源:EditLens: Quantifying the Extent of AI Editing in Text OpenReview](https://openreview.net/forum?id=gOkitaPCfZ)。

人類透過長時間思考和設計所撰寫的程式碼,對開發者而言如同「神聖之物」。這是因為程式碼中蘊含了開發者的經驗、哲學以及對問題解決的深刻洞見。反觀 AI 所產生的程式碼,即所謂的「廢料 (slop)」,有時可能包含不必要或效率低下的程式碼,進而對專案造成負擔 來源:GitHub - eighttrigrams/us-vs-them。因此,為了防止 AI 代理程式任意覆蓋開發者珍貴的意圖,明確記錄是誰、在哪些部分撰寫或修改了程式碼,已成為確保專案資料可信度、穩定性,乃至釐清法律責任的關鍵課題。若無此透明記錄,一旦發生錯誤,將極難追溯責任歸屬,或找出安全漏洞的來源。

輕鬆理解:AI 與人類的程式碼時間軸

簡而言之,AI 程式碼來源證明 就像是照片編輯應用程式中的「歷史記錄」功能。當我們編輯照片時,所有套用濾鏡的強度、調整尺寸的大小等過程都會被記錄下來,這樣我們就可以隨時恢復到原始狀態或撤銷特定步驟。同樣地,這項技術會為程式碼的每一行貼上「標籤」,準確記錄是哪個 AI 模型、在何種提示詞 (指令) 的驅動下、何時進行了介入 來源:AI Code Provenance: Track Which Agent Wrote Which Line

AD
實現這類記錄的關鍵工具之一是「AgentDiff」。AgentDiff 會將所有這些記錄儲存在軟體開發中廣泛使用的版本控制工具「Git」中 來源:GitHub - codeprakhar25/agentdiff, 來源:AgentDiff — Line-level provenance for AI-authored code。這就像在圖書館修改書籍時,人在修改的句子上蓋上「作者親筆修正」的印章,而 AI 修改的句子則蓋上「AI 自動生成」的印章。透過這個系統,我們能夠清楚地區分程式碼的哪些部分源於人類的創意,哪些部分是 AI 高效工作的成果。特別是「AgentNote」這款工具,它利用名為「3-Diff 演算法」的精密分析技術,仔細分析 Git commit (Git 中記錄的變更單位) 內的程式碼行,精確識別出哪些部分是人類的筆跡,哪些部分是 AI 的工作 [來源:Line-Level Attribution (3-Diff Algorithm) wasabeef](https://deepwiki.com/wasabeef/AgentNote/4.1-line-level-attribution-(3-diff-algorithm))。這項技術就像法醫分析證據一樣,能夠深入挖掘程式碼的變更歷史,揭示真相。

現況:進展到哪個階段了?

我們已經在技術層面深入發展,能夠區分人類和 AI 所撰寫的文本。研究表明,AI 修改或生成的文本,與人類撰寫的文本相比,具有獨特的模式和風格特徵,可透過機器學習 (machine learning) 精確辨識 來源:EditLens: Quantifying the Extent of AI Editing in Text, 來源:Classifying human vs. AI text with machine learning and …

儘管這些 AI 偵測技術日益精進,使用者自行驗證和管理「誰寫了程式碼」的需求也日益增長。為了滿足這些需求,目前 Claude Code、Cursor、Copilot 等各種最新的開發工具,都積極導入並發展符合 AI 代理程式時代的程式碼來源透明管理系統 來源:AgentDiff — Line-level provenance for AI-authored code。這些系統能協助開發者在獲得 AI 協助的同時,仍能保有對自身程式碼的完全控制權和理解度。這就像建築師在複雜的設計圖上採納 AI 的建議,同時也留下自己承擔最終責任的清晰記錄。

未來展望?

未來,「誰寫了程式碼」的透明記錄將成為開發流程的基本且必需的要素。人類撰寫的程式碼將受到 AI 代理程式的更加珍視,AI 在修改程式碼時,會檢視每行程式碼上留下的來源記錄 (Provenance),並判斷「這部分是人類精心編寫的重要程式碼,修改時應特別謹慎」。

最終,人類與 AI 並非競爭關係,而是將朝向基於清晰記錄和相互尊重的更強大協作方向演進。這項技術將提升開發過程的透明度,並在創建可靠軟體方面發揮決定性作用。您每次撰寫程式碼時,留下透明的軌跡,不僅有助於日後查找難以預料的錯誤或應對安全威脅,更將最終為開啟更有效率、更富創意的「人機協作時代」奠定基礎。這項技術不僅是簡單的記錄,更將成為人類創造力與 AI 效率和諧共存的未來開發環境的核心支柱。

MindTickleBytes AI 記者視角

隨著技術的進步,「人類的思維」與「人類的雙手」將變得更加珍貴。這次的 AI 程式碼來源證明技術,反而會在 AI 時代成為證明和保護人類獨特性與創造力的最強大機制。當 AI 快速作業時,人類將能更專注於深入思考和做出更重要的決策。這不僅僅是關於編寫程式碼,更是提升人類智識價值的關鍵轉捩點。

參考資料

  1. GitHub - eighttrigrams/us-vs-them
  2. [Nuxt HN Human vs. AI – Diff-based line-level provenance for …](https://hn.nuxt.dev/item/49232300)
  3. AI Code Provenance: Track Which Agent Wrote Which Line …
  4. GitHub - codeprakhar25/agentdiff: Git-native AI code …
  5. [Line-Level Attribution (3-Diff Algorithm) wasabeef …](https://deepwiki.com/wasabeef/AgentNote/4.1-line-level-attribution-(3-diff-algorithm))
  6. AgentDiff — Line-level provenance for AI-authored code
  7. Classifying human vs. AI text with machine learning and …
  8. EditLens: Quantifying the Extent of AI Editing in Text
  9. [EditLens: Quantifying the Extent of AI Editing in Text OpenReview](https://openreview.net/forum?id=gOkitaPCfZ)
AD
測試你的理解
Q1. AI 程式碼來源證明 (Provenance) 的主要目的是什麼?
  • 提升 AI 模型速度
  • 記錄並驗證程式碼的作者與來源
  • AI 生成程式碼的完美自動修復
AI 程式碼來源證明是記錄哪個代理程式、模型、提示詞 (prompt) 撰寫了每一行程式碼,並留下可驗證的證據的技術。
Q2. AI 代理程式在處理由人類撰寫或編輯的文本時,應持有什麼樣的態度?
  • 可以隨時修改
  • 應視為神聖,謹慎處理
  • 應自動刪除
人類觸及的文本應被視為「神聖之物」,AI 代理程式必須謹慎處理,切勿隨意修改。
Q3. 用於區分 AI 生成程式碼與人類撰寫程式碼的演算法是什麼?
  • 1-Diff 演算法
  • 2-Diff 演算法
  • 3-Diff 演算法
AgentNote 等系統使用「3-Diff 演算法」,精確識別 AI 代理程式撰寫的程式碼與人類撰寫的程式碼。