蒸餾出個MCP工具箱
圖片
清華,交大,普林斯頓和德州奧斯丁,港大等一堆學生聯合完成的一篇論文(全華班)
文章雖然被冠以Distill,但是嚴格說和我們理解的Distill沒啥關系,最早的Distill要求有訓練任務和損失的交互,后來Deepseek把抽COT數據來FT也叫Distill直到這個文章,連LLM的參數都被凍結了,也算是老詞新用吧!
AgentDistill 實現知識蒸餾的機制與傳統的大語言模型(LLM)蒸餾方法不同。它通過以下關鍵方式實現知識轉移:
訓練無關的代理蒸餾:AgentDistill 是一種新穎的、無需訓練的代理蒸餾框架。它與依賴于鏈式思考提示(CoT prompting)和昂貴微調的傳統 LLM 蒸餾不同。
模型-上下文-協議 (MCP) 的直接復用:AgentDistill 的核心思想是直接復用由教師代理自主生成的模塊化、可復用的模型-上下文-協議(MCP)。這些 MCP 是結構化的、可復用的任務解決模塊。
MCP-Box 的構建與集成:
* 教師代理在任務執行過程中生成自包含的 MCP。
* 這些 MCP 會經過一個 MCP-Box 構建過程,包括抽象(移除特定示例的短語,使其參數化和可復用)、聚類(按功能分組)和整合(將功能相似的工具實現合并為通用版本)。
* 最終形成的 MCP-Box 是一個緊湊、結構化的存儲庫。
* 在推理時,這個 MCP-Box 會直接集成(掛載)到學生代理的工具接口中,無需檢索、重排序或參數選擇。
* 學生代理的運行方式:
* 學生代理(基于 SLM)在推理時策略保持凍結,不接受任何梯度更新。
* MCP-Box 充當一個可執行協議的外部庫,封裝了工具層面的邏輯,并采用參數化格式。
* 這使得學生代理無需進行低級代碼生成。
* 學生代理仍然負責高級規劃,例如決定是否調用工具、選擇哪個 MCP 以及如何填充參數。
* 蒸餾的益處在于將工具調用空間限制在了一組功能性、經過驗證的選項之內。這在不干擾學生代理核心推理過程的情況下,降低了生成復雜性。

所以其實這個學生并沒有干什么,但是學生模型本身必須具備有很好的MCP tool的識別和調用能力,要能支持相對高的上下文能力。
剩下的事全是所謂的teacher LLM干的teacher LLM 要build成agent的方式,然后來生成它的推理路徑,也就是trajectory

at的actiion 里面就有它call了什么tool來做的下游任務,只有下游任務做成了,這條帶著tool的trajectory被臨時收集出來。
MCP-Box 的構建是一個三步過程:抽象、聚類和整合!

先把剛才被收集起來的trajectory得抽象成函數表達,然后聚類,比如這個是做CV的,那個是做nlp的給聚類一下,這一步將同一功能組內的所有工具實現合并為一個統一的版本,包括參數統一、驗證和文檔化,最終生成一個可用于生產的 FastMCP 兼容的 Python 文件。例如文中寫道的可以將處理不同腦區或分析模式的多個 MRI 分析工具,整合為一個支持多個參數的通用 analyze_brain_mri 函數,最后學生模型其實啥頁沒干,掛在上就可以使用了。
這個思路還可以,但是我個人理解是受限于任務的泛化的,最后又變成了RLVR 去調小模型來做agent一樣的問題!
本文轉載自????熵減AI????,作者:周博洋

















