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

ARTICLE DETAIL

資訊詳情

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

函數(shù)調(diào)用:Agent從“會(huì)聊天”到“能辦事”的核心實(shí)戰(zhàn)

函數(shù)調(diào)用:Agent從“會(huì)聊天”到“能辦事”的核心實(shí)戰(zhàn) 1. 函數(shù)調(diào)用Agent從“會(huì)聊天”到“能辦事”的關(guān)鍵一躍做Agent開發(fā)這段時(shí)間我最大的一個(gè)感受是很多人把Agent等同于“一個(gè)接了大模型API的聊天機(jī)器人”但真正讓Agent變得有用的恰恰是函數(shù)調(diào)用Function Calling這一環(huán)。你可以讓模型寫詩、寫代碼、做翻譯但只要它不能去查天氣、查數(shù)據(jù)庫、發(fā)消息、操作文件它就始終是個(gè)“紙上談兵”的顧問而不是一個(gè)能幫用戶把事辦成的助手。函數(shù)調(diào)用的本質(zhì)是讓大模型在生成文本的基礎(chǔ)上額外輸出一個(gè)結(jié)構(gòu)化的“調(diào)用意圖”——包括要調(diào)用哪個(gè)函數(shù)、傳入什么參數(shù)——然后由我們的代碼去真正執(zhí)行這個(gè)函數(shù)再把執(zhí)行結(jié)果返回給模型模型基于結(jié)果繼續(xù)回答或進(jìn)行下一步操作。這個(gè)機(jī)制解決的核心問題就是大模型本身不具備訪問外部世界的能力但通過函數(shù)調(diào)用我們可以把外部能力“接入”模型的推理循環(huán)讓模型成為指揮中樞而不是執(zhí)行終端。這篇文章適合誰看如果你正在做Agent開發(fā)或者剛接觸AI Agent、打算在自己的項(xiàng)目里給模型加上工具能力那么這份總結(jié)值得你完整讀一遍。我會(huì)從函數(shù)調(diào)用的設(shè)計(jì)思路、核心實(shí)現(xiàn)細(xì)節(jié)、完整的實(shí)操代碼到我在實(shí)際項(xiàng)目中踩過的坑和排查經(jīng)驗(yàn)一次性講清楚。文章里的代碼和方案都是我在真實(shí)項(xiàng)目里驗(yàn)證過的你幾乎可以照著抄。2. 三種主流函數(shù)調(diào)用方式對(duì)比別一上來就選錯(cuò)路子在開始寫代碼之前你需要先搞清楚一個(gè)事情函數(shù)調(diào)用并不是只有一種實(shí)現(xiàn)方式。市面上常見的方案有三大類每一類的適用場(chǎng)景和坑都不一樣。2.1 API原生函數(shù)調(diào)用最省心但綁定平臺(tái)第一種是模型服務(wù)商在API層面直接支持的原生函數(shù)調(diào)用。典型代表就是OpenAI的functions/tools參數(shù)、Anthropic的tool_use以及國內(nèi)許多廠商現(xiàn)在跟進(jìn)支持的類似接口。你只需要在請(qǐng)求里把函數(shù)的定義包括函數(shù)名、參數(shù)描述、類型以JSON Schema的形式傳進(jìn)去模型在需要調(diào)用時(shí)就會(huì)在返回內(nèi)容里多出一個(gè)tool_calls字段里面是結(jié)構(gòu)化的調(diào)用請(qǐng)求。這個(gè)方案最大的優(yōu)點(diǎn)是不需要你費(fèi)勁去“教”模型怎么輸出JSON——模型本身已經(jīng)針對(duì)這個(gè)能力做過專門訓(xùn)練輸出格式穩(wěn)定解析也容易。缺點(diǎn)也很明顯你被綁定在某一家廠商的接口風(fēng)格上。換一個(gè)模型廠商或者用一些自部署的開源模型這個(gè)能力可能就不存在或者格式不兼容。不過如果你用的就是主流閉源模型API這依然是最值得推薦的第一選擇。2.2 提示詞式調(diào)用兼容性強(qiáng)但需要“調(diào)教”第二種方式是純提示詞方案。你不依賴任何API的原生能力而是在系統(tǒng)提示詞里跟模型約定“當(dāng)需要查詢天氣時(shí)請(qǐng)輸出一個(gè)JSON格式為{tool: get_weather, params: {...}}”。然后你的代碼去解析模型輸出的文本匹配到對(duì)應(yīng)的工具并執(zhí)行。這個(gè)方案的核心優(yōu)勢(shì)是兼容性極強(qiáng)——任何能聊天的模型都能用包括那些沒開放函數(shù)調(diào)用能力的開源模型。代價(jià)則是它的穩(wěn)定性完全依賴提示詞寫得夠不夠清楚以及模型本身的理解能力。模型可能今天老老實(shí)實(shí)輸出JSON明天換個(gè)措辭就加了點(diǎn)解釋性文字你的解析器就得跟著修。所以用這個(gè)方案可以再配合下一條要說的“結(jié)構(gòu)化輸出”。2.3 結(jié)構(gòu)化輸出與手動(dòng)解析夾縫中的折中方案第三種方案介于前兩者之間利用模型API提供的JSON Mode或結(jié)構(gòu)化輸出能力強(qiáng)制模型返回合法JSON但JSON的字段含義由我們自己定義再由我們手動(dòng)解析并分發(fā)到對(duì)應(yīng)的函數(shù)。這個(gè)方案的優(yōu)點(diǎn)在于既獲得了相對(duì)穩(wěn)定的輸出格式又保留了對(duì)“調(diào)用協(xié)議”的完全控制權(quán)——比如你可以在JSON里加入業(yè)務(wù)流水號(hào)、加入多個(gè)工具的同時(shí)調(diào)用請(qǐng)求這些在原生功能里往往受限。缺點(diǎn)則是你需要自己寫更多的解析和校驗(yàn)代碼而且JSON Mode只能保證格式正確不能保證字段內(nèi)容一定合理。為了讓你更直觀地做選擇我把三種方式的比較整理成一個(gè)表格對(duì)比維度API原生函數(shù)調(diào)用提示詞式調(diào)用結(jié)構(gòu)化輸出手動(dòng)解析輸出穩(wěn)定性高低依賴模型能力中高實(shí)現(xiàn)復(fù)雜度低低但調(diào)提示詞耗時(shí)中跨模型遷移性差好中多工具并行調(diào)用多數(shù)已支持看約定格式完全可控建議適用場(chǎng)景生產(chǎn)環(huán)境、主流API快速原型、開源模型需要高度自定義協(xié)議的場(chǎng)景我個(gè)人在生產(chǎn)環(huán)境里的經(jīng)驗(yàn)是能用API原生函數(shù)調(diào)用就用原生的這是性價(jià)比最高的路徑只有當(dāng)模型沒有原生支持、或者你需要一個(gè)跨廠商的統(tǒng)一Agent底層時(shí)才去走后兩條路。3. 核心細(xì)節(jié)拆解一個(gè)高質(zhì)量函數(shù)調(diào)用方案需要摳哪些細(xì)節(jié)很多人寫函數(shù)調(diào)用就直接把函數(shù)定義往參數(shù)里一塞跑通了就算完事。但真正到了Agent項(xiàng)目里調(diào)用成功率、參數(shù)準(zhǔn)確性、異?;謴?fù)能力這些細(xì)節(jié)才是決定一個(gè)Agent“好用”還是“雞肋”的分水嶺。這部分我拆成三個(gè)小節(jié)逐一講透。3.1 工具定義你的函數(shù)簽名寫得越清楚模型就越不容易犯錯(cuò)函數(shù)調(diào)用的第一步是把你代碼里的函數(shù)“翻譯”成模型能理解的語言。以O(shè)penAI的tools參數(shù)為例一個(gè)函數(shù)定義長(zhǎng)這樣tools [ { type: function, function: { name: get_weather, description: 查詢指定城市的實(shí)時(shí)天氣情況包括溫度、天氣狀況和風(fēng)力。當(dāng)用戶詢問天氣、氣溫、是否會(huì)下雨時(shí)使用。, parameters: { type: object, properties: { city: { type: string, description: 城市名稱例如北京、上海、廣州。必須是中文城市名。 }, unit: { type: string, enum: [celsius, fahrenheit], description: 溫度單位默認(rèn)使用攝氏度。, default: celsius } }, required: [city] } } } ]這里有幾個(gè)細(xì)節(jié)是很多教程不會(huì)強(qiáng)調(diào)的。第一個(gè)是描述要“精確到使用時(shí)機(jī)”。description不只是給模型介紹這個(gè)函數(shù)是干嘛的更重要的是告訴模型“什么時(shí)候該用它”。我見過很多人寫“查詢天氣”四個(gè)字就完了結(jié)果模型在用戶說“今天適合穿什么”的時(shí)候完全沒想過可以調(diào)天氣接口。加上“當(dāng)用戶詢問天氣、氣溫、是否會(huì)下雨時(shí)使用”這種觸發(fā)條件描述后調(diào)用率立刻上了一個(gè)臺(tái)階。第二個(gè)細(xì)節(jié)是參數(shù)描述里要寫取值范圍、格式約定、甚至默認(rèn)行為。比如city參數(shù)如果你不寫明“必須是中文城市名”模型有可能會(huì)給你輸出“Beijing”而不是“北京”你的查詢接口很可能因此報(bào)錯(cuò)。越細(xì)的約束越能減少下游解析的麻煩。第三個(gè)細(xì)節(jié)是required字段不能偷懶。必填的參數(shù)必須列出來否則模型偶爾會(huì)漏掉你其實(shí)必須要的參數(shù)。我在一個(gè)項(xiàng)目里就是因?yàn)闆]把user_id設(shè)為必填導(dǎo)致后臺(tái)一連串的鑒權(quán)錯(cuò)誤。3.2 參數(shù)解析與校驗(yàn)別信模型輸出的每個(gè)字節(jié)都是金子模型不是數(shù)據(jù)庫它的輸出有一定概率出錯(cuò)。函數(shù)調(diào)用返回的JSON里參數(shù)類型不對(duì)、字段缺失、甚至整個(gè)JSON無法解析都是常見情況。因此在真正執(zhí)行函數(shù)之前你要有一道校驗(yàn)關(guān)卡。我的做法是寫一個(gè)通用的校驗(yàn)器在分發(fā)之前做三層校驗(yàn)第一層是JSON格式校驗(yàn)判斷tool_calls里的arguments字符串能不能正常解析成字典。第二層是Schema校驗(yàn)把解析出來的參數(shù)再用定義時(shí)的那套JSON Schema格式跑一遍確認(rèn)類型合法、必填項(xiàng)都在。第三層是業(yè)務(wù)校驗(yàn)這一步是校驗(yàn)一些Schema管不了的東西比如日期格式是不是合理的、金額是不是大于0、用戶ID是不是存在。前兩層可以用現(xiàn)成的庫比如JSON Schema的Python實(shí)現(xiàn)jsonschema來做第三層就得自己在每個(gè)函數(shù)里寫。很多人覺得這太繁瑣但我實(shí)測(cè)下來加一道校驗(yàn)至少能攔截掉約5%~10%的模型錯(cuò)誤輸出在長(zhǎng)期運(yùn)行的Agent服務(wù)里這個(gè)比例足以避免大量線上事故。注意參數(shù)校驗(yàn)失敗的時(shí)候不要直接拋異常終止整個(gè)對(duì)話循環(huán)。正確的做法是構(gòu)造一條“工具執(zhí)行錯(cuò)誤”的消息返回給模型告訴它“參數(shù)不合法請(qǐng)修改后重試”。模型通常會(huì)自動(dòng)修正Agent的容錯(cuò)能力就是這么一點(diǎn)點(diǎn)建立起來的。3.3 執(zhí)行分發(fā)與結(jié)果回流把函數(shù)返回變成模型能消化的“事實(shí)”校驗(yàn)通過之后就進(jìn)入執(zhí)行分發(fā)環(huán)節(jié)。我推薦用注冊(cè)表模式來管理函數(shù)與執(zhí)行器的映射。注意這里有一個(gè)新手很容易踩的坑**模型傳遞過來的只是函數(shù)名和參數(shù)字典而不是真正的Python函數(shù)對(duì)象。**你不能直接拿字符串去eval更不應(yīng)該用動(dòng)態(tài)import這種危險(xiǎn)操作。正確的做法是維護(hù)一個(gè)“名稱到函數(shù)”的映射字典或者用裝飾器把函數(shù)注冊(cè)進(jìn)一個(gè)全局注冊(cè)表。比如TOOL_REGISTRY {} def register_tool(nameNone): def decorator(func): registry_name name or func.__name__ TOOL_REGISTRY[registry_name] func return func return decorator register_tool() def get_weather(city: str, unit: str celsius): # 實(shí)際去調(diào)用天氣API return {temperature: 18, condition: 多云, city: city}執(zhí)行完函數(shù)得到結(jié)果之后還有一個(gè)關(guān)鍵步驟結(jié)果回流。你要把執(zhí)行結(jié)果組裝成一條tool角色的消息追加到對(duì)話上下文中然后再帶著這條消息去請(qǐng)求模型讓它繼續(xù)決定是給出最終回答還是發(fā)起下一輪函數(shù)調(diào)用。這里有個(gè)小技巧返回給模型的內(nèi)容應(yīng)該是“結(jié)構(gòu)化的摘要”而不是原始API響應(yīng)的整段JSON。比如天氣接口可能返回50個(gè)字段的氣象數(shù)據(jù)但模型做后續(xù)決策只需要其中的“溫度、天氣狀況、風(fēng)力”。所以你在工具函數(shù)里就應(yīng)該把結(jié)果裁剪、濃縮只保留對(duì)后續(xù)推理有意義的字段。4. 實(shí)操全流程從零寫一個(gè)帶函數(shù)調(diào)用的Agent循環(huán)理論講再多不如直接上一份能跑的代碼。這一節(jié)我會(huì)帶你從零寫一個(gè)最小可用的Agent它支持兩個(gè)工具查天氣和給指定郵箱發(fā)提醒郵件。等這個(gè)循環(huán)跑通了你就等于掌握了函數(shù)調(diào)用的全鏈路骨架之后換工具、加工具、上框架都只是往里面添磚加瓦。4.1 環(huán)境準(zhǔn)備與模型選型這個(gè)示例我用的Python 3.10OpenAI的Python SDK模型用gpt-4o-mini。你如果用的是其他兼容OpenAI接口格式的服務(wù)商比如國內(nèi)的一些廠商或自建的網(wǎng)關(guān)代碼邏輯完全不用改只要換掉base_url和api_key就行。pip install openai寫代碼之前先把API Key配置到環(huán)境變量里。我建議你創(chuàng)建項(xiàng)目根目錄下的.env文件然后用python-dotenv加載避免把Key硬編碼進(jìn)代碼。密鑰這東西一旦提交到Git倉庫后面漏出去補(bǔ)救了基本就晚了。4.2 構(gòu)建工具定義與Agent主循環(huán)下面是完整的核心代碼這個(gè)結(jié)構(gòu)我建議你保存下來后面做任何Agent項(xiàng)目都可以在這個(gè)骨架上擴(kuò)展import os import json from openai import OpenAI # 初始化客戶端 client OpenAI( api_keyos.getenv(OPENAI_API_KEY), # base_urlhttps://你的網(wǎng)關(guān)地址, # 如果用了代理網(wǎng)關(guān)放開這行 ) # ---------- 1. 工具定義 ---------- TOOLS [ { type: function, function: { name: get_weather, description: 查詢指定城市的實(shí)時(shí)天氣。當(dāng)用戶問到天氣、氣溫、是否下雨、是否適合出行時(shí)必須調(diào)用此工具。, parameters: { type: object, properties: { city: {type: string, description: 中文城市名例如北京}, }, required: [city] } } }, { type: function, function: { name: send_reminder_email, description: 給指定郵箱發(fā)送一封提醒郵件。當(dāng)用戶要求發(fā)送郵件、提醒事項(xiàng)、通知時(shí)調(diào)用。, parameters: { type: object, properties: { to_email: {type: string, description: 收件人郵箱地址}, subject: {type: string, description: 郵件標(biāo)題}, body: {type: string, description: 郵件正文內(nèi)容} }, required: [to_email, subject, body] } } } ] # ---------- 2. 真實(shí)函數(shù)實(shí)現(xiàn)模擬 ---------- def get_weather(city: str): # 實(shí)際項(xiàng)目里這里換成真實(shí)天氣API調(diào)用 return {city: city, temperature: 16, condition: 多云轉(zhuǎn)晴, humidity: 45} def send_reminder_email(to_email: str, subject: str, body: str): # 實(shí)際項(xiàng)目里這里換成郵件服務(wù)商API print(f[郵件發(fā)送] 收件人{(lán)to_email}, 主題{subject}) return {status: success, message: 郵件已進(jìn)入發(fā)送隊(duì)列} TOOL_REGISTRY { get_weather: get_weather, send_reminder_email: send_reminder_email, } # ---------- 3. 主循環(huán)Agent的核心 ---------- def run_agent(user_input: str, max_steps: int 5): messages [{role: user, content: user_input}] for step in range(max_steps): response client.chat.completions.create( modelgpt-4o-mini, messagesmessages, toolsTOOLS, tool_choiceauto, ) msg response.choices[0].message # 判斷模型是否需要調(diào)用工具 if not msg.tool_calls: # 沒有工具調(diào)用說明模型已經(jīng)準(zhǔn)備好直接回答了 print(f最終回答: {msg.content}) return msg.content # 有工具調(diào)用先把a(bǔ)ssistant消息放入上下文 messages.append(msg) # 逐個(gè)處理工具調(diào)用 for tool_call in msg.tool_calls: fn_name tool_call.function.name fn_args json.loads(tool_call.function.arguments) print(f[調(diào)用工具] {fn_name}({fn_args})) # 在注冊(cè)表里查找并執(zhí)行 if fn_name in TOOL_REGISTRY: result TOOL_REGISTRY[fn_name](**fn_args) else: result {error: f未知工具: {fn_name}} # 把工具執(zhí)行結(jié)果作為tool角色消息追加進(jìn)上下文 messages.append({ role: tool, tool_call_id: tool_call.id, content: json.dumps(result, ensure_asciiFalse), }) # 超過最大步數(shù)兜底 raise RuntimeError(fAgent執(zhí)行超過{max_steps}輪仍未結(jié)束) # ---------- 4. 執(zhí)行測(cè)試 ---------- if __name__ __main__: run_agent(北京今天天氣怎么樣順便幫我給 zhangsanexample.com 發(fā)個(gè)提醒郵件提醒他明天下午開會(huì)。)這個(gè)循環(huán)其實(shí)就是前面說的“五步循環(huán)”發(fā)給模型→模型決定調(diào)工具→執(zhí)行工具→結(jié)果回傳→再給模型。代碼跑起來后你會(huì)在日志里看到模型先調(diào)get_weather、再調(diào)send_reminder_email、最后根據(jù)兩個(gè)工具的返回結(jié)果生成一段完整的答案。這個(gè)時(shí)序是模型自主決策的不是你寫死的這正是Agent和傳統(tǒng)腳本最大的區(qū)別。4.3 解析為什么要設(shè)置max_steps上限一個(gè)Agent循環(huán)里如果模型不夠聰明或者工具返回的信息有誤導(dǎo)它有可能陷入“反復(fù)調(diào)工具、反復(fù)失敗”的死循環(huán)里一次對(duì)話消耗幾十次API調(diào)用。設(shè)置max_steps本質(zhì)上是給整個(gè)循環(huán)加了一個(gè)“熔斷器”。我在生產(chǎn)環(huán)境里通常不會(huì)設(shè)太高3到5步足夠覆蓋絕大多數(shù)場(chǎng)景因?yàn)橐粋€(gè)正常的任務(wù)最多也就連續(xù)調(diào)用兩三次工具。如果超過這個(gè)輪數(shù)還沒結(jié)果寧可返回“我無法完成這個(gè)任務(wù)”也不要讓用戶等半分鐘還看到一直在轉(zhuǎn)圈。4.4 多工具場(chǎng)景下的進(jìn)階從手寫分發(fā)到裝飾器注冊(cè)上面的示例里用一個(gè)字典做分發(fā)夠用但工具一多就會(huì)很凌亂。我建議趁早改成裝飾器注冊(cè)的方式把“工具定義”和“業(yè)務(wù)函數(shù)”寫在一起減少維護(hù)成本import inspect import functools def tool(nameNone): def decorator(func): registry_name name or func.__name__ TOOL_REGISTRY[registry_name] func # 自動(dòng)從函數(shù)簽名生成JSON Schema描述 TOOL_SCHEMAS.append({ type: function, function: { name: registry_name, description: func.__doc__ or , parameters: generate_schema_from_func(func), } }) return func return decorator tool() def get_weather(city: str): 查詢指定城市的實(shí)時(shí)天氣。當(dāng)用戶問到天氣、氣溫、是否下雨時(shí)使用。 ...這個(gè)方案的好處是工具定義不再單獨(dú)維護(hù)一份而是從函數(shù)簽名和docstring里自動(dòng)生成函數(shù)和Schema永遠(yuǎn)同步不會(huì)出現(xiàn)“代碼里改了參數(shù)定義忘了更新”這種低級(jí)問題。等你的Agent工具數(shù)量超過10個(gè)你會(huì)發(fā)現(xiàn)這個(gè)設(shè)計(jì)幫你節(jié)省了大量精力。5. 進(jìn)階能力擴(kuò)展函數(shù)調(diào)用怎么跟Agent框架、記憶、多Agent編排結(jié)合掌握了基礎(chǔ)循環(huán)之后你會(huì)發(fā)現(xiàn)函數(shù)調(diào)用其實(shí)只是Agent系統(tǒng)的“執(zhí)行底座”。真正讓Agent強(qiáng)大的是在這個(gè)底座之上疊加記憶、技能Skill、多Agent協(xié)作等能力。這一節(jié)我結(jié)合當(dāng)前Agent開發(fā)社區(qū)的熱門方向談?wù)勗趺窗押瘮?shù)調(diào)用往更完整的Agent架構(gòu)上延伸。5.1 從零散函數(shù)到Agent Skill給函數(shù)加“使用層”最近社區(qū)里“Agent Skill”這個(gè)概念很火包括Claude發(fā)布的Agent Skills本質(zhì)上也是在解決一個(gè)問題單個(gè)函數(shù)的能力太弱應(yīng)該把“實(shí)現(xiàn)同一目標(biāo)的一組操作”打包成一個(gè)可復(fù)用的Skill。舉個(gè)例子單純一個(gè)get_weather(city)函數(shù)是單一能力但如果Agent接到的任務(wù)是“幫用戶規(guī)劃一次周末旅行”它可能先調(diào)天氣查詢、再調(diào)酒店搜索、再調(diào)地圖規(guī)劃這就是三個(gè)函數(shù)的組合。與其讓模型每次從頭一步步試探不如提前把這些函數(shù)的調(diào)用鏈封裝成一個(gè)高階工具比如plan_trip(city, date_range)內(nèi)部去編排天氣、酒店、路線三個(gè)子調(diào)用。這個(gè)抽象層次的思想跟軟件工程里的“函數(shù)→模塊→服務(wù)”演進(jìn)路徑是一模一樣的。我建議你做Agent時(shí)不要一上來就堆50個(gè)細(xì)粒度函數(shù)那會(huì)讓模型在選擇工具時(shí)無所適從。更好的策略是先做十幾個(gè)粗粒度的Skill每個(gè)Skill內(nèi)部再封裝細(xì)粒度的函數(shù)。5.2 函數(shù)調(diào)用的結(jié)果如何寫入記憶與工作區(qū)Agent在調(diào)用函數(shù)執(zhí)行任務(wù)的過程中會(huì)產(chǎn)生大量中間結(jié)果。這些結(jié)果如果每次都只在上下文里流轉(zhuǎn)一方面浪費(fèi)Token另一方面下次對(duì)話就全丟了。這就是“Agent記憶”和“工作區(qū)”要解決的問題。我目前比較推薦的做法是函數(shù)調(diào)用的結(jié)構(gòu)化結(jié)果除了返回到對(duì)話上下文之外同時(shí)寫入到一個(gè)Agent工作區(qū)里。這個(gè)工作區(qū)可以是一個(gè)本地的JSON文件、一個(gè)向量數(shù)據(jù)庫、或者干脆就是目標(biāo)項(xiàng)目的文件目錄。比如Agent執(zhí)行完save_document工具后文件寫入了本地路徑返回給模型的是一條{status: saved, path: /data/doc_123.md}這樣的消息而不是整個(gè)文件內(nèi)容。模型知道文件已經(jīng)存到哪兒了但不會(huì)把大段文件內(nèi)容塞進(jìn)上下文這樣就同時(shí)兼顧了可追溯性和Token開銷。5.3 多Agent編排中的函數(shù)調(diào)用誰調(diào)用結(jié)果歸誰多Agent系統(tǒng)現(xiàn)在也是一個(gè)熱門話題。這里要特別注意函數(shù)調(diào)用不再只是“一個(gè)Agent調(diào)用一堆工具”而是“多個(gè)Agent各自擁有不同的工具集”。架構(gòu)上要做的是給每個(gè)Agent配置獨(dú)立的tools列表和獨(dú)立的工具注冊(cè)表不能讓Agent A調(diào)用Agent B的私有工具否則就失去了隔離的意義。還有一個(gè)容易出錯(cuò)的地方是狀態(tài)歸屬Agent A調(diào)用了寫文件工具Agent B隨后要讀這個(gè)文件如果兩個(gè)Agent跑在不同的進(jìn)程甚至不同的機(jī)器上A的寫和B的讀之間就需要一個(gè)共享的存儲(chǔ)層。我建議小規(guī)模項(xiàng)目直接用一個(gè)Redis或者數(shù)據(jù)庫表來當(dāng)共享工作區(qū)而不是讓Agent B直接去讀Agent A的內(nèi)存變量。在多Agent的編排下函數(shù)調(diào)用的結(jié)果還需要帶上“執(zhí)行者”和“時(shí)間戳”信息否則日志排查時(shí)你會(huì)瘋掉。折騰過一兩次就知道這種跨Agent的調(diào)用鏈路一旦出問題沒有元信息根本定位不到是誰調(diào)錯(cuò)了參數(shù)。6. 常見問題與排查技巧實(shí)錄這些坑我不希望你重踩一遍這一部分是全文最“貴”的內(nèi)容全部來自我實(shí)際開發(fā)Agent時(shí)被折磨過的問題。我把它們整理成速查表和分析優(yōu)先看那些跟你癥狀匹配的。6.1 模型該調(diào)用函數(shù)卻不調(diào)用癥狀用戶明確問了“北京天氣怎么樣”模型卻自己編了一段“根據(jù)我的了解北京今天晴……”的幻覺答案完全沒走工具調(diào)用。排查順序先看tools參數(shù)是否真的傳進(jìn)去了、tool_choice是否被誤設(shè)成了none。這兩個(gè)是低級(jí)錯(cuò)誤檢查完基本能排除。然后再看函數(shù)描述里有沒有寫清楚“觸發(fā)時(shí)機(jī)”如果只寫了“查詢某個(gè)城市的天氣”這種靜態(tài)描述模型確實(shí)容易把工具調(diào)用當(dāng)成可選項(xiàng)。解決辦法把描述改成帶觸發(fā)條件的動(dòng)態(tài)表述。比如“當(dāng)用戶詢問道市天氣、氣溫、是否下雨、是否適合戶外活動(dòng)時(shí)必須調(diào)用此工具來獲取實(shí)時(shí)數(shù)據(jù)不得自行編造天氣信息。”加一句“不得自行編造”對(duì)于抑制幻覺很有效。6.2 參數(shù)類型不對(duì)傳了字符串而不是數(shù)字癥狀函數(shù)定義里days參數(shù)是integer類型模型卻傳了3天這種值導(dǎo)致類型校驗(yàn)報(bào)錯(cuò)。原因模型的Token化過程對(duì)中文和數(shù)字的混合輸入很不敏感。你定義的是JSON Schema但模型是在做文本生成它不一定嚴(yán)格遵循類型約定。解決辦法除了在Schema里聲明類型還要在參數(shù)描述里寫清楚“只傳數(shù)字不要帶單位”。更穩(wěn)妥的辦法是在工具函數(shù)的入口做一次顯式類型轉(zhuǎn)換比如def set_reminder(days): days int(str(days).replace(天, ).strip()) ...這屬于防御式編程寧可代碼里多兩行也不要讓一個(gè)參數(shù)錯(cuò)誤導(dǎo)致整條鏈路崩潰。6.3 并發(fā)場(chǎng)景下函數(shù)調(diào)用狀態(tài)串了癥狀A(yù)gent服務(wù)上線后一旦同時(shí)服務(wù)多個(gè)用戶就出現(xiàn)A用戶的工具調(diào)用結(jié)果跑到了B用戶的上下文里或者函數(shù)執(zhí)行時(shí)用錯(cuò)了參數(shù)。原因絕大多數(shù)情況是消息列表被設(shè)計(jì)成了共享變量。記住一個(gè)原則Agent的對(duì)話上下文是強(qiáng)隔離的每一個(gè)用戶會(huì)話必須有自己獨(dú)立的messages列表不能有全局共享的上下文。解決方案生產(chǎn)環(huán)境里用會(huì)話ID做維度管理上下文。每一次請(qǐng)求都從會(huì)話存儲(chǔ)里讀取屬于該會(huì)話的消息列表函數(shù)執(zhí)行結(jié)果也按會(huì)話ID寫回。如果需要并發(fā)執(zhí)行多個(gè)工具調(diào)用還記得給每個(gè)工具調(diào)用的結(jié)果帶上tool_call_id確保模型能正確匹配。6.4 工具返回結(jié)果太大上下文爆炸癥狀跑了一陣之后發(fā)現(xiàn)每次請(qǐng)求的Token消耗越來越大后來一查是某個(gè)工具把一份5000行的數(shù)據(jù)全量返回給了模型。原因工具返回結(jié)果進(jìn)入了一直累積的對(duì)話上下文不會(huì)被自動(dòng)清理大結(jié)果反復(fù)出現(xiàn)Token消耗自然飆升。解決辦法三個(gè)字截、摘、引。截是只返回前N行摘是讓工具內(nèi)部先做一次摘要只把摘要返回給模型引是對(duì)于極大的數(shù)據(jù)量把數(shù)據(jù)存到數(shù)據(jù)庫/文件只返回一個(gè)可以檢索的ID或路徑。我在生產(chǎn)項(xiàng)目里這三招組合使用Token成本直接降了60%以上。6.5 安全邊界函數(shù)調(diào)用的權(quán)限必須收口癥狀有開發(fā)者在Agent里暴露了一個(gè)執(zhí)行任意Shell命令的工具結(jié)果模型在某個(gè)輸入誘導(dǎo)下執(zhí)行了一串危險(xiǎn)命令。原因沒有做權(quán)限管控。函數(shù)調(diào)用的本質(zhì)是把你系統(tǒng)里已有的能力暴露給模型而模型又會(huì)聽用戶的。用戶輸入是無限的模型的判斷不是萬無一失的所以你必須假設(shè)“用戶正在嘗試攻擊這個(gè)Agent”。解決辦法這幾點(diǎn)我建議作為Agent開發(fā)的紅線第一高危工具刪除文件、執(zhí)行命令、轉(zhuǎn)賬、發(fā)短信一律不暴露給模型改成由Agent生成“待確認(rèn)操作卡片”由用戶在前端手動(dòng)確認(rèn)后再執(zhí)行。第二所有工具函數(shù)的參數(shù)要做白名單校驗(yàn)比如文件路徑只能落在指定目錄內(nèi)。第三復(fù)雜操作增加一個(gè)“審計(jì)日志”記錄每次工具調(diào)用的完整參數(shù)和結(jié)果。這三條都做到你基本就擋住了90%的常規(guī)攻擊路徑。7. 函數(shù)調(diào)用排查速查表與最后的經(jīng)驗(yàn)總結(jié)把前面幾節(jié)的內(nèi)容壓縮成一張速查表直接在排查時(shí)對(duì)號(hào)入座癥狀常見原因優(yōu)先排查項(xiàng)模型不調(diào)用工具tools參數(shù)未傳、描述缺少觸發(fā)條件tool_choice設(shè)置、description觸發(fā)詞參數(shù)格式錯(cuò)誤類型不符、單位混淆參數(shù)描述明確類型、函數(shù)入口防御轉(zhuǎn)換調(diào)用結(jié)果不生效tool_call_id不匹配、上下文漏追加消息assistant消息和tool消息的順序、id匹配Token消耗暴漲工具返回全量數(shù)據(jù)、上下文無限累積結(jié)果截?cái)?摘要、消息列表窗口管理并發(fā)結(jié)果串線會(huì)話上下文全局共享按會(huì)話ID隔離messages列表函數(shù)報(bào)錯(cuò)中斷執(zhí)行異常未捕獲try/except包裹工具執(zhí)行、異常轉(zhuǎn)為錯(cuò)誤消息回傳模型模型越權(quán)調(diào)用高危函數(shù)權(quán)限未收斂高危操作人工確認(rèn)、參數(shù)白名單我個(gè)人在實(shí)際操作中的體會(huì)是函數(shù)調(diào)用的實(shí)現(xiàn)其實(shí)不難難的是圍繞它的整套工程化設(shè)計(jì)——容錯(cuò)、隔離、審計(jì)、成本控制這些才是Agent能否長(zhǎng)期穩(wěn)定跑下去的關(guān)鍵。很多人覺得Agent開發(fā)就是“調(diào)一個(gè)API就完事了”但真正沉淀下來的能力恰恰是在這些細(xì)節(jié)里。最后再分享一個(gè)小技巧給你的每個(gè)工具寫一句話的“使用時(shí)機(jī)說明”。這句話不是給用戶看的也不是給代碼看的而是給模型看的。模型決定調(diào)不調(diào)用工具主要依據(jù)就是工具描述和當(dāng)前對(duì)話意圖之間的匹配度。這一句描述寫得好不好直接影響工具調(diào)用率值得你花時(shí)間反復(fù)打磨。我通常是跑一批真實(shí)用戶日志看看哪些工具調(diào)用率低、哪些工具被誤調(diào)用針對(duì)性調(diào)描述調(diào)完再跑一輪一般兩三輪之后工具選擇準(zhǔn)確率就能穩(wěn)定在95%以上。這個(gè)經(jīng)驗(yàn)希望你下次做個(gè)帶工具的Agent時(shí)能幫你少走不少彎路。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
97伦乱| 久久华人网| 国产 亚洲 一二三四| 91影视亚洲| 一区二区三区精品黑丝白丝酒店对鸡| 无遮挡一级毛片视频免费的| 亚洲性高潮| 97一本大道亚洲一区| 性爱久久| 性爱av网站| 久久久久久久伊人精品| 欧美日韩另类在线| 免费一级性爱久久| 国产极品精品美女视频| 久久久96| 一二三四视频中文字幕在线看| 少妇淫妇久久久久久久| 嗯嗯嗯啊啊在线观看| 爱爱动态试试看6 0秒| 色色五月婷| 18禁的网站在线| 国产女人和拘做爰视频 | 亚洲精品97中文字幕| 午夜男人天堂| 天天干天天做| 97超碰色屌| 午夜精品久久久久久久男人的天堂 | 久久久久久无码人妻中文字幕| 一区 欧美 日韩 麻豆| 另类综合另类| 中文字幕视频在线观看一区二区| 亚洲欧美九九九| 欧美三级不卡| 日韩在线女优天天干| 国产毛片精品一区二区色欲黄A片| 欧美日韩在线国产在线| 极品色www影院| 国产亚洲日本精品在线| 色爱三区| 久草视频制服诱惑| 97超碰资源网| 风骚少妇视频中文字幕| 大逼色网站| 欧美亚洲中文字幕| 射综合网| 日韩欧美成人午夜福利| 国产亚洲精品第一最新| 中日无幕一二三四区| 欧美久久草熟女| 97AV爱| 国产亚洲 中文欧美久久| 久久黄黄| 91激情网| 97精品视频在线| 日日日日做夜夜夜夜做无码97| 是还免费视频1727我| 欧洲亚洲天堂精品 | 婷婷丁香六月天| 精品一区二区三区蜜桃臀赵总 | 吻戏激情性巴克| 久久免费老司机精品| 丁香五月激情网| 好吊妞转入那个网| 久久爱超碰网| 性色综合网| 人人操人人肉久久精品| 亚洲欧洲日本精品中文a∨| 国产精品一区二区亚洲人成毛片| 人妻系列无码专区中文有码| 色色99| 立川理惠被中出无码| 欧美在线天堂| 久久久9视频| 色网1| 欧美东京热青青草| 岛国AB视频| 屌逼传媒| 久久精品视频一区三区小泽玛利亚| 日本不卡一区二区三区| 国产一级舔足在线观看| 久久久18| 91/欧美| 欧美亚洲首页| 中文字幕精品一区二区精| 日本欧美亚洲高清在线看| 操人91| 国产精品视频播放| 91黑丝在线| 天堂8在线新版官网| 欧亚乱色熟一区二区三四区| 97精品一区| 中文字幕 国产区| 欧美日日夜夜| 亚洲丝袜少妇在线| 中文字幕狠狠玩| 麻豆影音天美视频| 亚洲97在线| 国产综合网站在线播放 | 亚洲精品人妻在线| 免费亚洲黄色视频在线观看 | 中文字幕AV乱伦| 九九RE视频在线精品| 色大师网站www永久网站视频| 人人九九精| 以及麻豆国产入口在线观看免费| 丁香五月天堂网| 热久久国产精品视频大陆精品| 欧美美女视频| 日本免费亚洲欧美| 97视频新免费| 51一区二区三区| 69精品人人人人| 亚洲在线欧美| 麻豆精品久久久久久久| 97 色综合| 99热啪啪| 天美传媒精品一区二区| 欧美日韩亚洲五月天婷婷| 男女一进一出视频久久| 91人妻超碰| 久久老女人| 亚洲精品丝袜-不卡成人免费……| 亚洲色图尤物视频| 欧美爆操91| 狠狠干91| 激情文学 国产一二三aV| 一区二区中文| 国产嫩草精品A88AV在线| 男人天堂网站| 躁躁日曰躁2020| 天天操人人操狠狠插| 91国产大片| 在线综合 亚洲 欧美中文字幕| 精品v1区| 欧美不卡二区| 蜜桃久久一区二区| 久久有碼| 黄aaaaaaaaaaaaaaaaaa色网站| #NAME?| 久久精品店| 成年在线视频日本亚洲在线视频区精品江靖宇公司 | 国产午夜福利专区综合| 热热热热日日漂亮永久永久国产日| 国产成人精品必看| 中文字幕一二三av| 国产极品久久久| 国产女人和拘做爰视频| 91无码人妻精品一区二区三区蜜桃| 抽插无码高清一区| 久热影视| 天天爱天天操| 久久国99999| 另类 日韩 熟女| 就去色综合| 亚洲影视综合| 久久綜合很很很| 超碰成人最新最好看| 一二区在线观看视频| 国产精品久久久亚洲一区| 人人操人人插 - 百度 - 百度| 亚州日韩97| 综合激情婷婷| 国产女同视频在线播放| 青青青青青手机视频| 欧美激情 日韩精品| 18禁精品网站在线看| 超碰97综合网| 久久蜜色情在线视频xxx免费观看| 在线观看AV片| 亚洲AV无码乱码| 亚洲风情综合网| 国产原创精品| 国产91久久九九免费精品无码| 国产强奸无码乱伦| 色九九九九九九| 亚洲熟女乱色| 大奶啊啊好爽 | 天天干美少妇一区| 亚洲综合色婷婷| 18禁看网站一区| 农村少妇久久久久久久| av橘色网站| 免费成人在线熟妇网| 四虎 精品 WWW| 五月丁香影视| 久久亚洲婷婷| 九九久久综合| 思思热免费视频观看| 性爱综合一区二区| 久久产精品一区二区三区电影| 97草草| 97超碰天天爱天天爱| 蜜臀av一区二区三区免费观看| 自拍偷拍 日韩无码| 国产欧美日本亚洲精品| 国产综合色精品在线观看| 激情婷婷黑人91| 欧美日日人人天天| 久久久一二三四区| 色97国产69香蕉| 中国的操老妇女| 日韩精品三级片长长久久| 极品丝袜无码| 精品久久在线区一区| 综合色99| 久操综合在线| 日韩少妇丰满亚洲| 自拍盗摄一区| 是还免费视频1727我| 久偷拍| 欧美97视频| 91性高| av东京热男人的天堂| 大香蕉十区| 天天摸夜夜摸| 亚洲欧美激情小说| 精品人妻一区二区三区日产| 高清有码一区二区| 成人免费看吃奶视频网站| 97在线精品观看视频| 看免费一级在线播放毛片| av网站国产主播在线| PMv在线观看| 一级片在线观看高清无码| 国产精品ⅴ无码大片在线看.| 欧美亚洲一级在线观看| JIZZJIZZ国产精品喷水| 中文字幕第页| 老汉网| 日韩亚洲97| 久9久9久9久9久9久9| 超碰在线91| 亚洲欧美天堂| 新久久AV| 992这里有精品| 内射日韩大臀美女| 日本淫穴在线| 色香91| 热热色91| 91爆操视频| 天天天天干| 中文字幕天天操| 欧美 日韩第一性色| 激情欧美97| 免费日韩黄片| 99欧美| 最新国产精品久久精品| 国模限制级电影| 国产午夜福利视频在线| 台湾佬中文娱乐网久久久久久久久久com| 中出20p| 性无码专区2020| 亚洲成a人在线观看久| 人妻少妇久久久| 啊操爽品善一区二区三区| 亚洲成人在线资源| 91人妻精华帖| 色噜噜国产在线| 亚洲无码成人精品| 九九精品热| 国产少妇高潮| 欧美片第一页| 久久久9品一区二区三区| 在线色资源| 色牛aV| 亚洲精品中文字幕一区在线视频| 在线女人91| 久久精品成人一区二区三区蜜臀| 日韩欧美性爱电影在线观看| 9+1视频网址| 色男人色天堂东京热| 97精品免费视频网站| www五月| 亚洲天堂中文字| 四季AV一区二区凹凸精品小说| 天天插天天操| 久久久久久久性爱| 亚洲中文字幕在现观看| 色噜噜婷婷| 久久影视二区三区行押| 久操不卡视频| 色香91| 国产黄色在线播放观看| 中文字幕久久精视频久久大全| 夜夜躁狠狠躁日日躁av| 少妇超碰在线| 熟女人妻一区二区三区| 色色婷| 久久华人网| 日本丝袜人妻内射| 色偷偷人人玩人人舔人人操人人摸人人爽 | 精品射1999| 久久9精品| 国产高清无码一区二区三区四区皇冠| 国产久久久久影院老熟女| 国产精品分类在线观看| 青青草日本中文字幕| 亚洲欧美不卡线| 五月丁香综合激情| 欧美综合另类| 操人妻逼91| 日本精品一级二级三级| 久久內射| 成人 日本A片无码8888| 又黄又硬又粗又长国产视频| 日韩美一区| 中英熟女操女| 日韩人妻精品中文字幕| 九色在线熟女国产黑人| 日本久久久久久久久久| 99久久婷婷| 欧美性爱一区二区| 久久有碼| 午夜国产成人福利视频| 久久久久熟女| 伊人久久亚洲中文字幕| 精品国产丝袜一区二区三区乱码| 精品人妻一区二区三区蜜桃视频| 992这里有精品| 最新日本中文字幕| 亚洲黄a三级三级三级看三级| 乱伦图一区| 久久久久婷婷精品av电影| 99视频自拍| 女色综合| 一区二区视频你懂的| 亚洲精品人妻吞精av| www国产精品| 国产黄色动态精品| 91干熟女| 亚洲一区二区三区播放在线| 97伊人超碰| 亚洲男人天堂网久久| 91c色| 97国产|免费| 熟女自慰久久久| 国产又大又硬又长又粗| 日本久久女同性恋视频| 色97国产69香蕉| 欧美日日夜夜| 亚洲中文字幕av| 欧美性爱精品七区| 久啪视频| 色老牛| 欧美激情五月天| 金莲网址| 日韩性爱一级片| 国产精品午夜精品| 国产精品不卡一区二区三区| 亚洲天堂,男人| 日韩卡一卡二卡三在线| 美女天天干| 蜜区区视频79 | ..日韩av毛片精品久久久| 怡红院成人视频| 无码久| 精品人妻1237| 青青网三级视频| 中文字幕亚韩| 新久久AV| 国产精品4p在线观看| 夜夜爽夜夜操| 日韩成人小视频| 久草草一二三四区久久| 91中文精品日韩欧美在线| 丰满人妻一区二区三区| 欧美婷婷五月天| 国产精品无码av嫩草| 被操高清无码视频| 高清无码久操视频| 欧美性爱免费短视频| 夜夜骑夜夜操| 性91| 色妇综合网| 国内毛片四区| 久久久久熟女| 亚洲人综合19| 凌辱美少妇久久aV| 欧美国产婷婷久久| 加勒比海人人操超碰在线| 96精品一区| 国产精品乱码久久久、久久| 在线观看午夜婷婷久久久久清性观看| 视频在线中文字幕| 高清不卡 中文 人妻| 日韩欧美水蜜桃人妻| 日韩欧美水蜜桃人妻| 超碰综合色| 91网站18在线| 亚州九九九精品视频| 丝袜亚洲91| 最新9久久久9免费视频| 无码人妻丰满熟妇区毛片| 97超碰超欧美。| 蜜臀av中文字幕| 亚春色色| …亚洲黄色厕厕女女在线播…| 色香综合| 国产精品人妻一区二区| 日韩卡一卡二卡三在线| 色乱二区| 日韩人妻少妇 一区二区三区| 人妻久久久久久| 骚货人妻偷情自拍在线视频| 日韩熟女精品无码专区一区二区| 日本A级视频| 超碰97亚洲区| 91综合熟女| 精品人妻1区| 国产懂色精品国产av| 大香蕉综合| 男人的天堂在线2| 啊啊啊啊啊啊啊在线| 天天爽入口| av网站免费看| 日韩AV无码中文一区二区| 色综合久久久久| 青青草精品| 限制级中的三级片中的黑粗大屌屌日人妻熟女| 少妇色| 国产精品网址| 人妻天天夜夜爽一区二区| 安徽熟妇视频| 人妻熟妇一区二区三区| 人人操人人干xxx| 日逼国产| 夜夜高潮夜夜爽高清视频一| 久久机热| 久久透逼视频| 91丝袜美女国产| 欧美999999| 欧美不在线| 日本激情免费大片| 用力操死我| 欧美草草高清日韩视频| 8050无码八戒| 99操| 国产成人欧美精品在线| 五月婷婷基地| 国产精品午夜福利视频| 婷婷婷婷婷婷久久久久| 久久激情五月| 操91| 国产日韩色综合| 97九色人妻| 久久久青草青青国产亚洲免观精品高清完整版_97久久综合区小说区图片区,国精品 | 牛黄色久午久| 伊人久久大香线蕉亚洲五月天,青草青草欧美日本一区二区,欧美日产欧美日产国产 | 久久老熟女| 国内毛片婷婷六月色| 99热超碰| 青青草国产欧美非洲黑人| 色情乱伦AV| 青青草五月天| 人人干黄色| 粉嫩国产精品久久粉嫩| 精品人妻15区| 六月丁丁香| 少妇人妻在线| 色官网在线| 欧美特黄视频网站| 午夜精品久久久久久久99蜜桃一| 91激情网| 国产精品婬乱一级毛片彝族| 久久大陆| 国产亚洲女v在线观看| 亚洲棕合电彰| 三级日韩一区二区三区| 国产精品视频电影| 秋霞Av理论一级在线| 盗摄 精品 另类 一区| 欧美中日韩XXXX| 久99热| 国内精品99999| 九九热在线精品视频| 欧美丝袜亚洲| 亚洲欧洲偷拍一区| 国产精品久久久吖| 啊操爽品善一区二区三区| av在线播放国产一区| 免费9 1久久| 亚洲欧洲日本精品中文a∨| www鬼畜国产男人的天堂| 亚洲伊人成综合成人网| 品亲网欧美品亲网| 欧美日韩操操操| 久久精品六区| 中文字幕人妻丝袜| 欧美人与动性人交a| 亚洲图片欧美制度| 日本操逼二区| 久久丝袜| 欧美老妇综合网| 成人八戒网站| 玖玖综合网| 欲香欲色综合天天伊人| 麻豆久久久久久久久丝袜| 在线视频免费播放一区| 亚洲男人综合| 色综合加勒比四四季| 日日爱99| 女人的天堂大香蕉网| 翔田千里一区二区三区奶水| 亚洲成人色情五月天丁香花| 伦激情人妻另类人妻| 人人摸人人干| 操逼逼中文字幕| 亚洲日韩欧美一区二区| 偷看洗澡一二三区美女| 亚洲图片欧美色| 蜜臀久久久久久999| 日本视频在线中文字幕| 你草精品在线视频| 秋霞一级视频在线观看免费| 丰满人妻-区二区三区免费看| 99热思思| 亚洲熟女性高潮久久久| 久久精品国产72国产精品福利| 另类欧美综合| 亚洲乱码精品一区二区| 另类av综合久久| 超碰免费在线| 国产操伦| 999999精品| 天天天堂影视日韩亚洲91| 色操逼网| 永久电影三级在线观看| 欧美一区二区三区成人性生活| 亚州色图第三区| 欧美,日韩综合久久| 97干97色| 精品人妻一区二区三区视频在线| 久久97资源 网| 激情文学网伊人| 性爱av在线免费观看| 欧美性爱免费短视频| 九九九九国产| 亚洲密乳AV| 中国韩国明星一极片一区乱码毛片人妻熟女一区二区三区 | 少妇淫妇久久久久久久| 好吊爽好吊爽在线视频,中文字幕精品一区二区日本,国产良妇出轨视频在线观看, | 亚洲综合五月天婷婷丁香| 日本三级A片网站com| 天天亚洲| 久久精品超碰| 97这里有精品| 日韩国产欧美伦理在线| 日韩欧洲操屄视频| 嫩草在线视频| 欧美色另类| 91精品人妻一品二品三品| 国产中文字幕在线观看| 久久99久久99精品天美传媒棢·纸:. | 久久免费少妇| 波多野结衣AV无码一区| 亚洲无码太久| 久久精视频美日韩在线视频| 郑州宾馆老熟女露脸啪啪| 亚洲日本激情| www…国产操逼| 成人夜夜爽| 欧美日韩人人精品| 福利天堂| 久9无限国产| 国产精品久久久吖| 国产激情在线| 狠狠搞 亚洲91| 天堂伊人久久| 综合夜夜| 色99在线| 欧美在线55555| 久久久一区二区三区麻豆| 久久午夜色播影院免费高清| 欧美性爱第一区| 色色五月天激情| 日噜夜夜夜夜夜夜夜夜夜夜爽爽爽爽爽爽爽爽爽爽爽爽 | 男人的天堂Va| 丝袜剧情| 天天日日日射| 青青草中文字幕| 日韩精品中文字幕二区| 久偷拍| 东京热一区二区中文字幕| 国产区91柔拿会所技师| 精品无码久久久久| 小电影欧美91| 国产无吗在线播放| 99青草| 久久久久久久91| 小骚逼被操的爽不爽| 国产久久一区二区午夜| 人人九九精| 精品国产一区二区三区久久久蜜臀| 爱爱动态60秒| a'v在线资源| 亚欧高清| 高清肉丝中文无码| 人人摸人人叼| 日韩乱伦视频| 美女网站黄页| 日韩性爱免费视频在线网站| 97超碰色屌| 一级乱伦网站| 国产精品久久久蜜臀| 欧美性爱第一页久久| 嗯啊不要在线| 狠狠久久亚洲欧美专区| 亚州人妻| 五月天婷精品激情| 青青操在线视频| 国产精品 午夜福利| 91人人看| 亚洲精品中文字幕一区在线视频 | 欧美最大综合网| 欧美黄色片AAAAA| 亚洲国产精品久久久久婷婷老年| 亚洲欧美中文日韩视频中国语| 亚洲影视高清第一页| 色色操| 97精品一区二区视频| 美日韩一二三区| 亚洲中文字母在线播放| 91操熟女| 不卡六六在线91| 日韩AV电影网站| 人人操人人操草草| 亚洲性网| 超碰诱惑| 欧美日韩亚洲国产中文永久天天看| 亚洲欧美在线观看2021| 日本一道在线播放高清| 亚洲亚洲亚洲天堂天堂| 日韩激情视频| 暖暖精品二区三区观看| 欧美亚洲日本激情在线| 欧美精品一区二区少妇免费A片| 久草色在线观看| 国产极品久久久| 久久手机好看网站| 伊人AAA| 成人黑料社久久| 欧美顶级黄色大片免费| 欧美日韩另类在线播放| 精品国产一区探花在线观看| 射久久| 清纯唯美亚洲综合| 婷婷色色五月天福利| 新怡红院| 熟妇亚洲一区二区三区| 久久久久久人| 97视频900| 大香网伊人久久综合网eew| 97视频观看| 亚洲丝袜B诱惑| 亚洲揄拍网| 啊灬啊灬啊灬啊灬高潮奶出了免费视 | 国产精品一区av在线| .精品人妻一区二区三| 日韩免费三级黄片电影| 丝袜剧情| 91熟女熟妇视频网站 | 伊人伊人LD| 欧美日韩亚洲五月天婷婷| 天天干1区2区在线| 欲色综合| 性影在线视频| 婷婷五月天社区| 超碰天天久久79| 色五月激情AV在线| 91少妇| 91精品国久久久久久无码| 婷婷综合网| 国产熟女免费观看久久| 久久欧美按摩999| 国产激情久久久| 日韩精品区二区三区不卡| www.91色综合| 久久久噜噜噜久久人妻| 老熟女91| 日韩av影片在线观看| 国产视频一区二区在线| 性老妇一区二区三区| 五月婷婷综合在线| 欧美一区二区三区四区综合| 新婚人妻扶着粗大强行坐下| 久久婷婷国产一区二区色| 综合九九| 日韩无码视频黄色| 精品国产一区二区三区av在线资源| 日韩在线视频1234| 男同专区一区二区三区在线| 色伊人91| 日本道日本道中文字幕日本道最新日本道在线观看| 99精品九九九九九九| 人、人、摸,人、人、草| 人人噜夜夜操| 国产毛片久久久久久久| 爱欲AV| 亚洲激情综合另类男同| 极品内射| 脫衣舞一区二区三区| 欧美91精彩| 日韩人妻一二三区视频| 91 亚洲情侣偷拍 久久| 日韩国产乱子伦App| 蜜臀亚洲综合一二三四区| 国模艳艳啪啪一区| 性生活性生大爱77AV国产| HEYZO高无码国产精品227| 国产蜜臀在线| 五月色丁香| 韩国免费播放一级毛片| 97大色网| 国产九九九九九九九九| 啊啊啊水好多| 天天看特黄的免费网站| 欧美午夜视频精品久久| 久久精品国产亚洲av水密被窝| 美女刺激久久国产欧美| 无码操逼视频一下| 啊嗯嗯啊好大好爽| 一起草av| 成人免费视瓶| 欧美日韩色| 日韩 欧美 校园一区| 精品人妻一区二区视频| 色欲天香天天综合网-成年人三级片网站-欧美乱妇狂野-日韩国产专区-久久久久久 | 一二视频神马久久传媒| 亚洲无码99| 韩国手机不卡无码三级视频| 亚洲中文sv| 欧美天天综| 激情综合五| 一区二区三区 日韩欧美| 麻豆av一区二区| 男人的天堂久久狠| 国产青一二三| 国产11页| 9久久精品| 这里只有精品视频在线观看麻豆| 久久久久久久9| 东京男人天堂| 一区二区亚州激情久婷婷欧美 | 精品一区二区三区四区外站| 亚洲91av| 国产后入精品| 91色碰| 五月丁香网站| 97久久精品亚洲| 91色五月俺来也| 国产多人在线观看视频| 一区二区乱码福利| 九久精品| 另类亚洲一区二区三区| 免费A片三p视频| 岛国在线国产| 八戒无码国产午夜福利| 狼狼色丁香久久婷婷综合五月| a男人的天堂久久一级A毛片| PMv在线观看| 欧美亚洲第一页| 国产一区二区在线电影| 精品一区二区人妖| 劲爆欧美人妖三区91| 96免费视频在线| 日本孕妇孕交| 香蕉人欧美综合| 国产精品盗摄 偷窥盗摄| 国语精品内射在线观看| 极品尤物在线观看| 夜夜操老骚逼视频网站| 超碰天天久久79| 91伊人影视综合| 制服诱惑亚洲一区二区三区在线观看| 九99久久| 日韩一区二区精彩视频| 高清无码 国产精品| 激情婷婷| 久久久久久久综合,国产| 亚洲资源一区| 黄片色区软件| 五月天激情网图片| 91美女视频电影| 亚洲国产综合视频| 久久一区二区三区入口| 青青草九九九九九| 老熟妇一区二区三区| 亚洲九九九| 久久精品99| 日本三级中国三级99人妇网站| 国产激情综合| 嗯……啊…嗯嗯…啊…好舒服| 国产九九九九九九| 亚欧成人综合影院| 欧美熟女妇同| 免费av在线播放二区| 欧美色图亚洲特色| 亚洲男人bt天堂| 天天影视91看看| 天天做日日爱夜夜爽| av天堂手机版追回| 在线一道啪| 天天干人人干天天日97| 精品久久久亚洲AV成人网站| 91美乳| 久久熟女嫩草成人片免费| 欧美少妇人妻| 亚洲砖码砖专无区2023| 少妇毛片久久| rion磁力链接| 国产区性爱在线视频秋霞豆 | 蜜汁欧美| 国产毛片在线| 日日干夜夜操视频h| 性欧美999| 黄色免费网页无码| 亚洲高清内射| 日本成人在线不卡一区二区三区| 天堂中文资源在线bt| 免费人人搞97| 天天射夜夜操| 中文字幕 人妻不满 在线视频| 97欧美色综合| 欧美色视频在线| 91精品人妻一区二区三区蜜桃臀| 欧美偷拍| 97色干| 亚洲女优有码无码高清| 国产操逼逼网| a片亚洲一本通视频| 国内精品久久人妻性色av| 黄色乱论网站| 淫荡网址| 中文一区二区婷婷视频| 天天干人人乐| 一区二区 韩日AV| 黄色成年| 99这里只有精品| 少妇蹲下露出大唇5| 9+1视频网址| 这里只有精品97| 在线 制服丝袜中出 人妻| 黑人性暴力毛片| 婷婷色网| 色欲天天综合久久久无码网中文| 99色色| 日本成人在线不卡一区二区三区 | 人妻三级在线中文字幕| 9久超碰| 日本成a人v网站在线观看| 四虎AV在线观看| 3PAV乱伦视频| 亚洲精品一二三四区| 操逼网站网站| 农村妇女精品一区二区| 操逼啊啊啊91| 春色综合免费| 99激情视频| 999精品久久久久久久| 久久久久性熟视频| 在线人成亚洲视频免费观看| 99只有精品| 91操人| 密臀在线一区尤物| 亚洲男人的天堂一区二区| 日韩激情毛片一级久久久| 国产地址二三| 激情视频网址| 国产高清亚洲日韩一区| 绑缚麻绳人妻寝取完整版| 玖玖爱免费观看视频| 极品少妇久久久久| 超碰公开久久网| 日本狂喷奶水在线播放212| 九九人妻| 日韩pv中文| 一起草日韩| 日韩大香蕉AV影片| 日日橹狠狠爱欧美超碰| 欧美国产伊人久久久久| 国产深喉视频一区二区| 97精品综合久久网| 99色综合| 人人人人插| 亚洲欧美情色| 欧美综合 站| 国产欧美伊人| 蜜臀操逼黄色视频操的好爽| 亚洲欧美色图片| 婷婷九月国产| 亚洲精品久久久久久久久豆丁网| 中文字幕中文字幕一区二区| 亚洲色图A| 亚洲性综合| 免费看污网站| www.色综合| 久久久久久日韩| 92久久| 97精品视频在线| 色鬼在线综合| 亚洲老熟妇xxx| 秋霞无码av鲁丝片一区| 丰满人妻aA一区二区三区| 88在线一区二区三区| 日韩人妻无码精品系列| 啊啊啊啊一区| 日韩一级片在线看| 无码逼| 日本乱人伦片中文三区| 少妇熟女一区二区三区| 九九九精品一区二区无码| 免費人妻夜夜爽天天爽爽一区| 色噜噜人妻丝袜a∨先锋影| 日本欧美韩国国产在线| 亚洲高清视频在线免费观看| 久久有码视频| 欧美九一精品久久久熟妇| 91日日| 高清不卡一二三区视频......| 大香蕉综合在线| 国产视频不卡在线观看| 美国人人操人人操| 久久中文字幕一区不卡| 在线免费观看高清无码视频| 97中文字幕九区| 亚洲国产97在线精品一区| 精品人妻无码一区二区三区不卡-精品人妻无码一区二区...|精品少妇一区二区三 | 亚洲天堂在线怕怕视频| 欧亚日韩中文在线| 久久久久久久久9| chaopen97久久| 久久久久久裸体| 久久视频,这里只有精品| 欧美aⅴ99久久黑人专区| 91av天美性媒精品视频| 男人天堂站| 日韩一999精品| 97欧美精品综合| 极品粉嫩一区二区| 日本97久久久精品| 亚洲熟妇熟在线电影视频| 91色图片| 少妇三P| 日韩欧美天天爽爽爽天天爽爽| 操逼999| 欧美日韩97在线| 97久久久久久久久久| 天天天做天天天爱天天天爽| 国产91丝袜 在线播放| 91高清欧美| 神马久久久久久久| 国产丝袜美女在线一区| 欧美爱三级日韩久久| 中文字幕,人妻,日韩| 成人av影院在线观看| 人干人人人操人人摸| 国产精品一区二区三区,亚洲综合 性开放中文AV高清无码免费看 | 亚洲欧洲自拍图片专区满春格| 亚洲āv网址在线观看| 日本高清视频xxxx| 影音先锋视频在线| 国产成人无码网站在线视频| 五月天婷婷综合网| 欧美 中文字幕 一区| 女生自91网站| 夜夜青青无码影院| 大香蕉视频啪啪啪啪| 色图综合网| 欧美精品成人在线播放| 九九aV| 免费视频在线观看啊啊啊啊啊| 伊人久久大香线蕉亚洲五月天,青草青草欧美日本一区二区,欧美日产欧美日产国产 | 天天操天天插| 亚洲精品欧美专业| 亚洲九九爱| 外国免费性情大片| 性爱网站一区二区| 久精品无码av一区二免费国产在线观看| 无码自拍SM| 国产精品肉丝自拍| 本道在线| 天天做天天爱夜夜爽毛片试看| 免费精品人妻一区二区三| 91久久久久久| 美女淫穴| 亚洲欧美洲综合| 欧美日韩亚洲一区二区在线观看| 动漫爆乳3D奶水一区在线观看| 97久久资源| 久久精品99| 男人女人18禁片免费看网站| 小情侣高清国产在线视频| 亚洲天堂区| 风月影院男女十八禁| 97综合在线| 日韩欧美国产高清视频| 黑人天8A∨高清网站| 老熟妇一区二区三区| 成人免费视瓶| 99热这里是精品| 97操在线| 亚洲男人综合| AV大香蕉| 久久久天美| 精品国产无码中文| 麻豆天美国美国产| 亚洲中文字幕av| 台湾成人无码AV| 成人无码专区精品视频| 一卡二卡在线播放| 在线a v| 青青草精玖玖69精品| 97免费视频在线| 精品亚洲国产成人AV制服丝袜| 精品亚洲俞拍视频一区| 精品久| 激情婷婷丁香| 91狠狠狠| 國產尤物AV尤物在線觀看| 嫩草伊人久久精品| 加勒比海色香蕉婷婷| 国产99 中文字幕日韩小视频| 九一精品牛牛一区二区| 欧洲特黄毛片免费看欧洲毛片| 色五月婷婷久久| 日本二区不卡| 久久欧美性爱视频| 岛国不卡超碰护士AV在线播放| 牛牛操视频逼| 欧洲射精91| 男人的天堂 在线一区| 中文字幕第页| 欧美性爱一区二区| 天天综合精品| 欧综合网| 人妻激情偷乱视频一区二区三区 | 国产激情在线| 狠狠色综合网| 亚洲色图A| 久久麻豆一区二区| 大香蕉中文在线| 五月黑AⅤ| 男人的天堂 在线一区| 91AV老熟女视频| 成人蜜乳小视频网站| 性色高清在线| 亚洲精品一区二区精品| 色香在线| 97人人操人人摸人人爱| 日日日日做夜夜夜夜做无码97| 色爱三区| 性爱网站一区二区| 神马久久中文字幕| 91成人高清在线观看| 国产精品久久久999| 18禁的网站在线| 91n.欧美| 一区二区三区精品黑丝白丝酒店对鸡 | 国产精品成人无码a v毛片| 东京热精品97综合网| 国语国产操逼伊人AV网| 97国产中文| 丰满人妻一区二区三区四| 色色毛片| 久久精品中文| 婷婷综合网站| 亚洲日韩天堂| 亚洲色91C| 国产精品国产拍高清AV| 国产传媒日韩欧美| 国产乱人妻精品入口| 精品国产www久久| AV中亚| 欧美韩国你懂得在线| 日韩乱伦视频| 久久大黄片| x97av| 激情综合五月婷婷| 日韩欧美午夜一区二区| 综合大香蕉美。| 91久久国产综合久久| 亚洲成人性| 欧美日韩狠狠爱| 好好的日:com久久九九| 国产尹人在线视频免费| 精品一级毛片在线观看| 久久九精品| 精品妇女一区二区三区| 约操熟妇| 无码人妻一区二区三区免费九色| 啊啊啊啊二区好大| 大香蕉综合在线| 国产黄色影片在线观看| 男人的天堂VA| 男人的天堂VA在线| 少妇超碰在线| 黄片免费久久久久久久| 欧美色性情| 黑人干亚洲| 中文字幕av久久爽Av| 99色在线视频| 亚洲国产成人福利在线观看| 亚州欧美色图| 日韩综合色网| 久久亚洲熟妇在线视频| 亚洲人妻一区二区三区| 一级黄色视频网| 欧美成人一级麻豆| 人妻第一页| 东北操逼| baiduhicn.com。| 久久综合日韩亚洲欧美| 99视频精品| 亚洲AV无线| 天天谢天天干| 91一区二区三区蜜桃| 久久久久白虎| 久久久久久99999国产精品| 天美欧美国产| 九久9热| 欧美亚性天堂| 六月激情婷婷| 亚州操逼网| 太久视频| 亚洲综合另类小说色区亚洲成av人片在www| 少妇人妻好深太紧了vr91| 日韩综合成人免费视频| 亚洲国产97| 中文字幕青青草| 人澡逼| 国产后入内射| 亚洲男人综合网| 欧美婷婷久久| 亚熟在线| 国产AV天美| 欧美色997| 久视频在线观看| 久久欧美1卡2卡3| 超碰超碰95| 久久久久13| 狠狠躁久久躁| 久热99999| 伊人四虎综合| 精品无码产区一区二| 欧美日本不卡| 我想要啊 啊 啊| 久久九九精品一区二区 | 亚洲精品乱码线路中文字幕| 思思热在线视频免费| 亚洲天堂久久久久久粉红视频| 欧美在线天堂| 国产白丝精品在线观看| 国产一区二区三区高清视频| 91亚州| 日本精品中文字幕视频| 国产隔壁老王影院在线| 91亚洲色人| 青娱乐久久艹| 99热超碰在线| 99久久com免费视频′|