現(xiàn)私密、自主的結(jié)對(duì)編程)
我其實(shí)一直不太信終端里的AI能把活干完這種說法直到上個(gè)月我把AI結(jié)對(duì)伙伴從云端遷到了本地終端用OpenCode這個(gè)開源智能體跑了一個(gè)真實(shí)的小項(xiàng)目。它不像編輯器插件那樣只給你彈補(bǔ)全也不像網(wǎng)頁(yè)聊天框那樣只陪你聊思路而是真的可以讀倉(cāng)庫(kù)、改文件、跑命令、看測(cè)試結(jié)果然后自己決定下一步干什么。這篇文章就聊聊OpenCode到底是什么、能在本地終端里做什么、和云端助手比到底哪兒不一樣以及我在真實(shí)項(xiàng)目里用它干活的完整過程和踩坑記錄。適合所有在意代碼隱私、受夠了訂閱費(fèi)用、又希望AI能主動(dòng)動(dòng)手改代碼而不是只會(huì)提建議的開發(fā)者。1. 為什么我把AI結(jié)對(duì)伙伴從云端搬回了本地終端1.1 云端助手的三筆隱形成本先說第一筆賬隱私。我之前用云端AI助手處理代碼時(shí)每次要把代碼片段傳到遠(yuǎn)程服務(wù)器哪怕工具承諾不會(huì)拿來訓(xùn)練模型我心里還是不踏實(shí)。尤其碰到還沒公開的算法模塊、客戶數(shù)據(jù)脫敏邏輯、內(nèi)部中間層接口傳上去就像把草稿紙交給街邊打印店復(fù)印你不知道它會(huì)不會(huì)被多看一眼。很多公司干脆禁止這類工具因?yàn)楹弦?guī)部門一看到代碼上傳到第三方就直接搖頭。但不是所有開發(fā)者都意識(shí)到這個(gè)限制已經(jīng)成了云助手的硬天花板。第二筆賬是延遲和訂閱費(fèi)。云端助手每個(gè)操作都要走網(wǎng)絡(luò)雖然大部分時(shí)候也就一兩秒但遇到需要連續(xù)多輪修改文件的任務(wù)等待時(shí)間會(huì)不斷累積。一次大重構(gòu)可能來回幾百輪每一輪都在付費(fèi)、都在等網(wǎng)絡(luò)往返。按月訂閱看起來不貴可真算到每次代碼補(bǔ)全、每個(gè)對(duì)話的單價(jià)你會(huì)發(fā)現(xiàn)日常開發(fā)里有大量無效請(qǐng)求在消耗額度。第三筆賬是上下文隔離。云端助手通常以當(dāng)前文件或當(dāng)前項(xiàng)目的局部上下文為主你讓它改一個(gè)跨模塊、跨目錄的接口變更時(shí)它經(jīng)常記不住前面的約定需要不停地重新粘貼代碼。我在一個(gè)大倉(cāng)庫(kù)里試過它很快就把關(guān)鍵信息忘了回答開始自相矛盾。問題不在模型本身而在工具沒法把整個(gè)倉(cāng)庫(kù)的上下文穩(wěn)定地送到模型眼前。1.2 本地智能體解決什么不解決什么OpenCode這類本地終端智能體解決的正是上面三件事代碼不用出機(jī)器上下文由Agent自己掃描本地倉(cāng)庫(kù)來構(gòu)建網(wǎng)絡(luò)成本幾乎為零也沒有訂閱合同。它更像一個(gè)住在你電腦里的實(shí)習(xí)生你可以讓它翻你自己的文件、看你自己的錯(cuò)誤日志、改你自己那套代碼它不會(huì)把東西拿走。但它不解決所有問題。首先它需要你自己準(zhǔn)備模型后端要么連一個(gè)遠(yuǎn)程模型API要么在本地跑一個(gè)模型服務(wù)其次Agent的自主性是一把雙刃劍權(quán)限配不好它真的能給你惹出大亂子最后它沒有圖形界面一切都發(fā)生在終端里對(duì)新手不算友好。這些都需要在實(shí)際使用中逐步習(xí)慣。我的態(tài)度是不要把它當(dāng)成又一個(gè)聊天窗口要把它當(dāng)成一個(gè)敢動(dòng)手的執(zhí)行者這樣所有配置和坑才會(huì)有意義。2. 二十分鐘從零跑起OpenCode安裝、配置和第一次對(duì)話2.1 環(huán)境準(zhǔn)備其實(shí)只依賴一個(gè)運(yùn)行時(shí)OpenCode的安裝比我想象中簡(jiǎn)單它本質(zhì)上是一個(gè)命令行工具大部分功能通過終端交互完成。我用的環(huán)境是Linux服務(wù)器和macOS筆記本兩者都能正常跑。前置要求不多一個(gè)較新的Node.js運(yùn)行時(shí)以及系統(tǒng)里有Git。如果你平時(shí)還在終端里干活大概率這兩個(gè)都有。安裝我推薦直接用包管理器而不是源碼編譯。以npm為例安裝命令就是一行npm install -g opencode-cli安裝完成后執(zhí)行opencode --version能打印版本號(hào)就說明裝好了。如果你不想全局安裝也可以用npx opencode-cli的方式臨時(shí)跑但日常使用還是全局裝省事。這里有個(gè)小提示OpenCode啟動(dòng)時(shí)要?jiǎng)?chuàng)建配置目錄和會(huì)話緩存目錄如果你的電腦設(shè)置了嚴(yán)格的應(yīng)用沙箱記得給終端授予對(duì)應(yīng)目錄的讀寫權(quán)限。我第一次在公司的安全終端里運(yùn)行就是因?yàn)槟夸洐?quán)限不夠?qū)е鲁跏蓟】耸昼姴耪业皆颉?.2 模型接入先配一個(gè)能用的后端再說OpenCode本身不包含大模型它需要連接到一個(gè)可調(diào)用的大模型后端。它支持兩類常見的接入方式一類是兼容主流協(xié)議的標(biāo)準(zhǔn)模型服務(wù)另一類是本地的模型推理框架。不論哪種配置都可以寫在一個(gè)名叫opencode.toml的配置文件里。我用的是本地模型服務(wù)配置大概是這樣的[model] provider openai-compatible base_url http://127.0.0.1:8080/v1 api_key local model my-local-model-7b如果你用的遠(yuǎn)程服務(wù)只需要把base_url和api_key替換成服務(wù)商提供的信息再把model改成對(duì)應(yīng)模型名即可。配置文件支持環(huán)境變量引用比如api_key ${MODEL_API_KEY}這樣密鑰就不會(huì)出現(xiàn)在代碼倉(cāng)庫(kù)里。接入成功后OpenCode會(huì)先發(fā)一個(gè)簡(jiǎn)單的測(cè)試請(qǐng)求確認(rèn)模型能正常響應(yīng)。這一步很重要因?yàn)樗粰z查模型能不能聊天而是檢查模型是否支持工具調(diào)用也就是能不能主動(dòng)觸發(fā)文件讀寫、命令執(zhí)行這些動(dòng)作。如果模型不支持工具調(diào)用Agent的核心功能會(huì)直接啞火。2.3 第一次對(duì)話讓它直接改代碼配置完成后我第一次運(yùn)行的是這樣一條指令opencode run 把 src/index.ts 里所有 fetch 調(diào)用包上統(tǒng)一異常處理結(jié)果它沒有立刻動(dòng)手而是先在終端里打印了一份計(jì)劃先讀取src/index.ts找出所有fetch調(diào)用點(diǎn)然后定義一個(gè)新的safeFetch函數(shù)最后替換調(diào)用并運(yùn)行類型檢查。看到計(jì)劃的時(shí)候我有點(diǎn)驚訝因?yàn)樗娴陌严胱龅氖孪葦[出來了。隨后它開始逐項(xiàng)執(zhí)行。讀取文件、分析代碼、修改文件每一步都會(huì)在終端里顯示一個(gè)變化摘要比如已修改第 12 行新增函數(shù) safeFetch 于第 3 行。整個(gè)過程不是一次性的而是有中間檢查點(diǎn)它改完后會(huì)自動(dòng)運(yùn)行npm run typecheck發(fā)現(xiàn)還有錯(cuò)誤就會(huì)回到代碼里繼續(xù)修。這種閉環(huán)是我之前用的補(bǔ)全式AI完全做不到的。如果你不想讓它自動(dòng)執(zhí)行也可以進(jìn)入交互模式opencode它會(huì)在每一步操作前征求你的同意。第一次用的話我建議先用交互模式熟悉它的行為等確認(rèn)了權(quán)限規(guī)則再開啟自動(dòng)模式。3. 命令行里的Agent到底是怎么干活的工具調(diào)度與權(quán)限邊界3.1 核心循環(huán)讀、想、改、驗(yàn)要理解OpenCode其實(shí)不用把它想得太神秘。它在我機(jī)器上做的事情拆開來看就是一個(gè)循環(huán)讀取信息、分析下一步、執(zhí)行動(dòng)作、觀察結(jié)果然后重復(fù)。這個(gè)循環(huán)很像真人開發(fā)的看代碼—決定改動(dòng)—跑測(cè)試—看報(bào)錯(cuò)—再改節(jié)奏。每次循環(huán)中Agent會(huì)從終端日志、文件內(nèi)容、命令輸出里收集信息然后把它交給模型去推理。模型不是直接輸出最終代碼而是輸出一個(gè)動(dòng)作序列比如read_file(path)、edit_file(path, old, new)、run_command(npm test)。OpenCode的調(diào)度器再把這些動(dòng)作翻譯成真正的系統(tǒng)調(diào)用。這個(gè)設(shè)計(jì)的關(guān)鍵在于模型的精神集中在決定做什么而具體執(zhí)行由調(diào)度器控制所以每一步都可以被攔截、審查、回滾。這也是為什么OpenCode需要后端模型支持工具調(diào)用。普通聊天模型可以寫代碼但無法主動(dòng)發(fā)起文件讀取和命令執(zhí)行。工具調(diào)用能力讓它從寫代碼的機(jī)器變成了會(huì)干活的實(shí)習(xí)生。3.2 工具邊界文件、命令和搜索權(quán)限OpenCode有幾類核心工具文件操作、命令執(zhí)行、文本搜索和日志讀取。每一類都有獨(dú)立的權(quán)限開關(guān)你可以在配置里分別設(shè)置allow、ask或deny。默認(rèn)情況下讀取類操作通常是允許的修改類操作會(huì)彈出提示命令執(zhí)行則需要顯式審批。我給自己的初始配置是文件讀取和搜索默認(rèn)允許文件修改默認(rèn)詢問命令執(zhí)行里npm test、git status這類只讀或安全命令允許自動(dòng)執(zhí)行其他命令必須詢問。這套配置保證了它在大部分時(shí)間里可以自主操作又不會(huì)突然執(zhí)行危險(xiǎn)命令。[permissions] read allow edit ask run ask [permissions.allowlist] run [npm test, npm run lint, git status, git diff]這個(gè)配置非常有用。有一次它建議執(zhí)行rm -rf node_modules npm install如果我沒有設(shè)置審批它真的會(huì)把依賴目錄整個(gè)清掉。雖然這在當(dāng)時(shí)不算致命但完全沒必要承擔(dān)這個(gè)風(fēng)險(xiǎn)。3.3 它和編輯器內(nèi)補(bǔ)全式助手不是一種東西很多人第一次接觸OpenCode會(huì)下意識(shí)把它和IDE里的AI補(bǔ)全工具比較。這其實(shí)是兩種物種。補(bǔ)全工具的核心是預(yù)測(cè)你的下一個(gè)輸入它在你光標(biāo)后面接一段代碼接完了就結(jié)束上下文范圍以當(dāng)前文件為主。OpenCode的核心是完成一個(gè)任務(wù)它要用多個(gè)步驟、多個(gè)文件、多次命令執(zhí)行來達(dá)成一個(gè)目標(biāo)更像項(xiàng)目經(jīng)理塞給你一個(gè)需求之后你自己去查資料、改代碼、跑測(cè)試。我還發(fā)現(xiàn)一個(gè)關(guān)鍵區(qū)別補(bǔ)全工具的建議是延遲滿足的需要你自己判斷對(duì)錯(cuò)而OpenCode會(huì)立刻用命令輸出驗(yàn)證自己改的結(jié)果。它犯錯(cuò)了測(cè)試會(huì)告訴它錯(cuò)它再回頭改。這種自動(dòng)化驗(yàn)證的能力才是它作為Agent而不是補(bǔ)全器的價(jià)值所在。當(dāng)然代價(jià)就是權(quán)限風(fēng)險(xiǎn)更大這也是下一章要講的核心。4. 真實(shí)任務(wù)實(shí)測(cè)一次依賴升級(jí)引發(fā)的連環(huán)修改它接住了多少4.1 任務(wù)背景模擬項(xiàng)目X的依賴升級(jí)我在模擬項(xiàng)目X上做了個(gè)更完整的測(cè)試。這個(gè)項(xiàng)目是一個(gè)Python寫的HTTP服務(wù)依賴一個(gè)老版本的HTTP框架。我的任務(wù)是把它升級(jí)到新版本因?yàn)槔习姹居袔讉€(gè)安全修復(fù)和新特性。正常情況下這個(gè)活至少需要我手動(dòng)改十幾個(gè)文件requirements.txt、路由注冊(cè)、錯(cuò)誤處理中間件、測(cè)試斷言。我決定把任務(wù)直接丟給OpenCode看它能做多少。我給的指令很明確把 HTTP 框架從舊版本升級(jí)到新版本更新所有受影響的導(dǎo)入和API調(diào)用并確保測(cè)試通過。不要進(jìn)行超出必要范圍的改動(dòng)。4.2 完整執(zhí)行過程Agent的每一步都有交代執(zhí)行過程比我預(yù)期的要曲折但整體是清晰的。第一步它讀取了requirements.txt鎖定當(dāng)前依賴版本然后打開項(xiàng)目里的入口文件和路由定義文件掃描所有被舊API標(biāo)記的調(diào)用點(diǎn)。第二步它更新了依賴文件然后主動(dòng)運(yùn)行了現(xiàn)有測(cè)試來建立基線升級(jí)前的測(cè)試本來全部通過它在升級(jí)前跑了測(cè)試這是我從沒教過它的操作。其實(shí)這是所有有經(jīng)驗(yàn)的開發(fā)者都會(huì)做的事沒想到Agent也自動(dòng)做了。升級(jí)后它馬上運(yùn)行測(cè)試果然出現(xiàn)了失敗。失敗堆棧指向中間件模塊里的一個(gè)函數(shù)簽名新任框架把參數(shù)順序改了。它于是打開中間件文件比對(duì)新舊版本的遷移文檔摘要把函數(shù)簽名調(diào)整過來再重新跑測(cè)試。這個(gè)先看報(bào)錯(cuò)、再定位文件、再修改的鏈路重復(fù)了三輪。最終測(cè)試全部通過。我看了它的改動(dòng)記錄總共改了5個(gè)文件加了2個(gè)新函數(shù)刪了1個(gè)廢棄的適配類。代碼風(fēng)格和原有代碼基本一致也保留了我項(xiàng)目里的類型標(biāo)注習(xí)慣。坦白說這個(gè)結(jié)果超出了我的預(yù)期。4.3 哪些環(huán)節(jié)必須人工把關(guān)雖然它完成得很好但我沒有完全放手。首先它在選擇新版本時(shí)直接用了當(dāng)前最新版本而不是項(xiàng)目原本打算遷入的指定版本這意味著可能有額外兼容風(fēng)險(xiǎn)其次它遷移過程中對(duì)一些業(yè)務(wù)注釋的保留不夠仔細(xì)有幾處本來說明為什么這樣寫的注釋被它簡(jiǎn)化了最后它改動(dòng)的是本地分支沒有推遠(yuǎn)程所以我對(duì)最終結(jié)果做了Code Review后才合入。我的經(jīng)驗(yàn)是本地AI智能體可以承擔(dān)執(zhí)行者的角色但決策者還是得是人。它擅長(zhǎng)的是找到所有調(diào)試點(diǎn)并批量替換但涉及業(yè)務(wù)意圖、兼容性范圍、代碼風(fēng)格約定這些需要判斷的地方我們必須有一套檢查機(jī)制。Git分支、Code Review、測(cè)試門禁一個(gè)都不能少。5. 模型怎么選本地模型、云端API與混合方案的取舍5.1 三種接入方式怎么配OpenCode不會(huì)替你決定用哪個(gè)模型它只要求你給一個(gè)能跑的推理后端。實(shí)際使用中我見過三種主流選擇。第一種是云端標(biāo)準(zhǔn)API。配置最簡(jiǎn)單填一個(gè)api_key和模型名就能用。響應(yīng)速度快、理解能力強(qiáng)聰明程度上限最高適合追求任務(wù)完成質(zhì)量的場(chǎng)景。第二種是本地推理模型。完全離線數(shù)據(jù)不出機(jī)器啟動(dòng)時(shí)需要先把模型加載進(jìn)顯存。配置就是我在第二章里寫的base_url指向本地服務(wù)api_key隨便填一個(gè)非空值。它對(duì)顯存和CPU的要求不低7B級(jí)別量化模型至少要吃8GB顯存更大規(guī)格需要更多。第三種是混合方案把敏感項(xiàng)目放到本地模型執(zhí)行把非敏感、高難度的任務(wù)放到云端API執(zhí)行。OpenCode支持不同項(xiàng)目使用不同配置你可以把配置放在項(xiàng)目目錄下讓每個(gè)項(xiàng)目互相獨(dú)立。我現(xiàn)在的做法是個(gè)人學(xué)習(xí)項(xiàng)目用純本地模型公司內(nèi)部項(xiàng)目用混合方案公開演示項(xiàng)目直接連云端API。5.2 不同方案在真實(shí)任務(wù)里的表現(xiàn)差異我做了幾組對(duì)比測(cè)試。本地量化模型在單文件重構(gòu)、注釋補(bǔ)充、測(cè)試框架選擇這些簡(jiǎn)單任務(wù)上和云端API差距不大但到了跨文件多步驟任務(wù)它的跑偏率明顯升高。比如它會(huì)在讀取完第一個(gè)文件后忘記最初的升級(jí)目標(biāo)開始順手優(yōu)化無關(guān)代碼。這其實(shí)是模型推理能力受限的表現(xiàn)上下文一長(zhǎng)邏輯鏈條就容易斷。云端API在多輪復(fù)雜任務(wù)上明顯更穩(wěn)。它能更好地記住只改依賴相關(guān)代碼這類約束并且對(duì)失敗堆棧的分析更準(zhǔn)確。但它也有自己的問題延遲不穩(wěn)定、代碼要出機(jī)器、額度用得快。我曾經(jīng)跑一個(gè)大任務(wù)一次就消耗了超過百萬token的對(duì)話量換算下來真的很肉疼。混合方案是最平衡的我在本地模型前加了一個(gè)路由判斷凡是要讀取到敏感模塊的任務(wù)一律走本地模型普通任務(wù)切云端。不過這個(gè)切換邏輯OpenCode沒有內(nèi)置規(guī)則引擎是我自己通過腳本控制的稍微有點(diǎn)土但夠用。5.3 成本對(duì)比不是所有場(chǎng)景都劃算我在筆記本上做了一次粗略統(tǒng)計(jì)。一個(gè)典型的小型重構(gòu)任務(wù)大概消耗3萬token的輸入和1萬token的輸出。本地模型成本主要是電費(fèi)和硬件折舊幾乎為零云端標(biāo)準(zhǔn)API按token計(jì)費(fèi)大概每天做20個(gè)這樣的任務(wù)一個(gè)月成本在一筆可觀的訂閱費(fèi)之上。如果你只是偶爾用它改改小腳本云端API是劃算的如果你每天都要跑幾十個(gè)Agent任務(wù)本地模型反而更省錢前提是你的機(jī)器跑得動(dòng)。還有一點(diǎn)建議不管選哪種模型都別用最強(qiáng)檔跑簡(jiǎn)單任務(wù)。很多本地推理框架支持配置不同模型規(guī)格OpenCode也允許你在項(xiàng)目級(jí)配置里切換。簡(jiǎn)單任務(wù)用輕量模型復(fù)雜任務(wù)用重型模型能省很多時(shí)間和算力。6. 我踩過的那些坑權(quán)限、上下文和并發(fā)寫入6.1 權(quán)限給太寬它把我的依賴目錄整個(gè)重寫了第一次用OpenCode時(shí)我把命令執(zhí)行的權(quán)限設(shè)成了“全自動(dòng)”只想讓它免打擾干活。結(jié)果它為了解決一個(gè)類型錯(cuò)誤直接執(zhí)行了npm install不僅拉了新依賴還把package-lock.json重寫了一遍幾十個(gè)間接依賴的版本都被更新了。更麻煩的是它并沒有意識(shí)到這個(gè)操作范圍遠(yuǎn)超我的本意還在執(zhí)行后沾沾自喜地寫了個(gè)總結(jié)“已更新依賴鎖定文件以保持一致性?!睆哪且院笪以僖膊桓易宨nstall類命令無審批通過。現(xiàn)在我的配置里凡是涉及包管理器寫操作的命令全部要手動(dòng)確認(rèn)。這個(gè)坑也提醒我Agent遵守的不是你的意圖而是你給的權(quán)限規(guī)則。權(quán)限規(guī)則越模糊它就越可能自由發(fā)揮。6.2 長(zhǎng)會(huì)話的上下文爆炸Agent會(huì)在某個(gè)節(jié)點(diǎn)突然變笨另一個(gè)很常見的坑是長(zhǎng)會(huì)話。我在一次大型批量重構(gòu)任務(wù)中連續(xù)讓OpenCode工作了兩個(gè)小時(shí)到了后半程它開始出現(xiàn)明顯的失憶忘記前面已經(jīng)改過哪些文件反復(fù)讀取同一個(gè)文件它在分析問題時(shí)會(huì)提到一個(gè)已經(jīng)不存在的舊函數(shù)還會(huì)問這個(gè)函數(shù)是不是你要新增的。這不是模型壞了而是會(huì)話太長(zhǎng)上下文被撐爆后早期關(guān)鍵信息被擠出了有效窗口。解決方案有兩個(gè)。一是把一個(gè)大型任務(wù)拆成多個(gè)小型會(huì)話每個(gè)會(huì)話只負(fù)責(zé)一個(gè)獨(dú)立子任務(wù)并在每個(gè)新會(huì)話的Prompt里補(bǔ)充必要的背景摘要。二是定期使用opencode reset清理會(huì)話緩存避免把上一輪的錯(cuò)誤記憶帶進(jìn)新一輪。特別是一些改了一半的失敗方案Agent會(huì)在后續(xù)會(huì)話里反復(fù)引用它像個(gè)鉆牛角尖的程序員。6.3 并發(fā)跑多個(gè)Agent文件沖突是必然的我試過在同一個(gè)項(xiàng)目里同時(shí)開兩個(gè)OpenCode實(shí)例一個(gè)負(fù)責(zé)重構(gòu)模塊A一個(gè)負(fù)責(zé)重構(gòu)模塊B想著能并行加速。結(jié)果它們很快就在玩命競(jìng)爭(zhēng)同一個(gè)__init__.py一個(gè)在里面添加導(dǎo)出另一個(gè)在里面整理導(dǎo)入順序雙方各自讀到了舊版本然后分別寫回最后互相覆蓋。這個(gè)后果不是代碼沖突而是直接把那份文件改壞了。如果你確實(shí)想在項(xiàng)目里并行使用多個(gè)Agent請(qǐng)把它們分配到不重疊的目錄并且在配置文件里給每個(gè)會(huì)話設(shè)置獨(dú)立的workdir不要讓它們?cè)谕粋€(gè)文件集合上重復(fù)讀寫。當(dāng)年我在CI里跑并行任務(wù)時(shí)用的分布式鎖在這里同樣適用只是OpenCode不會(huì)自動(dòng)幫你加鎖。6.4 安全底線這幾個(gè)操作千萬別自動(dòng)放行經(jīng)過一番實(shí)踐我總結(jié)了一個(gè)安全底線清單。第一刪除操作不能自動(dòng)允許尤其rm -rf、git clean -fdx這類不可逆命令第二推送遠(yuǎn)端分支的操作必須人工確認(rèn)否則會(huì)出現(xiàn)AI 幫你把未審閱代碼推到主分支的災(zāi)難現(xiàn)場(chǎng)第三環(huán)境變量和密鑰類文件的讀取應(yīng)該默認(rèn)禁止不是所有模型服務(wù)都能保證絕不泄露上下文第四凡是需要寫/etc或系統(tǒng)目錄的操作一律攔截。我最后在配置里加了一道保險(xiǎn)[permissions.denylist] run [rm -rf, git push, git clean] edit [**/*.pem, **/.env, **/credentials/**]這套配置看起來保守但實(shí)際用下來并沒影響OpenCode處理日常開發(fā)任務(wù)。恰恰是這些限制讓我敢在更多項(xiàng)目里放手讓它自動(dòng)執(zhí)行。AI結(jié)對(duì)伙伴住進(jìn)本地終端本來就是想讓代碼更安全、開發(fā)更高效如果為了效率把安全底線丟了那就本末倒置了。