文章三:Agentic RAG: Company Knowledge Slack Agents

內容整理與總結

引言

What is RAG and Agentic RAG?

Technical Stack

Cost & time to build

The architecture (processing documents)

The architecture (the agent)

Techniques you can try

What you’ll actually spend time on

How to build it out further

Learnings and so on

整篇文章重點結論

本文深入探討了如何建構一個整合 Slack 的公司內部知識問答代理程式,該代理程式運用了檢索增強生成(RAG)及代理式 RAG(Agentic RAG)的技術。文章從概念、技術棧選擇、成本與時間考量、系統架構(文件處理與代理程式設計)、可嘗試的進階技術(如混合搜尋、重新排序)等方面進行了詳細闡述。

核心觀點與實踐建議包括:

  1. RAG 與 Agentic RAG 的應用:透過 RAG 使 LLM 能存取並利用內部文件回答問題;Agentic RAG 則賦予 LLM 更大的自主性來決定如何獲取資訊。
  2. 技術棧選擇:推薦使用無伺服器函數(如 Modal)進行事件驅動部署,LlamaIndex 作為代理框架,以及 Qdrant 或 Milvus 等向量資料庫。
  3. 成本控制:雲端和嵌入成本相對較低,LLM 的 API 呼叫是主要成本來源,建議選擇經濟型模型並最小化呼叫次數。
  4. 架構關鍵
    • 文件處理:耗時最長的部分,包括仔細分塊(chunking)文件以保留足夠上下文,並附加詳細元資料以供追溯和引用。原始資料品質至關重要。
    • 代理程式設計:使用 LlamaIndex 的 FunctionAgent 整合多個工具,並可加入初步 LLM 判斷以優化使用者體驗。
  5. 實際開發重點:真正的挑戰在於提示詞工程、降低系統延遲以及處理結構不良的異質文件。
  6. 系統擴展:可考慮加入快取機制、資料持續更新方案以及長期記憶功能。
  7. 框架使用與簡潔性:框架有助於快速上手,但最終可能需要重寫核心邏輯以優化效能和控制力。始終追求系統的簡潔性,若僅需 RAG 功能,則不必強求完整的代理系統。

文章最後強調,雖然建構這樣的系統涉及許多細節(如評估、防護機制、監控),但最終能實現一個高效的內部知識檢索工具。作者也提及正在開發一個更易用的工具,讓使用者無需自行搭建架構即可建立類似的 Slack 機器人,並具備操作 API 的能力。