核心問題:
- 現在很多團隊做AI系統有個大毛病:只顧追求“高大上”的新技術(尤其是AI Agent),不管實際業務需不需要。 結果系統搞得又貴、又復雜、還容易出錯。
- 大家被“Agent”這個概念搞暈了:到底啥時候用簡單的大模型(LLM)?啥時候需要RAG?啥場景才真需要Agent?
用簡歷篩選舉例:
你要用AI來自動篩選求職簡歷。根據任務難度和自動化程度,有四個遞進的解決方案級別:
-
基礎版:純大模型(LLM)
- 能力: 就像個記憶力超強的“知識庫”,能理解文字、做簡單判斷。
- 簡歷篩選怎么用: 你給它職位要求和一份簡歷,它告訴你“通過”或“不通過”。但它只能基于自己學過的知識判斷,不知道你們公司內部的具體要求。
- 適用場景: 規則特別簡單明確的任務(比如只看有沒有大學文憑),或者不需要公司內部數據的場景。
- 特點: 最簡單、最便宜、最快,但能力有限。
-
升級版:帶檢索的RAG
- 能力: 給基礎版大模型配了個“外掛大腦”(數據庫)。大模型需要做決定時,先去查相關資料(比如公司內部文檔、招聘政策、歷史簡歷),然后結合這些查到的信息再判斷。
- 簡歷篩選怎么用: 不僅能看簡歷本身,還能去查“我們公司這個職位通常招什么背景的人?”“招聘手冊上有沒有特殊規定?”,然后給出更符合公司實際的判斷。
- 適用場景: 需要結合最新或公司內部信息的任務(比如理解公司特有的技能要求)。
- 特點: 比純LLM更智能、更“懂行”,成本適中,是解決信息時效性和個性化需求的好辦法。
-
自動化版:工具調用/AI工作流
- 能力: 大模型不僅能判斷,還能像程序員一樣,按照設定好的流程,自動調用其他工具/軟件干活(比如查數據庫、發郵件、定日程)。
- 簡歷篩選怎么用: 系統自動從招聘網站拉下新簡歷 -> 調用大模型(可能結合RAG)判斷 -> 根據判斷結果,自動調用郵件系統發“拒信”或者“面試邀請”,甚至能自動把面試時間寫入日歷。
- 適用場景: 流程固定、步驟明確的端到端任務。你想好每一步該干啥,讓AI按部就班執行。
- 特點: 實現了自動化,節省人力,需要預先設計好流程(工作流)。
-
智能版:AI Agent(智能體)
- 能力: 這是最高級別。Agent能自己“動腦筋”做計劃、做決定。它會把一個大任務拆分成小步驟,自己決定什么時候、用什么工具、按什么順序去完成。它還能根據執行結果靈活調整計劃(比如面試時間沖突了,它會主動聯系候選人改時間)。
- 簡歷篩選怎么用: Agent不僅能篩選簡歷發通知,還能主動跟候選人溝通協調面試時間、處理時間變更、安排面試官、甚至跟進面試結果。整個過程不需要人一步步指揮,它能自主決策(在設定范圍內)。
- 適用場景: 復雜、多變、需要動態決策的任務。需要AI具備一定的“自主性”去協調處理。
- 特點: 最靈活、最“智能”,但也最復雜、最貴、最難做穩定可靠(因為決策有不確定性)。
劃重點:
- 別迷信Agent! 不是所有AI系統都需要Agent。越簡單、越可靠、越便宜的系統往往是更好的選擇。
- 按需選擇:
- 簡單分類?用純LLM或加點提示詞工程就夠了。
- 需要查內部資料?RAG是利器。
- 流程固定想自動化?工具調用/AI工作流很合適。
- 任務超級復雜多變,需要AI自主協調?這時候才考慮Agent。
- 可靠性和成本是關鍵: Agent聽起來很酷,但如果一個簡單工作流就能搞定問題,強行上Agent只會增加成本、復雜度和出錯風險(大模型有時會“胡說八道”)。功能多不如系統穩。
- 從簡單開始: 做AI項目最好從最簡單的方案試起(比如純LLM或RAG),能解決問題就不要搞復雜。確實需要更多功能(自動化、自主性)時,再逐步升級架構。先做實驗驗證想法(Proof of Concept),再考慮投入生產環境。
- 簡歷篩選案例的啟示: 篩選簡歷本身,規則明確就用純LLM或RAG;想自動化通知,就用AI工作流;只有當你希望AI能全權負責整個招聘流程(包括溝通協調),才需要Agent。
選AI技術就像選工具,釘釘子用小錘子就行,不需要開挖掘機!這篇文章教你根據“釘子”(你的業務需求)的大小和硬度,選擇合適的“錘子”(LLM/RAG/工作流/Agent),別為了酷炫而過度設計。簡單、可靠、低成本才是王道。
核心觀點:
經驗豐富的開發者對AI編程效率提升持保守態度是有道理的。AI在某些特定任務上能“起飛”,但在復雜項目中效率提升有限。這不是抗拒技術,而是對軟件開發本質和AI當前局限性的清醒認識。
具體解析:
-
效率“起飛”的場景(AI 的閃光點):
- 文章明確指出,在需求明確、范圍小、結果可快速驗證的任務上,AI 效率提升非常顯著:
- 快速寫腳本/原型: 比如寫個爬蟲抓數據,做個簡單功能原型。
- UI 生成: 根據設計截圖生成界面代碼。
- 代碼翻譯: 把代碼從一種語言(如 Python)翻譯成另一種(如 Java)。
- 小工具/簡單功能: 需要少量代碼就能解決的問題。
- 特點: 這些任務相對獨立,上下文依賴少,AI 能快速理解并產出結果。`` (這張圖形象展示了AI在特定場景如爬蟲、UI生成、代碼翻譯上的高效表現)
- 文章明確指出,在需求明確、范圍小、結果可快速驗證的任務上,AI 效率提升非常顯著:
-
效率“下降”的原因(現實的挑戰):
當項目變得復雜,超越簡單的腳本或原型階段時,AI 的效率光環就會褪色:- “屎山代碼”的魔咒: 幾乎所有真實項目最終都會積累混亂、難以維護的代碼(屎山)。AI 非常不擅長在這種復雜、混亂的上下文中準確理解意圖和保證不引入錯誤或破壞原有功能。
- 需求的模糊性: AI 無法直接處理模糊的人類需求(比如“做個用戶友好的登錄功能”)。開發者必須先理解業務、梳理現有架構、將需求轉化為精確的技術語言,才能有效地指導 AI。AI 目前無法替代這部分核心的認知和抽象工作。
- 復雜實現的溝通成本: 描述一個復雜的技術實現本身就很難。AI 給出的方案可能不是開發者真正想要的,或者需要反復調試、修改、甚至完全重試。這種反復生成、驗證、修改的過程本身消耗了大量時間和精力,抵消了初始生成的“快感”。
-
關于“屎山代碼”和架構的深入討論:
- 新項目也難逃“屎山”? 文章指出,即使從一個全新的、架構設計良好的項目開始,隨著需求不斷變化(舊架構是為舊需求設計的)和實施過程中對架構理解的偏差(人或AI都可能理解不到位),代碼質量依然會下滑,最終形成新的“屎山”。AI 開發速度快,可能只是更快地制造出新的“屎山”。
- 微服務架構的“復興”可能? 文章提到一個有趣觀點:在AI編程時代,微服務架構可能重新獲得青睞。原因是:
- 微服務強調低耦合,服務間通過明確接口通信,內部實現相對自由。
- 只要接口穩定,單個服務內部的代碼質量要求可以相對降低(即使內部代碼有點“亂”),這對能快速生成代碼但難以保證全局最優的AI來說更友好。
- 微服務也不是萬能藥:
- 它非常考驗架構師的能力(服務拆分不合理會更糟)。
- 跨多個服務的更新對AI來說難度更大。
- 只適合中大型項目后端,小項目用就是自找麻煩(過度設計)。
總結:
- AI編程是強大的工具,但非萬能神器。 它在特定、明確的任務上能顯著提升效率。
- 軟件開發的核心挑戰(如理解模糊需求、管理復雜系統、維護代碼質量)并未因AI而消失。 經驗豐富的開發者知道這些挑戰是根本性的,AI 目前主要作用于外圍輔助。
- 對效率提升需有合理預期。 指望AI徹底改變開發流程或解決所有代碼質量問題是不現實的。它更擅長做“加法”(快速生成特定代碼塊),而不是解決“減法”(理解和梳理復雜混亂的上下文)和“乘法”(設計優秀架構并長期維護)的問題。
- 關鍵在于明智地使用。 開發者需要判斷何時使用 AI(利用其優勢處理明確小任務或快速原型)以及何時依賴傳統方法和自身經驗(處理復雜邏輯、核心架構、模糊需求和維護大型系統)。
AI編程像一把鋒利的瑞士軍刀,擅長完成特定的小任務(如開瓶、剪線),但用它來建造和維護一座摩天大樓(復雜軟件項目)就顯得力不從心了。經驗豐富的開發者知道該在什么時候、什么地方用這把刀最有效。
1. 當前量產主流:BEV感知已成熟,但遭遇瓶頸
- 現狀: 基于BEV(鳥瞰圖)的感知方案(動態/靜態目標檢測、占據柵格OCC)已成為量產標配,替代了早期的單目/雙目檢測分割方案。它在高速NOA等結構化道路場景表現出色。
- 難點/瓶頸:
- 長尾場景(Corner Case): 如非結構化道路(鄉村路)、超復雜路口、奇葩車道(最左道右轉)、極端擁堵等場景,各家方案都難以100%可靠處理。99%的場景能做好,但剩下1%的長尾問題消耗了80%的精力。
- 數據依賴與迭代方式: 傳統方法是不斷收集特定問題(Issue Case)數據打補丁,陷入“發現問題-加數據/規則-又發現新問題”的循環,被認為效率低下且難以達到理想L4水平。``
- 感知研究價值爭議: 有觀點認為感知基礎研究空間被擠壓,甚至出現“感知不值得研究,要轉向World Model/E2E”的極端看法(雖不全面但反映趨勢)。
2. 新興技術熱點:VLA/VLM 成為新寵,但仍存挑戰
- 什么是VLA/VLM? 視覺語言助手 (VLA) / 視覺語言模型 (VLM)。利用大模型強大的理解和推理能力,讓車輛像人一樣“理解”場景并決策,旨在解決長尾問題和擺脫打補丁循環。
- 為什么火? 提供了解決自動駕駛根本性挑戰(理解、推理、泛化)的新可能。``
- 主要挑戰與質疑:
- 落地真實性存疑: 很多宣傳“上車”的VLA方案是否真正有效解決核心駕駛問題(而非僅用于人機對話)?缺乏公開證據。``
- 數據壁壘: 工業界真實有效的長尾數據不愿/難以共享,學術界數據(開源數據集或仿真數據)往往與工業需求脫節,不足以支撐VLA迭代。``
- 算力與效率: 大模型延遲高,難以滿足車規級實時性要求。小模型能力又不足。分層VLA、蒸餾、輸出形式優化(如結構化輸出替代自然語言)是當前研究方向。``
- 專用性不足: 缺乏為自動駕駛量身定制的VLM基座模型(特別是空間理解、駕駛常識、拓撲關系推理能力)。現有模型多是通用模型魔改。
- 安全兜底: 純數據驅動的VLA在簡單/安全關鍵場景可能出現“過度自信”或“常識錯誤”,如何與現有成熟方案結合(如DiffVLA提出的兩階段+規則兜底)是現實考量。``
3. 其他技術方向點評
- 端到端 (E2E):
- 現狀: 理念吸引人(輸入圖像/傳感器數據,直接輸出控制信號),但量產落地優勢尚不明顯。相比成熟的兩階段方案(感知模塊+規劃控制模塊),在數據收集、訓練成本、可操作性上可能不占優。
- 未來: 與強化學習、閉環仿真結合可能是突破口。
- 擴散模型:
- 潛力: 用于生成多模態軌跡,能更好地表達駕駛環境的不確定性(未來有多種可能路徑)。
- 疑問: 在真實復雜場景和困難場景中的實際效果有待驗證。實時性提升是關鍵(如DiffusionDrive)。
- 世界模型 (World Model):
- 作用: 主要用于預訓練、仿真/數據生成、端側推理。在仿真和數據生成方面價值顯著(彌補真實數據不足,降低成本)。
- 疑問: 具體“世界”了什么?對端到端駕駛有多大直接幫助?尚在探索。``
- 強化學習 (RL):
- 潛力: 在隔壁具身智能和大模型領域大放異彩,理論上能突破模仿學習上限。
- 挑戰: 在自動駕駛領域應用不溫不火。難點在于高保真仿真環境構建(需精確建模其他交通參與者行為,難度不亞于自駕本身)和極高的安全性要求(不能靠假設他人讓行)。``
- 閉環仿真:
- 重要性大增: 被認為是VLA/RL訓練和量產方案驗證的必經之路,尤其對于追求安全和解決長尾問題。基于3D高斯(3DGS)等技術重建場景是熱點。
- 難點: 位姿不準影響重建質量,新視角生成效果,Sim2Real(仿真到真實)的差距問題。
- 3D高斯 (3D Gaussian Splatting - 3DGS):
- 潛力: 作為一種新穎的3D場景表征和重建方式,可能成為世界模型的基礎或用于閉環仿真,仍有優化空間(高斯核形狀、函數等)。
4. 未來方向共識
- 數據驅動與閉環為王: 未來競爭核心是高效的數據閉環運營能力(快速收集、清洗、標注、訓練、驗證)。誰能建立強大的AI驅動數據流水線和工具鏈,誰將領先。``
- VLA/VLM是重要方向但需持續投入: 是解決理解、推理、泛化的希望所在,但需克服專用基座模型、算力、數據、安全驗證等挑戰。
- 系統整合: 將VLA/VLM、世界模型(仿真)、強化學習、智能體模擬(Agent Simulator)等整合成高效閉環系統是關鍵趨勢。
- 艙駕一體與體驗提升: 結合語音、OS,提升整體用戶體驗。
- 中心化與群體智能探索: 未來可能探索車端(邊緣)與云端(中心)協同,甚至V2X車路協同的群體智能方案。
5. 深耕智駕 vs 投身具身智能?
- 現狀: 自動駕駛進入攻堅期(0.99->1),解決長尾問題難;具身智能(機器人)處于更早期(0->1),機會多但不確定性也大。
- 專家建議:
- 看興趣與平臺: 選擇自己熱愛且能發揮所長的領域。
- 看技術通用性: 自動駕駛中對感知、規劃、控制、大模型應用的經驗,部分可遷移到具身智能。選擇知識遷移性強的方向更穩妥。
- 理性評估: 考慮自身能力、資源、風險承受能力。具身作為新領域,技術路線和市場需求尚在形成中。
自動駕駛目前處于“BEV打基礎已成熟,VLA攻長尾是熱點,數據閉環定勝負”的階段。技術發展迅猛(BEV到VLA僅兩三年),但量產落地仍需腳踏實地,解決真實場景難題(尤其是那1%的長尾)和構建高效數據閉環體系是核心挑戰。專家們對VLA寄予厚望但也保持審慎樂觀,認為它代表未來方向但落地之路尚需克服諸多障礙。
核心發現(最反常識的點):
- AI工具反而拖慢了資深開發者! 研究發現,有經驗的開發者在使用當時(2025年初)的AI編程工具(如 Cursor Pro + Claude 3.5/3.7)處理自己熟悉的、大型的、復雜的開源項目時,完成任務所需的時間平均增加了19%。這和他們自己預期的效率提升24% 完全相反。
- 認知偏差存在: 即使親身經歷了效率下降,開發者們事后仍然認為AI幫他們提高了20%的效率。這表明開發者對AI工具的能力存在明顯的樂觀偏差。
研究怎么做的?
- 研究對象: 邀請了16位經驗豐富的開源開發者,他們都長期貢獻于知名的大型開源項目(項目平均有10年歷史,代碼量超110萬行,他們平均有5年經驗,提交過1500次代碼)。
- 研究任務: 開發者們提供了246個真實任務(如修復bug、開發新功能),這些都是他們日常工作的一部分。
- 實驗分組: 這些任務被隨機分配到兩個組:
- AI組: 允許開發者使用AI工具(主要是Cursor Pro)。
- 對照組: 禁止使用任何AI工具。
- 記錄與報酬: 開發者完成任務時會錄屏,并報告實際耗時。他們按小時獲得報酬(每小時150美元)。
- 核心對比: 比較同一批開發者在處理相似難度任務時,使用AI vs 不使用AI 的實際完成時間差異。
為什么AI會拖后腿?(關鍵減速因素分析)
研究分析了20個可能因素,找出了5個主要原因(前3個最重要):
- 開發者過于樂觀 (C.1.1):
- 實驗前,開發者普遍認為AI能幫他們省時24%。
- 這種樂觀可能導致他們在使用AI時投入了過多精力去嘗試讓它工作,或者高估了AI產出的質量。
- 開發者對代碼庫太熟悉 (C.1.2):
- 資深開發者對自己項目的代碼、架構、歷史決策了如指掌。
- AI很難提供超越他們自身知識水平的有效幫助,反而可能給出不合適的建議,需要開發者花時間去甄別、修正甚至放棄。
- 在自己更熟悉的任務上,AI拖慢效果更明顯!
- 代碼庫太大太復雜 (C.1.3):
- 研究的項目都是歷史悠久、規模龐大的開源項目。
- AI工具在處理這種級別的復雜性(尤其是隱含的上下文、非標準的實現)時表現較差,給出的建議常常不適用或需要大量修改。
- AI生成的代碼不可靠 (C.1.4):
- 開發者最終只接受了不到44%的AI生成代碼。
- 大部分接受的代碼都需要顯著修改(平均花費了開發者9%的時間來審查和修改AI的產出)。
- AI可能會產生錯誤、不符合項目規范、或者忽略邊緣情況的代碼。
- AI不理解隱含上下文 (C.1.5):
- 大型項目有很多“只可意會不可言傳”的知識和背景(為什么代碼這么寫,歷史原因等)。
- AI工具難以捕捉和利用這些隱含信息,導致建議脫離實際項目需求。
這個結論和大眾印象矛盾嗎?怎么解釋?
是的,這個結論似乎與“AI極大提升效率”的普遍宣傳和許多個人體感不符。研究提出了三種可能的解釋:
- 研究低估了AI (假設1): 也許是實驗設計或情境本身存在問題,沒能捕捉到AI的真實價值。
- 標準評測和大眾反饋高估了AI (假設2):
- 標準評測 (如SWE-Bench): 評測任務通常是獨立、明確、容易自動打分的,不能反映在龐大復雜真實項目中工作的挑戰。
- 大眾積極反饋: 可能更多來自處理相對簡單、獨立的任務,或者使用者經驗較淺(新手可能受益更大)。
- 衡量的是不同情境 (假設3):
- 本研究的RCT: 衡量的是資深開發者在熟悉的超大型復雜項目中完成真實任務的效率。
- 標準評測: 衡量AI在特定、有限制的評測任務上的表現。
- 大眾反饋: 衡量AI在更廣泛、多樣化但可能更簡單或更獨立任務中的感知有用性。
- 結論: 在資深開發者 + 超大型復雜項目這個特定場景下,2025年初的AI工具確實導致了效率下降。
研究的意義和局限:
- 意義:
- 提供了在特定但重要場景下,對AI工具實際效果的嚴謹評估。
- 揭示了AI工具當前能力的局限性(尤其在復雜性和深度集成方面)。
- 強調了在評估AI影響時需要考慮具體場景(誰用?做什么?在哪做?)。
- 局限(研究明確說明):
- 不代表大多數開發者: 研究聚焦于資深開發者在大型開源項目上的工作,不適用于所有程序員或所有工作場景(如小型項目、新手、非代碼任務)。
- 不否定AI在其他領域的潛力: 僅針對該研究情境。
- 不預示未來: AI技術發展快,未來可能有改進。
- 可能不是最優AI使用法: 研究中開發者自由使用AI,但可能存在更高效的用法未被發掘。
2025年初,對于經驗豐富、長期維護大型復雜開源項目的開發者來說,使用當時先進的AI編程工具(如Cursor + Claude)不僅沒有像預期那樣提升效率,反而平均增加了19%的任務完成時間。主要原因包括開發者過度樂觀、自身對代碼庫過于熟悉導致AI難有用武之地、大型項目的復雜性超出AI處理能力、AI生成的代碼不可靠需大量修改、以及AI無法理解項目隱含的上下文知識。這提醒我們,AI工具的實際價值高度依賴于使用場景和使用者經驗。