久久亚洲成a人片熟女精品色一区二区三区|国产精品视频第一精品视频|av天堂热无码手机版|亚洲?v无码久久无遮挡|国产精品偷伦视频免费观看国产|麻豆国产自产精品丰满熟妇|av无码av不卡一区二区|久久亚洲精品中文字

ARTICLE DETAIL

資訊詳情

深耕商務(wù)建站與企業(yè)官網(wǎng)運(yùn)營(yíng)的一線實(shí)戰(zhàn)洞察。

端側(cè)Agent工程化實(shí)戰(zhàn):Function Calling與MCP的Schema設(shè)計(jì)與容錯(cuò)策略

端側(cè)Agent工程化實(shí)戰(zhàn):Function Calling與MCP的Schema設(shè)計(jì)與容錯(cuò)策略 1. 端側(cè) Agent 工程化的核心命題1.1 從 Demo 到產(chǎn)品端側(cè) Agent 的工程化鴻溝很多人在端側(cè)跑通第一個(gè) Agent Demo 的時(shí)候都會(huì)有一種錯(cuò)覺這東西已經(jīng)成了。本地模型加載起來Function Calling 調(diào)通一兩個(gè)工具命令行里問一句“幫我查一下明天天氣”模型返回一個(gè)結(jié)構(gòu)化的 JSON工具執(zhí)行完把結(jié)果塞回去模型再吐出一段自然語言——整個(gè)鏈路跑通了感覺離產(chǎn)品就差一個(gè) UI。但真正把端側(cè) Agent 往產(chǎn)品方向推的時(shí)候問題會(huì)成倍地冒出來。模型在 PC 上跑得好好的到了手機(jī)端內(nèi)存直接爆掉Function Calling 在單輪對(duì)話里沒問題一旦進(jìn)入多輪、多工具、帶狀態(tài)的場(chǎng)景模型開始胡編參數(shù)JSON Schema 寫得稍微復(fù)雜一點(diǎn)小模型的輸出就開始不穩(wěn)定該填字符串的地方給你填了個(gè)對(duì)象該用枚舉的地方給你編了一個(gè)不存在的值。這些問題在 Demo 階段都可以靠“換個(gè) prompt”糊過去但在工程化階段每一個(gè)都是必須系統(tǒng)性解決的硬骨頭。端側(cè) Agent 工程化要解決的核心矛盾其實(shí)就一句話在算力、內(nèi)存、功耗都受限的端側(cè)環(huán)境里讓一個(gè)能力有限的小模型穩(wěn)定地完成復(fù)雜的工具調(diào)用任務(wù)。這個(gè)矛盾決定了端側(cè) Agent 的工程化思路和云端 Agent 有本質(zhì)區(qū)別。云端 Agent 可以堆模型參數(shù)、堆上下文長(zhǎng)度、堆并發(fā)端側(cè)不行端側(cè)每一兆內(nèi)存、每一次推理延遲都要精打細(xì)算。我自己的體會(huì)是端側(cè) Agent 的工程化難點(diǎn)集中在三個(gè)層面協(xié)議層Function Calling 的格式定義與約束、調(diào)度層多工具、多輪次的狀態(tài)管理與編排、運(yùn)行時(shí)層模型加載、內(nèi)存管理、推理加速。這三個(gè)層面里協(xié)議層是地基調(diào)度層是骨架運(yùn)行時(shí)層是血肉。這一篇主要聊協(xié)議層和調(diào)度層也就是 Function Calling 和 MCP 相關(guān)的工程化實(shí)踐運(yùn)行時(shí)層的內(nèi)容留到下一篇展開。1.2 為什么 Function Calling 是端側(cè) Agent 的命門Function Calling 這個(gè)概念本身不復(fù)雜就是讓模型輸出一段結(jié)構(gòu)化的內(nèi)容告訴外部系統(tǒng)“我要調(diào)用哪個(gè)函數(shù)、傳什么參數(shù)”。但在端側(cè)環(huán)境里這件事的難度會(huì)被放大好幾倍。原因在于端側(cè)跑的多半是 1B 到 7B 級(jí)別的小模型這些模型的指令遵循能力和格式化輸出能力遠(yuǎn)不如云端的大模型。你讓 GPT-4 輸出一個(gè)符合 JSON Schema 的對(duì)象它基本不會(huì)出錯(cuò)但你讓一個(gè) 3B 的量化模型做同樣的事它可能會(huì)在 JSON 外面包一層解釋文字可能會(huì)把字段名拼錯(cuò)可能會(huì)在數(shù)值字段里填一個(gè)字符串甚至可能直接編造一個(gè) Schema 里不存在的字段。所以端側(cè) Agent 的 Function Calling 工程化核心不是“怎么讓模型調(diào)用工具”而是“怎么讓模型在能力受限的情況下盡可能穩(wěn)定地輸出符合預(yù)期的結(jié)構(gòu)化內(nèi)容”。這里面涉及到 Schema 設(shè)計(jì)、Prompt 約束、輸出解析、錯(cuò)誤恢復(fù)等一系列工程手段每一個(gè)環(huán)節(jié)都有很多細(xì)節(jié)可以摳。我見過不少團(tuán)隊(duì)在這個(gè)環(huán)節(jié)踩坑最常見的就是直接把云端 Agent 的那套 Schema 搬到端側(cè)結(jié)果小模型根本扛不住那么復(fù)雜的結(jié)構(gòu)輸出成功率慘不忍睹。正確的做法是反過來先摸清楚端側(cè)模型的能力邊界然后在這個(gè)邊界內(nèi)設(shè)計(jì)盡可能簡(jiǎn)單的 Schema再用工程手段去兜底。1.3 MCP 在端側(cè) Agent 里的定位MCPModel Context Protocol這兩年被討論得很多它的核心價(jià)值是給模型和外部工具之間定義了一套標(biāo)準(zhǔn)化的通信協(xié)議。在云端 Agent 場(chǎng)景里MCP 解決的是“工具生態(tài)碎片化”的問題——不同的工具提供方各自定義接口Agent 開發(fā)者要一個(gè)個(gè)適配成本很高。有了 MCP工具提供方按協(xié)議暴露能力Agent 側(cè)按協(xié)議調(diào)用雙方解耦。但在端側(cè) Agent 場(chǎng)景里MCP 的定位需要重新思考。端側(cè) Agent 的工具集通常是固定的、有限的不像云端 Agent 那樣需要?jiǎng)討B(tài)發(fā)現(xiàn)和接入大量第三方工具。所以端側(cè)引入 MCP更多是為了統(tǒng)一內(nèi)部的工具調(diào)用抽象讓 Agent 的核心邏輯和具體工具實(shí)現(xiàn)解耦方便后續(xù)替換和擴(kuò)展。舉個(gè)例子你在端側(cè)做了一個(gè)支持“查天氣、設(shè)鬧鐘、發(fā)消息”三個(gè)工具的 Agent如果不用 MCP你可能在代碼里硬編碼三個(gè)函數(shù)的調(diào)用邏輯如果用 MCP你可以把這三個(gè)工具都封裝成 MCP ServerAgent 側(cè)只負(fù)責(zé)按協(xié)議發(fā)請(qǐng)求具體工具怎么實(shí)現(xiàn)、用什么語言實(shí)現(xiàn)、跑在哪個(gè)進(jìn)程里都不影響 Agent 的核心邏輯。這樣一來后續(xù)要加新工具、要換工具實(shí)現(xiàn)改動(dòng)量會(huì)小很多。不過端側(cè)引入 MCP 也有代價(jià)主要是協(xié)議本身的開銷。MCP 的通信基于 JSON-RPC每次調(diào)用都有序列化和反序列化的成本在端側(cè)這種資源緊張的環(huán)境里這個(gè)開銷不能忽略。所以我的建議是端側(cè) Agent 是否引入 MCP要看工具集的規(guī)模和變化頻率。如果工具就三五個(gè)且基本不變直接硬編碼可能更劃算如果工具有十幾個(gè)且經(jīng)常增刪那 MCP 帶來的解耦收益就值得那點(diǎn)協(xié)議開銷。2. Function Calling 的 Schema 設(shè)計(jì)與約束策略2.1 JSON Schema 在端側(cè)的精簡(jiǎn)原則JSON Schema 是 Function Calling 的基礎(chǔ)它定義了模型可以調(diào)用的函數(shù)長(zhǎng)什么樣、參數(shù)是什么類型、哪些是必填的。在云端場(chǎng)景里Schema 可以寫得很詳細(xì)字段描述可以很長(zhǎng)枚舉值可以很多因?yàn)榇竽P陀凶銐虻纳舷挛拇翱诤屠斫饽芰θハ@些信息。但端側(cè)不行。端側(cè)模型的上下文窗口通常只有 2K 到 8KSchema 本身就要占掉一部分端側(cè)模型的理解能力有限Schema 里的描述文字太長(zhǎng)反而會(huì)干擾它的判斷。所以端側(cè) Function Calling 的 Schema 設(shè)計(jì)核心原則就是精簡(jiǎn)。具體怎么精簡(jiǎn)我總結(jié)了幾個(gè)實(shí)操要點(diǎn)。第一字段描述能短則短不要寫“請(qǐng)?zhí)顚懹脩粝胍樵兊某鞘忻Q支持中文和英文”直接寫“城市名”就夠了。第二枚舉值不要太多超過五個(gè)枚舉值的字段考慮改成字符串讓模型自由填寫然后在外部做校驗(yàn)和映射。第三嵌套結(jié)構(gòu)能扁平就扁平端側(cè)模型處理嵌套對(duì)象的準(zhǔn)確率明顯低于扁平結(jié)構(gòu)。第四必填字段盡量少非必要字段都設(shè)成可選減少模型漏填導(dǎo)致的調(diào)用失敗。下面是一個(gè)對(duì)比示例左邊是云端風(fēng)格的 Schema右邊是端側(cè)精簡(jiǎn)后的 Schema// 云端風(fēng)格字段描述詳細(xì)枚舉值多 { name: search_flight, description: 搜索符合條件的航班信息返回航班列表, parameters: { type: object, properties: { departure_city: { type: string, description: 出發(fā)城市名稱支持中文或英文例如北京、上海、Beijing }, arrival_city: { type: string, description: 到達(dá)城市名稱支持中文或英文 }, date: { type: string, description: 出發(fā)日期格式為YYYY-MM-DD }, cabin_class: { type: string, enum: [economy, premium_economy, business, first], description: 艙位等級(jí) } }, required: [departure_city, arrival_city, date] } }// 端側(cè)精簡(jiǎn)描述短枚舉少結(jié)構(gòu)扁平 { name: search_flight, description: 搜索航班, parameters: { type: object, properties: { from: {type: string, description: 出發(fā)城市}, to: {type: string, description: 到達(dá)城市}, date: {type: string, description: 日期YYYY-MM-DD}, cabin: {type: string, description: 艙位:經(jīng)濟(jì)/商務(wù)/頭等} }, required: [from, to, date] } }精簡(jiǎn)后的 Schema 在端側(cè)模型上的調(diào)用成功率實(shí)測(cè)下來比云端風(fēng)格的高出不少。原因很簡(jiǎn)單模型要處理的信息少了出錯(cuò)的概率自然就低了。2.2 參數(shù)類型的選擇與陷阱端側(cè) Function Calling 里參數(shù)類型的選擇有很多講究選錯(cuò)了類型會(huì)直接導(dǎo)致模型輸出不穩(wěn)定。字符串類型是最安全的端側(cè)模型對(duì)字符串的處理能力最強(qiáng)幾乎不會(huì)出錯(cuò)。所以能用字符串的地方盡量用字符串哪怕這個(gè)參數(shù)本質(zhì)上是數(shù)字或布爾值。比如“是否開啟某功能”這個(gè)參數(shù)用布爾類型的話模型可能會(huì)輸出true字符串而不是true布爾值導(dǎo)致解析失敗但如果用字符串類型約定yes和no模型輸出的穩(wěn)定性會(huì)高很多。數(shù)字類型要小心端側(cè)模型經(jīng)常會(huì)把數(shù)字輸出成字符串或者在數(shù)字里混入單位。比如讓它填“溫度”參數(shù)它可能輸出25度而不是25。解決辦法是在 Schema 里明確說明“只填數(shù)字不要帶單位”同時(shí)在外部解析時(shí)做容錯(cuò)處理用正則把數(shù)字提取出來。枚舉類型在端側(cè)要慎用尤其是枚舉值較多的時(shí)候。模型可能會(huì)輸出一個(gè)不在枚舉列表里的值或者輸出枚舉值的變體比如大小寫不一致、多了空格。如果一定要用枚舉建議枚舉值用簡(jiǎn)單的英文單詞不要用中文或復(fù)雜字符串同時(shí)在外部做映射和兜底。數(shù)組類型在端側(cè)是最容易出問題的模型經(jīng)常會(huì)把數(shù)組輸出成字符串或者數(shù)組元素類型不一致。如果確實(shí)需要數(shù)組參數(shù)建議限制數(shù)組長(zhǎng)度并且在 Schema 里明確說明元素類型。比如“標(biāo)簽列表”這個(gè)參數(shù)可以約定最多三個(gè)標(biāo)簽每個(gè)標(biāo)簽是字符串。2.3 多工具場(chǎng)景下的 Schema 組織端側(cè) Agent 通常需要支持多個(gè)工具怎么把這些工具的 Schema 組織起來喂給模型也是一個(gè)工程化問題。最直接的做法是把所有工具的 Schema 拼成一個(gè)大 JSON 數(shù)組一次性塞進(jìn) system prompt 里。這種做法在工具數(shù)量少的時(shí)候沒問題但工具一多prompt 長(zhǎng)度會(huì)迅速膨脹端側(cè)模型的上下文窗口根本扛不住。我的做法是分層組織。第一層是工具分類把功能相近的工具歸為一組比如“出行類”“通訊類”“設(shè)備控制類”。第二層是組內(nèi)工具每個(gè)組內(nèi)的工具 Schema 放在一起。在對(duì)話時(shí)先讓模型判斷用戶意圖屬于哪個(gè)分類然后只把該分類下的工具 Schema 加載進(jìn)上下文。這樣每次推理時(shí)上下文里只有少量工具的 Schema長(zhǎng)度可控。這個(gè)思路類似于“路由”用一個(gè)輕量的分類步驟換取上下文空間的節(jié)省。分類步驟本身也可以用一個(gè)很小的模型或者規(guī)則引擎來做不一定非要走大模型推理。還有一種做法是動(dòng)態(tài)加載根據(jù)對(duì)話歷史判斷當(dāng)前可能需要哪些工具只加載這些工具的 Schema。這種做法更靈活但實(shí)現(xiàn)復(fù)雜度也更高需要維護(hù)一個(gè)工具和意圖的映射關(guān)系。在端側(cè)資源緊張的環(huán)境里我傾向于用分層組織這種簡(jiǎn)單可靠的方案。2.4 Prompt 約束與輸出格式控制Schema 定義好了接下來要解決的是怎么讓模型按 Schema 輸出。端側(cè)模型的指令遵循能力有限光靠 Schema 本身不夠還需要在 prompt 里加約束。約束的核心是明確輸出格式。我通常會(huì)在 system prompt 里寫清楚如果需要調(diào)用工具只輸出一個(gè) JSON 對(duì)象不要輸出任何其他文字JSON 對(duì)象必須包含name和arguments兩個(gè)字段arguments必須符合對(duì)應(yīng)工具的 Schema。這些約束要寫得直白、具體不要用抽象的描述。除了文字約束還可以用示例約束。在 prompt 里給一兩個(gè)輸入輸出的示例讓模型模仿。端側(cè)模型對(duì)示例的模仿能力比對(duì)文字描述的理解能力更強(qiáng)給示例往往比寫一堆規(guī)則更有效。還有一個(gè)技巧是輸出前綴。在 prompt 的末尾加上{name:這樣的前綴引導(dǎo)模型從這里開始續(xù)寫。這種做法能顯著提高 JSON 輸出的成功率因?yàn)槟P筒恍枰约簺Q定從哪里開始輸出 JSON只需要接著前綴往下寫就行。當(dāng)然這個(gè)前綴要在解析時(shí)補(bǔ)回去。實(shí)測(cè)下來這幾種約束手段組合使用端側(cè)模型的 Function Calling 成功率能從百分之六七十提升到百分之九十以上。剩下的百分之十靠外部解析和重試來兜底。3. 工具調(diào)用鏈路的工程化實(shí)現(xiàn)3.1 從模型輸出到工具執(zhí)行的完整鏈路一個(gè)完整的端側(cè) Function Calling 鏈路從模型輸出到工具執(zhí)行再到結(jié)果回傳中間有很多環(huán)節(jié)每個(gè)環(huán)節(jié)都可能出問題。鏈路的第一步是模型推理模型根據(jù)當(dāng)前對(duì)話上下文和工具 Schema輸出一段文本。這段文本理論上應(yīng)該是一個(gè) JSON 對(duì)象但實(shí)際上可能是 JSON 外面包了文字、可能是多個(gè) JSON、可能是格式錯(cuò)誤的 JSON。第二步是輸出解析從模型輸出里提取出 JSON 對(duì)象。這一步要做容錯(cuò)比如去掉 JSON 前后的多余文字、修復(fù)常見的格式錯(cuò)誤比如單引號(hào)、尾逗號(hào)、處理模型輸出的多個(gè) JSON取第一個(gè)或最后一個(gè)。第三步是參數(shù)校驗(yàn)檢查解析出來的 JSON 是否符合 Schema。這一步要檢查必填字段是否都有、字段類型是否正確、枚舉值是否在范圍內(nèi)。校驗(yàn)不通過的話要么重試要么走兜底邏輯。第四步是工具執(zhí)行根據(jù)name找到對(duì)應(yīng)的工具實(shí)現(xiàn)把a(bǔ)rguments傳進(jìn)去執(zhí)行。這一步要處理工具執(zhí)行失敗的情況比如網(wǎng)絡(luò)超時(shí)、參數(shù)不合法。第五步是結(jié)果回傳把工具執(zhí)行的結(jié)果塞回對(duì)話上下文讓模型基于結(jié)果生成最終回復(fù)。這一步要注意結(jié)果的格式最好是結(jié)構(gòu)化的方便模型理解。這五步里第一步和第二步是最容易出問題的也是工程化投入最多的地方。第三步到第五步相對(duì)標(biāo)準(zhǔn)化但也不能掉以輕心。3.2 輸出解析的容錯(cuò)策略輸出解析是端側(cè) Function Calling 工程化里最臟最累的活因?yàn)槟阋鎸?duì)模型各種千奇百怪的輸出格式。我總結(jié)了幾種常見的異常輸出和對(duì)應(yīng)的處理策略。第一種是JSON 外面包了文字比如模型輸出“好的我來幫你查一下天氣 {name: get_weather, arguments: {city: 北京}}”。處理策略是用正則找到第一個(gè){和最后一個(gè)}把中間的部分提取出來。第二種是JSON 格式錯(cuò)誤比如用了單引號(hào)、多了尾逗號(hào)、少了引號(hào)。處理策略是先嘗試標(biāo)準(zhǔn) JSON 解析失敗的話用寬松的解析器比如 Python 的json5或者自己寫一個(gè)簡(jiǎn)單的修復(fù)邏輯。第三種是輸出多個(gè) JSON比如模型先輸出一個(gè)工具調(diào)用然后又輸出了一段解釋解釋里又包含了一個(gè) JSON。處理策略是只取第一個(gè)完整的 JSON 對(duì)象忽略后面的內(nèi)容。第四種是字段名或類型錯(cuò)誤比如把a(bǔ)rguments寫成了args把字符串寫成了數(shù)字。處理策略是在解析后做字段映射和類型轉(zhuǎn)換盡量把模型的輸出往正確的格式上靠。第五種是完全無法解析模型輸出了一段自然語言根本沒有 JSON。處理策略是走重試邏輯把模型的輸出和錯(cuò)誤信息一起塞回上下文讓它重新輸出。這些容錯(cuò)策略要組合使用形成一個(gè)解析管線。我的經(jīng)驗(yàn)是解析管線要盡量寬松能救則救實(shí)在救不回來再重試。因?yàn)槎藗?cè)模型推理一次的成本不低能少重試一次就少一次。3.3 多輪工具調(diào)用的狀態(tài)管理單輪工具調(diào)用相對(duì)簡(jiǎn)單模型輸出一個(gè)工具調(diào)用執(zhí)行完把結(jié)果塞回去模型生成最終回復(fù)結(jié)束。但實(shí)際場(chǎng)景里很多任務(wù)需要多輪工具調(diào)用比如“幫我查一下明天北京的天氣如果下雨就提醒我?guī)恪边@需要先查天氣再根據(jù)天氣結(jié)果決定是否設(shè)置提醒。多輪工具調(diào)用的狀態(tài)管理核心是維護(hù)一個(gè)清晰的對(duì)話狀態(tài)。每一輪工具調(diào)用的輸入、輸出、模型的中間推理都要記錄下來作為下一輪推理的上下文。同時(shí)要有一個(gè)終止條件判斷什么時(shí)候任務(wù)完成可以生成最終回復(fù)了。終止條件通常有兩種一種是模型明確表示不再需要調(diào)用工具直接輸出自然語言回復(fù)另一種是達(dá)到了預(yù)設(shè)的最大輪次強(qiáng)制終止。端側(cè)場(chǎng)景里最大輪次要設(shè)得小一些比如三輪到五輪因?yàn)槎藗?cè)模型推理慢輪次太多用戶體驗(yàn)會(huì)很差。狀態(tài)管理還有一個(gè)容易忽略的點(diǎn)是工具調(diào)用的去重。模型有時(shí)候會(huì)重復(fù)調(diào)用同一個(gè)工具傳相同的參數(shù)這時(shí)候要判斷是不是真的需要重復(fù)調(diào)用還是模型陷入了循環(huán)。如果是后者要主動(dòng)打斷避免無限循環(huán)消耗資源。3.4 工具執(zhí)行失敗的降級(jí)處理工具執(zhí)行失敗在端側(cè)是常態(tài)網(wǎng)絡(luò)不穩(wěn)定、權(quán)限不足、參數(shù)不合法都可能導(dǎo)致工具執(zhí)行失敗。工程化要做的是在工具失敗的時(shí)候Agent 能優(yōu)雅降級(jí)而不是直接崩潰。降級(jí)策略分幾個(gè)層次。第一層是重試對(duì)于網(wǎng)絡(luò)超時(shí)這類臨時(shí)性失敗可以自動(dòng)重試一到兩次。第二層是參數(shù)修正如果失敗原因是參數(shù)不合法可以嘗試修正參數(shù)后重新執(zhí)行比如把城市名從“北京市”改成“北京”。第三層是工具替換如果某個(gè)工具不可用可以嘗試用功能相近的替代工具。第四層是告知用戶如果以上都不行就如實(shí)告訴用戶工具執(zhí)行失敗讓用戶決定下一步。這四層降級(jí)策略要按順序嘗試能自動(dòng)解決的就自動(dòng)解決解決不了的再交給用戶。端側(cè) Agent 的用戶體驗(yàn)很大程度上取決于這些降級(jí)邏輯做得好不好。4. MCP 在端側(cè) Agent 中的落地實(shí)踐4.1 MCP 協(xié)議的核心機(jī)制與端側(cè)適配MCP 的核心是 JSON-RPC 通信客戶端和服務(wù)端通過請(qǐng)求-響應(yīng)模式交互。在端側(cè) Agent 場(chǎng)景里Agent 本身是客戶端工具實(shí)現(xiàn)是服務(wù)端??蛻舳税l(fā)送工具調(diào)用請(qǐng)求服務(wù)端執(zhí)行工具并返回結(jié)果。MCP 協(xié)議定義了三種核心能力Tools可調(diào)用的函數(shù)、Resources可讀取的數(shù)據(jù)、Prompts預(yù)定義的提示模板。端側(cè) Agent 最常用的是 ToolsResources 和 Prompts 在端側(cè)場(chǎng)景里用得相對(duì)少一些。端側(cè)適配 MCP 的關(guān)鍵在于通信方式的選擇。MCP 支持多種傳輸方式包括標(biāo)準(zhǔn)輸入輸出、HTTP、WebSocket 等。端側(cè)環(huán)境里如果工具和 Agent 跑在同一個(gè)進(jìn)程里可以直接用函數(shù)調(diào)用不需要走 MCP 協(xié)議如果工具跑在獨(dú)立進(jìn)程里可以用標(biāo)準(zhǔn)輸入輸出或本地 socket如果工具跑在遠(yuǎn)端才需要走 HTTP 或 WebSocket。我的建議是端側(cè) Agent 的工具盡量和 Agent 跑在同一個(gè)進(jìn)程里用函數(shù)調(diào)用直接交互避免 MCP 協(xié)議的開銷。只有在工具確實(shí)需要獨(dú)立部署的時(shí)候才引入 MCP。這樣既能享受 MCP 帶來的解耦好處又能避免不必要的性能損耗。4.2 端側(cè) MCP Server 的實(shí)現(xiàn)要點(diǎn)如果確實(shí)需要在端側(cè)實(shí)現(xiàn) MCP Server有幾個(gè)要點(diǎn)需要注意。第一是輕量化。端側(cè)的 MCP Server 不要用重量級(jí)的框架盡量用輕量的實(shí)現(xiàn)。JSON-RPC 的序列化和反序列化可以用現(xiàn)成的庫但不要引入太多依賴端側(cè)的包體積和內(nèi)存都很寶貴。第二是啟動(dòng)速度。端側(cè)應(yīng)用的啟動(dòng)速度直接影響用戶體驗(yàn)MCP Server 的啟動(dòng)要盡可能快。避免在啟動(dòng)時(shí)做耗時(shí)的初始化比如加載大模型、建立網(wǎng)絡(luò)連接這些可以延遲到第一次調(diào)用時(shí)再做。第三是資源隔離。MCP Server 和 Agent 主進(jìn)程之間要做好資源隔離避免一個(gè)工具的內(nèi)存泄漏影響整個(gè) Agent。如果工具的執(zhí)行可能耗時(shí)較長(zhǎng)要考慮放到獨(dú)立線程或進(jìn)程里執(zhí)行避免阻塞主線程。第四是錯(cuò)誤處理。MCP Server 要把工具執(zhí)行的各種錯(cuò)誤都捕獲住轉(zhuǎn)換成 MCP 協(xié)議定義的錯(cuò)誤格式返回給客戶端。不要讓異常直接拋到協(xié)議層導(dǎo)致通信中斷。4.3 工具注冊(cè)與動(dòng)態(tài)發(fā)現(xiàn)MCP 的一個(gè)好處是支持工具的注冊(cè)和動(dòng)態(tài)發(fā)現(xiàn)。Agent 啟動(dòng)時(shí)可以向 MCP Server 查詢有哪些工具可用然后把這些工具的 Schema 加載進(jìn)來。這樣新增工具的時(shí)候Agent 側(cè)不需要改代碼只要 MCP Server 注冊(cè)了新工具Agent 就能自動(dòng)發(fā)現(xiàn)。在端側(cè)場(chǎng)景里動(dòng)態(tài)發(fā)現(xiàn)的價(jià)值主要體現(xiàn)在插件化上。你可以把 Agent 的核心邏輯和工具實(shí)現(xiàn)分開工具以插件的形式提供用戶按需安裝。Agent 啟動(dòng)時(shí)掃描已安裝的插件通過 MCP 協(xié)議獲取插件的工具列表然后把這些工具納入可用工具集。這種架構(gòu)的靈活性很高但實(shí)現(xiàn)復(fù)雜度也不低。端側(cè)做插件化要考慮插件的加載、卸載、版本管理、權(quán)限控制等一系列問題。如果工具集相對(duì)固定我建議還是用靜態(tài)注冊(cè)的方式簡(jiǎn)單可靠。4.4 MCP 與 Function Calling 的協(xié)同MCP 和 Function Calling 不是替代關(guān)系而是協(xié)同關(guān)系。Function Calling 解決的是“模型怎么表達(dá)要調(diào)用哪個(gè)工具、傳什么參數(shù)”MCP 解決的是“工具調(diào)用請(qǐng)求怎么從 Agent 傳到工具實(shí)現(xiàn)”。在一個(gè)端側(cè) Agent 里典型的協(xié)同流程是這樣的模型通過 Function Calling 輸出一個(gè)工具調(diào)用請(qǐng)求Agent 側(cè)解析這個(gè)請(qǐng)求轉(zhuǎn)換成 MCP 協(xié)議的格式通過 MCP 客戶端發(fā)送給 MCP ServerMCP Server 執(zhí)行工具把結(jié)果返回給 AgentAgent 再把結(jié)果塞回對(duì)話上下文讓模型生成最終回復(fù)。這個(gè)流程里Function Calling 和 MCP 各司其職Function Calling 負(fù)責(zé)模型和 Agent 之間的接口MCP 負(fù)責(zé) Agent 和工具之間的接口。兩者解耦各自可以獨(dú)立演進(jìn)。5. 端側(cè) Agent 工程化的常見坑與排查5.1 模型輸出不穩(wěn)定的排查思路模型輸出不穩(wěn)定是端側(cè) Agent 最常見的問題表現(xiàn)是同樣的輸入有時(shí)候能正確調(diào)用工具有時(shí)候不能。排查這個(gè)問題我通常按以下順序檢查。先看prompt 是否太長(zhǎng)。端側(cè)模型的上下文窗口有限prompt 太長(zhǎng)會(huì)導(dǎo)致模型注意力分散輸出質(zhì)量下降。檢查方法是把 prompt 打印出來數(shù)一下 token 數(shù)如果接近模型的上下文窗口上限就要考慮精簡(jiǎn)。再看Schema 是否太復(fù)雜。Schema 里的字段太多、嵌套太深、描述太長(zhǎng)都會(huì)增加模型的負(fù)擔(dān)。檢查方法是把 Schema 單獨(dú)拿出來看看能不能再精簡(jiǎn)。然后看示例是否充分。如果 prompt 里沒有給示例或者示例太少模型可能不知道該怎么輸出。檢查方法是加一兩個(gè)示例看看輸出是否穩(wěn)定。最后看模型本身的能力。如果以上都排查了還是不穩(wěn)定可能是模型本身的能力不夠需要考慮換一個(gè)更大的模型或者用量化程度更低的版本。5.2 工具調(diào)用參數(shù)錯(cuò)誤的修復(fù)技巧參數(shù)錯(cuò)誤是另一個(gè)高頻問題模型輸出的參數(shù)不符合 Schema導(dǎo)致工具執(zhí)行失敗。修復(fù)參數(shù)錯(cuò)誤我常用的技巧有以下幾個(gè)。類型轉(zhuǎn)換如果模型把數(shù)字輸出成了字符串解析時(shí)自動(dòng)轉(zhuǎn)成數(shù)字。如果模型把布爾值輸出成了字符串解析時(shí)自動(dòng)轉(zhuǎn)成布爾值。枚舉映射如果模型輸出的枚舉值不在列表里嘗試做模糊匹配找到最接近的枚舉值。比如模型輸出“經(jīng)濟(jì)艙”枚舉列表里是“economy”就做一個(gè)中文到英文的映射。默認(rèn)值填充如果模型漏填了某個(gè)可選字段用默認(rèn)值填充。默認(rèn)值要在 Schema 里定義好解析時(shí)如果發(fā)現(xiàn)字段缺失就用默認(rèn)值。參數(shù)修正如果模型輸出的參數(shù)明顯不對(duì)比如城市名寫錯(cuò)了可以嘗試用規(guī)則或小模型做修正。比如“北京市”修正為“北京”“上海是”修正為“上?!?。這些技巧要組合使用形成一個(gè)參數(shù)修復(fù)管線。修復(fù)管線要盡量寬松能修則修修不了再報(bào)錯(cuò)。5.3 內(nèi)存與性能瓶頸的優(yōu)化方向端側(cè) Agent 的內(nèi)存和性能瓶頸主要集中在模型推理和工具執(zhí)行兩個(gè)環(huán)節(jié)。模型推理的優(yōu)化方向包括量化用 4bit 或 8bit 量化減小模型體積和內(nèi)存占用、剪枝去掉模型中不重要的參數(shù)、蒸餾用大模型教小模型提升小模型的能力、緩存緩存常用的推理結(jié)果避免重復(fù)計(jì)算。工具執(zhí)行的優(yōu)化方向包括異步執(zhí)行工具執(zhí)行不阻塞主線程、結(jié)果緩存緩存工具執(zhí)行結(jié)果避免重復(fù)調(diào)用、批量執(zhí)行多個(gè)工具調(diào)用合并成一次執(zhí)行、超時(shí)控制給工具執(zhí)行設(shè)置超時(shí)避免長(zhǎng)時(shí)間阻塞。這些優(yōu)化手段要根據(jù)具體場(chǎng)景選擇不是所有手段都適用。比如量化會(huì)損失一定的模型能力如果模型本身能力就不夠量化后可能更差。所以優(yōu)化要在保證功能的前提下進(jìn)行不能為了性能犧牲功能。5.4 常見問題速查表問題現(xiàn)象可能原因排查方法解決思路模型不調(diào)用工具prompt 約束不明確檢查 system prompt加明確的輸出格式約束和示例模型輸出非 JSON模型能力不足換更大模型測(cè)試加輸出前綴引導(dǎo)或換模型JSON 解析失敗格式錯(cuò)誤打印原始輸出用寬松解析器加修復(fù)邏輯參數(shù)類型錯(cuò)誤Schema 定義不清檢查 Schema加類型說明解析時(shí)做轉(zhuǎn)換工具執(zhí)行超時(shí)工具實(shí)現(xiàn)問題單獨(dú)測(cè)試工具加超時(shí)控制異步執(zhí)行多輪調(diào)用死循環(huán)終止條件缺失檢查輪次控制設(shè)最大輪次加去重邏輯內(nèi)存占用過高模型太大監(jiān)控內(nèi)存量化模型優(yōu)化緩存策略推理速度慢硬件限制測(cè)推理耗時(shí)用更小模型加推理緩存這張表是我在實(shí)際項(xiàng)目里總結(jié)出來的覆蓋了端側(cè) Agent 工程化里八成以上的常見問題。遇到問題的時(shí)候可以先對(duì)照這張表快速定位然后再深入排查。6. 工程化實(shí)踐中的經(jīng)驗(yàn)沉淀6.1 Schema 設(shè)計(jì)的迭代方法Schema 設(shè)計(jì)不是一次成型的需要反復(fù)迭代。我的做法是先設(shè)計(jì)一個(gè)初版 Schema然后在真實(shí)場(chǎng)景里跑一批測(cè)試用例統(tǒng)計(jì)調(diào)用成功率。對(duì)于成功率低的工具分析失敗原因是字段太多、描述不清、還是類型不對(duì)然后針對(duì)性調(diào)整 Schema再跑一批測(cè)試看成功率是否提升。這個(gè)迭代過程通常要重復(fù)三到五輪才能把 Schema 打磨到一個(gè)比較穩(wěn)定的狀態(tài)。迭代的時(shí)候要注意每次只改一個(gè)變量這樣才能知道是哪個(gè)改動(dòng)帶來了提升。如果一次改多個(gè)地方成功率變了也不知道是哪個(gè)改動(dòng)起的作用。迭代過程中要積累一個(gè)測(cè)試用例集覆蓋各種典型的用戶輸入和邊界情況。這個(gè)用例集是寶貴的資產(chǎn)每次改 Schema 都用它來回歸測(cè)試確保改動(dòng)不會(huì)引入新的問題。6.2 工具粒度的權(quán)衡工具粒度是端側(cè) Agent 設(shè)計(jì)里的一個(gè)重要決策。粒度太粗一個(gè)工具干太多事模型很難正確傳參粒度太細(xì)工具數(shù)量太多上下文裝不下模型也容易選錯(cuò)工具。我的經(jīng)驗(yàn)是一個(gè)工具只做一件事但這件事的邊界要清晰。比如“查天氣”和“查空氣質(zhì)量”可以是一個(gè)工具因?yàn)樗鼈兌际遣樵儹h(huán)境信息參數(shù)也相似但“查天氣”和“設(shè)鬧鐘”必須是兩個(gè)工具因?yàn)樗鼈兊墓δ芡耆煌?。工具的?shù)量控制在十個(gè)以內(nèi)比較合適超過十個(gè)就要考慮分組或動(dòng)態(tài)加載。端側(cè)模型的上下文窗口有限工具太多會(huì)擠占對(duì)話歷史的空間影響多輪對(duì)話的體驗(yàn)。6.3 端側(cè) Agent 的測(cè)試策略端側(cè) Agent 的測(cè)試比云端 Agent 更難因?yàn)槎藗?cè)環(huán)境復(fù)雜模型行為不確定很難用傳統(tǒng)的單元測(cè)試覆蓋。我的測(cè)試策略分三層。第一層是單元測(cè)試測(cè)試 Schema 解析、參數(shù)校驗(yàn)、工具執(zhí)行這些確定性邏輯用 mock 數(shù)據(jù)模擬模型輸出確保這些環(huán)節(jié)的正確性。第二層是集成測(cè)試用真實(shí)的模型跑一批測(cè)試用例統(tǒng)計(jì)工具調(diào)用成功率和最終回復(fù)質(zhì)量這層測(cè)試要跑多次因?yàn)槟P洼敵鲇须S機(jī)性。第三層是端到端測(cè)試在真實(shí)的端側(cè)設(shè)備上跑完整的用戶場(chǎng)景測(cè)試內(nèi)存占用、推理延遲、功耗等指標(biāo)。這三層測(cè)試?yán)锛蓽y(cè)試是最重要的也是最花時(shí)間的。我通常會(huì)準(zhǔn)備一個(gè)包含幾十個(gè)用例的測(cè)試集覆蓋各種工具調(diào)用場(chǎng)景每次改動(dòng)后都跑一遍看成功率有沒有下降。6.4 從工程化到產(chǎn)品化的最后一公里工程化做完了離產(chǎn)品化還有一段路。產(chǎn)品化要考慮的東西更多比如用戶體驗(yàn)、錯(cuò)誤提示、隱私保護(hù)、版本更新。用戶體驗(yàn)方面端側(cè) Agent 的響應(yīng)速度是關(guān)鍵。模型推理慢的時(shí)候要有 loading 提示工具執(zhí)行慢的時(shí)候要有進(jìn)度反饋任務(wù)完成的時(shí)候要有清晰的回復(fù)。這些細(xì)節(jié)直接影響用戶對(duì)產(chǎn)品的感知。錯(cuò)誤提示方面端側(cè) Agent 出錯(cuò)的時(shí)候要給用戶友好的提示而不是一堆技術(shù)術(shù)語。比如工具執(zhí)行失敗不要直接說“HTTP 500”而是說“網(wǎng)絡(luò)好像不太穩(wěn)定稍后再試試”。隱私保護(hù)方面端側(cè) Agent 的優(yōu)勢(shì)就是數(shù)據(jù)不出本地這個(gè)優(yōu)勢(shì)要在產(chǎn)品里體現(xiàn)出來。用戶的數(shù)據(jù)、對(duì)話歷史、工具調(diào)用記錄都要存在本地不上傳云端。版本更新方面端側(cè) Agent 的模型和工具都可能需要更新要設(shè)計(jì)好更新機(jī)制支持增量更新和回滾。這一公里的路技術(shù)含量可能不如前面的工程化但重要性一點(diǎn)不低。很多端側(cè) Agent 項(xiàng)目就是死在這一公里上技術(shù)做得很漂亮但產(chǎn)品體驗(yàn)一塌糊涂用戶用一次就再也不用了。我個(gè)人在實(shí)際操作中的體會(huì)是端側(cè) Agent 的工程化沒有銀彈每一個(gè)環(huán)節(jié)都要摳細(xì)節(jié)每一個(gè)問題都要有兜底方案。模型能力不夠就用工程手段補(bǔ)工程手段補(bǔ)不了的就用產(chǎn)品設(shè)計(jì)繞。整個(gè)過程就是不斷地在能力、資源、體驗(yàn)之間找平衡。這個(gè)平衡點(diǎn)每個(gè)項(xiàng)目都不一樣需要根據(jù)具體情況去摸索。但有一點(diǎn)是共通的先把最簡(jiǎn)單的場(chǎng)景做到極致穩(wěn)定再逐步擴(kuò)展復(fù)雜度。貪多求快最后往往什么都做不好。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
手机看片1024你懂的国产| 乱伦Av网| 欧美黑人极品高潮喷吹熟女黑人性暴力日韩在线欧美极品一区二区老师 | 欧州一区二区三区四区| 黑人与人妻| 熟女精品一区二区三区| 日韩精品一区二区三区色欲| 91操人| 男人午夜天堂| 国产sv美女内射| 亚码人妻| 久久鲁夜| 大香蕉 222| 4399成人黄A片| 久久久久久久久久久免费精品| 日韩精品人妻中文字幕不卡乱码| 9久9久| 亚洲图片在线| 97伦综合| 欧美熟女逼久久久久久| 亚洲少妇激情视频| 欧美夜夜骑视频| 久久精品国产97欧美精品亚洲| 在线女人91| 久久久婷婷| 五月丁香婷婷综合| 青青草在线成人视频| 婷婷激情五月| 97超碰天天爱天天爱| 青青青国产| 91在线限制级| 在线视频五十市| 大香蕉 222| 69AV女优男人的天堂| 日韩中文字幕精品一区在线| 加勒比色综合| 亚洲天堂资源| 欧美性色欧美| 一区二区三| 黑人综合网| 最新日本中文字幕| 懂色中文一区二区三区| 欧美性爱无码一区二区三区| 国产色呦呦| 国产免费一区在线观看| 看一级黄色视频| 亚洲AV无码国产精品久久久久| 国产亚洲日韩在线三区黑人| 免费中文在线| 四虎 精品 WWW| 亚洲熟妇熟在线电影视频| 亚州综合色图| 久久久久久久综合,国产| 超碰精品97| 人妻娇喘 激情视频| 美女诱惑一区| 啪啪视频亚洲第一| 超碰av在线| 久久草草欧美精品| 青青草字幕AV| 91少妇人妻| 日本人妻最新在线中| 亚洲黄色视频在线观看视频| 超碰人人干| a久久| 后入 亚洲 美女 射| www.97在线| 久久妇| 1769国内精品视频| 在线综合色| 99视频内射三四| 久久久99久9| 狠狠操一区二区| 啊啊啊啊好大好硬啊啊啊啊啊| 超碰97综合网| 日本精品成人无码| 9久精品视频在线观看| 五十路成人在线视频二区三区| 超碰色图| 风流老熟女一区二区三区l| 激情五月婷婷综合| 青青草久草AV| 中文字幕高清精品一区| 国模精品一区二区三区苹果色戒| 大香蕉中文aV在线| 91久久国产精品| 国产精品又黄又猛又粗| 青青草视频这里只有精品| 丝袜视频一区二区在线播放国产中文| 人人爱人人乐人人操| 免费综合亚洲中文| 校园春色家庭伦理欧美激情| 乱伦色图网址是多少| 看一级黄色视频| 神马久久中文字幕| 亚洲欧洲自拍图片专区满春格| 在线观看日韩av不卡| 亚洲情色第一页| 日本高清视频在线观看黄已三辽| 国产女人极品高潮毛片| 亚洲综合图文| 午夜无遮挡男女啪啪视频| 日本人妻A片成人免费看片| 人妻熟妇久草在线| 乱伦1色页| 亚洲美乱| 操逼操逼操| 天天干天天干天天干| 超碰97首页| 精品久久无码午夜福利| 国产大片精久久久久久| 亚欧色图在线激情| 亚洲激情久久| 亚洲资源一区| 日本人妻A片成人免费看片| 日韩一级二级三级免费看完整版国语版| 一区二区三区四区理论片| 五月丁香社区婷婷日韩欧美精品影院 | 亚洲情色91| 国产精品一级二级在线| 岛国网址国产 | 日本熟女免费視颖| 91日产欧美| 精品中文字幕第一页| 青青草黑寡妇男人天堂| 先锋影音av先锋一区| 国产精品天美传媒| 亚洲一区二区三区不卡国产欧美| 狠狠夜色午夜久久综合在线| 操逼片国产| 欧美第二页午夜| 久久久久亚洲Aⅴ无码| 亚洲综合小视频小说在线观看| 亚洲国产精品V?在线播放| 91美女在线精品视频| 中文久久| 国产视频小说| 色情综合网| 久久久久久九九九| 国产精品亚洲日韩骚欢乐谷最新地址发布页huanieguty性屋娱乐妖精视频 | 岛国黄色大片网站| 日本成人在线不卡一区二区三区| 成人色女网| 在线岛| 欧美玖玖爱免费玖玖| 日日摸夜夜夜夜爽| 超碰九7| 哈哈操电影AV| 大香蕉乱伦视频网| 老熟女网站| 精品视频97| 超碰人人超在线观看| 97视频播放| 欧美综合骚| jk白丝没脱就开始啪啪| 大逼色网站| 91逼逼女人91| 五月丁香六月婷综合成人综合| 色臀AV| 中文字幕亚洲欧美在线不卡| 九九黄色视频在线观看| 日本精品一级二级三级| 97亚洲精品| 美女黄码视频午夜| 婷婷色一区| 无码一区二区精品视频久久久春药 | 99视频自拍区| 白丝少妇一区二区| av大香蕉| 久操视频资源站公开| 亚州性9| 亚欧美综合网。| 色色色网站| 国产成人自拍视频视频| 亚洲丝袜少妇在线| 日本高清一本二本免费不卡| 欧美最婬乱婬爆婬牲视频| 一牛影视久久久一区二区三区| 国产探花精品在线| 五月丁香六月综合缴清无码| 亚洲高清自拍| 欧美性91| 九九九国产| 亚洲综合图色在线| 综合网~91综合网| 日欧美色| 国产精品经典一卡久久久| 狠狠激情综合狠狠操中文字幕| 久久久久久亚洲Av无码| 亚洲第一免费视频| 免费精品国偷自产在线在线 | 操逼操网| 免费看A片毛毛片在线播| 丁香九月婷婷| 久久久人妻| 97资源站国产精品| 日日操免费视频| 免费视频一二三区| 97视频在线免费观看| 91久久国外网| 亚洲文学偷乱拍啪啪啪啪| 精品人妻一区二区乱码一区二区| 久久免费中文字幕在线观看| 91色鬼| 大香交伊人网| AV天天在线观看| 啊…啊…操我用力操我| 天天干天天插| 亚洲一区中文字幕久久,果冻传媒一区二区天美传媒 | 久久伊人青青草| 口爆综合网| 东北女人操比视频| 曰韩av中文字幕专区| 中文字幕一区二区韩| 一区二区三区精品视频| 亚洲色图欧美色图制服丝袜| 亚洲天堂在线怕怕视频| 992这里有精品| 97视频在线观看免费高清| 乱伦AVxx| 久九九九九九九九热| 欧美一级特黄淫片在线观看| 91九色丨国产丨爆乳| 97色综合中文网| 玖玖爱免费观看视频| 中国黑人三级片网站上区| 亚洲高清视频在线免费观看| 亚州AV无码国产精品| 伊人久久大香线蕉亚洲五月天,青草青草欧美日本一区二区,欧美日产欧美日产国产 | 在线视频日韩欧美国产| 男人的天堂色偷偷青青草视频婷婷网| 亚洲图片91| 92福利社视频| 黄色香蕉视频网站一区| 蜜臀无码视频在线观看| 日日黄色三级网站| 少妇二级| 亚洲影院无码在线| 99热官网| 伊人操你| 欧美色图片欧美色图| 91动漫操逼视频| 后入合集| 宅男午夜在线视频| 亚洲综合婷婷| 欧美顶级黄色大片免费| 欧美一区二区男人天堂| 九九久精品| 99热超碰| 嗯啊不要啊在线 | 九九精品网| 最新中文字幕av| 懂色av中文字幕一区二区三区天美| 国产精品色色| 日本视频在线观看污污污| 国产无码久久高清| av三级电影在线播放| 亚洲欧美另类图片| 1204人成网站色www| 国产精品suv一区| 啊灬快c我灬啊灬用力灬啊灬-国产精品性做久久久久久-成人AV | 超碰95| 性感美女啊啊啊在线| 在线中文AV| 北京美女一区二区| 99热日| 在线情色电影 91大| 欧洲亚洲天堂精品| 四虎av在线| 九九久精品| 97亚洲色图| 亚洲在线91| 91国产操逼视频| 日本久久女同性恋视频| 午夜男女爽爽爽影院视频| 久久超碰网| 国产精品剧情| 国产白嫩漂亮KTV在线| 隔壁邻居波多野结衣中文字幕| 99无码狠狠久久| 黑人精品一区二区在线播放| 思思热免费视频观看| www.acm成人黄色毛片| 国产熟女无套内射| 日韩97超碰中文字幕| 好看的久久不射无码影视影院| 久久久久久久久久久久久久久性生活视频 | 精品中文字幕一区二区| 激情综合网五月婷婷| 国产在线不卡导航| 超碰偷拍| 国产成人无码啪| 亚洲美女精品| 日韩欧美麻豆| 日韩欧美中文| 爽爽淫人网| 无码91| 国产欧美日产一区二区三区 - 国产欧美日 | 大香蕉国产中文自拍| 久九九九九九九九热| 国产成人 综合亚洲 天堂| 亚欧性爱ab| 国产成人主播| 日韩精品字幕| 嗯嗯嗯啊啊啊在线免费观看| 国产嫩草精品A88AV| 欧洲亚洲国产综合在线| 日韩人妻少妇中文字幕| 大香蕉伊人75| 色欲蜜臀AV| 久久视频,这里只有精品| 国产一区二区在线播放量| 一牛影视久久久一区二区三区| 偷拍导航视频网站| 狠狠久久亚洲欧美专区| 神马麻豆福利院| 美腿色图| 殴美大黄片| 中文字幕人妻丝袜乱一区三区| 入口操逼网站| 国产精品人妻无码久久久互動交流| 国产精品久久成人免费| 日本506070| 色激情综合网站| 青草青青久久久久久国产| 黄色无码高清黄色无码网站| 99在线观看无大码| 日本五十路熟女一区二区| 亚洲欧洲第二视频在线观看色图| 6080YYY午夜理论片在线观看| 91人妻丝袜无码| 色婷婷六月丁香七月婷婷| 欧美日日夜夜| 人妻一二三区| 国产不卡的视频| 亚洲 欧美 手机在线观看| 91老妇女| 四虎视频在线观看| 亚洲精品一区二区三区在线播放| 欧美色91| 啊啊啊啊二区好大| 开心五月天激情网| 亚洲暴力强奸AV| 亚洲综合第一页| 色综合20p| 国产伦精品免编号公布| 亚洲最大AV网| 玖草在线视频| 骚妻少妇精品性色无码四色A V| 日韩精品一区二区三区色欲| 99久久精品无码一区二区毛片免费| 国模久久在线| 大香交| 91黑丝露脚| 91社区拍啪人妻| 欧美亚洲手机在线| chaopen97久久| 亚洲熟女综合| 国产少妇肉丝在线观看| 国产色呦呦| 免费精品无码一级毛片牛牛影视| 精品免费国产二区三区| 91丝袜在线观看视频在线观看| 天天干天天干天天干| 亚洲人妻av| 性爱av在线免费观看| 国产成人自拍视频视频| 最新中文字幕在线亚洲| 激情小说图片亚洲首页| 欧美色吧综合| 亚洲不卡三级手机播放| 欧美性爱日韩高清| 秘书高跟黑色丝袜国产91在线| 狠狠干综合| 999精品国产高清一区二区| 亚洲免费97免费| 欧美A√综合网| 色娱乐色呦呦夜夜夜夜av| 欧美日韩免费专区在线| 啊啊啊啊啊在线视频| 丝袜色综合| 青青操在线亚洲视频观看欧美在线 | 亚洲日韩欧美一区二区| 18禁久极品美女久久哦哟呀!| 久久亚洲一区女同性恋中文字幕| 97在线视频免费看| 97啪啪| 亚洲精品毛片在线观看| 素人播放一区| 九一性生活免费视频| 一区二区三区高清 | av日韩在线观看电影| 日韩强奸av| 春色综合网| 夜夜肏2021| 国产精品另类一区大香蕉| 91痴汉| 亚洲欧美色图小说| 久久99操天天日| 日韩综合97P| 国产一区二区免费福利片| 亚洲一级性爱视频免费看| 国产熟女少妇一区| 色逼综合| 人人妻人人操人人乐| q2午夜理论片夜色av| xxx0国产在线播放| 日本人妻天堂网站在线播放| 中文字幕在线免费观看2| www超碰| 欧美96在线|欧| 国产一区二区三区导航| 日本不卡一二区| 一二三区在线| 久久精品国产亚洲AV清纯| 麻豆国产尤物AV| 啪啪啪综合网| 裸模AV女优| 日本黄大片在线观看视频| 色女网日韩| 国产高清无码一区三区二区| 草草电影院| 超碰在线成人| 中日亚韩免费视频| 阿姨一区二区免费视频-高清正片西瓜视频下载app-T450AV | 欧美日韩情色一区二区| 蜜臀视频网站| 操狠狠| 国精精品无码一二三区水多多| 黄色成年| AV在线播放网址| 久久精品72| 天天添天天干电影| 久久精品国产96精品亚洲拳交| 美女被啪到深处抽搐视频| 中文字幕、久久精品国产2020、久久综合久久自在自线精品自、亚洲 | 新精精品久久精品| 国产精品欧美激在线| 亚洲一区二区三区久久 亚洲一区二区| 欧美另类综合久久| 日韩不卡av一二三| 日本肉体xxxx裸交| 97香蕉碰碰人妻国产欧美| 极品美女福利在线观看| 国语国产操逼伊人AV网| 91操人| 在线啊v一区| 熟女六十路| 9999久久久久| 91欧美偷拍| 欧美亚洲成人在线一区二区三区| 欧洲亚洲人妻无码中字久久三区四区 | 亚洲色图第四色| 十八禁电影伊人网| 亚洲色婷婷综合久久一区二区三区| 97在线青| 91在线欧美| 熟女五十路一区二区三| 99久久精品国产高潮| 亚欧性爱在线无码| 国产女上位好爽在线| 亚洲www91| 精品人妻丰满熟妇一区二区三| 热久久99999| AV久日| 999久久久精品国产| 青草草免费网站av| 欧美成熟性爱精品| 91激情| 蜜臀久久99精品久久久久久-DVD| 人妻少妇久久| 色偷偷人人玩人人舔人人操人人摸人人爽| 97日视频| 龙兴卡官方查询| 亚洲综合贴图91| 久久9免费视频| 天天操狠狠日夜夜干超大胆开放com大香蕉视频在线观看 | 中文字幕91综合| 久久人妻丝袜一区二区三| 日韩在线视频1234| 日产中文字幕2020| 亚洲欧美天| 中国人高清www色视频免费| 超碰午夜| 97国产高清视频在线观看| 黄色视频特级毛片| 欧美专区在线| 成人小说另类在线| 日本免费中文字幕在线| 亚洲夜夜欢无码一区二区| 日韩偷拍色图| 欧美日本视频一区| 日本爽爽爽爽爽爽免费视频| 日本三级一区二区 在线| 97碰在线视频| 情侣操 逼视频99| 国产尤物在线三区| 中文日本免费高清| 成年女人一区| 97久久久久| 粉嫩在线一区二区懂色| 91丝袜熟女| 爱逼综合| AV 少妇 人妻 偷拍| 天天操天天日天天干| 中文字幕在线免费观看 | avav青青草久久夜| 成人无码在线视频网站| 96AV精品| 精品999一区二区| blacked精品一区国产| 伊人玖玖网| 一区二区三区美女超清| 91色艳| 三及片网站| 色欲蜜臀AV| 99re8免费高清在线| 中文字幕精品免费一区二区| 丁香五月av| 亚洲精品国产精品乱码不卡| www久久国产精品| 97综合在线| 久久久涩| 91丝袜美腿网站| 午夜福利一区二区影院| 天天爽夜夜欢视| 精品传媒在线一区| 激情开心五月天| 日韩欧美加勒比| 乱日视频| 亚洲成人免费中文字幕| 99少妇内射| 日韩一级二级| 亚洲小电影免费涩涩成人在线高清| 超碰天天操| 精品亚洲黄色片 国产精品导航一区二区| 成人五月天色网| 九九探花视频在线观看| 国产综合久| 青青草国产一区二区三区| 摸奶性爱视频网站在线免费播放| 78p欧美| 日韩亚洲国产视频| 久久久久九九九| 精品国产99| 日韩人妻无码专区| 日韩欧美中文日韩欧美色| 97久久超碰日韩精品| 日本丝袜美腿人妻九九| 亚洲va综合va国产va中文| 中文字幕午夜精品久久久| 天天看夜夜看日日干| 热G综合热G中文| 第四色亚洲色图| 丁香五月影院| 五月丁香激情综合网| 成全在线观看免费观看| 91福利网在线观看| 大香蕉78| 久久在肏| 国产精品九九九| 久久区| 伊香蕉综合久久久久久久噜噜噜| 啊啊啊啊啊好舒服视频| 大香蕉国产中文自拍| 精品福利视频| 国产盗摄美女如厕大神作品在线观看| 婷婷精品| 国产农村妇女一区二区| 久热久一区二区三区| 天天干美少妇一区| 九九热免费国产视频婷婷伊人五月| 狠狠色婷婷| 丁香五月成人| 91青视频| 亚洲黄色网址| 中国91AV| 国产午夜精品理论片一二三区区 | 亚洲国产一级精品毛一级精品看免费视频 | 国产免费一区二区三区最新不卡| 丁香五月婷婷色| 人妻夜夜爽天天爽麻豆三区网站| 欧美日韩国产电影| 日本五区不卡| 超碰诱惑| 免费啪啪av| 91人妻素女| 偷窥自拍亚洲色图| 国产亚洲日本| 黄片www视频免费| 一区二区三区黄色片a| 日本熟妇人妻中出视频| 丁香五月激情综合| 国产精品3| 热99这里有精品综合久久 | 国产精品96| A片大香蕉在线| 99热国产| 亚洲情色 自拍| 日韩性爱1级片视频| 99综合视频一体| 日本黄页视频在线观看| 国产精品不卡av免费在线观看| 天堂а√在线最新版在线| 一本一道人妻久久一区二区三区 | 91在线美女| 亚洲欧美综合网| 少妇高潮特黄A片| 2019天天操天天爽天天拍| 91天天综合| 色妹子A V| 日本一卡二区在线| 国产亚洲精品自在线亚洲情侣| 一本色道久久综合熟妇| 国产成人亚洲精品无码古代早漏男| 精品人妻二区三区| 国产福利视频精品视频| 97色97好| 成人八戒网站| 60秒免费视频| 亚欧Av| 97网色| 综合影院亚洲| 欧美区亚洲区偷拍区| 丝袜翘臀后入欧美校园亚洲自拍另类小说一区中文字幕少妇诱惑 | 欧美激情久操网| 大香蕉十区| 男人女人18禁片免费看网站| 怡红院怡春院| 2019久久久久久久久福利| 国产黄色动态精品| 一区二区免费电影久久| 欧美专区17页| 超碰97网址| av国产无码| 99热在线播放| 九一性生活免费视频| 亚洲图片欧美日韩| 91天堂色男人的天堂| 9999久久久| 日韩精品9999| 中文字幕 人妻不满 在线视频| 国产精品 视频| 骚妻少妇精品性色无码四色A V| 秋霞鲁丝午夜无码一区二区三| 五月婷色| 色五天伊人| 婷婷爽人人婷婷爽视频| 97频视在线| 国产一级αv免费看片| 精品视频在线观看精品| 欲色综合| 9久久久久久| 四虎在线播放| 精品一区二区三区蜜桃臀赵总| 欧美日韩大黄片| 日韩视频中文字幕| 国产久9| 91草草草| 国产不卡中文字幕免费avi| 丁香久久| 97久久久久久久精| 日本Xx性爱| 亚洲在线观看| 亚洲女人毛茸茸91| 久草电影网| 精久久久| 在线视频资源| 三四中文字幕| 国产综合久久久麻桃个| 91美女小视频| 强奸乱伦AV一天堂网| 欧美十八禁视频| 精品91日日夜夜超清资源| 水滴偷拍| 日韩无码极品| 乱伦a片视频| 亚洲av无线观看| 人人色人人操在线| 大香蕉免费中文| 91黑丝少妇| 欧洲亚洲综合| 91熟女在线| 国产在线激情视频| 色婷婷电影网| 天堂av2019| 99抽插| 亚州性色| 91高清无码下载| 国产精品直播在线观看直播| 性影在线视频| 成人三一级一片aaa| 97精品国产97久久久久久户外免费| 亚洲情色 自拍| 青青爽| 亚洲熟妇AV日韩熟妇在线| 97超碰磁| 2019午夜福利视频| 韩日精品四区| 国产成年精品高清在线观看91| q2午夜理论片夜色av| 激情五月综合| 午夜男女爽爽爽影院视频| 风月影院男女十八禁| 尹人大香蕉视频在线| 国产绿奴视频在线观看| 色97干| 亚洲欧美一区二区不卡视频播放| 九九RE视频在线精品| 91狠狠| 日韩射图| 欧美少妇第一页| 97福利视频| 国产乱色国产精品免费视| 欧美日日人人天天| 搞中出视频在线观看| 色色色网站| 99久久精品无码一区二区| 色欧美亚洲| 国产丁香精品露脸视频| 亚洲综合性感在线| 男人女人18禁片免费看网站| 欧美精品庄| 狠狠2050在线观看| 床上啊啊啊一区二区三区| 福利视频网站| 97在线日韩中文字幕| 91欧美长吊| 欧美久久草熟女| 大香蕉乱伦视频网| 日韩AV一起草| 亚洲一区二区三区播放在线| 人妻少妇无码 | 伊人五月天婷婷| 亚洲Av诱惑| 久久9精品网站| 国产一区二区三区中文字幕| 中文字幕精品区先锋资源| 欧美激情性爱视频网站| 后入精品| 91熟女视频网| 智利AV在线网| 91国精产品| 亚洲人精品午夜不卡| 91在线色| 久久综合女优| 日韩精品怡红院| 99抽插| 综合亚洲情色| 东北老女人的激情视频| 少妇激情AV| 精人妻无码一区二区三区伊人直播| 日韩三级在线观看mp4| 91天天综合网,天天综合网| 国产久久视频| 伊人青青一区成人视频在线观看区| 欧洲综合视频| 67194无码不卡| 男人的天堂.com| 欧美伦乱爱| 国产乱人妻精品入口| 风骚少妇视频中文字幕| 人妻无码一区二区三区久久99| 久久久精品九| 久久久精选| 日本国产欧美一区三区二区 | 激情综合网亚洲| 亚洲精品国语在线播放| 日韩欧美亚欧在线视频| 在线岛| 精品亚洲国产成人精品| 99色天堂| 亚洲 欧美 91| 亚洲色资源| 超碰在线1234区| 97亚洲综合影院| 国产辣妈在线视频福利| 欧美不卡五十路| 操逼逼福利视频| 六月丁香五月婷婷| 91美女在线看| 欧美色道啊| 曰韩人妻中文字幕在线| 国产午夜福利专区综合| 在线看免费无码AV天堂的| 超碰人妻在线| 亚洲欧美setu| 91美女视频直播| 黄色大片免费在线| 日本高清_区二区三区| 六九九九| 久久99草| 色偷偷人人玩人人舔人人操人人摸人人爽| 亚洲图片欧美另类综合免费视频大大香| 亚洲欧美激情小说| 久久透逼视频| 国产亚洲精品自在线亚洲情侣| 毛片视频白嫩| 97精品在线| 国产一区二区三区高清视频| 伊人黄色视频免费观看| 大香蕉 222| 国产夫妻性生活视频| 青娱乐福利99| 激情小说五月天| 成人精品视频| 91狠狠综| 久久久一区二区三区四曲免费听| 性色国产东北露脸精品视频| 麻豆成人AV| 亚州免费啪啪视频| 亚洲天堂另类小说男人| 99热欧美| 亚洲精品97| 色婷婷综合网| 色悠久久久av| 草草影院日本第一页| 色五月激情网| 深夜激情| 国产AV激情无码久久无码 | 91 亚洲 欧洲| 东京热毛片调教| 强奸乱伦AV网站| 男生女生啊啊啊啊| 麻豆成人AV| 色五月激情网| 精品制服美女中文一区二区三区| 亚州免费啪啪视频| 欧洲乱码一区二区| 一级做受视频免费是看美女| 99欧美| 噜噜噜噜久久久精品免费| 美女写真| 国产热av| 国产一区二区三区白丝| 欧美日韩国产电影| a亚洲欧美色欲| 800zy一区二区| 无码天堂| 国产SV一线| 亚洲一区日韩精品中文字幕| 啊啊啊用力在线观看| 易易A毛视频| 日本高清电影欧美色图| 男人天堂2030| 青娱乐 成人娱乐在线| 亚州综| av婷婷色网| 久久夜夜| 男人 天堂 日 亚洲| se吧提供国产乱老熟视频胖女人| 西西美女视频网| 国模无码人体一区二区三| 久久神马影院| 少妇无码av专区线| 神马久久久久久伦理片| 和协无码影院| 天天操夜夜嗨| 男人的天堂无码| 五月天婷婷成人网| 五月天伊人网| 欧美天堂日韩三级国产传媒| 人人看黄色视频| 欧美综合网1| 综合久久六月久久婷婷| 青青五月天| 玖玖97综合 | 91搡老女人老妇女老熟女歌词翻译| 婷婷国产精品九区| 强奸乱伦AV网址| 呻吟 欧美 日本 中出| 天天爽天天| 99久国产精品午夜性色福利| 色香伊人| 欧美熟爽综合| 成人网站 免费观看| 久久久久久中文| 天天日天天射天天干| 大香网站| 人人操人人肉久久精品| 99国产精品免费| 在线综合色| 日本精品五区| 人妻少妇色综合| 五月丁香啪啪| 日韩一区二区精彩视频| 日韩在线观看AV| 欧美制服网站美腿丝袜| 国产欧美岛国精品一区| 亚洲第一页综合在线| 日韩欧美女优电影| 岛国在线一区二区三区| 91亚洲综合在线| 蜜桃一区二区三区| 激情综合五月丁香| 日韩精品国产一区二区| 蜜臀久久99精品久久久久电影| 激情亚洲天堂| 色色婷婷五月天| 超碰成人公开| 97超碰人妻| 青青草原香蕉日本Ap| 中文字幕亚洲欧美在线不卡| 任你草| 中国一级操逼视频| 丰满人妻被猛烈进入中| 97视频免费在线| 久久久111| 精品国产一区二区三区av在线资源| 国产成人无码a| 91春色| 日本二区不卡| 伊人午夜福利视频| 91美乳| 欧美少妇一区二区三区| 国产一区二区欧美日本| 久久久久久69国产一区二区| 97色在线视频| 日韩欧美女求操每天更新| 少妇精品久久久| 久久久久久9999| 大香蕉碰碰| 久久性爱视频| 狠狠操夜夜操蜜桃视频三区| 日本欧美亚洲高清在线看| 福利操逼| 极品综合| 亚洲日本激情| 日韩欧美大片免费高清啪啪| 欧美激情一区| 美女91AV| 91成人18| 天天看综合网| 99啪啪| 黄片无码在线制服| 天天视频黄网站| 97资源视频| 一区不卡在线观看av| 欧美亚洲激情| 亲子敌伦对白在线播放| 97视频免费播放| 国产精品96久久久久久| 欧美第二页| 久午视频| 在线日韩日本亚洲国产| 欧美人妻少妇| 成·人免费午夜在线观看| 欧美碰碰综合色| 亚洲丝袜诱惑| 大色综合| 一区二区免费电影久久| 国产精品久久久久无码Av网曝门| 99亚洲精品| 久久双插| 久久精品日韩| 国产美女高潮叫床视频| 国产精品自拍欧美在线| 老熟女中文字幕高清| 中文字幕88av在线| 亚洲天天影视色综合| 国产传媒美日韩av| 99热国产精品| 欧美精品久久久久久久久88| 久久9精品网站| 精品视频久久区| 日韩BBN| 四虎AV在线播放| 校园春色综合网| aaa亚无码专区| 韩国黄片aaaa| 成人日本视频人妻在线| 91色综| 国产中文字幕曰本毛片| 丁香五月婷婷色| 免费看污网站| 双插在线| 男女啊啊啊啊啊| 2024年最新色情网站在线观看| A V视频日本| 强免费黄色网址| 青青草视频久久久久| 激情小说亚洲视频| 婷婷午夜清品久久久久久久性色视频观| 日本成熟少妇A∨网站| 最好看的中文字幕在线2018| 九九在线精品| 亚洲AV资源| 欧美后入式| 91人精品妻入口| 五月天婷精品激情| 中美日韩毛片| 亚洲交换| 国产最新小视频在线播放下载| 婷婷六月色| 国产丰满少妇久久久精品影院| 97在线视频免费看| 蜜乳AV一区| 亚洲 欧美 91| 欧美97av| 无码区蜜乳| 91精品电影18| 亚洲少妇综合| 亚欧免费| 日本三级小说中文字幕| 蜜桃狠狠色伊人亚洲综合| 欧美日韩大香蕉| 奇米狠999| 歐美一級亂黃99在綫精品| 亚州欧美在线| 日韩精品色呦呦| 亚洲国产一区二区三区在线| 97超碰这里只有精品| 青青操网| 日本韩国一本产品小视频日本韩国一本产品久久久产品小视频日本韩国一本产品久 | 男人天堂网站| 亚洲一级性爱视频免费看| 欧美色三级片91| 大香久久| 一级啊性爱在线视频| 日韩欧美水蜜桃人妻| 欧美激情精品| 色婷五月| 超碰这里只有精品| 东京热一区二区中文字幕| 啊灬啊灬啊灬好深灬快高潮了动漫-国产字幕国产在线观看-B049AV | 国产视频第2页| 亚洲电影中字一区二区| 亚洲nv男人的天堂网| 嗯嗯不要 视频| 欧美日韩黄片精品在线| 冬京热男人的天堂| 视频国产欧美在线播放| 天天综合精品| 草草草草视频| 强奸乱伦av电影| 久久视频,这里只有精品| 老司机老司机午夜影院| 91在线丝袜视频| 天天看天天在线精品| 丁香五月天婷婷姐| 久久久久亚洲熟妇熟女| 亚洲狼狼干综合1| 黄骗免费网站| 麻豆婷婷成人一二三| 欧美激情高清性猛交| 伊人久久88国产女| 91麻豆天美| 97中文天堂| 100啪啪视频大全| 在线观看一卡二卡| 成人线上超碰| 在线视频一区二区传媒| 国产无码精品无码| 加勒比日本在线 | 亚洲色吧网| 97视频新免费| 性爱乱伦视频免费| 美性中文综合网| 欧美成人黄网色网站| 啊啊啊好大好深| 婷婷五月天基地| 五月天婷婷在线看| 97视频观看| 成人日韩欧美| 搡老女人911熟妇老熟女| 精品人妻一区二区三区-国产| 亚洲密乳AV| 日日AAvv| 男人的天堂亚洲| 久操操AV电影| 91 丝袜在线观看| www.久久爱| 久久精品国产欧美日韩亚洲欧美日韩中文久久国产一区 | 久久精品一区二区三区四区五区| 男人的天堂激情| 久久黄色性爱视频| 91久久国产精品| 日韩二三区| 中国女人内射6XXXXX| 日韩15p| 国产免费久久精品99re韩国| 國產尤物AV尤物在線觀看| 国语精品av| 综合色拍| 色av中文字| 美国精品国产精品| 青草一区二区| 国产十八禁视频| 精品久久久亚洲AV成人网站| 青娱乐淫乱1314| 91大神电影天堂| 最新啪啪视频| 久久性爱视频99| 午夜精品久久久99热蜜桃的功能特点| 大香樵伊人网| 亚洲国产午夜真人一级片中文字幕精品黄网站| 97综合久第一页| AV老汉| 五月丁香久久| 亚洲免费在线探花| 2024黄色视频| 久久久中文版| 欧美熟妇视频| 啊视频在线| 欧洲黄色网| 久草新在线| 激情内射| 久久婷婷在线观看视频| 久久一二三四五六七八九区区区 | 91精品婷婷国产综合久久竹菊| 91粉芽高清在线一区二区| 亚洲欧美另类图片| 日韩黄色小说| 亚洲涩涩| 久久精品亚洲婷婷| 大香蕉伊人久久| A片三级无码| 亚洲啪啪视频免费| 国产Aα| 天天射影院| 国产精品无码av| 国产v亚洲v日韩v欧美v片另类 | 精品亚洲天堂| 激情文学小说一区二区| 黄色成品网站| 99啪| 国产人妻精品久久久一区二区三区 | 草草影院最新网址| 欧美色图 色综合图| 加勒比久久av| 久久综合久久综合人久久夜精品| 国产日韩欧美三级片| 大香蕉专区| 综合在线导航一区| 久操网视频| 欧美人人曰人人操人人射射 | 久久久999网站| 一本道综合色图| 狠狠干狠狠干| 欧日韩不卡视.频| 中字乱伦AV| www.久久99| 精品一区二区三区蜜桃臀赵总 | 久久精品中文字幕女同| 国产中文福利| 小骚逼被操的爽不爽| baiduhicn.com。| 开心六月色| 你草精品在线视频| 中文字幕女同在线| 丁香五月天久久精品视频一区二区三区| 嗯嗯啊啊用力视频免费| 啊啊好多水| 午夜成人福利影视| 久久最新视频免费观看| 色麻豆AV| 日本 免费 一区二区三区 久久香蕉| 欧美精品 - 91爱爱| 精品成人女人久久| 精品国产乱码久久久久久免费|