亚洲有码Av一区二区三区_国产高清啪啪免费视频_69色视频国产_国产成人人人爆出白浆_国产精品自在线拍国_一本久久伊人热热精品无码_午夜性刺激在线看免费带字幕_助力高品质欧美狂喷水_亚洲精品日韩无码_精品无码一区二区三区蜜臀_麻豆高清国产AV_熟妇人素无码中文字幕_亚洲a级片在线观看_国产欧美日韩三区_99国产成人高清在线观看

ARTICLE DETAIL

資訊詳情

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

從零搭建AI任務(wù)調(diào)度助手:LangGraph多智能體編排指南

從零搭建AI任務(wù)調(diào)度助手:LangGraph多智能體編排指南 你有沒有遇到過這種情況想讓一個(gè)模型同時(shí)搞定寫腳本改bug寫使用說明三件事結(jié)果它顧此失彼代碼里夾著解釋文字文案里又帶著代碼片段最后兩邊都不像樣。我一開始也是這么干的直到我把任務(wù)真正拆開才意識(shí)到多智能體的價(jià)值不是炫技而是把一個(gè)復(fù)雜需求拆給不同崗位去并行思考。這篇文章就帶你從零做一個(gè)簡(jiǎn)單的AI任務(wù)調(diào)度助手基于LangChain生態(tài)里的 Agent 和圖形編排能力把調(diào)度者、執(zhí)行者、質(zhì)檢員跑通一條完整鏈路。整篇文章適合兩類人一類是剛接觸 LangChain想知道 Agent 怎么串起來另一類是被單一大模型一個(gè)指令干到底折磨過想看看多智能體到底怎么落地的新手。我不會(huì)把代碼堆成一堵墻而是會(huì)把每個(gè)設(shè)計(jì)決策的原因講清楚順手把調(diào)試時(shí)踩過的坑也記下來。1. 先聊聊為什么單個(gè)大模型干不好任務(wù)調(diào)度1.1 一個(gè)模型身兼數(shù)職指令會(huì)互相干擾你可能會(huì)問我直接給一個(gè)大模型寫一段很長(zhǎng)的提示詞讓它先寫代碼再寫說明最后自查不也是一種調(diào)度嗎表面上可以實(shí)際跑幾次就發(fā)現(xiàn)問題了。大模型沒有真正的工作記憶它只是根據(jù)上下文里的所有內(nèi)容生成下一個(gè) token。當(dāng)代碼任務(wù)和文案任務(wù)擠在同一段上下文中模型很容易把兩種風(fēng)格混在一起寫代碼時(shí)突然冒出一句這段邏輯很清晰寫文案時(shí)又插入代碼塊。還有更麻煩的如果某個(gè)子任務(wù)執(zhí)行失敗你要回退重跑單一大模型往往無法判斷到底該重寫哪部分只能整段重新生成。我自己遇到最典型的一個(gè)場(chǎng)景是讓模型寫一個(gè)Python腳本統(tǒng)計(jì)CSV缺失值并同時(shí)生成說明文檔。模型確實(shí)給出了完整回復(fù)但腳本里的注釋是給非技術(shù)人員看的營(yíng)銷文案風(fēng)格文檔里又貼了一大段源碼。分開看好像每個(gè)部分都對(duì)合在一起就是沒法用。這就是角色打架。1.2 多智能體不是玄學(xué)本質(zhì)是把流程拆給不同大腦多智能體的思路其實(shí)很像現(xiàn)實(shí)中的團(tuán)隊(duì)分工調(diào)度者負(fù)責(zé)接收需求、拆解任務(wù)、判斷下一步交給誰執(zhí)行者各有專長(zhǎng)一個(gè)寫代碼一個(gè)寫文案互不干擾質(zhì)檢員最后檢查產(chǎn)物是否滿足要求不合格就打回重來。每個(gè)智能體只關(guān)注自己的窄范圍提示詞短了指令沖突少了上下文也更干凈了。從工程角度看多智能體的價(jià)值在于可控性和可觀測(cè)性。單一大模型的調(diào)用像一個(gè)黑盒你很難知道它內(nèi)部到底先做了什么而多智能體系統(tǒng)里每個(gè)節(jié)點(diǎn)是什么、輸入什么、輸出什么都是你自己定義的。哪怕中間某個(gè) Agent 崩了你也知道是哪一步崩的改起來也快得多。在 LangChain 生態(tài)里實(shí)現(xiàn)多智能體一般有兩種路線一種是讓一個(gè) Agent 持有其他 Agent 的工具自己做路由另一種是用 LangGraph 這類編排框架把每個(gè)智能體做成圖里的一個(gè)節(jié)點(diǎn)節(jié)點(diǎn)之間用條件邊連接。我這個(gè)項(xiàng)目選的是后者因?yàn)闂l件路由更直觀而且對(duì)初學(xué)者來說圖結(jié)構(gòu)比隱藏的 Agent 工具鏈更容易調(diào)試。2. 環(huán)境準(zhǔn)備與LangChain生態(tài)里的現(xiàn)實(shí)坑2.1 安裝與版本選擇LangChain不是裝一個(gè)就完事很多新手第一次裝 LangChain 時(shí)會(huì)被一堆包搞暈。現(xiàn)在 LangChain 已經(jīng)不是單個(gè)庫(kù)而是拆成了很多配套包。如果你只裝了langchain會(huì)發(fā)現(xiàn)很多 Agent 相關(guān)功能根本用不了。我這個(gè)項(xiàng)目里實(shí)際需要這么幾個(gè)pip install langgraph langchain langchain-openai langchain-community langchain-corelanggraph是負(fù)責(zé)編排多智能體流程的核心langchain-openai是讓 LangChain 能調(diào)用 OpenAI 兼容格式的接口langchain-community里裝著社區(qū)維護(hù)的一堆工具集成。不裝langchain-core可能會(huì)缺基礎(chǔ)類型雖然有些包會(huì)自動(dòng)帶上但顯式裝一遍能省掉不少版本沖突的煩惱。版本方面一定要留個(gè)心眼LangGraph 從 0.2 開始 API 有過一些調(diào)整有些教程里寫的老寫法會(huì)直接報(bào)錯(cuò)或者被廢棄。安裝的時(shí)候可以在包名后給定版本范圍例如pip install langgraph0.2 langchain0.3提示如果后面發(fā)現(xiàn)某個(gè)函數(shù)調(diào)用報(bào)AttributeError先別急著懷疑自己代碼很可能是某個(gè)依賴被升級(jí)到了不兼容的新版本。檢查一下pip list里的版本再對(duì)照 langgraph 的變更說明基本能定位。2.2 模型接入隨便一個(gè)大模型API都能當(dāng)大腦這個(gè)項(xiàng)目里所有智能體本質(zhì)上都是對(duì)同一個(gè)大模型 API 的多次調(diào)用只不過每次用的系統(tǒng)提示詞不一樣。所以我只需要一個(gè)能通過OpenAI 兼容接口訪問的模型服務(wù)就行不限定具體廠商。用環(huán)境變量管理密鑰和地址這樣代碼換模型時(shí)不用改動(dòng)邏輯部分import os from dotenv import load_dotenv from langchain_openai import ChatOpenAI load_dotenv() llm ChatOpenAI( base_urlos.getenv(LLM_BASE_URL), api_keyos.getenv(LLM_API_KEY), modelos.getenv(LLM_MODEL_NAME), temperature0.1, )把LLM_BASE_URL、LLM_API_KEY、LLM_MODEL_NAME寫到.env文件里就行。我用的是一個(gè)中規(guī)模的通用大模型上下文長(zhǎng)度中等響應(yīng)速度還不錯(cuò)。如果模型支持結(jié)構(gòu)化輸出調(diào)度節(jié)點(diǎn)的準(zhǔn)確率會(huì)高不少如果模型不支持后面我會(huì)說怎么用提示詞約束加解析兜底來處理。這里有一個(gè)跟新手相關(guān)的關(guān)鍵點(diǎn)temperature我設(shè)置成 0.1因?yàn)檎{(diào)度節(jié)點(diǎn)的任務(wù)是對(duì)接路由決策不需要?jiǎng)?chuàng)意需要確定性。寫文案的 Agent 可以把溫度調(diào)高到 0.4 甚至 0.7。同一份代碼里不同節(jié)點(diǎn)使用不同溫度完全沒問題只要在定義節(jié)點(diǎn)時(shí)給不同的 LLM 實(shí)例就行。3. 這個(gè)任務(wù)調(diào)度助手的設(shè)計(jì)調(diào)度者、執(zhí)行者、質(zhì)檢員3.1 狀態(tài)設(shè)計(jì)是第一步先想清楚每個(gè)智能體之間傳什么搭多智能體之前千萬別直接寫代碼第一個(gè)要考慮的是狀態(tài)State。多智能體運(yùn)行相當(dāng)于一個(gè)狀態(tài)機(jī)每個(gè)節(jié)點(diǎn)讀入狀態(tài)執(zhí)行完畢后又把新狀態(tài)傳給下一個(gè)節(jié)點(diǎn)。狀態(tài)里放什么字段直接決定了每個(gè) Agent 到底能看到多少信息。我這套助手的核心字段如下字段類型作用querystr用戶的原始需求next_actionstr調(diào)度節(jié)點(diǎn)決定的下一步動(dòng)作assignmentstr調(diào)度器給執(zhí)行者的子任務(wù)說明code_resultstr代碼 Agent 的工作產(chǎn)物doc_resultstr文案 Agent 的工作產(chǎn)物inspect_feedbackstr質(zhì)檢員的審查意見step_countint當(dāng)前已經(jīng)跑了多少個(gè)節(jié)點(diǎn)防止死循環(huán)有些字段你可能看不出用途但它們?cè)谡{(diào)試時(shí)特別重要。比如step_count如果調(diào)度器出了問題會(huì)在節(jié)點(diǎn)之間瘋狂往返沒有這個(gè)計(jì)數(shù)器整個(gè)程序就跑死了也不自知。我會(huì)在調(diào)度節(jié)點(diǎn)的提示詞里強(qiáng)制要求當(dāng) step_count 大于 3 時(shí)必須輸出final動(dòng)作。還要考慮一個(gè)問題code_result和doc_result都是直接覆蓋還是保留歷史我這個(gè) demo 里選擇直接覆蓋因?yàn)槊看沃匦律蓵r(shí)質(zhì)檢員的意見已經(jīng)通過assignment傳給了執(zhí)行者不需要保存多輪歷史狀態(tài)。如果你要迭代很多次最好改成列表類型保留每一步的產(chǎn)物方便追溯和對(duì)比。3.2 三條角色鏈路與回退機(jī)制我設(shè)計(jì)了三類節(jié)點(diǎn)調(diào)度節(jié)點(diǎn)dispatcher讀用戶 query 和已有產(chǎn)出物輸出 JSON決定下一步是去寫代碼、寫文案還是直接收尾。執(zhí)行節(jié)點(diǎn)代碼 Agent 負(fù)責(zé)寫腳本并運(yùn)行驗(yàn)證文案 Agent 負(fù)責(zé)寫說明文檔、使用指南或解釋段落。質(zhì)檢節(jié)點(diǎn)inspector匯總已完成的產(chǎn)出判斷質(zhì)量是否達(dá)標(biāo)不達(dá)標(biāo)就帶著反饋意見回到調(diào)度節(jié)點(diǎn)重新指派。這個(gè)流程是一個(gè)典型的規(guī)劃-執(zhí)行-審查環(huán)。第一次跑通的時(shí)候最容易困惑的是為什么代碼 Agent 執(zhí)行完還要再回到調(diào)度節(jié)點(diǎn)而不是直接進(jìn)質(zhì)檢節(jié)點(diǎn)因?yàn)橛脩舻男枨罂赡苁窍葘懘a再寫文案也可能是只需要文案。如果代碼 Agent 執(zhí)行完就直接進(jìn)質(zhì)檢那一份沒有文案的產(chǎn)出根本沒法審查。所以我的圖里執(zhí)行節(jié)點(diǎn)回環(huán)到調(diào)度節(jié)點(diǎn)由調(diào)度節(jié)點(diǎn)判斷下一個(gè)該做什么當(dāng)所有子任務(wù)都完成調(diào)度節(jié)點(diǎn)才會(huì)給出final動(dòng)作進(jìn)入質(zhì)檢環(huán)節(jié)。質(zhì)檢環(huán)節(jié)也支持回退如果質(zhì)檢不通過它會(huì)帶著inspect_feedback回到調(diào)度節(jié)點(diǎn)調(diào)度器把反饋寫進(jìn)新的assignment再指派對(duì)應(yīng)的執(zhí)行者改一輪。這里需要留意的是回退次數(shù)必須有限制否則一個(gè)永遠(yuǎn)改不對(duì)的任務(wù)會(huì)把整個(gè)流程拖死。我的做法是把回退次數(shù)換算進(jìn)step_count超過閾值就讓質(zhì)檢員網(wǎng)開一面直接放行。4. 核心代碼逐段拆解狀態(tài)圖、路由與Agent實(shí)現(xiàn)4.1 基礎(chǔ)設(shè)施狀態(tài)類型、模型初始化與Python執(zhí)行工具代碼從定義狀態(tài)類型開始。我使用TypedDict來描述狀態(tài)結(jié)構(gòu)這樣寫節(jié)點(diǎn)函數(shù)時(shí)能獲得 IDE 提示不容易因拼寫錯(cuò)誤翻車from typing import TypedDict class AssistantState(TypedDict): query: str next_action: str assignment: str code_result: str doc_result: str inspect_feedback: str step_count: int final_answer: str然后是 Python 執(zhí)行工具。代碼 Agent 生成腳本后不能光停在我寫好了這一步最好真跑一遍看看有沒有語(yǔ)法錯(cuò)誤。我給 Agent 配一個(gè)自定義工具用exec執(zhí)行傳入的代碼片段并捕獲輸出import io import contextlib from langchain_core.tools import tool tool def run_python_snippet(code: str) - str: 在本地進(jìn)程內(nèi)執(zhí)行一段Python代碼返回標(biāo)準(zhǔn)輸出與錯(cuò)誤信息。 僅用于demo驗(yàn)證短腳本生產(chǎn)環(huán)境務(wù)必放到隔離容器里。 stdout_buf io.StringIO() stderr_buf io.StringIO() try: with contextlib.redirect_stdout(stdout_buf), contextlib.redirect_stderr(stderr_buf): exec(code, {__name__: __main__}) except Exception as exc: return f運(yùn)行異常: {type(exc).__name__}: {exc}\n標(biāo)準(zhǔn)輸出:\n{stdout_buf.getvalue()} return f標(biāo)準(zhǔn)輸出:\n{stdout_buf.getvalue()}\n標(biāo)準(zhǔn)錯(cuò)誤:\n{stderr_buf.getvalue()}警告直接在本地exec運(yùn)行代碼是很危險(xiǎn)的做法尤其當(dāng)代碼 Agent 的輸出不可信時(shí)。這個(gè) demo 只是教學(xué)用我建議你在沙箱容器里跑。即使如此代碼 Agent 的執(zhí)行結(jié)果也要當(dāng)作外部輸出看待不要盲目信任。4.2 調(diào)度節(jié)點(diǎn)的實(shí)現(xiàn)負(fù)責(zé)拆解與路由調(diào)度節(jié)點(diǎn)本身不需要工具它就是一次帶結(jié)構(gòu)化輸出要求的 LLM 調(diào)用。我會(huì)讓模型返回一個(gè) JSON包含next_action和assignment兩個(gè)字段。調(diào)度器的系統(tǒng)提示詞需要把可選項(xiàng)講清楚code表示去寫代碼doc表示去寫文案final表示所有產(chǎn)出已完成準(zhǔn)備交給質(zhì)檢。同時(shí)還要提醒模型參考已有的code_result和doc_result避免重復(fù)勞動(dòng)。from langchain_core.output_parsers import JsonOutputParser from langchain_core.prompts import ChatPromptTemplate DISPATCH_PROMPT 你是任務(wù)調(diào)度器負(fù)責(zé)拆解用戶需求并安排執(zhí)行者。 可選動(dòng)作 - code: 讓代碼Agent去編寫并驗(yàn)證Python代碼 - doc: 讓文案Agent去撰寫說明文檔或文案 - final: 所有必要產(chǎn)物都已生成進(jìn)入質(zhì)檢環(huán)節(jié) 用戶需求{query} 已有代碼產(chǎn)物{code_result} 已有文案產(chǎn)物{doc_result} 當(dāng)前執(zhí)行計(jì)數(shù){step_count} 規(guī)則 1. 如果用戶需要代碼而代碼產(chǎn)物為空優(yōu)先選擇code。 2. 如果用戶需要說明文檔而文案產(chǎn)物為空選擇doc。 3. 如果步驟超過3輪不管怎樣都選擇final。 4. 輸出JSON格式{next_action: code, assignment: 給執(zhí)行者的子任務(wù)描述, reason: 簡(jiǎn)單說明理由} 只輸出JSON不要輸出其他內(nèi)容。 parser JsonOutputParser() def dispatch_node(state: AssistantState) - dict: if state.get(step_count, 0) 3: return { next_action: final, assignment: 所有任務(wù)已經(jīng)執(zhí)行過多輪請(qǐng)質(zhì)檢后直接匯總, step_count: state.get(step_count, 0) 1, } prompt ChatPromptTemplate.from_template(DISPATCH_PROMPT) chain prompt | llm | parser result chain.invoke({ query: state[query], code_result: state.get(code_result, 還沒有代碼產(chǎn)物), doc_result: state.get(doc_result, 還沒有文案產(chǎn)物), step_count: state.get(step_count, 0), }) return { next_action: result.get(next_action, final), assignment: result.get(assignment, ), step_count: state.get(step_count, 0) 1, }這個(gè)實(shí)現(xiàn)里有一個(gè)很容易忽略但很重要的點(diǎn)我利用step_count作為硬性逃生閥即使大模型輸出的next_action一直不老實(shí)超過 3 輪也會(huì)被強(qiáng)行改成final。4.3 執(zhí)行者節(jié)點(diǎn)代碼Agent和文案Agent代碼 Agent 用 LangChain 的create_react_agent創(chuàng)建讓它能調(diào)用run_python_snippet工具來實(shí)際執(zhí)行生成的腳本。系統(tǒng)提示詞限定它的職責(zé)范圍只寫代碼、只驗(yàn)證代碼不要寫說明文檔代碼需要直接能跑并給出必要注釋。from langchain.agents import create_react_agent from langchain_core.prompts import PromptTemplate CODE_AGENT_TMPL 你是一名Python工程師。你只負(fù)責(zé)根據(jù)任務(wù)描述編寫可運(yùn)行的Python代碼 并用run_python_snippet工具運(yùn)行驗(yàn)證。不要把任務(wù)描述之外的文案混進(jìn)來。 任務(wù)描述 {assignment} 要求 - 代碼要簡(jiǎn)潔包含必要的注釋。 - 先調(diào)用run_python_snippet運(yùn)行一次即使報(bào)錯(cuò)也要把錯(cuò)誤信息原樣反饋。 - 最終回復(fù)時(shí)先給完整代碼再附一行執(zhí)行結(jié)果摘要。 code_agent_prompt PromptTemplate.from_template(CODE_AGENT_TMPL) code_agent_runnable create_react_agent(llm, [run_python_snippet], promptcode_agent_prompt)執(zhí)行節(jié)點(diǎn)里的工作就是把這個(gè) Agent 跑起來并把最終輸出塞回狀態(tài)里def code_agent_node(state: AssistantState) - dict: result code_agent_runnable.invoke({assignment: state.get(assignment, )}) return {code_result: result[output]}文案 Agent 其實(shí)不需要工具我用一個(gè)普通的鏈來生成文案DOC_PROMPT 你是文檔撰寫員。你不修改代碼只根據(jù)已有材料撰寫用戶能看懂的說明文字。 要求語(yǔ)氣清晰、步驟明確、不要空話。 已有代碼產(chǎn)物 {code_result} 任務(wù)描述 {assignment} 請(qǐng)輸出說明文檔正文。 def doc_agent_node(state: AssistantState) - dict: prompt ChatPromptTemplate.from_template(DOC_PROMPT) chain prompt | llm result chain.invoke({ code_result: state.get(code_result, 暫無代碼產(chǎn)物), assignment: state.get(assignment, ), }) return {doc_result: result.content if hasattr(result, content) else str(result)}可以看到文案 Agent 的輸入里包含了code_result。這是多智能體協(xié)作的關(guān)鍵上一個(gè)角色的輸出成為下一個(gè)角色的輸入上下文。如果把這一步省掉文案 Agent 就成了盲寫寫出來的說明和實(shí)際代碼可能對(duì)不上。4.4 質(zhì)檢節(jié)點(diǎn)與最終匯總質(zhì)檢節(jié)點(diǎn)的職責(zé)是站在用戶視角看整體結(jié)果。它對(duì)代碼和文案做一次通讀輸出兩個(gè)判斷字段pass或fail以及反饋意見。實(shí)現(xiàn)上依然是給 LLM 一個(gè)結(jié)構(gòu)化的輸出要求。INSPECT_PROMPT 你是質(zhì)量審查員。請(qǐng)檢查以下代碼和文案是否匹配、是否完整、是否有明顯錯(cuò)誤。 代碼產(chǎn)物 {code_result} 文案產(chǎn)物 {doc_result} 用戶需求 {query} 輸出JSON格式 {verdict: pass 或 fail, feedback: 你的具體審查意見} 只輸出JSON。 def inspect_node(state: AssistantState) - dict: prompt ChatPromptTemplate.from_template(INSPECT_PROMPT) chain prompt | llm | JsonOutputParser() result chain.invoke({ code_result: state.get(code_result, ), doc_result: state.get(doc_result, ), query: state[query], }) verdict result.get(verdict, fail) feedback result.get(feedback, ) return {next_action: verdict, inspect_feedback: feedback}匯總節(jié)點(diǎn)的任務(wù)就簡(jiǎn)單多了把代碼和文案拼成最終答案def aggregate_node(state: AssistantState) - dict: final_answer ( f### 代碼部分\n\n{state.get(code_result, )}\n\n f### 文案部分\n\n{state.get(doc_result, )}\n\n f### 質(zhì)檢意見\n\n{state.get(inspect_feedback, )} ) return {final_answer: final_answer}4.5 把圖組裝起來并跑一個(gè)完整例子現(xiàn)在到了最關(guān)鍵的一步用 LangGraph 把這些節(jié)點(diǎn)連成一張圖。有四個(gè)節(jié)點(diǎn)需要分別處理dispatch、code_agent、doc_agent、inspect、aggregate。連接規(guī)則是dispatch根據(jù)next_action無條件選擇去code_agent、doc_agent還是inspect。code_agent結(jié)束后回到dispatch讓它繼續(xù)判斷是否需要doc_agent。doc_agent結(jié)束后同樣回到dispatch。inspect根據(jù)next_action判斷是回dispatch繼續(xù)修改還是去aggregate收尾。from langgraph.graph import StateGraph, END graph StateGraph(AssistantState) graph.add_node(dispatch, dispatch_node) graph.add_node(code_agent, code_agent_node) graph.add_node(doc_agent, doc_agent_node) graph.add_node(inspect, inspect_node) graph.add_node(aggregate, aggregate_node) graph.set_entry_point(dispatch) graph.add_conditional_edges( dispatch, lambda state: state.get(next_action, final), { code: code_agent, doc: doc_agent, final: inspect, }, ) graph.add_edge(code_agent, dispatch) graph.add_edge(doc_agent, dispatch) graph.add_conditional_edges( inspect, lambda state: aggregate if state.get(next_action) pass else dispatch, { aggregate: aggregate, dispatch: dispatch, }, ) graph.add_edge(aggregate, END) app graph.compile()然后就可以用一句話來測(cè)試整個(gè)調(diào)度助手result app.invoke({ query: 幫我寫一個(gè)Python腳本讀取data.csv并統(tǒng)計(jì)每列缺失值數(shù)量然后用中文寫一段腳本使用說明。, next_action: , assignment: , code_result: , doc_result: , inspect_feedback: , step_count: 0, final_answer: , }) print(result[final_answer])第一次跑通的時(shí)候你會(huì)看到 LangGraph 打印出一串節(jié)點(diǎn)執(zhí)行日志比如dispatch - code_agent - dispatch - doc_agent - dispatch - inspect - aggregate這個(gè)順序正是調(diào)度器自己規(guī)劃出來的。這種感覺挺奇妙的——你并沒有在代碼里寫死流程而是讓模型在幾個(gè)選項(xiàng)之間做選擇最終走出一條合理的執(zhí)行路徑。5. 第一次跑往往不會(huì)順利我踩過的三個(gè)實(shí)際問題5.1 路由結(jié)果不夠結(jié)構(gòu)化帶來的解析危機(jī)第一次搭建時(shí)我讓調(diào)度器直接輸出文本然后在代碼里用if code in output這種辦法判斷下一步。聽起來很省事實(shí)際上一團(tuán)糟。模型可能輸出我們應(yīng)該先 code然后 doc也可能輸出CODE大小寫和格式都不穩(wěn)定判斷邏輯越寫越臟。后來我改成用JsonOutputParser明確要求只輸出 JSON。結(jié)果在小模型上又出現(xiàn)一個(gè)問題模型不遵守指令輸出的 JSON 前面多了一句解釋性文字或者直接把引號(hào)寫彎了解析器照樣報(bào)錯(cuò)。解決思路有兩個(gè)一是換用支持response_format{type: json_object}的模型在 API 層面強(qiáng)制結(jié)構(gòu)輸出二是做好冪等的解析兜底用正則把第一個(gè){到最后一個(gè)}之間的內(nèi)容截出來再解析。我現(xiàn)在的做法是寫一個(gè)小的解析函數(shù)如果直接解析失敗就嘗試提取 JSON 片段import json import re def safe_parse_json(text: str) - dict: text text.strip() try: return json.loads(text) except json.JSONDecodeError: match re.search(r\{.*\}, text, re.S) if match: return json.loads(match.group(0)) raise把safe_parse_json接到dispatch_node里之后路由解析基本穩(wěn)定了。這里想提醒所有新手不要讓提示詞依賴模型自覺要在代碼層面做防御。5.2 會(huì)無限循環(huán)的調(diào)度器遞歸限制來得太遲LangGraph 默認(rèn)對(duì)遞歸深度有限制超過限制會(huì)拋RecursionLimit。我一開始沒加step_count硬保護(hù)結(jié)果有一次模型反復(fù)給code_agent派任務(wù)明明代碼已經(jīng)生成了它還是說還需要進(jìn)一步驗(yàn)證于是code_agent執(zhí)行完回到dispatch又來一輪直到遞歸上限被觸發(fā)整個(gè)調(diào)用鏈崩掉。這個(gè)問題在日志里看起來非常奇怪code_agent和dispatch兩個(gè)節(jié)點(diǎn)互相跳像死機(jī)了一樣。我當(dāng)時(shí)第一反應(yīng)是檢查圖結(jié)構(gòu)懷疑邊連錯(cuò)了排查了半天才發(fā)現(xiàn)純粹是調(diào)度器的決策沒被約束。解決方案就是在dispatch_node里加硬編碼的輪次判斷。我把它放在所有 LLM 調(diào)用之前如果輪次超限直接返回final。這個(gè)改動(dòng)很小效果卻立竿見影。后來我又把閾值從 3 改成 4因?yàn)橛行┖弦?guī)流程確實(shí)需要代碼→文案→質(zhì)檢→修改三個(gè)來回給定更大余量后減少誤殺。5.3 ReAct Agent的中間步驟被截?cái)嘟Y(jié)果缺胳膊少腿代碼 Agent 用的是create_react_agent它內(nèi)部會(huì)執(zhí)行多輪思考-行動(dòng)-觀察循環(huán)。有一次它生成了很長(zhǎng)的代碼我拿到code_result后發(fā)現(xiàn)結(jié)尾是斷的明顯是被截?cái)嗔?。排查下來不是上下文窗口不夠而是max_iterations或者輸出長(zhǎng)度限制卡住了。create_react_agent支持通過max_iterations控制思考輪數(shù)默認(rèn)值在有些版本里偏小。當(dāng)模型需要先思考、再跑代碼、再看結(jié)果、再修正的時(shí)候輪數(shù)根本不夠。我給這個(gè) Agent 顯式設(shè)置了max_iterations5并且把handle_parsing_errorsTrue打開讓解析異常不至于中斷整個(gè) Agentcode_agent_runnable create_react_agent( llm, [run_python_snippet], promptcode_agent_prompt, max_iterations5, handle_parsing_errorsTrue, )還有一個(gè)容易被忽略的點(diǎn)代碼生成 Agent 返回內(nèi)容可能包含 Markdown 代碼塊標(biāo)記比如python ...。傳給文案 Agent 沒問題但如果你直接拿它去喂給exec就會(huì)因?yàn)槎嘤嗟臉?biāo)記字符而報(bào)錯(cuò)。我的建議是在run_python_snippet工具內(nèi)部先做一層處理把代碼塊標(biāo)記剝掉清理后再執(zhí)行。6. 這個(gè)Demo還能怎么長(zhǎng)進(jìn)從玩具到能用的調(diào)度助手6.1 參數(shù)和提示詞層面的性價(jià)比優(yōu)化如果想讓這套調(diào)度助手的產(chǎn)出更穩(wěn)定第一步不是堆更多節(jié)點(diǎn)而是調(diào)模型參數(shù)。我把調(diào)度器和質(zhì)檢員的溫度都保持 0.1文案 Agent 的溫度設(shè)在 0.4 左右。原因前面說過路由和審查需要確定性文案生成需要一點(diǎn)變化性。提示詞方面也有優(yōu)化空間。DISPATCH_PROMPT 里我是把code_result和doc_result的完整內(nèi)容塞進(jìn)去的任務(wù)復(fù)雜后這會(huì)變得很長(zhǎng)。你可以先用一個(gè) LLM 調(diào)用把已有產(chǎn)出做壓縮摘要再交給調(diào)度器判斷能顯著降低 token 消耗。這個(gè)摘要智能體本質(zhì)上是多智能體架構(gòu)里的信息預(yù)處理節(jié)點(diǎn)加進(jìn)去不需要改動(dòng)整體圖結(jié)構(gòu)。另外質(zhì)檢節(jié)點(diǎn)現(xiàn)在只輸出pass/fail和一句反饋略顯粗糙。可以升級(jí)為按代碼可運(yùn)行性、文檔匹配度、完整性三個(gè)維度打分并給出具體修復(fù)建議。模型在結(jié)構(gòu)化打分任務(wù)上的表現(xiàn)通常比籠統(tǒng)的判斷是否通過好不少因?yàn)槊總€(gè)維度都有明確檢查目標(biāo)。6.2 擴(kuò)展方向記憶、人工確認(rèn)、多渠道輸入我目前這個(gè) demo 是無狀態(tài)的每次調(diào)用都是獨(dú)立任務(wù)不會(huì)記住上一次運(yùn)行的歷史。如果想讓助手具備對(duì)話記憶StateGraph 編譯時(shí)啟用持久化機(jī)制把狀態(tài)存到后端用戶再次訪問時(shí)能接著上一輪繼續(xù)。這一步對(duì)任務(wù)調(diào)度的實(shí)際體驗(yàn)提升很明顯比如用戶說上次那個(gè)腳本再改成支持Excel調(diào)度器能結(jié)合歷史上下文理解上次那個(gè)是誰。更實(shí)際的擴(kuò)展是引入人工確認(rèn)節(jié)點(diǎn)。比如代碼 Agent 生成了刪除數(shù)據(jù)庫(kù)數(shù)據(jù)的腳本這種高風(fēng)險(xiǎn)任務(wù)不應(yīng)該讓審查 Agent 獨(dú)自拍板而是應(yīng)該中斷流程等人類確認(rèn)后再繼續(xù)。LangGraph 提供了中斷和恢復(fù)的機(jī)制可以在關(guān)鍵節(jié)點(diǎn)掛起。這樣整個(gè)調(diào)度系統(tǒng)就從全自動(dòng)變成了人在回路更適合真正的工作流。還可以繼續(xù)加新角色資料搜索 Agent、表格數(shù)據(jù)分析 Agent、翻譯 Agent等等。每加一個(gè)執(zhí)行者只需要在調(diào)度器的動(dòng)作列表里加一個(gè)枚舉值再加一個(gè)對(duì)應(yīng)的執(zhí)行節(jié)點(diǎn)和一條條件邊其余部分完全不用動(dòng)。這種可擴(kuò)展性正是把任務(wù)調(diào)度拆成多智能體架構(gòu)帶來的最大紅利。我個(gè)人最后想多提醒一句多智能體系統(tǒng)確實(shí)能解決單模型角色混亂的問題但它不是銀彈。節(jié)點(diǎn)越多、回退次數(shù)越多調(diào)用成本就越高延遲也越長(zhǎng)。做的時(shí)候不要為了多智而多智先把用戶需求拆出必要角色能用兩個(gè) Agent 就別加第三個(gè)保持圖結(jié)構(gòu)簡(jiǎn)單才能一眼看出問題出在哪。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
农村妇女一级二级三级视频| 国产女性无套 免费观看| 日日日日做夜夜夜夜无码| 亚洲综合色婷婷| 久久亚州高清| 欧美精品成人一区二区在线观看| 午夜男女爽爽爽影院视频| 久久香蕉国产传媒一区剧情天美| 欧美日韩中文视频播放| 国产久久一区二区午夜| 天天看天天日| 欧美日韩精品久久| 玖玖视频在线资源一区二区三区| 免费综合亚洲中文| 秋霞操逼片| 一本色道久久综合熟妇| 亚洲精品久久久久久久蜜桃臀| 久久9精品网站| 狠狠激情综合狠狠操中文字幕| 亚洲国产精品久久AV| 久久亚洲熟妇在线视频| 少妇高潮99p| 操高情无码| 少妇淫妇久久久久久久| 诱惑人妻欧美一区在线播放| 久久久久日本视| 999亚洲国产视频| 另类图片五月天| 亚洲天堂区| 色色色色日本| 在线观看中文字幕| 蜜桃传媒视频第一区入口在线看| 蜜臀av一区二区三区免费观看| 人妻日日干| 久久二| 91在线免费观看处女| 日韩黄片视频试看| 新亚洲无码| 亚洲另类天堂| 99久久无码| 97欧美色| 国产熟女精品区| 噜噜在线| 久久精品亚洲成a人天堂| 美女t无毒不卡不卡| 大香伊人在线一区| 日本高清电影欧美色图| 97色五月天完| 操91| 日本三级日本三级99| 国产又操| 九九黄色网| 日韩亚洲精品一区二区| 日本黄大片在线观看视频| 秋霞一集毛片观看| 国产成人五月天丁香花| 91丝袜美腿片| 狠狠干2020| 午夜福利一区二区三区四区五区色婷婷| 人人色97| 国产专区路线| 射丝袜大香蕉| 91国产伊人大香蕉| 日本大香蕉综合网| 热无码中文亚洲H一道本一区二区| 天天色欧美| 青草一区二区| 91快色色色色色| 久久riav中文精品| 婷婷丁香五月综合| 99ri在线视频| 男人的天堂.com| 蜜桃久久久久久久| 夫妻AV网站| 亚洲欧美首页| 一区二区三区精品视频| 91人妻超碰| 97色伦欧美| 日韩精品第3页| 99精品九九九九九九| 亚洲AV不卡在线观看| 久久久精品网| 操逼网站视频漫画国产| 操死我干死我| 国产激情在线| 欧美性爱另类综合| 五月丁香久久| 99久久久| 久久精品国产亚洲AV高级北京| 久久毛卡| 少妇天堂网络| 男同专区一区二区三区在线| 岛国免费黄色网址| 蜜臀久久99精品久久久老,,| 久区视频| 国产 三级自拍| 欧美 牲| 欧洲亚洲天堂精品| 亚洲毛片一级带毛片基地| 男人的天堂,欧美亚洲另类国产日韩,日本高清一区二区 | 久久久精| 欧美大香蕉专区网| 国产地址二三| 啪啪资源网| 91亚州欧美| 久久熟妇五十路一区| 亚洲九九视频在线观看| 久久久久久久九九九九九九| 国产午夜福利视频在线| 欧美日韩国产一区二区小黄片大全| 激情五月婷| 精品人妻伦一区二区三区久久| 亚洲人妻在线精品| 伊人97色天使| 国产亚洲禁久一区二区 | 无码高清专| 亚州综合图片| 国产精品视频麻豆入口| 日本999精品| 欧美国产精品| 青青草国产一区二区三区| 91视频伊人| 欧洲免费一区二| 性色A∨91| 天美麻花大全视频| 久久亚洲AV无码白度| 日韩无码成人电影| 色欲久久99国产精品久久久久久| 色狠狠综合| AV在线播放网址| 亚洲精品啪视频| 蜜桃精品一区二区三区久在线| 波多野42部无码喷潮在线观看| 躁躁日曰躁2020| 日韩三A大片在线观看 | 偷拍视频青青草在线视频| 青草av在线| 久久超碰天天| 青青草吊丝| 午夜激情成人在线观看| 亚洲性综合11| 97干日韩| 老熟妇一区二区三区…| 久久久久极品| 97国产精品国| 日韩无码一区二区三区| 97干天天| 91精品伊人久久久大香线蕉91| 亚州黄站| 五月天婷婷色色| 97超碰人妻| www.超碰在线| 色欲天天综合久久久无码网中文| 精品人妻无码一区二区三区不卡-精品人妻无码一区二区...|精品少妇一区二区三 | 五月丁香影院| 日本 色 导航| 欧美色图另类图片| 丁香婷婷激情五月天无毒不卡 | 久久久中文| 亚洲天堂资源在线| 欧洲熟妇xxXx欧美老妇裸体| 亚洲av无码国产精品字幕| 综合色色网| 精品欧美乱码久| 爱欲AV| 久久精品毛片免费不卡| 国产精品麻豆成人av| 亚洲欧美日韩中文久久自慰| 精品久久青青草| 亚洲精品成人动漫在线| 欧美天天弄| 欧美片第一页| 九九九九一区| 欧美第二页午夜| 操人妻丝袜高跟| 免费啪啪一级视频| 日韩性爱电影一区| 亚洲午夜未满十八勿入网站日本又色又爽又黄| 91精品成人| 99九九精品| 啪啪视频亚洲第一| av三级电影在线播放| 天天拍天| 在线只有精品| 青娱乐日韩无码| 一个国产在线综合网站| 亚洲密乳AV| julia国产在线 | 91美女视频| 国产精品对白自产拍| 欧美亚男人的天堂| 五月天激情网站| 人妻精品一区二区在线| 久久无码成人| 欧美在线观看综合国产| 国产男女无套视频免费观看| a级成人毛片免费视频高清| 婷婷在线视频在线观看| 级做a爱无码性色永久免费| 天天综合欧美| 91美女国产在线| 熟妇视频一区二区三区在线观看| 日本精品人妻少妇一区二区| 国产少妇与亚洲av| 精品夜夜澡人妻无码| 91久久久久| 97在线观看免费视频l| 欧美超碰96| 久久色一区| 欧美 中文字幕 一区| 人妻熟女字幕一区二区| 五月天开心网| 96爱综合| 玖玖爱一区在线| 操一区| 亚熟hd视频在线| 九九九精品一区二区无码| 97爱亚洲综合色| 久久久久久久久久久久黄色 | 国产精品一区二区三区在线密挑| 欧美天天插| 亚洲另类综合欧美| 蜜臀AV一区二区三区激情综合| 日韩在线视频1234| 国产精品制服丝袜中文字幕日韩一区二区三区| 色天使大香蕉| 国产嫩草精品A88AV| 九九九九一区| 国产日韩在线播放av| 国产AV无码AV| 东京热亚洲一区二区| 偷拍 亚洲| 啊啊啊啊二区好大| 超碰97护士| 无遮挡男女激烈动态图| 亚洲 欧美 制服 另类 自拍| 国产美女91| 国产激情在线观看| 嗯嗯嗯好爽| 小草精彩毛片| 91久久久老司机| 啊啊啊好爽快点啊啊啊嗯嗯| 欧美亚洲综合色| 欧美白嫩女HD| 殴美色网| 精品成人亚洲午夜电影| 久久五月婷| 国产一区麻豆免费观看| 亚州91| 欧洲综合无码| 伊人91| 91网18| 久久熟女精品不卡一区| 天天看精品动漫视频一区| 国产精品亚洲一级av第二区| 91美女视屏| 久久99深爱久久99精品| 麻豆三极片| 网页导航五月天免费一二三区 | 中文有码第五页| 人妻美腿丝袜日韩| 日韩成人精品| 国产精品久久9| 91欧美性| 日韩有码 一区二区三区| 久操热| 欧美91精彩| 精品福利| 亚洲天堂男人在线| 超碰97综合网| 国产成人www免费人成看片| 午夜福利久久久噜久噜久久综合| 情色大香蕉| 精品一区二区在线针对华人免费观看这里只有精品免费观看 | 手机av亚洲丝袜美腿日韩第一页二页| 尤物网站91| 亚卅熟女乱色| 丝袜美腿91| 一级黄色性爱A级片| 伊人色综合超碰| 91w欧美| 色五月丁香五月| 久操av在线| 十八禁的黄污污免费网站| 刺激性视频黄页| 久久久精品网| 97精品国产97久久久| 久久青娱乐| 精品一区二区人妖| 日韩精品影视| 热九九精品| 中文字幕精品亚洲熟女| 睡产熟女乱伦| 久9精品| 99视频内射三四| 91亚洲狠狠色| 九九九九九九九精品视频| 91精品操美女| 五月天色色色| 啊啊啊操死我| 国精品一区二区三| 爱妃国产亚洲视频中文字幕| 99热导航| 日本网色| 东北少妇高潮zzzz| 91国产大片| 成人av在线播放| 欧亚久久偷拍视频| 强奸国产在线| 白嫩白嫩的午夜九久久久久久久久久久久成人剧场 | www.AV有限公司一区| 国内精品久久人妻性色av| 欧美一区二区传媒| 午夜偷拍久久熟女| 欧美激情亚洲| 久久久久久久九九九九九九| 黄色电影在线播放综合网站| 九九综合网| 偷窥自拍A片| 亚洲人妻色图| 一区二区三区男女操逼黄色小电影| 欧美片第一页| 肉丝中文无码高清| 日韩人妻大香蕉| 精品九九九九九| 国产精品久久久久久久久久久久久久久久久久| 亚洲无码免费看| 超碰97极品9| 国产在线76页| 日韩亚洲中文字幕在线| 久久久久久久| 粉嫩AV输入| 国内三级自拍小视频在线观看| 风韵犹存大大大大香蕉| 99re只有精品| 超碰久热| yellow网站免费观看日韩高清无码| 色九九综合AV| 一牛影视久久久一区二区三区| 久久成人午夜精品影院| 不卡日本一区二区| 久久精品国产精品| 日本天堂网| www.人人cao| 中文AV制服乱伦| 啊啊啊啊在线播放| 亚洲欧美九九九| 久久一区二区三区入口| 国产强奸AV在线| 十八禁一区二区无码观看| 久久免费精彩视频| 久久久久久国产无码精品| 日韩九九九| 我中文字幕6区 | 国产 日韩,欧美 自拍| 91无摭挡| 麻豆区久久久久亚| 色超碰综合| 日韩成人色图| 欧美第一页性| 九九热精品免费视频| 人人妻人人狠人人| 久久高清欧美国产| 日本三级一区二区 在线| 日本阿v天堂在线观看| 97 国产精品| 91AV天堂| 清清草影| 蜜臀AV成人精品蜜臀| 青青操97| 国产视频一区二区三区久久亚洲天堂 | 激激五月| 校园春色之综合网| 久草久热| 操人妻丝袜高跟| 久热伊人| 精品国产乱码久久久久久影片| 国产自偷自拍一区| 睡产熟女乱伦| 亚洲免费人妻在| 一线黄色免费性爱片| 黄视频免费| 亚洲欧美国产中文视频| 欧美一级黄色免费专区| 热思思免费视频| 久操97| 精品无码久久久久久久久果冻糖心 | 超碰在线91| 青娱乐黄色录像| 欧美黑人与女人91| 超碰碰97资源站| 超碰人妻97| 精品国产乱码久久| 高清国产成人无码| 国产日韩欧美亚洲精品95| 国产精品久久久久久久AV大片 | 日韩精品第3页| 91综合国产精品| 黄色十八禁| 偷拍99| 久久婷婷精品| 91亚洲人电影| 97视频在线观看高清资源| 动漫区日韩区欧美区| 久久久久久久久久久999| 日本黄页视频在线观看| 中文字幕第二页| 国产乱子伦久久精品综合一区二区三| 中文字幕av亚洲精品| 日韩强奸av| 色呦呦呦在线观看视频| 婷婷97| 亚洲、日韩、综合、另类| 日日干夜夜操视频h| 久久超碰98| 91痴汉| 亚洲av青草久久一区二区| 亚洲熟女乱色一区二区三区 | 久久久久78| 色欧美色交综合| 精品99999| 成人免费福利在线观看| 亚洲国产综合久久久性感熟妇| 东北女人操比视频| 亚洲熟女诱惑| 乱欲一区二区| 精品久久久中文字幕不| 一摸二插三插| 日本性爱欧美性爱| 欧美九9 9 9| 日韩人妻精品中文字幕| 亚洲国产天堂| 亚洲系列第一页| 91爽啪| 91热色| 成人无码在线超碰网| 国产精品三级视频网站| 日本最新免费韩国1区2区视频播放| 亚洲欧美校园| 91影视亚洲| 深夜福利黄片| 天天插天天插| 欧美亚洲清纯| 欧美顶级黄色大片免费| 欧美激情片一区二区| 久久国产精品m码| 欧美成人一级免费电影| 97综合国产精品高潮久久| 老熟乱一区二区三区四区| 美国一区二区三区视频| 欧美国产视频| 熟女激情综合网| 性爱视频久久| 日本欧美不卡| 六月激情婷婷| 人妻熟女一区二区在线视频| 自拍偷拍2025在线观看| 日韩熟女视频二区| 嫖老熟女A片一二三区| 1区2区3区中文字幕日韩| 性91| 色性荡荡荡荡视频| 国产福利一区二| 亚洲图片欧美日韩| 国产熟女精品一区二区| 日本有码久久| 国产精品国产精品国产| 丁香五月天婷婷姐| 操逼操2| 久久超碰爱| 97亚洲在线| 超踫中文字幕| 日本操逼视频在线| 久久九七| 色色色色日本| 一本色道久久综合亚洲二区三区| 亚洲Av无码成人精品国产| 97jingpin| 91精品无码人妻系列| 99热国产精品| 91精品婷婷国产综合久久| 3P乱轮视频| 国产精品国产| 99热这里是精品| 一二三区精品视频| 亚洲综合113页| 福利操逼| 日韩91网| 天天摸夜夜摸| www.91理论| 欧美日韩国产精品久久色婷婷| 综合色播| 成人无码电影在线观看网| 国产日韩欧美| 日本天天色| 亚洲av噜噜噜噜噜噜| 久久超碰免费的| 久久久久成人亚洲国产| 蜜臀99久| 搞中出视频在线观看| 91丨熟女丨丰满熟女| 男人的天堂VA| 久久久久78| aaa一级黄片| 日韩三级伊人| 亚洲图片偷拍欧美| 狠狠躁AV| h无码动漫在线观看| 色香天天| 99热8| 超碰97精品在线| 操逼www.| 91无遮挡| 亚洲综合色图欧美| 躁躁日曰躁2020| 色婷五月| 多毛小伙内射老太婆 | 亚洲色久| 国模不卡| 欧美日韩国产成人高清| 亚洲骚男同com| 麻豆国产原创AV色哟哟 | 成人八戒网站| 日韩精品在线视频,日韩精品……| 在线亚洲丝袜视频网站| 天天澡天天爽日日av| 激情五月婷| 国产精品一级特黄aaa大片在线观看| 美女啊啊啊啊啊啊| 中文字幕精品亚洲熟女| 激情欧美日韩女同久久| 性欧美另类高清| 亚洲国产日韩欧美熟妇在线| 日本一级婬片试看三分钟| 97天堂| 欧美男人的天堂| 欧美在线色| 91欧美成人色站| 久久久蜜桃一区二区三区| 欧美黑人精品一区二区| 韩国一级婬片A片无码天美| 丰满熟女一区二区三区在线播放| 九九五月天| 中国黄色特级精品一区二区三区片| 淫色网综合| 女同亚洲欧美一二三区久久电影| 色婷婷综合视频| 久久精品国产亚洲AV无码电影| 伊人五月天婷婷| 久久国产成人精品国产成人亚洲| 日韩精品一区二区人人人| 少妇内射视频| 超碰97欧美日韩| 97精品国产精品免费观看| 国产白领连续中出在线观看| 亚洲另类久操网| 国产玖玖| 青青欧美在线| 欧美日韩免费专区在线| 在线综合 亚洲 欧美中文字幕 | 国产传媒一区二区三区| 中日韓欧美高清| 欧美激情区| 九九九九九九九九九国产精品| 日韩久久激情精品| 亚洲精品中文字幕一区在线视频| 家庭乱伦网站国产| 色青青久久影视| 亚洲经典啪啪| 亚洲天堂中文字幕无码男同| 97日本超碰综合| 色综合中文字幕不卡| 色哟哟国产精品免费网址| 国产老熟女| 蜜臀久久99精品| 久草线上视频免费看| 少好三P| 欧美日韩欧美| 久久婷婷电影网| 小日子操bb在线看| 国产 日韩 另类 视频一区爱| 国产无套粉嫩白浆在| 成人短视频在线观看| 大香蕉碰碰| 中文字幕乱码人妻一区二区三区,99精品 | 男人的天堂不卡一区二区| 亚洲另类综合欧美| 秋霞午夜视频一区二区| 91精品操美女| 国产色图乱伦| 天天做日日做天天欢。| 狠狠干综合| 97精品久久久久久久| 在线五区| 午夜舔阴达高潮视频免费看| 久久久久久国产无码精品| 五月婷婷综合网| 欧美另类自拍| 久久系列| 日本高清_区二区三区| 性爱视频久久| 亚洲视频二区| 91中出| 操屄不卡视频| 欧美大香蕉97| 亚洲色图欧美色18直播在线| 啪啪啪东京| 久久女人一区二区三区| 欧洲小说色图视频另类| 91丨九色丨大屁股| 久草精品国产蜜臀| 网友自拍第1页| 久干9操| 日本不卡三级网在线播放| 精久久久| 精品无码不卡视频| GVH-003 母子姦 青木玲-麻豆视频,麻豆视传媒短视频网站入口,麻豆视传媒官网直 | 岛国片在线播放| 啊灬啊灬啊灬好深灬快高潮了动漫-国产字幕国产在线观看-B049AV | 国产婷婷综合在线观看| 综合久久中文字幕综合日韩精品| 啊啊啊在线观看免费视频| 久久久久久加勒比| 一级A片女人高潮叫床| 国产传媒日本欧美专区| 精品亚洲天堂| 五月丁香色情| 久久99深爱久久99精品| 大香蕉乱级| 欧美黑人猛交春色影视大全| 人妻夜爽夜夜爽| 夜夜天天噜狠狠爱2021| 天天香香欲综合| 国产综合久久久麻桃个| 丁香五月久久| 玖玖资源视频一区二区三区| 亚洲色图日韩精品| 亚洲国产精品久久久男人的天堂| 91久久青青草原精品| 五月色综合| 亚欧美无遮挡| 26uuu国产日韩综合在线观看| 操死我干死我| 亚洲色图欧美一区二区不卡| 亚洲人成网www| 青青操日韩| 免费作爱一级视频| 精品一区二区在线针对华人免费观看这里只有精品免费观看 | 一级黄色性爱裸体视频| 人妻天堂综合网| 亚洲狠狠入| 操逼网免费无码视频| 另类视频在线| 密乳无码| 91n免费处女| 人人操人人操人人操人人操人人操人人人11.CM | 男人天堂网手机版婷婷| 国产熟女乱论| 天堂精品一区| 免费看日本操逼视频| 日韩中文字幕精品一二三事国产精品 | 久久精品国产精品亚洲艾通辽熟妇| 国产suv精品一区二六| 久久男女激情视频网站| 另类成人首页一区| 精品久久久亚洲AV成人网站| 日韩欧美三级| www.色五月| 色婷婷一区二区三区久久| 丰满人妻一区二区三区| 久久久人妻| www.一本大99| 天天色天天干天天射| 是还免费视频1727我| 日韩性爱电影一区| 久热这里只有精品9| 亚洲色吧网| 岛国黄片网站| 97久久国产亚洲精品超碰热| 欧美成人午夜免费福利785| 99精品无码| 久久久人体| 中文字幕黄片在线| 东北操逼| 素人播放一区| 九九九九AV| 欧亚性爱啪啪| 日本高清加勒比| 五月天社区| 熟妇综合一区二区三区| 亚洲精品国产精品乱码不卡| 国产又大又硬又长又粗| 亚洲一区二区AV| 夜夜嗨av午夜成人| 免费综合亚洲中文| 成人国产视频在线观看| 又黄又粗又硬又长又大| 蜜乳AV色欲AVAV无码| 超清中文乱码字幕| 亚洲91网站| 色婷婷电影网| 中文字幕中文字幕一区二区| 九久久九九久视频| 四虎免费看黄| 一区二区三区精品黑丝白丝酒店对鸡 | 亚洲蜜臀视频精品久久| 亚洲五月丁香花狠狠干一区二区三区| 免费日韩黄片| 久久久久久久9999| 97精品中文字幕| 1024亚洲中文字幕久在线看片你懂的| 国产精品成人福利在线| 人妻一区二区三区熟女| 九九综合网| 国产原创精品| 91色久| 91在线超高颜值国产| 欧美激情内射| 锕锕好爽 死我在线观看| 黄色乱论网站| 久久人人爽人人爽人人片Ⅴ| 国产99精品一区二区三区免费| 国产精品久久久久久久久久久久久久吹 | 亚洲无码?第一页| 免费岛国一级片| 97视频免费| 四虎免费视频| 欧美日韩人妻婷婷一区| 欧美三级一级| 人妻美腿丝袜日韩| 超碰人妻中文在线| 人人妻人人操人人乐| 五月综合久久| 人人插人人搞人人操| 亚洲小电影免费涩涩成人在线高清| 亚洲激情视频| 精品一区二区三区18| 超碰到97情色| 精品一区二区久久| 九一性生活免费视频| 日韩9999| 久久国产对白激情浪潮| 9热9热综合网| 国内91熟女人妻丝袜天天精品视频在线| 久久久夜夜嗨免费视频| 久久鲁干| 欧美精品自慰系列寂寞少妇| 美国一区二区免费视频| av无码精品久久久久| 日欧亚洲二三区大片不卡| 亚洲精品一二区| 国语国产操逼伊人AV网| 国产亚洲精品农村妇女| 强奸乱伦AV网站| 日韩国产欧美伦理在线| 国产精品无码av嫩草| 国语国产操逼伊人AV网| 丝袜美腿制服人妻二区中文字幕| 国产精品极品美女视频| 国模无码一区二区三区在线| 天堂8在线新版官网| 狠狠色婷婷777| 亚洲少妇色| 人妻精品综合中文字幕在线| 色爱欲亚洲| 加勒比海成人视频网 | 成人无遮挡毛片免费看| 色综合天天| 久久精视频美日韩在线视频| 99综合视频| 你操综合| 高跟伊人julia ann| 久久精品99| 深夜视频| 狠狠操官网| HEYZO高无码国产精品227| 欧洲色色| 日韩国产十八禁| 亚洲熟妇综合久久久久久| 亚洲骚逼少妇| 91久久免费视频互動交流| 国产91精品福利在线| 99热在线播放| 大香蕉国产中文自拍| 91处女在线视频| 欧美激情区| 日韩乱伦AⅤ| 激情五月婷婷| 和协影院中文字幕三区| 91久久国产精品| 一区AV| 国产亚洲精品自在线亚洲情侣| 欧美中文字幕男人天堂久久精品| 大香蕉之青青草原| 91中文字幕| 成人免费福利网站国产| 久久久久久久久久久久久久久性生活视频 | 欧亚综合一卡二卡中文字幕| 少妇内射www在线观看视频| 亚洲欧洲综合| 婷婷丁香五月天综合东京热| 欧美大香蕉在线观看| 精品美女人人干| 国产精品一区二区手机看片| 九九色逼| 长久操视频| 岛国A V在线免费看| 五月色网| 99日免费视频中文字幕| 20cm女自慰在线日韩欧美| 久久这里只精品99re66图| 97色欧州| 男女无套 免费网站| 美女黄频a美女大全免费皮| 日本999精品视频| 香蕉综合网| 日韩午夜精品一区二区三区电影| 欧美性暴力猛交XXXX| 777超碰| 国产福利精品最新在线 | 入口操逼网站| 欧美人妻中出| 久久丁香久草综合网| 香蕉在线一区二区三区| 99在线精品观看视频中文| 一级黄色视频网| 亚洲成人精品久久久| 肏逼视频日本| 1024久久高清视频| 神马麻豆福利院| 色婷婷基地| 天天综合网~91| 国产 三级自拍| 青青草一区二区三区四| 欧亚性爱啪啪| 伊人9| 激情久久久| 99视频自拍区| 婷婷色导航| 人妻第一页| 人妻天堂综合网| 精品熟女呻吟久久91| 蜜臀少妇一区二区| 色欧洲| 人人手机欧洲亚洲国产人妻| 亚洲欧美日韩中文播放| 久久久噜噜噜久久久| 一级毛片电影免费看| 伊人97色天使| 亚洲 日本 国产 综合| 大香蕉欧美国产日韩高潮| 巨爆乳一区二区爆乳区| 中国熟女网站| 国产综合操逼高清| 欧美亚洲系列| 国产丝袜美女诱惑| 成人26uuu| 97超碰免费生活| 免费a在线播放v| 东北女人高潮视频| 久无码| 久久首页| 91操熟妇| 欧美日韩国产中文精品字幕自在自线,| 青春草莓视频在线观看网址| 久久天天躁日日躁狠狠躁 | 内射日韩大臀美女| 国产又黄又粗的视频| 91影视亚洲| 五月丁香啪啪网| 97视频在线免费观看| 亚洲 欧美 小说| 一区二区三区视频在线观看免费| 91宗合网| 四虎视频在线观看| 亚洲黄网在哪免费看| 久久男人的天堂| 蜜桃视频一区二区三区| 久久九九网| 欧美成年人性爱视频免费观看| 粉嫩AV输入| 六月丁香婷| 日本高清视频xxxx| 91天天综合在线| 欧美 传媒 麻豆 日韩 偷拍| 殴美大黄片| 亚洲男人天堂网| 精彩久久中文| 久极品在线观看| 亚洲 欧美 手机在线观看| 久久超碰网| 欧美超碰人妻97| 精品91摸| 国产免费一区在线观看| 秋霞一级鲁丝片A片| 深爱伊人影院| 欧美国产一区二区三区麻豆传媒| 欧美—性—交—色| 青青草乱入乱欲视频在线观看| 97久久视频| 国内毛片婷婷六月色| 东京热毛片177b2viP| 亚洲清纯唯美| 欧美一区二区三区大综合| 99热66| 97国产高清视频在线观看| 国产毛片片精品天天看视频| 蜜区区视频79 | 麻豆久久精品亚洲精品88| 国产AV天美传媒一区二区三区| 大香蕉中文aV在线| 欧美色棕合| 中文字幕在线高清男人的天堂 | 久久视网78| 日韩pv中文| 成功精品影院| 亚洲欧洲网站免费观看| 啪啪资源网| 精品三级在线专区| 伊人久久AV诱惑悠悠| 亚洲狠狠入| 久久视频,这里只有精品| 99操| 日本啊啊啊啊啊视频| 天天干2019| 色蜜AV| 爽爽淫人网| 久久久人妻| 丁香久久| 九九成人| 98色网| 欧美综合站| 色九九九九久| 92福利社视频| 志村玲子视频一区二区| 丁香六月婷| 国产精品色色| 丁香五月社区| 五月激情在线| 中文字幕一区av| 亚州色交| 亚洲中文字幕妇伦久久| 禁止观看美女黄| 四虎影库国产精品免费| 国产精品青青草| 蜜臀精品1区2区| 少妇一区二区三区在线观看| 亚洲A色| 久久久久久久久久久999| 久久大线蕉一区| 97操在线| 欧美精品欧美精品系列| 亚洲熟女乱综合一区二区在线-...亚洲国产日韩欧美一区二区三区,久久久久久精 | 青草园大香蕉| 久久精品六区| 亚洲高清综合网| 麻豆久久一区二区三区| 一区二区三区美女超清| 74成人在线| 操逼操逼逼操操逼91 | 青青操视频在线| 欧美肥臀在线| 成人怡红院| 无码直播久久久| 久草网站免费在线观看| 中文字幕一区日韩精| 国产女人高潮视频| 激情亚洲天堂| 伊人视频| 麻豆天美一区二区| 一级性爱啪啪视频| 久操不卡视频| 久久久久久久久久久久久久9999| 亚洲自拍一区夜夜操| 性欧美第一页| 操逼操2| 久久久久国产精品喷潮免费观看臀 | 综合久草| 啊啊啊不要嗯嗯在线观看| 青青草原av| 亚洲熟伦熟妇AV无码春色| 色网在线| 久久蜜桃一区二区| 老熟女乱伦一区| 超碰人人超在线观看| 天天干天天操天天拍| 中国熟女网站| 人妻丝袜日本| 黄在线| 激情自拍 校园春色| 99精品丰满人妻| 久久系列| 激情视屏国产乱伦强奸| 日韩乱码av| 日韩国产九九精品一区二区三区毛片| 欧美日韩中文字幕人妻| 亚洲AV噜噜狠狠网址蜜桃动漫| 首页亚洲国产高跟丝袜诱惑视频| 欧美A√综合网| 欧美激情区| 人人妻人人狠人人| 97大色网| 91网站18禁| 日韩一级成人毛片免费观看| 日韩影片中文字幕一区二区三区| 久久成人东京热人妻| 在线有码中文字幕| 精品久久久无码| 97久久久久久久久久| 亚洲图片日本AⅤ欧美在线| 久久久久久久人妻| 另类欧美| 亚洲字幕一区二区| 日本不卡三级网在线播放| 久伊人网78| 婷婷影院入口| 91爱看| 无码 黑人一区二区三区| 国产女人高潮视频| 四虎精品永久在线观看| 国产欧美岛国精品一区| 久久夜夜夜夜| 黄片免费日韩| 91麻豆天美国产欧美日| 日韩97超碰| 97任你吞精| 日韩人妻丝袜美腿中文| 在线综合 亚洲 欧美中文字幕| 无码99| 蜜臀99久久精品久久久懂爱| 日本欧美成人片AAAA| 天天影视综合色| 色噜噜人妻丝袜a∨先锋影| 午夜后入| 国内毛片婷婷六月色| 日本久久综合| 中文字幕一区二区免费在线| 91色噜噜狠狠| 国产精品分类在线观看| 九九玖玖精品| 永久免费观看的毛片的网站| 在线观看十八禁| 欧美99999| 日韩精品三区四区| 国产中出内射一区二区| 伊人97色天使| 亚洲欧洲无码bt精品合集| 久久久久久性爱视频| 精品无码一区二区三区| 色鬼在线综合| 波多野结衣被操50分钟免费视频 | 啊啊啊啊嗯嗯在线久久久| 91精品黄在线观看| 在线视频资源| 色999人与兽| 91啦人妻| 骚女高跟AV在线| 网页导航五月天免费一二三区| 日韩BBN| 青青操青娱乐| 超碰97人人cao| 大香蕉综合在线| 亚洲欧洲国产综合av| 97中文热色| 97色插| 亚洲精品一二区| 成年在线视频日本亚洲在线视频区精品江靖宇公司 | 午夜成人爽爽爽爽A片李冰冰| 日han少妇无码| 欧美日本国产日韩激情视频| 一区二区无码视频| 亚洲熟妇极品| 日韩欧美大力操| 99热线麻豆| 狠狠躁AV| 国产AV激情无码久久无码| 欧洲综合色| 日本999精品视频| 人、人、摸,人、人、草| 精品69网| 人妻内射一区二区在线视频| 日韩精品一区二区三区色欲| 测评在线观看AV| 大香蕉92| 超碰超碰95| 色伊人91| 久久免费少妇| 吊色| 厕所偷拍在线| 欧美一区二区三区日韩| 日韩免费在线观看不卡| 乱操9999| 一区久久久二区| 国产激情在线观看| 免费αV在线视频| 黑白配性爱AV成| 偷拍超碰| 玖色AV| 男人的天堂一区三区| 在线观看不卡一区二区三区| 中文字幕免费在线观看| 欧美熟女妇同| AV 少妇 人妻 偷拍| 91高清无码下载| 欧美18老人禁| 玖玖久久久| 天天爱综合网| 国产精品久久久777| 色优久久| 亚洲女毛多水多21P| 综合伊人激情| 一区二区三| 97久操| 国模91| 欧美一级专区免费大片| 精品一区96| 亚洲少妇喷视频看| 91人妻Pr| 亚洲综合精品国产一区| 欧亚性爱在线视频| 欧美成人一级麻豆| 97干在线视频| 国产后入式在线观看| 97se综合| 久久夜夜夜| 男人的天堂VA在线| 嫩草 人人网精品| 久久超碰久| 能看的av| 婷婷五月天激情四射| 韩国一级做A片免费的| 丝袜剧情| 粉嫩粉嫩一区性色AV片| 一级特黄aaa大片在线观看成人一级片在线观看| 97久久国产| 男人天堂2030| 欧美劲爆第一页| 91美女片在线| 91久久婷婷| 欧美亚洲丝袜人妻制服中文99| 婷婷20月天青娱乐| 一区二区三区一亚洲中文字幕、综合区灬 | 啊啊啊啊在线播放| 是还免费视频1727我| 黄色污污污污污污网站| 看黑丝美女操逼青青网站| 久久久9品一区二区三区| 亚洲综合五月天婷婷丁香| 91碰碰| 五月婷婷六月色| 天天插天天射| 情侣开房子拍 日韩无码 女的很漂亮| 1024人妻| 亚洲少妇色| 综合久草| 精品国产99| 人妻少妇色综合| 五月天亚洲网| 黄站在线免费观看| 日韩大香蕉AV影片|