What is Aider?
Aider 將 AI 結對程式設計的強大功能帶入您熟悉的終端環境,讓您能夠直接在程式碼庫中與大型語言模型 (LLMs) 無縫協作。無論您是開啟新專案,還是強化既有的大型專案,Aider 都能將智慧輔助整合到您的日常開發工作流程中,協助您更高效且有效地編寫和編輯程式碼。
主要特色
Aider 旨在透過強大且整合的功能,提升您的程式設計流程:
🌍 彈性 LLM 連線能力: 連接各種 LLMs,包括領先的雲端模型如 Claude 3.7 Sonnet 和 OpenAI 的 GPT-4o,以及本地模型。這種彈性讓您可以根據效能、成本或隱私偏好,選擇最適合您需求的模型。
🗺️ 智慧程式碼庫映射: Aider 建立並運用您整個程式碼庫的映射。這項關鍵功能為 LLM 提供有關專案結構的上下文資訊,使其即使在大型和複雜的儲存庫中也能有效且準確地運作。
🔄 緊密整合 Git: 輕鬆管理 AI 生成的變更。Aider 會自動提交附帶描述性訊息的變更,讓您可以使用標準的 Git 工具來檢視、比較差異並復原 AI 所做的任何修改。
✍️ IDE 內協作: 留在您偏好的開發環境中。透過直接在程式碼檔案中添加註釋與 Aider 互動,Aider 將處理這些請求,並將變更傳送到您需要的位置。
✅ 自動化 Linting 與測試: 主動提升程式碼品質。Aider 可以在進行變更後自動執行您的程式碼檢查工具 (linters) 和測試套件,甚至嘗試修復檢測到的問題,從而精簡您的程式碼審查和品質保證流程。
🗣️ 語音和視覺上下文: 增強溝通和理解。您可以與 Aider 對話以請求變更或錯誤修復,並透過在聊天中包含圖像和網頁來提供視覺上下文,這對於參考文件或使用者介面元素很有用。
Aider 如何協助您解決問題
Aider 旨在透過將 AI 輔助帶到您的指尖,解決常見的開發挑戰:
提升既有程式碼庫的生產力: 瀏覽和修改大型、不熟悉的專案可能非常耗時。Aider 的程式碼庫映射功能協助 AI 理解專案上下文,使其能夠準確地跨多個檔案提出並實施變更,顯著加速在既有儲存庫中的開發。
簡化程式碼品質與重構: 無需手動修復程式碼檢查錯誤或調試失敗的測試,Aider 可以自動化這些任務。整合您現有的工具,Aider 可以識別並提出修復方案,讓您能專注於更複雜的邏輯和功能開發。
簡化複雜變更與程式碼探索: 使用 Aider 來理解程式碼區塊、生成文件,甚至編寫多檔案變更的腳本。其從差異比較 (例如 PR 審查) 或外部文件中處理上下文的能力,意味著您可以利用 AI 執行超出簡單程式碼生成範圍的任務,例如分析提議的變更或總結程式碼歷史。
為何選擇 Aider?
Aider 透過將 AI 深度且實用地整合到開發人員的核心工作流程中而脫穎而出:
終端原生效率: 與基於網頁或獨立應用程式不同,Aider 存在於您的終端機中,直接與您的本地檔案和 Git 儲存庫整合,提供流暢、以命令列為中心的體驗。
在實際程式碼上的驗證能力: Aider 不僅僅是用於生成程式碼片段;它的設計,特別是程式碼庫映射和強大的 Git 整合,使其真正有效地修改和維護大型、既有專案 – 這項能力在其自身的開發過程中得到了證明,其中 Aider 編寫了其自身程式碼的很大一部分。
結論
Aider 在您編寫程式碼的環境 – 您的終端機中,提供強大且整合的 AI 結對程式設計。透過提供彈性的 LLM 支援、深入的程式碼庫理解,以及與 Git 和您的 IDE 的無縫整合,Aider 讓您能夠更高效地工作、保持更高的程式碼品質,並在智慧輔助下處理複雜的任務。
準備好轉變您的程式設計工作流程了嗎?探索文件以了解 Aider 如何協助您建置和維護專案的更多資訊。
常見問題
我可以將儲存庫中的所有檔案添加到聊天中嗎? 儘管技術上可行,但通常不建議添加所有檔案。Aider 已經建立了一個緊湊的儲存庫地圖,為 LLM 提供必要的上下文。添加不相關的檔案可能會使模型不堪重負,導致結果不佳並增加 token 成本。通常最好只添加您希望 Aider 為當前任務修改的特定檔案。
Aider 在大型或單一儲存庫中的表現如何? 由於其程式碼庫映射功能,Aider 旨在適用於任何大小的儲存庫,包括大型單一儲存庫。對於非常大的儲存庫,您可以透過使用
--subtree-only選項來專注於特定目錄,或者建立.aiderignore檔案 (類似於.gitignore) 來排除程式碼庫中不相關的部分,從而提高效能。我如何提供最近的 Git 歷史作為上下文? 當您啟動新的 Aider 會話時,可以使用
/run命令與git diff搭配,將最近的變更包含在聊天上下文中。例如,/run git diff HEAD~3將把最近三次提交的差異包含在聊天歷史中,為 LLM 提供有關最新開發活動的洞察。您也可以將其用於審查特定的分支或外部差異檔案。





