LangChain 和 LangGraph 是什麼關係?什麼時候需要從 LangChain 升級到 LangGraph?
LangChain 是基礎框架,提供 Tool Use、記憶、RAG 等基本功能;LangGraph 是建構在 LangChain 上的多 Agent 工作流框架,用有向圖(DAG)定義 Agent 的執行流程。兩者是補充而不是替代。
只用 LangChain 就夠的場景:單一 Agent 執行線性任務(查詢數據 → 推理 → 輸出結論);任務的執行路徑相對固定,不需要複雜的條件分支;你需要快速原型,LangChain 的基礎 Agent 介面更簡單。
需要 LangGraph 的場景:你需要多個 Agent 協作(Orchestrator + Sub-agents);執行路徑需要根據中間結果動態決定(「如果風險評估結果是高風險,執行路徑 A;如果是低風險,執行路徑 B」);你需要循環執行直到特定條件滿足(例如 ReAct 迴圈的完整狀態管理);以及你需要對 Agent 執行流程做可視化監控和調試。
對加密 Agent 的建議:DeFi 數據分析的簡單查詢 Agent 用基礎 LangChain 夠了;涉及多步決策(分析 → 風險評估 → 執行)或多 Agent 協作的複雜策略 Agent 用 LangGraph,它讓執行路徑清晰可控,事後審計也更容易。
LangChain 的 RAG(檢索增強生成)怎麼用在加密場景?有哪些實際的應用?
RAG 是讓 LLM 在回答問題前先「查閱」相關文件或數據的技術——讓 Agent 不只依賴訓練資料,還能即時引用外部知識庫。在加密場景,RAG 的應用主要有兩個方向:
協議文件 RAG:把各個 DeFi 協議的技術文件、白皮書、治理提案存入向量數據庫,讓 Agent 在需要理解某個協議的規則或機制時,自動檢索相關文件段落。例如,Agent 需要了解 Aave v3 的清算參數,它不依賴訓練資料(可能過時),而是即時查詢你維護的 Aave v3 文件庫。
市場分析 RAG:把每日的市場分析報告、鏈上指標摘要、宏觀經濟數據存入向量數據庫,讓 Agent 在做策略判斷時,自動引用最近的市場背景資料。這讓 Agent 的判斷有「近期市場記憶」,不只是看即時的價格數字。
設計提醒:RAG 引入的外部資料如果本身有錯誤或過時,會直接影響 Agent 的判斷品質。建立 RAG 系統時,需要設計資料更新機制(多久刷新一次向量數據庫)和資料來源可信度評估(不是所有網路文章都適合作為 Agent 的決策參考)。
LangChain 在加密 Agent 開發中有什麼常見的陷阱?初學者最容易踩的錯誤是什麼?
幾個在加密 Agent 開發中反覆出現的 LangChain 陷阱:
第一,工具描述不夠精確導致 Agent 調用錯工具。LangChain 的 @tool 裝飾器要求你寫一個函數 docstring(說明文字),這個說明文字直接影響 LLM 的工具選擇決策。「查詢加密貨幣價格」和「查詢指定代幣的現貨美元價格,支援 BTC、ETH、SOL 等主流代幣,回傳數字格式」——後者讓 LLM 清楚知道什麼時候調用這個工具,錯誤調用率大幅降低。
第二,忘記設定 max_iterations 導致無限迴圈燒光 API 預算。LangChain 的 Agent 預設沒有迴圈次數限制,如果任務設計不良,Agent 可能陷入「我還需要更多資訊」的迴圈。初學者應該在每個 Agent 初始化時就設定 max_iterations=10。
第三,把所有工具都傳給每個 LLM 呼叫。如果你有 15 個工具,每次呼叫都把 15 個工具的 schema 都帶進去,Token 消耗可能比需要的多 30-50%。LangGraph 允許你在不同的執行節點分配不同的工具子集,這個優化在大型 Agent 系統裡很重要。
第四,沒有加入寫入工具的安全驗證。在加密場景,sign_transaction 這類寫入工具必須在 @tool 函數內加入參數驗證(金額上限、地址白名單)。不能只靠「在系統提示裡告訴 LLM 不要做 X」——那個提示可能被 Prompt Injection 繞過,但在 Python 函數裡的驗證邏輯不能被 LLM 的推理覆蓋。
LangChain 和 LangSmith 是什麼關係?在加密 Agent 的生產環境部署中,LangSmith 有必要嗎?
LangSmith 是 LangChain 生態系統的可觀測性和監控平台——可以理解為「LangChain Agent 的 DataDog」。它記錄每次 Agent 運行的完整軌跡(每個 LLM 呼叫的 input/output/Token 用量、工具調用記錄、執行時間、錯誤日誌),並提供視覺化的調試界面和性能分析。
LangSmith 對加密 Agent 的價值:在生產環境,你需要知道 Agent 做了什麼決策、為什麼這麼做、用了多少資源。LangSmith 讓這個可見度大幅提升。在出現問題時(例如 Agent 做了一筆你不理解的交易),LangSmith 的軌跡記錄讓你能快速找到根本原因——是哪個工具回傳了異常數據、LLM 在哪個推理步驟出了錯。
是否有必要:對於測試和早期部署,LangChain 內建的 verbose 模式(輸出到控制台)加上自己寫的日誌邏輯就夠了,不一定需要付費的 LangSmith。對於生產環境、有真實資金在操作的 Agent,LangSmith 的完整可觀測性是值得的投入——它提供的快速問題定位能力,可以在 Agent 出問題時幫助你快速限制損失。LangSmith 有免費層(每月一定額度的追蹤記錄),小規模部署可以先用免費層評估是否需要升級。
LangChain 在加密 Agent 的實際應用:一個多工具 DeFi 分析 Agent
以下是一個使用 LangChain 構建加密 Agent 的實際架構範例(Python,概念說明而非完整代碼):
工具定義(3 個):get_token_price——調用 CoinGecko API,回傳指定代幣的現價;get_defi_apy——調用 DeFi Llama API,回傳指定協議的存款年化利率;analyze_risk——根據價格波動率和利率歷史計算倉位風險評分。
Agent 初始化:使用 Claude Sonnet 作為 LLM,設定 max_iterations=8,傳入上面 3 個工具,System Prompt 定義 Agent 的分析角色和判斷原則(「分析時優先考慮 Gas 費合理性」)。
執行示例:用戶問:「現在把 USDC 放在 Aave 還是 Compound 更划算?」
Thought 1:「需要查詢兩個協議的 USDC 利率。先查 Aave。」→ Action:get_defi_apy('aave', 'USDC') → Observation:Aave USDC APY 6.8%
Thought 2:「再查 Compound。」→ Action:get_defi_apy('compound', 'USDC') → Observation:Compound USDC APY 4.1%
Thought 3:「利差 2.7%,但移倉要花 Gas,需要評估划算性。查 Gas 費並計算。」→ Action:analyze_risk('aave-vs-compound', '2.7pct-spread') → Observation:預估移倉 Gas $5,若利差維持 24 小時,$1000 倉位凈收益 $0.47。結論不值得移倉。
Final Answer:「目前 Aave 年化高於 Compound 2.7%,但移倉 Gas 費約 $5,$1000 倉位需 24 小時以上才能回本。若倉位超過 $5,000 或計劃持有超過 5 天,移倉值得考慮。」
LangChain 的核心取捨是「生態豐富性和靈活性 vs 框架複雜度和性能」。作為最成熟的 Agent 框架,LangChain 有最豐富的預製工具整合和最完整的文件,但它的抽象層比較厚重——有時候你需要很多代碼才能做一件相對簡單的事,而直接使用 LLM API 加上幾個函數可能更精簡。另一個取捨是「向後相容性 vs 快速迭代」:LangChain 更新非常頻繁,API 改變較多(早期版本和現在的 v0.2/v0.3 有很大差異),這意味著你的代碼可能需要定期升級。在需要穩定性的生產環境,鎖定特定版本(pip install langchain==x.x.x)是必要的。