Deep Learning 101, Taiwan’s pioneering and highest deep learning meetup, launched on 2016/11/11 @ 83F, Taipei 101
AI是一條孤獨且充滿惶恐及未知的旅程,花俏絢麗的收費課程或活動絕非通往成功的捷徑。
衷心感謝當時來自不同單位的AI同好參與者實名分享的寶貴經驗;如欲移除資訊還請告知。
由 TonTon Huang Ph.D. 發起,及其當時任職公司(台灣雪豹科技)無償贊助場地及茶水點心。
Deep Learning 101 創立初衷,是為了普及與分享深度學習及AI領域的尖端知識,深信AI的價值在於解決真實世界的商業問題。
去 YouTube 訂閱 | Facebook | 回 GitHub Pages 首頁 | 到 GitHub 點星 | 網站 | 到 Hugging Face Space 按愛心
| 大語言模型 | 語音處理 | 自然語言處理 | 電腦視覺 |
| Large Language Model | Speech Processing | Natural Language Processing, NLP | Computer Vision |
用 AI 懂 AI
- Chain-of-Thought is not explainability
- arXiv 2506.21521 (Potemkin Understanding in Large Language Models)
- arXiv 2502.04644 (Agentic Reasoning: Reasoning LLMs with Tools for the Deep Research)
- AI新賽局:企業的入門策略指南
- 臺灣大型語言模型性能評測與在地化策略分析報告
- 從零到一:打造本地端高精準度 RAG 系統的實戰指南
- GenAI 與 LLM 在金融產業的應用分析:金融服務中 GenAI 與 LLM 的變革潛力。
- AI Robot 陪伴型機器人:2025 趨勢分析技術突破、市場潛力與未來展望。
- 避開 AI Agent 開發陷阱:常見問題、挑戰與解決方案:探討多種 AI 代理人工具的應用經驗與挑戰,分享實用經驗與工具推薦。
AI 技術 體驗/分享
手把手帶你一起踩 AI 坑:https://www.twman.org/AI
- 白話文手把手帶你科普 GenAI:淺顯介紹生成式人工智慧核心概念,強調硬體資源和數據的重要性。
- 大型語言模型直接就打完收工?:回顧 LLM 領域探索歷程,討論硬體升級對 AI 開發的重要性。
- 檢索增強生成(RAG)不是萬靈丹之優化挑戰技巧:探討 RAG 技術應用與挑戰,提供實用經驗分享和工具建議。
- 大型語言模型 (LLM) 入門完整指南:原理、應用與未來:探討多種 LLM 工具的應用與挑戰,強調硬體資源的重要性。
- 解析探索大型語言模型:模型發展歷史、訓練及微調技術的 VRAM 估算:探討 LLM 的發展與應用,硬體資源在開發中的作用。
- Diffusion Model 完全解析:從原理、應用到實作 (AI 圖像生成);深入探討影像生成與分割技術的應用,強調硬體資源的重要性。
- ASR/TTS 開發避坑指南:語音辨識與合成的常見挑戰與對策:探討 ASR 和 TTS 技術應用中的問題,強調數據質量的重要性。
- 那些 NLP 踩的坑:分享 NLP 領域的實踐經驗,強調數據質量對模型效果的影響。
- 那些語音處理踩的坑:分享語音處理領域的實務經驗,強調資料品質對模型效果的影響。
- 手把手學深度學習安裝環境:詳細介紹在 Ubuntu 上安裝深度學習環境的步驟,分享實際操作經驗。
手把手AI 技術深度實戰教學/開源/試用
AI x Cyber-Security
漏洞自動分析與修復Agent:Buttercup 如何打通檢索—分析—修補—驗證
同步匯整自 https://zread.ai/trailofbits/afc-buttercup 同步匯整自
trailofbits/afc-buttercup:包含 AIxCC 總決賽中提交的原始程式碼 同步匯整自 漏洞自動分析與修復Agent:Buttercup 如何打通檢索—分析—修補—驗證閉環
afc-buttercup 是 Trail of Bits 團隊為 AIxCC 總決賽(AFC)提交的開源版本。該系統將 AI 增強模糊測試、靜態分析(如 tree-sitter/CodeQuery)與一個創新的「多智能體補丁生成—驗證流水線」相整合。最終,afc-buttercup 斬獲 AIxCC 總決賽亞軍,並在 20 類 CWE 上實現了高準確度的漏洞發現與修復表現。
目錄
1. Buttercup 核心:多智能體協作架構
Buttercup 的自動化補丁流程並非單一模型,而是由多個各司其職的專職 Agent 協同運作,形成一條高內聚、低耦合的流水線。系統將複雜的補丁任務拆分為上下文檢索、根因分析、補丁生成、測試驗證和失敗反思等獨立環節。
2. Agent 職責與工作流詳解
系統的核心由七個主要的 Agent 組成,由 PatcherLeaderAgent 統一編排調度。
2.1 PatcherLeaderAgent (總控指揮官)
- 職責: 作為補丁流水線的「總控/編排」Agent。
- 作法: 負責組裝和調度所有子 Agent。它透過
_init_patch_team方法構建一個多節點的狀態機(StateGraph),定義完整的自動補丁工作流,並啟動和管理整個任務。
2.2 InputProcessingAgent (輸入預處理)
- 職責: 在補丁生成前,負責輸入環境和上下文的初始化與準備。
- 作法: 解析並應用工作目錄等配置,並初始化
codequery等代碼查詢工具,確保後續分析能獲取準確的代碼結構資訊。
2.3 ContextRetrieverAgent (智能上下文補全器)
- 職責: 作為流水線中的「智能上下文補全器」,動態檢索並補全上下文資訊。
- 作法: 當主流程 Agent 發現資訊不足或 LLM 請求更多上下文時,此 Agent 會被自動調用。
get_initial_context:根據崩潰堆棧資訊,自動提取相關的關鍵代碼片段(函數名、文件名、行號)。find_tests_node:透過查找腳本、從 Redis 查找指令或find_tests_agent自動探索等多種方法,為補丁驗證階段準備可用的測試指令。
2.4 RootCauseAgent (漏洞根因分析)
- 職責: 負責漏洞根因分析,定位問題本質。
- 作法:
- LLM 驅動: 入口為
analyze_vulnerability,主要使用openai-gpt-4.1和claude-3.7-sonnet模型分析漏洞成因,並解析返回的結構化資訊(如root_cause、vuln_line等)。 - 工具注入 (MCP): 如果 LLM 分析時需要更多上下文,可透過工具注入機制,自動調用一系列工具(如
ls、grep、get_function、get_type、get_callers等)來補充資訊。
- LLM 驅動: 入口為
2.5 SWEAgent (AI 開發工程師)
- 職責: 作為「AI 開發工程師」,專注於補丁策略制定和代碼修復生成。
- 作法:
- 選擇補丁策略 (select_patch_strategy):
- Agent 會組裝包含根因分析、代碼片段等的 Prompt,調用 LLM 生成結構化的補丁策略(Patch Strategy)。
- 如果 LLM 輸出
<request_information>,代表需補充上下文,流程會先跳轉至ContextRetrieverAgent。 - Foucs, 提取
<full_description>(詳細設計說明)和<summary>(核心思路概括)作為補丁策略。
- 生成具體補丁 (create_patch_node):
- 組裝包含「補丁策略」和根因分析結果的 Prompt,調用 LLM 生成最終的修復補丁。
- 選擇補丁策略 (select_patch_strategy):
2.6 QEAgent (品質保障工程師)
- 職責: 作為「品質保障工程師」,負責補丁生成後的自動化測試與有效性校驗。
- 作法:
build_patch_node: 核心驗證節點。它會調用_build_with_sanitizer,在乾淨環境下應用補丁並「並行」編譯項目(針對每個 sanitizer)。- 流程跳轉: 如果所有 sanitizer 均構建成功,流程進入
RUN_POV(運行測試/驗證)階段;如果構建失敗,則進入REFLECTION(反思)階段。
2.7 ReflectionAgent (自適應反思與補救)
- 職責: 負責反思與補救,是實現流程閉環和魯棒性的關鍵。當主流程遇到異常或失敗(如構建失敗、測試失敗)時,此 Agent 會接管流程。
- 作法:
_analyze_failure: 收集詳細失敗數據(如stdout/stderr),調用 LLM 反思鏈(self.reflection_chain)分析失敗原因、歸納失敗類別。- 動態調度: 根據 LLM 的反思建議,自動決定「下一個環節」,例如是退回
CONTEXT_RETRIEVER補充上下文、退回ROOT_CAUSE_ANALYSIS重新分析根因,還是退回SWEAgent調整PATCH_STRATEGY。 reflect_on_patch: 如果 LLM 明確請求更多代碼片段(code_snippet_requests),會自動切換到CONTEXT_RETRIEVER節點補充資訊,反思後再回到原節點繼續。
3. 關鍵工作流程:自動修復的閉環實現
Buttercup 的 Agent 協作形成了一個完整的「檢索-分析-修補-驗證-反思」閉環:
- 啟動與預處理 (InputProcessing): 初始化環境,準備
codequery工具。 - 上下文檢索 (ContextRetriever): Berdasarkan
get_initial_context堆棧崩潰,獲取初始代碼上下文。 - 根因分析 (RootCause):
RootCauseAgent介入,使用 LLM 和工具集分析漏洞成因。 - 補丁生成 (SWEAgent):
SWEAgent制定patch_strategy(包含<full_description>和<summary>),然後create_patch_node生成補丁。 - 構建與驗證 (QEAgent):
QEAgent嘗試並行build_patch_node。 - 反思與閉環 (Reflection):
- 若驗證成功: 流程結束。
- 若驗D thất bại:
ReflectionAgent接管。它調用 LLM 分析失敗日誌 (_analyze_failure),並做出決策:是ContextRetrieverAgent補充上下文,還是RootCauseAgent重新分析,或是SWEAgent重新制定策略。
4. 核心特性與總結
afc-buttercup 是一個以多智能體和大模型為核心,兼具工程實用性與 AI 智能化的自動化安全補丁平台。
- 多智能體協作架構: 將流程拆分為多個專職 Agent,實現高內聚、低耦合的流水線。
- 強大的 LLM 驅動與工具鏈注入: 透過 LLM(如 GPT-4、Claude)驅動決策,並支持自動調用代碼檢索、
grep、get_function等工具。 - 自適應反思與流程調度:
ReflectionAgent能自動分析失敗原因、檢測死循環,並動態調整流程,保證了系統的魯棒性和持續進步能力。 - 並行與容錯機制: 支持多 sanitizer 並行 build/test,主備 LLM 自動切換,以及 Agent 層面的重試保護,提升了效率與穩定性。
- 安全導向與結構化數據流: 所有決策均聚焦於安全修復,且補丁策略、失敗分析等均採用結構化管理,便於追蹤和優化。