99精品久久精品一区二区-亚洲熟妇无码?v在线播放-日本国产精品无码字幕在线观看-久久久亚洲永夜AV-亚洲一级无码一区二区一-免费国产成高清人在线视频-中文字幕乱码免费观看-国产毛片精品妇女久久久

ARTICLE DETAIL

資訊詳情

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

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

端側(cè)Agent工程化實(shí)戰(zhàn):Function Calling與MCP的Schema設(shè)計(jì)與容錯策略 1. 端側(cè) Agent 工程化的核心命題1.1 從 Demo 到產(chǎn)品端側(cè) Agent 的工程化鴻溝很多人在端側(cè)跑通第一個 Agent Demo 的時候都會有一種錯覺這東西已經(jīng)成了。本地模型加載起來Function Calling 調(diào)通一兩個工具命令行里問一句“幫我查一下明天天氣”模型返回一個結(jié)構(gòu)化的 JSON工具執(zhí)行完把結(jié)果塞回去模型再吐出一段自然語言——整個鏈路跑通了感覺離產(chǎn)品就差一個 UI。但真正把端側(cè) Agent 往產(chǎn)品方向推的時候問題會成倍地冒出來。模型在 PC 上跑得好好的到了手機(jī)端內(nèi)存直接爆掉Function Calling 在單輪對話里沒問題一旦進(jìn)入多輪、多工具、帶狀態(tài)的場景模型開始胡編參數(shù)JSON Schema 寫得稍微復(fù)雜一點(diǎn)小模型的輸出就開始不穩(wěn)定該填字符串的地方給你填了個對象該用枚舉的地方給你編了一個不存在的值。這些問題在 Demo 階段都可以靠“換個 prompt”糊過去但在工程化階段每一個都是必須系統(tǒng)性解決的硬骨頭。端側(cè) Agent 工程化要解決的核心矛盾其實(shí)就一句話在算力、內(nèi)存、功耗都受限的端側(cè)環(huán)境里讓一個能力有限的小模型穩(wěn)定地完成復(fù)雜的工具調(diào)用任務(wù)。這個矛盾決定了端側(cè) Agent 的工程化思路和云端 Agent 有本質(zhì)區(qū)別。云端 Agent 可以堆模型參數(shù)、堆上下文長度、堆并發(fā)端側(cè)不行端側(cè)每一兆內(nèi)存、每一次推理延遲都要精打細(xì)算。我自己的體會是端側(cè) Agent 的工程化難點(diǎn)集中在三個層面協(xié)議層Function Calling 的格式定義與約束、調(diào)度層多工具、多輪次的狀態(tài)管理與編排、運(yùn)行時層模型加載、內(nèi)存管理、推理加速。這三個層面里協(xié)議層是地基調(diào)度層是骨架運(yùn)行時層是血肉。這一篇主要聊協(xié)議層和調(diào)度層也就是 Function Calling 和 MCP 相關(guān)的工程化實(shí)踐運(yùn)行時層的內(nèi)容留到下一篇展開。1.2 為什么 Function Calling 是端側(cè) Agent 的命門Function Calling 這個概念本身不復(fù)雜就是讓模型輸出一段結(jié)構(gòu)化的內(nèi)容告訴外部系統(tǒng)“我要調(diào)用哪個函數(shù)、傳什么參數(shù)”。但在端側(cè)環(huán)境里這件事的難度會被放大好幾倍。原因在于端側(cè)跑的多半是 1B 到 7B 級別的小模型這些模型的指令遵循能力和格式化輸出能力遠(yuǎn)不如云端的大模型。你讓 GPT-4 輸出一個符合 JSON Schema 的對象它基本不會出錯但你讓一個 3B 的量化模型做同樣的事它可能會在 JSON 外面包一層解釋文字可能會把字段名拼錯可能會在數(shù)值字段里填一個字符串甚至可能直接編造一個 Schema 里不存在的字段。所以端側(cè) Agent 的 Function Calling 工程化核心不是“怎么讓模型調(diào)用工具”而是“怎么讓模型在能力受限的情況下盡可能穩(wěn)定地輸出符合預(yù)期的結(jié)構(gòu)化內(nèi)容”。這里面涉及到 Schema 設(shè)計(jì)、Prompt 約束、輸出解析、錯誤恢復(fù)等一系列工程手段每一個環(huán)節(jié)都有很多細(xì)節(jié)可以摳。我見過不少團(tuán)隊(duì)在這個環(huán)節(jié)踩坑最常見的就是直接把云端 Agent 的那套 Schema 搬到端側(cè)結(jié)果小模型根本扛不住那么復(fù)雜的結(jié)構(gòu)輸出成功率慘不忍睹。正確的做法是反過來先摸清楚端側(cè)模型的能力邊界然后在這個邊界內(nèi)設(shè)計(jì)盡可能簡單的 Schema再用工程手段去兜底。1.3 MCP 在端側(cè) Agent 里的定位MCPModel Context Protocol這兩年被討論得很多它的核心價值是給模型和外部工具之間定義了一套標(biāo)準(zhǔn)化的通信協(xié)議。在云端 Agent 場景里MCP 解決的是“工具生態(tài)碎片化”的問題——不同的工具提供方各自定義接口Agent 開發(fā)者要一個個適配成本很高。有了 MCP工具提供方按協(xié)議暴露能力Agent 側(cè)按協(xié)議調(diào)用雙方解耦。但在端側(cè) Agent 場景里MCP 的定位需要重新思考。端側(cè) Agent 的工具集通常是固定的、有限的不像云端 Agent 那樣需要動態(tài)發(fā)現(xiàn)和接入大量第三方工具。所以端側(cè)引入 MCP更多是為了統(tǒng)一內(nèi)部的工具調(diào)用抽象讓 Agent 的核心邏輯和具體工具實(shí)現(xiàn)解耦方便后續(xù)替換和擴(kuò)展。舉個例子你在端側(cè)做了一個支持“查天氣、設(shè)鬧鐘、發(fā)消息”三個工具的 Agent如果不用 MCP你可能在代碼里硬編碼三個函數(shù)的調(diào)用邏輯如果用 MCP你可以把這三個工具都封裝成 MCP ServerAgent 側(cè)只負(fù)責(zé)按協(xié)議發(fā)請求具體工具怎么實(shí)現(xiàn)、用什么語言實(shí)現(xiàn)、跑在哪個進(jìn)程里都不影響 Agent 的核心邏輯。這樣一來后續(xù)要加新工具、要換工具實(shí)現(xiàn)改動量會小很多。不過端側(cè)引入 MCP 也有代價主要是協(xié)議本身的開銷。MCP 的通信基于 JSON-RPC每次調(diào)用都有序列化和反序列化的成本在端側(cè)這種資源緊張的環(huán)境里這個開銷不能忽略。所以我的建議是端側(cè) Agent 是否引入 MCP要看工具集的規(guī)模和變化頻率。如果工具就三五個且基本不變直接硬編碼可能更劃算如果工具有十幾個且經(jīng)常增刪那 MCP 帶來的解耦收益就值得那點(diǎn)協(xié)議開銷。2. Function Calling 的 Schema 設(shè)計(jì)與約束策略2.1 JSON Schema 在端側(cè)的精簡原則JSON Schema 是 Function Calling 的基礎(chǔ)它定義了模型可以調(diào)用的函數(shù)長什么樣、參數(shù)是什么類型、哪些是必填的。在云端場景里Schema 可以寫得很詳細(xì)字段描述可以很長枚舉值可以很多因?yàn)榇竽P陀凶銐虻纳舷挛拇翱诤屠斫饽芰θハ@些信息。但端側(cè)不行。端側(cè)模型的上下文窗口通常只有 2K 到 8KSchema 本身就要占掉一部分端側(cè)模型的理解能力有限Schema 里的描述文字太長反而會干擾它的判斷。所以端側(cè) Function Calling 的 Schema 設(shè)計(jì)核心原則就是精簡。具體怎么精簡我總結(jié)了幾個實(shí)操要點(diǎn)。第一字段描述能短則短不要寫“請?zhí)顚懹脩粝胍樵兊某鞘忻Q支持中文和英文”直接寫“城市名”就夠了。第二枚舉值不要太多超過五個枚舉值的字段考慮改成字符串讓模型自由填寫然后在外部做校驗(yàn)和映射。第三嵌套結(jié)構(gòu)能扁平就扁平端側(cè)模型處理嵌套對象的準(zhǔn)確率明顯低于扁平結(jié)構(gòu)。第四必填字段盡量少非必要字段都設(shè)成可選減少模型漏填導(dǎo)致的調(diào)用失敗。下面是一個對比示例左邊是云端風(fēng)格的 Schema右邊是端側(cè)精簡后的 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: 艙位等級 } }, required: [departure_city, arrival_city, date] } }// 端側(cè)精簡描述短枚舉少結(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] } }精簡后的 Schema 在端側(cè)模型上的調(diào)用成功率實(shí)測下來比云端風(fēng)格的高出不少。原因很簡單模型要處理的信息少了出錯的概率自然就低了。2.2 參數(shù)類型的選擇與陷阱端側(cè) Function Calling 里參數(shù)類型的選擇有很多講究選錯了類型會直接導(dǎo)致模型輸出不穩(wěn)定。字符串類型是最安全的端側(cè)模型對字符串的處理能力最強(qiáng)幾乎不會出錯。所以能用字符串的地方盡量用字符串哪怕這個參數(shù)本質(zhì)上是數(shù)字或布爾值。比如“是否開啟某功能”這個參數(shù)用布爾類型的話模型可能會輸出true字符串而不是true布爾值導(dǎo)致解析失敗但如果用字符串類型約定yes和no模型輸出的穩(wěn)定性會高很多。數(shù)字類型要小心端側(cè)模型經(jīng)常會把數(shù)字輸出成字符串或者在數(shù)字里混入單位。比如讓它填“溫度”參數(shù)它可能輸出25度而不是25。解決辦法是在 Schema 里明確說明“只填數(shù)字不要帶單位”同時在外部解析時做容錯處理用正則把數(shù)字提取出來。枚舉類型在端側(cè)要慎用尤其是枚舉值較多的時候。模型可能會輸出一個不在枚舉列表里的值或者輸出枚舉值的變體比如大小寫不一致、多了空格。如果一定要用枚舉建議枚舉值用簡單的英文單詞不要用中文或復(fù)雜字符串同時在外部做映射和兜底。數(shù)組類型在端側(cè)是最容易出問題的模型經(jīng)常會把數(shù)組輸出成字符串或者數(shù)組元素類型不一致。如果確實(shí)需要數(shù)組參數(shù)建議限制數(shù)組長度并且在 Schema 里明確說明元素類型。比如“標(biāo)簽列表”這個參數(shù)可以約定最多三個標(biāo)簽每個標(biāo)簽是字符串。2.3 多工具場景下的 Schema 組織端側(cè) Agent 通常需要支持多個工具怎么把這些工具的 Schema 組織起來喂給模型也是一個工程化問題。最直接的做法是把所有工具的 Schema 拼成一個大 JSON 數(shù)組一次性塞進(jìn) system prompt 里。這種做法在工具數(shù)量少的時候沒問題但工具一多prompt 長度會迅速膨脹端側(cè)模型的上下文窗口根本扛不住。我的做法是分層組織。第一層是工具分類把功能相近的工具歸為一組比如“出行類”“通訊類”“設(shè)備控制類”。第二層是組內(nèi)工具每個組內(nèi)的工具 Schema 放在一起。在對話時先讓模型判斷用戶意圖屬于哪個分類然后只把該分類下的工具 Schema 加載進(jìn)上下文。這樣每次推理時上下文里只有少量工具的 Schema長度可控。這個思路類似于“路由”用一個輕量的分類步驟換取上下文空間的節(jié)省。分類步驟本身也可以用一個很小的模型或者規(guī)則引擎來做不一定非要走大模型推理。還有一種做法是動態(tài)加載根據(jù)對話歷史判斷當(dāng)前可能需要哪些工具只加載這些工具的 Schema。這種做法更靈活但實(shí)現(xiàn)復(fù)雜度也更高需要維護(hù)一個工具和意圖的映射關(guān)系。在端側(cè)資源緊張的環(huán)境里我傾向于用分層組織這種簡單可靠的方案。2.4 Prompt 約束與輸出格式控制Schema 定義好了接下來要解決的是怎么讓模型按 Schema 輸出。端側(cè)模型的指令遵循能力有限光靠 Schema 本身不夠還需要在 prompt 里加約束。約束的核心是明確輸出格式。我通常會在 system prompt 里寫清楚如果需要調(diào)用工具只輸出一個 JSON 對象不要輸出任何其他文字JSON 對象必須包含name和arguments兩個字段arguments必須符合對應(yīng)工具的 Schema。這些約束要寫得直白、具體不要用抽象的描述。除了文字約束還可以用示例約束。在 prompt 里給一兩個輸入輸出的示例讓模型模仿。端側(cè)模型對示例的模仿能力比對文字描述的理解能力更強(qiáng)給示例往往比寫一堆規(guī)則更有效。還有一個技巧是輸出前綴。在 prompt 的末尾加上{name:這樣的前綴引導(dǎo)模型從這里開始續(xù)寫。這種做法能顯著提高 JSON 輸出的成功率因?yàn)槟P筒恍枰约簺Q定從哪里開始輸出 JSON只需要接著前綴往下寫就行。當(dāng)然這個前綴要在解析時補(bǔ)回去。實(shí)測下來這幾種約束手段組合使用端側(cè)模型的 Function Calling 成功率能從百分之六七十提升到百分之九十以上。剩下的百分之十靠外部解析和重試來兜底。3. 工具調(diào)用鏈路的工程化實(shí)現(xiàn)3.1 從模型輸出到工具執(zhí)行的完整鏈路一個完整的端側(cè) Function Calling 鏈路從模型輸出到工具執(zhí)行再到結(jié)果回傳中間有很多環(huán)節(jié)每個環(huán)節(jié)都可能出問題。鏈路的第一步是模型推理模型根據(jù)當(dāng)前對話上下文和工具 Schema輸出一段文本。這段文本理論上應(yīng)該是一個 JSON 對象但實(shí)際上可能是 JSON 外面包了文字、可能是多個 JSON、可能是格式錯誤的 JSON。第二步是輸出解析從模型輸出里提取出 JSON 對象。這一步要做容錯比如去掉 JSON 前后的多余文字、修復(fù)常見的格式錯誤比如單引號、尾逗號、處理模型輸出的多個 JSON取第一個或最后一個。第三步是參數(shù)校驗(yàn)檢查解析出來的 JSON 是否符合 Schema。這一步要檢查必填字段是否都有、字段類型是否正確、枚舉值是否在范圍內(nèi)。校驗(yàn)不通過的話要么重試要么走兜底邏輯。第四步是工具執(zhí)行根據(jù)name找到對應(yīng)的工具實(shí)現(xiàn)把a(bǔ)rguments傳進(jìn)去執(zhí)行。這一步要處理工具執(zhí)行失敗的情況比如網(wǎng)絡(luò)超時、參數(shù)不合法。第五步是結(jié)果回傳把工具執(zhí)行的結(jié)果塞回對話上下文讓模型基于結(jié)果生成最終回復(fù)。這一步要注意結(jié)果的格式最好是結(jié)構(gòu)化的方便模型理解。這五步里第一步和第二步是最容易出問題的也是工程化投入最多的地方。第三步到第五步相對標(biāo)準(zhǔn)化但也不能掉以輕心。3.2 輸出解析的容錯策略輸出解析是端側(cè) Function Calling 工程化里最臟最累的活因?yàn)槟阋鎸δP透鞣N千奇百怪的輸出格式。我總結(jié)了幾種常見的異常輸出和對應(yīng)的處理策略。第一種是JSON 外面包了文字比如模型輸出“好的我來幫你查一下天氣 {name: get_weather, arguments: {city: 北京}}”。處理策略是用正則找到第一個{和最后一個}把中間的部分提取出來。第二種是JSON 格式錯誤比如用了單引號、多了尾逗號、少了引號。處理策略是先嘗試標(biāo)準(zhǔn) JSON 解析失敗的話用寬松的解析器比如 Python 的json5或者自己寫一個簡單的修復(fù)邏輯。第三種是輸出多個 JSON比如模型先輸出一個工具調(diào)用然后又輸出了一段解釋解釋里又包含了一個 JSON。處理策略是只取第一個完整的 JSON 對象忽略后面的內(nèi)容。第四種是字段名或類型錯誤比如把a(bǔ)rguments寫成了args把字符串寫成了數(shù)字。處理策略是在解析后做字段映射和類型轉(zhuǎn)換盡量把模型的輸出往正確的格式上靠。第五種是完全無法解析模型輸出了一段自然語言根本沒有 JSON。處理策略是走重試邏輯把模型的輸出和錯誤信息一起塞回上下文讓它重新輸出。這些容錯策略要組合使用形成一個解析管線。我的經(jīng)驗(yàn)是解析管線要盡量寬松能救則救實(shí)在救不回來再重試。因?yàn)槎藗?cè)模型推理一次的成本不低能少重試一次就少一次。3.3 多輪工具調(diào)用的狀態(tài)管理單輪工具調(diào)用相對簡單模型輸出一個工具調(diào)用執(zhí)行完把結(jié)果塞回去模型生成最終回復(fù)結(jié)束。但實(shí)際場景里很多任務(wù)需要多輪工具調(diào)用比如“幫我查一下明天北京的天氣如果下雨就提醒我?guī)恪边@需要先查天氣再根據(jù)天氣結(jié)果決定是否設(shè)置提醒。多輪工具調(diào)用的狀態(tài)管理核心是維護(hù)一個清晰的對話狀態(tài)。每一輪工具調(diào)用的輸入、輸出、模型的中間推理都要記錄下來作為下一輪推理的上下文。同時要有一個終止條件判斷什么時候任務(wù)完成可以生成最終回復(fù)了。終止條件通常有兩種一種是模型明確表示不再需要調(diào)用工具直接輸出自然語言回復(fù)另一種是達(dá)到了預(yù)設(shè)的最大輪次強(qiáng)制終止。端側(cè)場景里最大輪次要設(shè)得小一些比如三輪到五輪因?yàn)槎藗?cè)模型推理慢輪次太多用戶體驗(yàn)會很差。狀態(tài)管理還有一個容易忽略的點(diǎn)是工具調(diào)用的去重。模型有時候會重復(fù)調(diào)用同一個工具傳相同的參數(shù)這時候要判斷是不是真的需要重復(fù)調(diào)用還是模型陷入了循環(huán)。如果是后者要主動打斷避免無限循環(huán)消耗資源。3.4 工具執(zhí)行失敗的降級處理工具執(zhí)行失敗在端側(cè)是常態(tài)網(wǎng)絡(luò)不穩(wěn)定、權(quán)限不足、參數(shù)不合法都可能導(dǎo)致工具執(zhí)行失敗。工程化要做的是在工具失敗的時候Agent 能優(yōu)雅降級而不是直接崩潰。降級策略分幾個層次。第一層是重試對于網(wǎng)絡(luò)超時這類臨時性失敗可以自動重試一到兩次。第二層是參數(shù)修正如果失敗原因是參數(shù)不合法可以嘗試修正參數(shù)后重新執(zhí)行比如把城市名從“北京市”改成“北京”。第三層是工具替換如果某個工具不可用可以嘗試用功能相近的替代工具。第四層是告知用戶如果以上都不行就如實(shí)告訴用戶工具執(zhí)行失敗讓用戶決定下一步。這四層降級策略要按順序嘗試能自動解決的就自動解決解決不了的再交給用戶。端側(cè) Agent 的用戶體驗(yàn)很大程度上取決于這些降級邏輯做得好不好。4. MCP 在端側(cè) Agent 中的落地實(shí)踐4.1 MCP 協(xié)議的核心機(jī)制與端側(cè)適配MCP 的核心是 JSON-RPC 通信客戶端和服務(wù)端通過請求-響應(yīng)模式交互。在端側(cè) Agent 場景里Agent 本身是客戶端工具實(shí)現(xiàn)是服務(wù)端??蛻舳税l(fā)送工具調(diào)用請求服務(wù)端執(zhí)行工具并返回結(jié)果。MCP 協(xié)議定義了三種核心能力Tools可調(diào)用的函數(shù)、Resources可讀取的數(shù)據(jù)、Prompts預(yù)定義的提示模板。端側(cè) Agent 最常用的是 ToolsResources 和 Prompts 在端側(cè)場景里用得相對少一些。端側(cè)適配 MCP 的關(guān)鍵在于通信方式的選擇。MCP 支持多種傳輸方式包括標(biāo)準(zhǔn)輸入輸出、HTTP、WebSocket 等。端側(cè)環(huán)境里如果工具和 Agent 跑在同一個進(jìn)程里可以直接用函數(shù)調(diào)用不需要走 MCP 協(xié)議如果工具跑在獨(dú)立進(jìn)程里可以用標(biāo)準(zhǔn)輸入輸出或本地 socket如果工具跑在遠(yuǎn)端才需要走 HTTP 或 WebSocket。我的建議是端側(cè) Agent 的工具盡量和 Agent 跑在同一個進(jìn)程里用函數(shù)調(diào)用直接交互避免 MCP 協(xié)議的開銷。只有在工具確實(shí)需要獨(dú)立部署的時候才引入 MCP。這樣既能享受 MCP 帶來的解耦好處又能避免不必要的性能損耗。4.2 端側(cè) MCP Server 的實(shí)現(xiàn)要點(diǎn)如果確實(shí)需要在端側(cè)實(shí)現(xiàn) MCP Server有幾個要點(diǎn)需要注意。第一是輕量化。端側(cè)的 MCP Server 不要用重量級的框架盡量用輕量的實(shí)現(xiàn)。JSON-RPC 的序列化和反序列化可以用現(xiàn)成的庫但不要引入太多依賴端側(cè)的包體積和內(nèi)存都很寶貴。第二是啟動速度。端側(cè)應(yīng)用的啟動速度直接影響用戶體驗(yàn)MCP Server 的啟動要盡可能快。避免在啟動時做耗時的初始化比如加載大模型、建立網(wǎng)絡(luò)連接這些可以延遲到第一次調(diào)用時再做。第三是資源隔離。MCP Server 和 Agent 主進(jìn)程之間要做好資源隔離避免一個工具的內(nèi)存泄漏影響整個 Agent。如果工具的執(zhí)行可能耗時較長要考慮放到獨(dú)立線程或進(jìn)程里執(zhí)行避免阻塞主線程。第四是錯誤處理。MCP Server 要把工具執(zhí)行的各種錯誤都捕獲住轉(zhuǎn)換成 MCP 協(xié)議定義的錯誤格式返回給客戶端。不要讓異常直接拋到協(xié)議層導(dǎo)致通信中斷。4.3 工具注冊與動態(tài)發(fā)現(xiàn)MCP 的一個好處是支持工具的注冊和動態(tài)發(fā)現(xiàn)。Agent 啟動時可以向 MCP Server 查詢有哪些工具可用然后把這些工具的 Schema 加載進(jìn)來。這樣新增工具的時候Agent 側(cè)不需要改代碼只要 MCP Server 注冊了新工具Agent 就能自動發(fā)現(xiàn)。在端側(cè)場景里動態(tài)發(fā)現(xiàn)的價值主要體現(xiàn)在插件化上。你可以把 Agent 的核心邏輯和工具實(shí)現(xiàn)分開工具以插件的形式提供用戶按需安裝。Agent 啟動時掃描已安裝的插件通過 MCP 協(xié)議獲取插件的工具列表然后把這些工具納入可用工具集。這種架構(gòu)的靈活性很高但實(shí)現(xiàn)復(fù)雜度也不低。端側(cè)做插件化要考慮插件的加載、卸載、版本管理、權(quán)限控制等一系列問題。如果工具集相對固定我建議還是用靜態(tài)注冊的方式簡單可靠。4.4 MCP 與 Function Calling 的協(xié)同MCP 和 Function Calling 不是替代關(guān)系而是協(xié)同關(guān)系。Function Calling 解決的是“模型怎么表達(dá)要調(diào)用哪個工具、傳什么參數(shù)”MCP 解決的是“工具調(diào)用請求怎么從 Agent 傳到工具實(shí)現(xiàn)”。在一個端側(cè) Agent 里典型的協(xié)同流程是這樣的模型通過 Function Calling 輸出一個工具調(diào)用請求Agent 側(cè)解析這個請求轉(zhuǎn)換成 MCP 協(xié)議的格式通過 MCP 客戶端發(fā)送給 MCP ServerMCP Server 執(zhí)行工具把結(jié)果返回給 AgentAgent 再把結(jié)果塞回對話上下文讓模型生成最終回復(fù)。這個流程里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)是同樣的輸入有時候能正確調(diào)用工具有時候不能。排查這個問題我通常按以下順序檢查。先看prompt 是否太長。端側(cè)模型的上下文窗口有限prompt 太長會導(dǎo)致模型注意力分散輸出質(zhì)量下降。檢查方法是把 prompt 打印出來數(shù)一下 token 數(shù)如果接近模型的上下文窗口上限就要考慮精簡。再看Schema 是否太復(fù)雜。Schema 里的字段太多、嵌套太深、描述太長都會增加模型的負(fù)擔(dān)。檢查方法是把 Schema 單獨(dú)拿出來看看能不能再精簡。然后看示例是否充分。如果 prompt 里沒有給示例或者示例太少模型可能不知道該怎么輸出。檢查方法是加一兩個示例看看輸出是否穩(wěn)定。最后看模型本身的能力。如果以上都排查了還是不穩(wěn)定可能是模型本身的能力不夠需要考慮換一個更大的模型或者用量化程度更低的版本。5.2 工具調(diào)用參數(shù)錯誤的修復(fù)技巧參數(shù)錯誤是另一個高頻問題模型輸出的參數(shù)不符合 Schema導(dǎo)致工具執(zhí)行失敗。修復(fù)參數(shù)錯誤我常用的技巧有以下幾個。類型轉(zhuǎn)換如果模型把數(shù)字輸出成了字符串解析時自動轉(zhuǎn)成數(shù)字。如果模型把布爾值輸出成了字符串解析時自動轉(zhuǎn)成布爾值。枚舉映射如果模型輸出的枚舉值不在列表里嘗試做模糊匹配找到最接近的枚舉值。比如模型輸出“經(jīng)濟(jì)艙”枚舉列表里是“economy”就做一個中文到英文的映射。默認(rèn)值填充如果模型漏填了某個可選字段用默認(rèn)值填充。默認(rèn)值要在 Schema 里定義好解析時如果發(fā)現(xiàn)字段缺失就用默認(rèn)值。參數(shù)修正如果模型輸出的參數(shù)明顯不對比如城市名寫錯了可以嘗試用規(guī)則或小模型做修正。比如“北京市”修正為“北京”“上海是”修正為“上海”。這些技巧要組合使用形成一個參數(shù)修復(fù)管線。修復(fù)管線要盡量寬松能修則修修不了再報(bào)錯。5.3 內(nèi)存與性能瓶頸的優(yōu)化方向端側(cè) Agent 的內(nèi)存和性能瓶頸主要集中在模型推理和工具執(zhí)行兩個環(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í)行多個工具調(diào)用合并成一次執(zhí)行、超時控制給工具執(zhí)行設(shè)置超時避免長時間阻塞。這些優(yōu)化手段要根據(jù)具體場景選擇不是所有手段都適用。比如量化會損失一定的模型能力如果模型本身能力就不夠量化后可能更差。所以優(yōu)化要在保證功能的前提下進(jìn)行不能為了性能犧牲功能。5.4 常見問題速查表問題現(xiàn)象可能原因排查方法解決思路模型不調(diào)用工具prompt 約束不明確檢查 system prompt加明確的輸出格式約束和示例模型輸出非 JSON模型能力不足換更大模型測試加輸出前綴引導(dǎo)或換模型JSON 解析失敗格式錯誤打印原始輸出用寬松解析器加修復(fù)邏輯參數(shù)類型錯誤Schema 定義不清檢查 Schema加類型說明解析時做轉(zhuǎn)換工具執(zhí)行超時工具實(shí)現(xiàn)問題單獨(dú)測試工具加超時控制異步執(zhí)行多輪調(diào)用死循環(huán)終止條件缺失檢查輪次控制設(shè)最大輪次加去重邏輯內(nèi)存占用過高模型太大監(jiān)控內(nèi)存量化模型優(yōu)化緩存策略推理速度慢硬件限制測推理耗時用更小模型加推理緩存這張表是我在實(shí)際項(xiàng)目里總結(jié)出來的覆蓋了端側(cè) Agent 工程化里八成以上的常見問題。遇到問題的時候可以先對照這張表快速定位然后再深入排查。6. 工程化實(shí)踐中的經(jīng)驗(yàn)沉淀6.1 Schema 設(shè)計(jì)的迭代方法Schema 設(shè)計(jì)不是一次成型的需要反復(fù)迭代。我的做法是先設(shè)計(jì)一個初版 Schema然后在真實(shí)場景里跑一批測試用例統(tǒng)計(jì)調(diào)用成功率。對于成功率低的工具分析失敗原因是字段太多、描述不清、還是類型不對然后針對性調(diào)整 Schema再跑一批測試看成功率是否提升。這個迭代過程通常要重復(fù)三到五輪才能把 Schema 打磨到一個比較穩(wěn)定的狀態(tài)。迭代的時候要注意每次只改一個變量這樣才能知道是哪個改動帶來了提升。如果一次改多個地方成功率變了也不知道是哪個改動起的作用。迭代過程中要積累一個測試用例集覆蓋各種典型的用戶輸入和邊界情況。這個用例集是寶貴的資產(chǎn)每次改 Schema 都用它來回歸測試確保改動不會引入新的問題。6.2 工具粒度的權(quán)衡工具粒度是端側(cè) Agent 設(shè)計(jì)里的一個重要決策。粒度太粗一個工具干太多事模型很難正確傳參粒度太細(xì)工具數(shù)量太多上下文裝不下模型也容易選錯工具。我的經(jīng)驗(yàn)是一個工具只做一件事但這件事的邊界要清晰。比如“查天氣”和“查空氣質(zhì)量”可以是一個工具因?yàn)樗鼈兌际遣樵儹h(huán)境信息參數(shù)也相似但“查天氣”和“設(shè)鬧鐘”必須是兩個工具因?yàn)樗鼈兊墓δ芡耆煌9ぞ叩臄?shù)量控制在十個以內(nèi)比較合適超過十個就要考慮分組或動態(tài)加載。端側(cè)模型的上下文窗口有限工具太多會擠占對話歷史的空間影響多輪對話的體驗(yàn)。6.3 端側(cè) Agent 的測試策略端側(cè) Agent 的測試比云端 Agent 更難因?yàn)槎藗?cè)環(huán)境復(fù)雜模型行為不確定很難用傳統(tǒng)的單元測試覆蓋。我的測試策略分三層。第一層是單元測試測試 Schema 解析、參數(shù)校驗(yàn)、工具執(zhí)行這些確定性邏輯用 mock 數(shù)據(jù)模擬模型輸出確保這些環(huán)節(jié)的正確性。第二層是集成測試用真實(shí)的模型跑一批測試用例統(tǒng)計(jì)工具調(diào)用成功率和最終回復(fù)質(zhì)量這層測試要跑多次因?yàn)槟P洼敵鲇须S機(jī)性。第三層是端到端測試在真實(shí)的端側(cè)設(shè)備上跑完整的用戶場景測試內(nèi)存占用、推理延遲、功耗等指標(biāo)。這三層測試?yán)锛蓽y試是最重要的也是最花時間的。我通常會準(zhǔn)備一個包含幾十個用例的測試集覆蓋各種工具調(diào)用場景每次改動后都跑一遍看成功率有沒有下降。6.4 從工程化到產(chǎn)品化的最后一公里工程化做完了離產(chǎn)品化還有一段路。產(chǎn)品化要考慮的東西更多比如用戶體驗(yàn)、錯誤提示、隱私保護(hù)、版本更新。用戶體驗(yàn)方面端側(cè) Agent 的響應(yīng)速度是關(guān)鍵。模型推理慢的時候要有 loading 提示工具執(zhí)行慢的時候要有進(jìn)度反饋任務(wù)完成的時候要有清晰的回復(fù)。這些細(xì)節(jié)直接影響用戶對產(chǎn)品的感知。錯誤提示方面端側(cè) Agent 出錯的時候要給用戶友好的提示而不是一堆技術(shù)術(shù)語。比如工具執(zhí)行失敗不要直接說“HTTP 500”而是說“網(wǎng)絡(luò)好像不太穩(wěn)定稍后再試試”。隱私保護(hù)方面端側(cè) Agent 的優(yōu)勢就是數(shù)據(jù)不出本地這個優(yōu)勢要在產(chǎn)品里體現(xiàn)出來。用戶的數(shù)據(jù)、對話歷史、工具調(diào)用記錄都要存在本地不上傳云端。版本更新方面端側(cè) Agent 的模型和工具都可能需要更新要設(shè)計(jì)好更新機(jī)制支持增量更新和回滾。這一公里的路技術(shù)含量可能不如前面的工程化但重要性一點(diǎn)不低。很多端側(cè) Agent 項(xiàng)目就是死在這一公里上技術(shù)做得很漂亮但產(chǎn)品體驗(yàn)一塌糊涂用戶用一次就再也不用了。我個人在實(shí)際操作中的體會是端側(cè) Agent 的工程化沒有銀彈每一個環(huán)節(jié)都要摳細(xì)節(jié)每一個問題都要有兜底方案。模型能力不夠就用工程手段補(bǔ)工程手段補(bǔ)不了的就用產(chǎn)品設(shè)計(jì)繞。整個過程就是不斷地在能力、資源、體驗(yàn)之間找平衡。這個平衡點(diǎn)每個項(xiàng)目都不一樣需要根據(jù)具體情況去摸索。但有一點(diǎn)是共通的先把最簡單的場景做到極致穩(wěn)定再逐步擴(kuò)展復(fù)雜度。貪多求快最后往往什么都做不好。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
色色色色色五月丁香| 六月婷婷五月丁香首页| 中字幕视频在线永久在线观看免费| 激情5月舔| 97在线99| 超碰在线国产| 亚洲天天综合| 婷婷婷久久久| 深爱五月婷婷开心中文字幕| 丁香婷婷色色| 欧洲第一久色| 亚洲日韩26uuu| 九97免费视频| 超碰国产在线播放| 99热色精品| 色色亚卅| 天天粽合合合合| 五月丁香婷婷啪啪综合| 99情色五月天| 日韩成人影片网站| 九九av| 五月天激情电影| 丁香婷婷黄网站| 色色六月| 日韩啪啪自拍| 超碰成人在线免费观看| 色色婷婷综合| 人人艹艹艹| 日本一级一级一级一级| 婷婷伊人网| 色噜噜狠狠插综合| 亚洲99热| 亚洲欧美国产高清vA在线播放| 五月丁香综合啪啪| 五月丁香亭亭操逼| 日熟女| 久久精品凹凸分类| 婷婷色五月91啪啪| 日本97人人| 婷婷五月天丁香| 黄色成人网站在线播放| 99久久久久久www| 婷婷五月天激情网| 97丨九色丨国产丨PORNY| 日韩操人| 日韩999| 中文字幕在线免费观看视频| 五月婷婷黄色| 日日干天天爽| 色噜噜狠狠色综无码久久合欧美| 九九热精品视频在线观看| 久久精品99久久久久久| 五月婷婷色影院| 思思热视频| 免费观看欧美成人AA片爱我多深| 婷婷亚洲色| 激情综合另类| 丁香六月无码| 99亚洲精品视频| 99热久草| 日本九九网| 五月天伊人久久久久| 丁香五月天资源网| 成人免费在线电影| 99热这里只有精品55| 久久综合人妻| 亚洲精品久久久无码| 丁香六月综合激情| 91av成人| 丁香五月欧美激情| 五月天成人网婷婷| 婷婷五月亚洲一本在线丁香| www.婷婷五月| 青青草免费公开视频| 91av传媒高清在线视频网| 免费无码毛片一区二区A片| 777精品成人a v久久| 五月天激情国产综合婷婷婷就去爱| 色色婷婷丁香| 玖玖资源天天无码| 大香蕉久操| 久热免费| 91窝窝| 久久免费丁香| www色婷婷久久综合久色 | 婷婷新网址| 五月黄色婷婷| 综合久| 五月六月激情婷婷| 五月婷婷丁香瑟瑟视频| 99热偷拍| 丁香五月天久久| 九九中文色色| 99热思思久| 婷婷五月综合欧美在线播放| 久久这里只有精品热在99| 婷婷色在线视频| 99热这里只有精品1| 东京热免费视频| 日韩AV无码影片| 天花AV无码| 色九月婷婷综合| 婷婷五月综合婷婷| 深爱激情五月网| 成人av免费观看| 精品9197碰| 免费操超碰| 激情综合区| 欧美黑人巨大猛烈cuckold| WWW色色色COM| 激情五月天婷婷直播| 色五月婷婷五月久久| 激情五月六月婷婷| 99精品偷自拍| 婷婷月综合| 九九免费视频在线| 日韩啪| 极品少妇XXXX精品少妇偷拍| 亚洲精品成人| 亚洲色另类| 五月婷婷啪啪| 日韩欧美颜射| 国产乱轮一区二区三区| 99热精这里只有精品| 91狠狠综合网| 91|九色|动漫| 欧美性爱五月天| 五月丁香影院| 婷婷激情鹿城五月天| 香蕉狠狠爱视频| www.玖玖九| 那里有AV网址| 激情五月天综合网| 五月五婷婷网| 国产毛片精品一区二区色欲黄A片| 91九色偷拍| 996er在线观看| 秋霞AV淫| 99热最新精品| 99热国产精品| 思思热天天看| 天天天天操| www.91九色| 综合五月网| 亚洲激情四射色| 色情五月丁香婷婷网| 久热 91| 黄久久久| 色欲天天综合| AV大香蕉| 五月激情视频| 激情婷婷五月色| 激情丁香婷婷| 五月丁香色婷婷基地| 激情综合五月| 色色色色av777| 激情综合五| 婷婷视频网| 日韩在线视频网站| 亭亭丁香aV| 色九网| www.日韩国产| 五月天婷婷基地| 97色在线| 九九婷| 五月婷婷丁香在线视频| 超爽内射| 综合久久婷婷| 五月婷成人网| 碰碰碰碰碰99| 97香蕉久久超级碰碰高清版| Av性爱网站| 丁香六月综合激情| 色五月丁香伊人| 九九九激情网| 人人操AV| 丁香五月婷婷成人网| 日逼AV影音先锋男人资源站| 色婷婷五月在线| 青青草Avb在线| 精a品a| 欧美人人女女精品综合五月天| 色五月欧美| 91丨九色丨白浆| 六月丁香激情网| 思思热闹这里只有精品| 久久精彩视频18| 综合网亚洲| 久久久性爱视频| 三级三久久线久久99久目本WW| 成人五月天婷婷| 日本精品久久久久中文字幕| 五月天成人在线视频网站| 欧美日韩成人在线观看| 国产熟妇乱子伦hd| 91一起操| 岛国AV网| 综合久久丁香婷婷,五月婷婷六月丁香,开心激情综合网,六月丁香在线观看,婷婷丁 | 激情婷婷久久| 丁香5月啪啪| 午夜福利8055| AA片在线观看视频在线播放 | 另类视频五月天| 狠狠色激情综合| 丁香亚洲色综合| 中文字幕人妻在线| 99热无码首页| 五月香蕉婷婷| 成人欧美日韩| 99视频极品在线香蕉| 久久久ww| 亚洲欧美一区二区三区爱爱动图 | 久久99热这里只有精品| 夜夜天天久久婷婷| 五月婷啪| 亚洲影院婷婷色| 日本婷婷五月天| 国产无套精品一区二区| 亚洲av电影网站| 久久久99日本大片| 国产这里只有精品| 99热这里只有精品在线| 色玖玖综合网| 九九热精品| 天天日狠狠| 五月 成人 婷婷| 超碰亚洲欧美| 丰满少妇猛烈A片免费看观看 | 五月色激情综合网| 大香焦啪啪啪| 激情深爱五月天| 久久婷婷五月综合色丁香| 另类五月婷婷| 伊人网欧美在线男人天堂五月丁香| 人妻Av在线| 九九99一区| 丁香五月婷婷欧美性爱| 99国产精品白浆在线观看免费 | 在线视频激情网站| 夜色综合网| 淫荡综合网| www.夜夜操.con| 色综合区| 丁香色婷婷| 丁香六月色| 婷婷狠狠综合网入口| 婷婷五月天网| 成人无码髙潮喷水A片| 婷婷五月天av| 99热免费| 风流少妇A片一区二区蜜桃| 亚韩在线视频| 99热这里有精力| 九九99香蕉在线视频播放| 丁香五月六月欧美| 天天干天天爽天天操| 狠狠操天天操综合| 先锋av性爱成人电影| 丁香激情合作五月| 五月激情基地| 色五月婷婷内射| 99热精国产这里只有精品| 婷婷丁香六月影视| 日逼免费视频| 久热免费| 久久久中文| 色激情五月| 伊人激情| 少妇搡BBBB搡BBB搡毛茸茸| 久久曰曰| 99精彩视频在线观看| 婷婷.com| 超碰AV成人| 丁香五月婷婷99| 先锋资源婷婷| www。五月天激情| 欧美日韩999| 丁香婷婷激情综合五月激情 | 97干在线| 深爱激情久久| 婷婷婷久久久| 亚洲精品无码一区二区| 亚洲精品无码A片一区二区| 日木WWW视频| 婷婷五月天久| www.久久| 99热中文字幕久久| 97操操操| 91丨九色丨国产| 97婷婷五月丁香| 婷婷性爱视频在线| 久久机热这里只有精品免费视频| 激情五月天色爱| 丁香五月天在线观看| 激情深爱五月天| 日韩性视频| 五月丁香成人网| 秋霞AV吧| 伊人久久婷婷| 六月丁香成人网| 亚洲无线视频| 天堂久热| www久久五月com| 色5月婷婷| 婷婷六月综合基地| 天天久综合网永久入口18| 婷婷激情综合色五月久久图片| aa久久| 亚洲婷婷丁香五月天激情小说| 六月丁香成人网| 色色色国产| 人妻丰满精品一区二区A片| 欧美日韩一区二区三区四区| 亚洲激情亚洲激情| 国产日韩欧美性爱| 深夜婷婷 丁香| 影视av久久久噜噜噜噜噜三级| 六月色伊人婷婷| 99在线亚洲| 亚洲热视频| 182.t午在线观看| 激情九月婷婷| 国产精品爽爽久久久久久| 五月天.com| 91人人看| 热99re| 亚洲综合婷婷| 一起草av在线观看| 久久久人妻系列| 五月丁香六月激情在线| 五月天激情久久| 五月天婷婷丁香视频| 国产精品成人AV在线| 国产99久| 色了色综合| 五月婷婷六月丁香| 黄网免费看| 久久综合五月| 五月天激情黄色网址| 五月婷婷激情综合在线| 91在线日| 色99热| 国产婷婷色综合AV蜜臀AV| 五月婷婷六月激情| a色色片| 综合久久9| 97色综合| www.日日夜夜.com| 婷婷黄色网| 5月婷婷性视频| 丁香五月欧美| www.激情在线| 嫩草AV久久伊人妇女超级A| WWW.99视频| 亚洲综合热| 久热精品免费视频4| 99在线视频免费| 99视频在线精品免费观看2| 91青娱乐青青草| 婷婷六月丁香五月| 黄色一级影片| 激情色色色| 超碰免费在线| 可以免费观看的av| 五月天色婷婷基地| 香蕉五月婷婷| 九月色婷婷综合| 成人AV免费观看| 91精品久久久久久久久久久久| 国产探花AV在线| 思思热在线播放| 婷婷久久综合久| 99热精品在线播放| 9精品视频在线| 综合在线丁香五月| 色婷婷综合久久久久| 亚洲精品国产A久久久久久| 五月婷婷综合影院| 在线可以看的av网址| 99黄色性生活| 成人中文字幕在线| 欧美日本va| 久久久中文| 国产免费一区二区三区三州老师F1F1.CC| 五月婷婷六月丁香激情综合网| 9有码中文| 久久ri精品视频| 天天舔夜夜操www com| 欧美在线视频免费播放| 欧美123区免| 人妻操操色| 色色热| 狼人狠狠操| 婷婷五月天综合小说网| 高清资源站日A美A欧亚…| 色婷视频| 五月婷婷与六月丁香图片激情| 嫩草哈哈操| 色视五月天婷婷| 国产无套精品一区二区| 91尤物九色在线| 激情深爱综合网| 91麻豆国产三级精品福利在线观看 | 亚洲啪视频| 五月婷视频| 91丨九色丨国产打屁股网站| 亚洲最大五月六月丁香婷婷| 一级AV片| 五月婷婷丁香在线视频| 国内熟女黄色系列| 99爱无码| 丁香五月婷婷久久久| 综合色综合| 99干日日干| 99热这只有| 六月丁香网| 国产亚洲99久久精品| 亚洲精品无码久久| 6月丁香婷婷| www狠狠| 六月婷婷av| 日本一道久久| 久久综合丁香五月| 中字幕视频在线永久在线观看免费| 激情五月天婷婷激情| 久99久视频| 欧美在线骚货| 五月丁香亭亭电影久久| 色播五月婷婷五月| 九九99九九99九九99视频网| 26UUU欧美| 婷婷六月激情小说网| 五月综合视频| 激情激情激情网| 日韩欧美不卡| 99精品综合| 成人午夜免费电影| 五月丁香综合在线| 五月婷婷免费在线观看| 日本久久极品| 久久久WWW| 97亚洲色 torrent magnet| 五月婷在线| 亚洲欧洲自拍图片专区五月天| 无码激情AAAAA片-区区| 操日挥操日日| 99福利导航| 九九色色| 婷婷五月丁香伊人| 欧美日韩99| 丁香五月偷拍| 欧美成人性爱网| 五月天综合久久丁香91| 激情网五月天| 综合激情网激情五月。| 91性高潮久久久久久久久| 99色色网| 丁香五月激情在线| 五月丁欧美| www.99精品日操伊人乱碰在线| 五月六月婷| 色五月琪琪| 99国产精品久久久久久久久久久| 日韩五月丁香| 九九热只有这里精品| 亚洲12p| 国产密乳av一区二区三区四区| 91色在线| 狠狠色综合五月人人| 亭亭玉月丁香| 一区二区三区四区五区| 99免费在线视频| 99色网站| 性爱视频99| 丁香五月大香蕉| 亚洲传媒在线观看| 狠狠狠狠狠狠| 久久五月丁香| 久久av电影| 五月天婷婷社区久久综合| 六月丁香啪啪| 97色女人在线| 俺去啦综合网| 五五月丁香花激情综合网| AV网在线观看| 少妇人妻偷人精品无码视频新浪 | 欧美日韩99| av在线免费播放观看| 中文字幕av在线| 天天成人综合视频| 色播综合| 99免费偷拍视频| 丁香五月色情| 操逼视频一区| 天天操狠狠操| 狠狠狠人妻| 丁香婷婷五月色成人网站| 少妇性BBB搡BBB爽爽爽电影| 国产 亚洲 在线| 99免费视频在线观看爱| 夜夜操夜夜爽| 婷婷激情综合| 综合九九中文字幕| 色婷婷播放| 色色无码| 色五月 五月婷婷| 亚洲有码在线视频| 大地9中文在线观看免费高清| 久久与婷婷| 99综合免费视频| 激情婷婷五六月天| 天天爽爽日日做做| 91精品丝袜久久久久久| 久久久性爱网| 噜噜色五月| 极品五月天| 国产精品久久久久久喷浆| 色噜噜婷婷| 五月丁香六月激情综合| 丁香狠狠色婷婷久久无码视频| 色播播之激情五月婷婷| 丁香六月婷婷综合色| 成人精品人妻| 色五月激情| www.com.色色| 77777亚洲午夜久久| 99A片| 国产婷婷婷| 国产精品人人做人人爽人人添| 99热这里只有精品2| 狠狠干综合网| 五月丁香综合中文| 五月天开心网| 99视频在线播放大全| 激情都市丁香婷婷| 五月丁香婷婷婷激情爱爱| 裸体美女丁香五月天。| 激情五月丁香婷婷| 综合视频久久| 91久久久久久| 97啪啪| 在线另类| 香蕉久操| 亚洲天堂碰碰婷婷| 狠狠99| 大香蕉九操| 91久久久久久久久18| 国产激情久久| 久热2025无码| 婷婷五月综合激情小说| 丁香五月亚洲| 日本99色| 99热这里只有精品99| www久久99| 久久99久久99精品,久国产,久久精品免费,99久在线,久久久久国产精品免费网站,9 | 亚洲最大视频| 五月婷婷激情网| 97很鲁在线视频| 婷婷六月天国产综合| 91黄色五月天视频| 狠狠久久婷婷| 色五月天激情| 丁香婷婷综合激情五月色,开心五月丁香花综合网,激情综合五月亚洲婷婷,五月天 | 久9热在线免费观看| 色啪久| 七七色综合| 婷婷五月色惰| 五月丁香婷婷爱激情综合网| 九九一综合精品| 欧美亚洲婷婷五月| 五月天六月色| www.婷婷五月| 激情都市另类| 久久综合影院| 六月丁香婷婷亚洲中文玖玖| 婷婷五月天啪啪| 色偷偷色婷婷| 婷婷五月天在线观看| 丁香五月天天久久综合小说| 亚洲国产另类av| 久久综合丁香| 狠狠色婷婷丁香六月| 九九精品网| 一区二区三区视频| 99精品视频免费观看近期发布| 色婷婷丁香AV综合| 婷婷色在线观看| 日韩抽插操逼| 色色a| 色色操| 亚洲欧美国产A片免费观看| 97视频91| 99色最新在线视频网站| 五月激情婷婷丁香| 大香蕉天堂色| 亚洲一色色色色色色色色| 99热.com| 五月丁香综合激情| 91婷婷色| 色婷婷丁香五月天| 67194成I人在线观看线路1| 字幕网AV中文字幕| 色色激情| 色播五月| 免看黄大片AA | 大香蕉五月天婷婷丁香91| 久久五月丁香六月婷| 五月婷婷婷丁香播| 综合欧美五月婷婷| 玖月婷婷爱丁香| 99爱在线精品视频免费观看| 蜜桃人妻无码AV天堂三区| 五月丁香婷婷婷激情爱爱| 熟女五月天久久综合| 日本天堂爱爱| 精品自拍97| 99在线观看精彩视频| 亚洲va成人va成人va在线观看| 熟妇无码乱子成人精品| 欧美日韩99| 婷婷色五月天在线| 懂色av粉嫩av蜜臀av| 99精品国产热久久91色欲| 99热中文字幕久久| 国产精品久久久久久妇女6080 | 五月天精品视频| 色婷婷综合网| 99人妻碰碰碰久久久久禁片| 播五月丁香三月婷婷| 日韩成人精品中文字幕电影| 狠狠色五月激情| 激情婷婷丁香五月天| 91九九精品| 六月亭亭久久综合激情| 亚洲人妻av伦理| www.99婷婷| 丁香五月手机在线| 色色综合网www| 99热免费精品热久久66| 男女99免费视频| 丁香婷婷超碰 | 久久丁香五月婷婷| WWW99热| 日韩av网站在线观看| 午夜婷婷五月天| 丁香香蕉射射射| 婷婷九月激情| 欧美在线| 亚洲小说欧美激情| 国产婷婷婷| 狠狠色丁婷婷日日,伊人激情综合网 | sS丁香五月婷婷| Av大香蕉| 婷婷99狠狠躁天天躁| 51XX午夜影福利| 亚洲成人超碰| 色私五月婷婷| 蜘蛛女侠2003满天星免费观看| 六月色丁香婷婷| 丁香婷婷色五月合集| 丰满人妻妇伦又伦精品国产 | 成人在线视频网| 99久久婷| 丁香五月香蕉| 丁香五月婷婷姐| 天天干天天干天天| 思思热在线精品视频网站| 野战J办公桌椅H| 天天拍久久| wwwav大香蕉| 狠狠色综合五月| 9999热在线| 五月婷婷丁香俺日污视频| 婷婷五月天性爱视频| 五月天综合视频网| 99久精品视频| 丁香五月影院| 色国产五月| 91丁香色| 五月婷婷在线视频| 婷婷久久亚洲| 最近中文字幕大全免费版在线| 伊人婷婷激情| 99精品网址| 综合啪啪| 天天射夜夜爽| 久久九久久| 美女丁香五婷婷| 91精品又长又大又粗又爽又猛| 东京热伊人| 99热成人精品| 99情色五月天| 久久停停超碰| 丁香五月狠狠综合欧美| www,99色| 久久草大香蕉| 精品一区二区三区木瓜| 五月婷婷成人| 大香蕉五月天| 色播五月婷婷五月| 97久久久| 婷婷丁香中文字幕| 久久艹99| 丁香伊人综合| 人人操人人爰人人一天天碰夜夜拍夜夜爽-中国A级毛片天天看天天谢… | 天天日天天狠狠操| 青青草伊人婷婷| 色色性爱视频| 五月天婷婷六月激情网| 教师性爱毛片| 九月丁香亭亭| 五月丁香六月激情综合在线| av一区二区电影免费在线观看| 激情 婷婷| 广东99色在线| 第四色大香蕉| 无码人妻AV久久久一区二区三区| 国产精品久久久海的味道| 操碰97| 狠狠色综合图片| 91碰视频| 婷婷五月,综合伊人| 五月天啪啪啪| 成人欧美一区二区三区在线观看| 九九九九大香蕉| 99热在线观看| 91九色熟女| 99色播| 久久婷婷色综合| 黄网在线免费| 亚洲精品亚洲人成人网| 五月天基地| 亚洲视频a| 影音先锋综合网| 免费精品99| 丁香五月天婷婷激情| 五月丁香六月婷婷中文版| 色五月婷婷91| 久久九九热re6这里有精品| 99综合网| 99爱视频| 五月丁香六月婷综合成人综合| 开心五月六月婷婷| 99久久精彩视频| 99ree6| 色色网站| 五月婷婷啪啪综合网| 99视频在线观看欧| 久久五月视频| 综合色99| 久久9热| 日韩av免费版| 欧美人与性动交CCOO| 香蕉国产2013| 99热综合网| 亚洲色色色色| 色五月视频无码播放| 大香蕉手机视频| 欧美在线视频免费播放| 91综合色噜噜| 婷婷五月色综合香五月| 嫩草AV久久伊人妇女超级A| 六月丁香啪啪| 丁香综合网| 色噜噜狠噜噜视频| 天天干天干| 天天免费日日夜夜夜夜| 新激情五月天色播| 国产精品-91JQ就要激情网91JQ6.91JQ27.CASA:16888 | 中文字幕无码人妻少妇免费视频| 开心激情站| 婷婷六月色| 91色五月| 九九aV| 在线网黄| 婷婷五月丁香六月| 大香蕉啪啪| 五月丁香欧美综合| 9久久婷婷国产综合精品性色| 五月婷婷视频在线观看| 婷婷五月六月丁香| 狠狠干,狠狠操| 天天日 天天草| 六月综合婷婷开心伊人| 色婷婷五月天偷拍| 色综合色| 久久激情五月天| 欧美综合五月丁香六月婷| 久青操| 激情久久久久久久久久| 丁香五月中文字幕| 操操碰| 99re6久热只有精品6在线直播| 六月丁香激情网| 五月天婷婷小说| 天天日天天舔| 中国操逼99| 婷婷五月另类网站| www色综合亚洲92| 天天操天天曰天天射| 五月婷婷与六月丁香图片激情| www.91操| 丁香五月 综合| 97色色色色色色色色色色色色色| 开心五月色婷婷综合开心网| 婷婷六月丁| www.婷婷.com| 五月天综合| 国产人妻人伦精品一区二区| 黃色三级三级三级三级 qixing300.shrkbk.com www.jinbozs.com tianmiaosw.com | 蜜乳AV成人| www综合久久| 综激情网| 婷婷五月天在线观看av| 人人人操B超碰| 九九在线精点品| 丁香五月天激情| 精品国产AV色一区二区深夜久久| 99精品视频免费观看近期发布| 亚洲成人av在线观看| 成人综合视频在线| 第2色五月婷| 五月婷婷综合潮喷| 激情久久久久久久久久久| 996er热| 九九XX视频| 色哟哟www| 欧美日韩大黄| 99re鈥哸鈥唙| 色五月丁香婷婷| 五月婷婷很很色| wWW九九在线播放| 亚洲中文无码成人| 五月丁香六月婷婷在线| 人人爱国产| 五月丁香六月激情网站| 99九九在线精品热动漫| 五月亚洲激情| 六月婷婷网| 激情九月综合| 亚洲综合色五月| 日韩久热| www,setingting| 91色噜噜狠狠狠狠色综合| 婷婷五月AA五月在线| 天天色视频| 99性爱视频| 久久亚洲天堂| 丁香5月综合啪啪| 天天干天天做| 欧美69久成人做爰视频| 国产白丝在线一区| 精品久久久久久久人妻| 久热大香蕉| www.久操| 同性gv国产精品一区二区| 51国精产品自偷自偷综合| 人人爱操| 丁香五月婷婷Av| 99只有这里是精品| 色五月在线播放| 《丁香激情综合久久伊人久久》影视在线观看 -高清预告手机免费播放 -三妹影院 | 欧美熟女99| 亚洲色 视频| 亚洲五月婷婷| 九九这里是免费的视频5| 五月丁香六月综合激情网| 综合色播| 五月婷婷六月综合| 99国产性感视频| 五月天大香蕉| 99热在线中文字幕| 激情五月天小说|五月天开心激情网|亚洲精品国产自在现线|黄色五月天 | 五月丁香婷婷综合视频| 另类综合国产| 久99热| 超碰在线免费| 丁香久久| 99re资源在线视频导航| 思思视频精品| 狠狠爱综合网| 啪啪黄页网| 五月激激激情综合网| 亚洲精品久久久无码| 亚洲激情在线| 五月丁香激情婷婷| 超碰伊人碰婷婷五月| 色噜综| 无码少妇高潮喷水A片免费 | 久久婷婷色色| 欧美日韩国产一区二区| 五月成人综合| 狠狠干最新地址| site:minyis.com| 天干夜夜操| 九九色欲网| 五月婷婷导航| 欧美色色色色色色| 思思久久精品| 丁J香六月首页| 思思久日精品视频| 日韩无码AV电影网站| 都市激情五月婷婷综合| 大香蕉五月天婷婷| 激情视频婷婷五月花| 91色久| 五月天色色网站| 草草操操| 色噜噜婷婷| 激情六月综合| jiujiu热在线视频| www.国产色| 久久久婷| www.五月天婷婷| 《诡秘之主》在线观看| 国产这里只有精品| 色婷五月婷婷| 六月丁香啪啪| 狠狠狠狠狠狠狠狠狠狠狠色宗合图片| 五月丁香激情啪啪| 国产日批视频| 99在线精品免费视频| 涩涩网五月天| 欧美日韩婷婷五月天| 人人视频色| 色色色色色日韩午夜激情 | 色色五月天婷婷| 夜夜撸日日操| 色噜噜,噜噜色| 国产精品天天狠天天看| 色综合日日| 婷久久久| 欧美精品18| 婷婷五月综合网| 丁香久久| 凹凸探花电影| 两性婷婷丁香五月| 99热精品中文字幕| 中美月韩免费A片| 91久久婷婷| 久久成人性爱| 狠狠一日| 99热只有这里有精品| 久久久久激情| 丁香五月天激情综合| 五月丁香啪啪激情| 人人操婷婷| 欧美大道不卡| 婷婷五月丁香基地在线视频官网| 乱岳熟女50岁| 99久久玖玖| 色综合天堂| 大香蕉手机视频| 99综合激情久久精品久久| 久草丁香婷婷五月天婷| 这里只有精品在线观看视频| 99久久国产成人精品| 亚洲欧美成人在线观看| 99热碰碰| 色色色精品无码区| a免费在线| 狠狠爱婷婷丁香| 国庆精品久久| 色播激情| 亚洲精品99| 玖久精品视频9| 六月丁香社区| 欧美99热| 无码色色色色色| 丁香五月六月久久综合 | 五月天激情日色在线| 丁香五月婷婷深爱综合激情| 超碰在线99热| 日韩av大全| 大香蕉啪啪网| 伊人婷婷五月| 亚洲无码11| 全部老头和老太XXXXX| 五月激情婷婷丁香| 思思热久久阴99| 亚洲免费成人电影AV| 九九五月天| 岛国av电影网站| 色综合久久44| 无码碰碰| 五月天色区| 五月丁香六月激情欧美综合| 人人玩人人橾| 婷婷五月天大香蕉| 中文字幕按摩做爰| 色九亚洲| 亚洲色综合性| 伊人网欧美在线男人天堂五月丁香| 色综合激情图区| 婷婷五月天AV| 婷婷五月天久久久| 99区视频| 91丨九色丨丰满人妖| 久综合4| 九九视频这里只有精品| www.婷婷.com| 伊人久久婷婷五月天激情四射| 色九月婷婷丁香| 婷婷久综合| 久久五月丁香| 婷婷大乡焦噜噜| 亚洲噜色| 青青夜夜狠狠夜夜狠狠| 站长推荐无码播放| 超级久久久| 无码AV免费精品一区二区三区| 久久婷婷色综合| 开心激情网五月| 五月天婷婷久色| 色五月婷婷色| www,com,五月色色| 婷婷五月成人社区| 人与禽A片啪啪| 婷婷成人五月天成人文学| 123草逼网| 桔色成人在线| 狠狠狠狠操| 欧美99热| 午夜婷婷丁香| 97人人搞| 激情宗合 激情宗合| 免費观看aV在线网址| 少妇性BBB搡BBB爽爽爽视頻| 99热只有| 色婷婷影视| 欧美大香蕉视频| 六月丁香网| 99爱在线精品视频免费观看| 亚洲激情五月丁香久久久久| 色色色色色级无码| 色噜噜狠狠色综| 久99久视频| 99在线视频播放| 欧美啪啪网| 色色色五月天激情资源| 色在线免费观看| 久777| 九月丁香很很色| 色网五月婷婷| 久久无码成人| 熟女色色一区二区| 影音先锋男人女人| 精品国产一区二区三区四区阿崩| 9久热| 97人人操人人干| 天天干,夜夜爽| 99久久这里只有精品| 丁香五月天色婷婷| www.婷婷五月| 婷婷五月天成人| 超碰91在线| 色99在线| 色婷婷成人做爰A片免费看网站| 激情五月综合网| 精品一二三区久久AAA片 | 五月婷婷六月丁香综合视频在线| 99精品视频免费在线播放| 国产1区2区3区在线观| 亚洲综合激情五月天婷婷| 秋霞三级色戒| 丁香五月成人论坛| 婷婷丁香五月天色区| 丁香五月天欧美| 五月丁香无码| 夜夜夜夜夜骑撸| 色噜噜狠狠色综无码久久合欧美| 五月婷婷激情日本| 九九色图| 色五月亚洲| 九九综合影音先锋| 婷婷综合伊人| 99久精品视频| 热99国产精品| 五月丁香直播| 26uuu欧美激情另类| 深爱五月激情| 99九九在线观看免费| 天天日,天天干,天天操| 97人人干| 色欲久久99精品久久久久久| 狠狠色丁香久久综合婷婷亚洲成人福利| 色婷婷亚洲在线观看| 丁香五月日韩| 久久人妻乱子伦| 思思久热6| 五月天停婷基地| 综合久久99| 五月五丁香婷婷| 五月婷婷天| 另类图片色五月| 狠狠综合| 精品国婬伦V无码久久久| 亚洲人妻电影| av大香蕉| 婷婷五月天论坛| 五月婷婷影院| 久久五月丁香| 99视频综合网| 欧美色99| 激情五月综亚网| 婷婷五月天伊人网| 午夜婷婷| 97超级碰人人| 久久六月天| 黄色99网| 99久在线精品99re5热视频| 婷婷五月色| 99精品九九| 99综合视频一体| 五月天激情婷婷小说| 欧美啪啪9| 噼里啪啦完整版中文在线观看| 黄色短视频在线观看| 丁香五月婷婷狠狠色| WWW.夜夜| 婷香五月| 草榴视频黄色网| 亚洲午夜AV| 99er6热在线观看精品6| av网址在线| 九色综合网| 日本三级日本三级99| 免费播放99性爱视频| 91精品综合久久久久久五月丁香| 中文字幕在线视频播放| 婷婷午夜| 天天爽天天摸天天爱| 五月丁香影院| 六月婷婷香蕉| 色五月天激情| 色色色免费视频| 亚洲成人无码免费| 国产Va视频| 97婷婷丁香| 色五月色综合| 欧美性二区| 欧洲色色| 激情久久伊人| 五月婷五月婷伊人伊人五月婷| 婷婷五月天黄色小说| 激情小说五月天| 色婷婷中文在线| 五月婷在线播放| 99热久久这里只有精品| 久久新地址| 亚洲视色| 91av传媒高清在线视频网| 婷婷色婷婷| 99热免费| 香蕉99网| 五月婷综合性中心| 激情综合网五月天| enecarbon-materials.com污K127封锁请涟系@wip1688 | 五月丁香做爱视频| 亚洲精品字幕在线观看| 五月婷婷中文字幕| 开心婷婷五月天激情网| 另类少妇人与禽zOZZ0性伦| 人人干女人| 丁香婷婷中文字幕| 99热在线观看| 99热免费网站| 99精品久久久久久久婷婷| 婷婷综合另类| 五月天激情视频网站| .精品久久久麻豆国产精品| 欧美日韩99| AV在线免费网站| 99免费在线视频| 五月婷婷六月丁香色| 91久女| 另类图片 五月激情| 色婷婷综合视频| 色五月激情综合网| 亚洲熟女色| 蜜桃婷婷狠狠久久| 狠狠色丁香| 超碰丁香五月| 色婷婷五月天视频在线| 万月丁香狠狠爱| 激情五月天色爱| 亚洲欧洲中文日韩久久AV乱码| 激情综合自拍五月婷婷色五月| 99久视频| 97精品欧美91久久久久久久| 超碰网站在线观看| 伊人综合色干| 九九爱精品网站| 夜夜天天天天天干天天爽| 99热这里只有精| 婷婷色五月婷婷姐妹| 色五月丁香网| 亚洲中文av| 五月婷婷片| 五月婷五月婷伊人伊人五月婷| 99这里只有| 9九热视频| 狠狠色丁香| 狠狠久久婷五月综合色| 婷婷精品| 少妇口诉沐足视频播放器网址| 少妇人妻偷人精品无码视频新浪 | 99精品在线观看| 婷婷六月丁香开心深深爱| 久久五月天婷婷| 色五月婷婷狠狠撸| 日本不卡高字幕在线2019| 天天肏天天插| 久久精品凹凸分类| 婷婷激情五月天在线| 丁香婷婷五月人体| 日本爆乳片手机在线播放| 男人的天堂五月丁香| 久久综合五月天| 激情文学 综合 色| 国产人妻777人伦精品HD| 久久五月网| 在线五月婷| 五月婷婷六月情| 1024国产| 午夜一区| 国产精品蜜臀99| 99视频啪啪| 超碰在线观看9| 无码se| 强辱丰满人妻HD中文字幕| 五月天基地| 懂色av蜜臀av粉嫩av永陈冠希| 丁香婷婷性爱| 六月婷婷狠狠| 久久男人网婷婷| 天天操天天插| 青草网在线观看| 五月开心播播网| 五月天亚洲色| 亚洲九九夜夜| 国产69精品久久久久999小说| 色五月婷婷色五月| 婷婷五月天激情综合| 无码少妇高潮喷水A片免费| 五月天婷a| 丁香婷婷色色| 五月天成人综合| 丁香六月婷婷一区二区三区| 六月婷婷久久| 中文幕无线码中文字蜜桃| 夜夜夜夜夜骑撸| 99re6热在线精品视频播放速度| 国产日产亚洲系列最新| 五月丁香综合在线| 激情综合5| 超碰色碰碰| 婷婷久久亚洲| 热这里| 久久婷婷网| 激情人妻蜜夜系列区| 日本99在线| 婷婷激情综合网| 国产激情在线| 尤物一区二区| A1片久久久|